diff options
567 files changed, 31097 insertions, 56346 deletions
diff --git a/ADPF_OWNERS b/ADPF_OWNERS index e6ca8f4bd48a..bcdc33825a13 100644 --- a/ADPF_OWNERS +++ b/ADPF_OWNERS @@ -1,3 +1,4 @@ -lpy@google.com -mattbuckley@google.com +sumir@google.com +chingtangyu@google.com xwxw@google.com +mattbuckley@google.com diff --git a/AconfigFlags.bp b/AconfigFlags.bp index a0f38d9a7bd9..fbe4905d9754 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -15,6 +15,7 @@ aconfig_declarations_group { name: "framework-minus-apex-aconfig-declarations", aconfig_declarations_groups: [ + "aconfig_trade_in_mode_flags", "audio-framework-aconfig", ], java_aconfig_libraries: [ @@ -1643,3 +1644,29 @@ java_aconfig_library { aconfig_declarations: "android.app.jank.flags-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], } + +// Trade in mode +aconfig_declarations { + name: "aconfig_trade_in_mode_flags", + package: "com.android.tradeinmode.flags", + container: "system", + srcs: [ + "core/java/android/os/image/flags/trade_in_mode_flags.aconfig", + ], +} + +java_aconfig_library { + name: "aconfig_trade_in_mode_flags_java_lib", + aconfig_declarations: "aconfig_trade_in_mode_flags", + defaults: ["framework-minus-apex-aconfig-java-defaults"], +} + +cc_aconfig_library { + name: "android_trade_in_mode_flags_cc_lib", + aconfig_declarations: "aconfig_trade_in_mode_flags", + apex_available: [ + "//apex_available:platform", + "com.android.adbd", + ], + min_sdk_version: "apex_inherit", +} diff --git a/Android.bp b/Android.bp index 8c0158549d2d..516fc9c55222 100644 --- a/Android.bp +++ b/Android.bp @@ -64,7 +64,6 @@ filegroup { srcs: [ // Java/AIDL sources under frameworks/base ":framework-annotations", - ":ravenwood-annotations", ":framework-blobstore-sources", ":framework-core-sources", ":framework-drm-sources", @@ -296,7 +295,6 @@ java_defaults { enforce_permissions_exceptions: [ // Do not add entries to this list. ":framework-annotations", - ":ravenwood-annotations", ":framework-blobstore-sources", ":framework-core-sources", ":framework-drm-sources", @@ -600,8 +598,6 @@ filegroup { filegroup { name: "framework-networkstack-shared-srcs", srcs: [ - // TODO: remove these annotations as soon as we can use andoid.support.annotations.* - ":framework-annotations", ":modules-utils-preconditions-srcs", "core/java/android/util/IndentingPrintWriter.java", "core/java/android/util/LocalLog.java", diff --git a/GAME_MANAGER_OWNERS b/GAME_MANAGER_OWNERS index b65c43a8d7f0..bcdc33825a13 100644 --- a/GAME_MANAGER_OWNERS +++ b/GAME_MANAGER_OWNERS @@ -1,3 +1,4 @@ -lpy@google.com +sumir@google.com chingtangyu@google.com xwxw@google.com +mattbuckley@google.com @@ -45,3 +45,7 @@ per-file PERFORMANCE_OWNERS = file:/PERFORMANCE_OWNERS per-file PACKAGE_MANAGER_OWNERS = file:/PACKAGE_MANAGER_OWNERS per-file WEAR_OWNERS = file:/WEAR_OWNERS + +per-file ADPF_OWNERS = file:/ADPF_OWNERS + +per-file GAME_MANAGER_OWNERS = file:/GAME_MANAGER_OWNERS diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java index 3af36ebb08ca..e200434d9ff2 100644 --- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java +++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java @@ -1404,7 +1404,11 @@ public class BlobStoreManagerService extends SystemService { if (LOGV) { Slog.v(TAG, "Received " + intent); } - switch (intent.getAction()) { + final String action = intent.getAction(); + if (action == null) { + return; + } + switch (action) { case Intent.ACTION_PACKAGE_FULLY_REMOVED: case Intent.ACTION_PACKAGE_DATA_CLEARED: final String packageName = intent.getData().getSchemeSpecificPart(); @@ -1431,7 +1435,11 @@ public class BlobStoreManagerService extends SystemService { if (LOGV) { Slog.v(TAG, "Received: " + intent); } - switch (intent.getAction()) { + final String action = intent.getAction(); + if (action == null) { + return; + } + switch (action) { case Intent.ACTION_USER_REMOVED: final int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, USER_NULL); diff --git a/api/StubLibraries.bp b/api/StubLibraries.bp index d1aa23c8ea5f..a949ff5a331b 100644 --- a/api/StubLibraries.bp +++ b/api/StubLibraries.bp @@ -364,19 +364,14 @@ java_defaults { java_library { name: "android-non-updatable.stubs", defaults: ["android-non-updatable_defaults"], - static_libs: [ - "android-non-updatable.stubs.from-source", - ], - product_variables: { - build_from_text_stub: { - static_libs: [ - "android-non-updatable.stubs.from-text", - ], - exclude_static_libs: [ - "android-non-updatable.stubs.from-source", - ], - }, - }, + static_libs: select(product_variable("build_from_text_stub"), { + true: [ + "android-non-updatable.stubs.from-text", + ], + default: [ + "android-non-updatable.stubs.from-source", + ], + }), } java_library { @@ -390,19 +385,14 @@ java_library { java_library { name: "android-non-updatable.stubs.system", defaults: ["android-non-updatable_defaults"], - static_libs: [ - "android-non-updatable.stubs.system.from-source", - ], - product_variables: { - build_from_text_stub: { - static_libs: [ - "android-non-updatable.stubs.system.from-text", - ], - exclude_static_libs: [ - "android-non-updatable.stubs.system.from-source", - ], - }, - }, + static_libs: select(product_variable("build_from_text_stub"), { + true: [ + "android-non-updatable.stubs.system.from-text", + ], + default: [ + "android-non-updatable.stubs.system.from-source", + ], + }), } java_library { @@ -416,19 +406,14 @@ java_library { java_library { name: "android-non-updatable.stubs.module_lib", defaults: ["android-non-updatable_defaults"], - static_libs: [ - "android-non-updatable.stubs.module_lib.from-source", - ], - product_variables: { - build_from_text_stub: { - static_libs: [ - "android-non-updatable.stubs.module_lib.from-text", - ], - exclude_static_libs: [ - "android-non-updatable.stubs.module_lib.from-source", - ], - }, - }, + static_libs: select(product_variable("build_from_text_stub"), { + true: [ + "android-non-updatable.stubs.module_lib.from-text", + ], + default: [ + "android-non-updatable.stubs.module_lib.from-source", + ], + }), } java_library { @@ -442,19 +427,14 @@ java_library { java_library { name: "android-non-updatable.stubs.test", defaults: ["android-non-updatable_defaults"], - static_libs: [ - "android-non-updatable.stubs.test.from-source", - ], - product_variables: { - build_from_text_stub: { - static_libs: [ - "android-non-updatable.stubs.test.from-text", - ], - exclude_static_libs: [ - "android-non-updatable.stubs.test.from-source", - ], - }, - }, + static_libs: select(product_variable("build_from_text_stub"), { + true: [ + "android-non-updatable.stubs.test.from-text", + ], + default: [ + "android-non-updatable.stubs.test.from-source", + ], + }), } java_library { @@ -468,19 +448,14 @@ java_library { java_library { name: "android-non-updatable.stubs.system_server", defaults: ["android-non-updatable_defaults"], - static_libs: [ - "android-non-updatable.stubs.system_server.from-source", - ], - product_variables: { - build_from_text_stub: { - static_libs: [ - "android-non-updatable.stubs.system_server.from-text", - ], - exclude_static_libs: [ - "android-non-updatable.stubs.system_server.from-source", - ], - }, - }, + static_libs: select(product_variable("build_from_text_stub"), { + true: [ + "android-non-updatable.stubs.system_server.from-text", + ], + default: [ + "android-non-updatable.stubs.system_server.from-source", + ], + }), } java_library { diff --git a/boot/README.md b/boot/README.md new file mode 100644 index 000000000000..d9219c801b7b --- /dev/null +++ b/boot/README.md @@ -0,0 +1,10 @@ +# Configuration files for ART compiling the framework + +* boot-image-profile.txt: A list of methods from the framework boot classpath + to be compiled by dex2oat. The order in the file is not relevant. +* boot-profile.txt: An ordered list of methods from the boot classpath to be + compiled by the JIT in the order provided in the file. Used by JIT zygote, + when on-device signing failed. +* boot-image-profile-extra.txt: An extra list of methods from the framework + boot classpath to be compiled by dex2oat on top of what we have at + boot-image-profile.txt. diff --git a/config/boot-image-profile-extra.txt b/boot/boot-image-profile-extra.txt index e3b187e0a66d..e3b187e0a66d 100644 --- a/config/boot-image-profile-extra.txt +++ b/boot/boot-image-profile-extra.txt diff --git a/config/boot-profile.txt b/boot/boot-profile.txt index e0e9164b3f90..e0e9164b3f90 100644 --- a/config/boot-profile.txt +++ b/boot/boot-profile.txt diff --git a/cmds/uinput/README.md b/cmds/uinput/README.md index 5d3f12e0d59f..6138388b30c7 100644 --- a/cmds/uinput/README.md +++ b/cmds/uinput/README.md @@ -83,6 +83,11 @@ control values to be sent to the uinput device, which depends on the control cod Due to the sequential nature in which this is parsed, the `type` field must be specified before the `data` field in this JSON Object. +Every `register` command will need a `"UI_SET_EVBIT"` configuration entry that lists what types of +axes it declares. This entry should be the first in the list. For example, if the uinput device has +`"UI_SET_KEYBIT"` and `"UI_SET_RELBIT"` configuration entries, it will also need a `"UI_SET_EVBIT"` +entry with data of `["EV_KEY", "EV_REL"]` or the other configuration entries will be ignored. + `ff_effects_max` must be provided if `UI_SET_FFBIT` is used in `configuration`. `abs_info` fields are provided to set the device axes information. It is an array of below objects: diff --git a/config/README.md b/config/README.md index 450a5c695c82..f2c8930575a5 100644 --- a/config/README.md +++ b/config/README.md @@ -1,10 +1,5 @@ # Configuration files for ART compiling the framework -* boot-image-profile.txt: A list of methods from the boot classpath to be compiled by dex2oat. - The order in the file is not relevant. -* boot-profile.txt: An ordered list of methods from the boot classpath to be compiled by - the JIT in the order provided in the file. Used by JIT zygote, when on-device - signing failed. * dirty-image-objects: List of objects in the boot image which are known to become dirty. This helps binning objects in the image file. * preloaded-classes: classes that will be allocated in the boot image, and diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt deleted file mode 100644 index ee417e8e8639..000000000000 --- a/config/boot-image-profile.txt +++ /dev/null @@ -1,50393 +0,0 @@ -# -# Copyright (C) 2017 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accessibilityservice/AccessibilityServiceInfo; -HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getId()Ljava/lang/String; -HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->initFromParcel(Landroid/os/Parcel;)V -HSPLandroid/accounts/Account$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accounts/Account; -HSPLandroid/accounts/Account$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/accounts/Account$1;->newArray(I)[Landroid/accounts/Account; -HSPLandroid/accounts/Account$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/accounts/Account;-><init>(Landroid/os/Parcel;)V -HSPLandroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/Account;->equals(Ljava/lang/Object;)Z -HSPLandroid/accounts/Account;->hashCode()I -HSPLandroid/accounts/Account;->onAccountAccessed(Ljava/lang/String;)V -HSPLandroid/accounts/Account;->toString()Ljava/lang/String; -HSPLandroid/accounts/Account;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/accounts/AccountManager$10;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V -HSPLandroid/accounts/AccountManager$10;->doWork()V -HSPLandroid/accounts/AccountManager$18;->run()V -HSPLandroid/accounts/AccountManager$1;-><init>(Landroid/accounts/AccountManager;ILjava/lang/String;)V -HSPLandroid/accounts/AccountManager$1;->bypass(Landroid/content/pm/UserPackage;)Z -HSPLandroid/accounts/AccountManager$1;->bypass(Ljava/lang/Object;)Z -HSPLandroid/accounts/AccountManager$1;->recompute(Landroid/content/pm/UserPackage;)[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$20;-><init>(Landroid/accounts/AccountManager;)V -HSPLandroid/accounts/AccountManager$2;-><init>(Landroid/accounts/AccountManager;ILjava/lang/String;)V -HSPLandroid/accounts/AccountManager$2;->recompute(Landroid/accounts/AccountManager$AccountKeyData;)Ljava/lang/String; -HSPLandroid/accounts/AccountManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$4;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Boolean; -HSPLandroid/accounts/AccountManager$4;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$4;->doWork()V -HSPLandroid/accounts/AccountManager$5;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/accounts/AccountManager$5;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$5;->bundleToResult(Landroid/os/Bundle;)[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager$5;->doWork()V -HSPLandroid/accounts/AccountManager$AccountKeyData;-><init>(Landroid/accounts/Account;Ljava/lang/String;)V -HSPLandroid/accounts/AccountManager$AccountKeyData;->equals(Ljava/lang/Object;)Z -HSPLandroid/accounts/AccountManager$AccountKeyData;->hashCode()I -HSPLandroid/accounts/AccountManager$AmsTask$1;-><init>(Landroid/accounts/AccountManager;)V -HSPLandroid/accounts/AccountManager$AmsTask$Response;-><init>(Landroid/accounts/AccountManager$AmsTask;)V -HSPLandroid/accounts/AccountManager$AmsTask$Response;-><init>(Landroid/accounts/AccountManager$AmsTask;Landroid/accounts/AccountManager$AmsTask$Response-IA;)V -HSPLandroid/accounts/AccountManager$AmsTask$Response;->onResult(Landroid/os/Bundle;)V -HSPLandroid/accounts/AccountManager$AmsTask;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V -HSPLandroid/accounts/AccountManager$AmsTask;->done()V -HSPLandroid/accounts/AccountManager$AmsTask;->getResult()Landroid/os/Bundle; -HSPLandroid/accounts/AccountManager$AmsTask;->getResult()Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$AmsTask;->getResult(JLjava/util/concurrent/TimeUnit;)Landroid/os/Bundle; -HSPLandroid/accounts/AccountManager$AmsTask;->getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$AmsTask;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Landroid/os/Bundle; -HSPLandroid/accounts/AccountManager$AmsTask;->set(Landroid/os/Bundle;)V -HSPLandroid/accounts/AccountManager$AmsTask;->start()Landroid/accounts/AccountManagerFuture; -HSPLandroid/accounts/AccountManager$BaseFutureTask$1;-><init>(Landroid/accounts/AccountManager;)V -HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;-><init>(Landroid/accounts/AccountManager$BaseFutureTask;)V -HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;->onResult(Landroid/os/Bundle;)V -HSPLandroid/accounts/AccountManager$BaseFutureTask;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;)V -HSPLandroid/accounts/AccountManager$BaseFutureTask;->startTask()V -HSPLandroid/accounts/AccountManager$Future2Task;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V -HSPLandroid/accounts/AccountManager$Future2Task;->done()V -HSPLandroid/accounts/AccountManager$Future2Task;->getResult()Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$Future2Task;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLandroid/accounts/AccountManager$Future2Task;->start()Landroid/accounts/AccountManager$Future2Task; -HSPLandroid/accounts/AccountManager;->-$$Nest$fgetmService(Landroid/accounts/AccountManager;)Landroid/accounts/IAccountManager; -HSPLandroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V -HSPLandroid/accounts/AccountManager;->addOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;Landroid/os/Handler;Z)V -HSPLandroid/accounts/AccountManager;->addOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;Landroid/os/Handler;Z[Ljava/lang/String;)V -HSPLandroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String; -HSPLandroid/accounts/AccountManager;->ensureNotOnMainThread()V -HSPLandroid/accounts/AccountManager;->get(Landroid/content/Context;)Landroid/accounts/AccountManager; -HSPLandroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager;->getAccountsAsUser(I)[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager;->getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture; -HSPLandroid/accounts/AccountManager;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account; -HSPLandroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture; -HSPLandroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture; -HSPLandroid/accounts/AccountManager;->getAuthenticatorTypes()[Landroid/accounts/AuthenticatorDescription; -HSPLandroid/accounts/AccountManager;->getAuthenticatorTypesAsUser(I)[Landroid/accounts/AuthenticatorDescription; -HSPLandroid/accounts/AccountManager;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/accounts/AccountManager;->hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture; -HSPLandroid/accounts/AccountManager;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/AccountManager;->removeOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;)V -HSPLandroid/accounts/AccountManager;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/AuthenticatorDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accounts/AuthenticatorDescription; -HSPLandroid/accounts/AuthenticatorDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/accounts/AuthenticatorDescription$1;->newArray(I)[Landroid/accounts/AuthenticatorDescription; -HSPLandroid/accounts/AuthenticatorDescription$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account; -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account; -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZZLandroid/os/Bundle;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription; -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->onAccountAccessed(Ljava/lang/String;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/IAccountManager$Stub$Proxy;->unregisterAccountListener([Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/accounts/IAccountManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManager; -HSPLandroid/accounts/IAccountManagerResponse$Stub;-><init>()V -HSPLandroid/accounts/IAccountManagerResponse$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/accounts/IAccountManagerResponse$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/accounts/IAccountManagerResponse$Stub;->getMaxTransactionId()I -HSPLandroid/accounts/IAccountManagerResponse$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/animation/AnimationHandler$$ExternalSyntheticLambda0;-><init>(Landroid/animation/AnimationHandler;)V -HSPLandroid/animation/AnimationHandler$$ExternalSyntheticLambda0;->doFrame(J)V -HSPLandroid/animation/AnimationHandler$1;-><init>(Landroid/animation/AnimationHandler;)V -HSPLandroid/animation/AnimationHandler$1;->doFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Landroid/animation/AnimationHandler$MyFrameCallbackProvider;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>(Landroid/animation/AnimationHandler;)V -HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/animation/AnimationHandler;-><init>()V -HSPLandroid/animation/AnimationHandler;->addAnimationFrameCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V -HSPLandroid/animation/AnimationHandler;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimationHandler;->cleanUpList()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V+]Landroid/animation/AnimationHandler$AnimationFrameCallback;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator;,Lcom/android/internal/dynamicanimation/animation/SpringAnimation;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimationHandler;->getAnimationCount()I -HSPLandroid/animation/AnimationHandler;->getInstance()Landroid/animation/AnimationHandler; -HSPLandroid/animation/AnimationHandler;->getProvider()Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider; -HSPLandroid/animation/AnimationHandler;->isCallbackDue(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -HSPLandroid/animation/AnimationHandler;->isPauseBgAnimationsEnabledInSystemProperties()Z -HSPLandroid/animation/AnimationHandler;->removeCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V -HSPLandroid/animation/AnimationHandler;->requestAnimatorsEnabled(ZLjava/lang/Object;)V -HSPLandroid/animation/AnimationHandler;->requestAnimatorsEnabledImpl(ZLjava/lang/Object;)V -HSPLandroid/animation/AnimationHandler;->resumeAnimators()V -HSPLandroid/animation/AnimationHandler;->setAnimatorPausingEnabled(Z)V -HSPLandroid/animation/AnimationHandler;->setProvider(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;)V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda3;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda4;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda5;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;-><init>()V -HSPLandroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;->call(Ljava/lang/Object;Ljava/lang/Object;Z)V -HSPLandroid/animation/Animator$AnimatorCaller;-><clinit>()V -HSPLandroid/animation/Animator$AnimatorCaller;->lambda$static$0(Landroid/animation/Animator$AnimatorListener;Landroid/animation/Animator;Z)V -HSPLandroid/animation/Animator$AnimatorCaller;->lambda$static$4(Landroid/animation/ValueAnimator$AnimatorUpdateListener;Landroid/animation/ValueAnimator;Z)V+]Landroid/animation/ValueAnimator$AnimatorUpdateListener;missing_types -HSPLandroid/animation/Animator$AnimatorConstantState;-><init>(Landroid/animation/Animator;)V -HSPLandroid/animation/Animator$AnimatorConstantState;->getChangingConfigurations()I -HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Landroid/animation/Animator; -HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Ljava/lang/Object; -HSPLandroid/animation/Animator$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;Z)V+]Landroid/animation/Animator$AnimatorListener;missing_types -HSPLandroid/animation/Animator$AnimatorListener;->onAnimationStart(Landroid/animation/Animator;Z)V+]Landroid/animation/Animator$AnimatorListener;missing_types -HSPLandroid/animation/Animator;-><init>()V -HSPLandroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V -HSPLandroid/animation/Animator;->addPauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V -HSPLandroid/animation/Animator;->appendChangingConfigurations(I)V -HSPLandroid/animation/Animator;->callOnList(Ljava/util/ArrayList;Landroid/animation/Animator$AnimatorCaller;Ljava/lang/Object;Z)V+]Landroid/animation/Animator$AnimatorCaller;Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1;,Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0;,Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6;,Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference; -HSPLandroid/animation/Animator;->clone()Landroid/animation/Animator; -HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/ConstantState; -HSPLandroid/animation/Animator;->getBackgroundPauseDelay()J -HSPLandroid/animation/Animator;->getChangingConfigurations()I -HSPLandroid/animation/Animator;->getListeners()Ljava/util/ArrayList; -HSPLandroid/animation/Animator;->getStartAndEndTimes(Landroid/util/LongArray;J)V -HSPLandroid/animation/Animator;->notifyEndListeners(Z)V -HSPLandroid/animation/Animator;->notifyListeners(Landroid/animation/Animator$AnimatorCaller;Z)V -HSPLandroid/animation/Animator;->notifyStartListeners(Z)V -HSPLandroid/animation/Animator;->pause()V -HSPLandroid/animation/Animator;->removeAllListeners()V -HSPLandroid/animation/Animator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/Animator;->setAllowRunningAsynchronously(Z)V -HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLandroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Landroid/util/PathParser$PathData; -HSPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;F)Landroid/animation/Animator; -HSPLandroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/animation/AnimatorSet;IF)Landroid/animation/Animator; -HSPLandroid/animation/AnimatorInflater;->createStateListAnimatorFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/animation/StateListAnimator; -HSPLandroid/animation/AnimatorInflater;->getChangingConfigs(Landroid/content/res/Resources;I)I -HSPLandroid/animation/AnimatorInflater;->getPVH(Landroid/content/res/TypedArray;IIILjava/lang/String;)Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/AnimatorInflater;->inferValueTypeFromValues(Landroid/content/res/TypedArray;II)I -HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator; -HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;IF)Landroid/animation/Animator; -HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;Landroid/animation/ValueAnimator;F)Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorInflater;->loadObjectAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;F)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/AnimatorInflater;->loadStateListAnimator(Landroid/content/Context;I)Landroid/animation/StateListAnimator; -HSPLandroid/animation/AnimatorInflater;->parseAnimatorFromTypeArray(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;F)V -HSPLandroid/animation/AnimatorInflater;->setupObjectAnimator(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;IF)V -HSPLandroid/animation/AnimatorListenerAdapter;-><init>()V -HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationCancel(Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorSet$1;-><init>(Landroid/animation/AnimatorSet;)V -HSPLandroid/animation/AnimatorSet$1;->onAnimationEnd(Landroid/animation/Animator;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -HSPLandroid/animation/AnimatorSet$2;-><init>(Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;)V -HSPLandroid/animation/AnimatorSet$2;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorSet$3;-><init>(Landroid/animation/AnimatorSet;)V -HSPLandroid/animation/AnimatorSet$3;->compare(Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;)I+]Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent; -HSPLandroid/animation/AnimatorSet$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/animation/AnimatorSet$AnimationEvent;-><init>(Landroid/animation/AnimatorSet$Node;I)V -HSPLandroid/animation/AnimatorSet$AnimationEvent;->getTime()J+]Landroid/animation/Animator;Landroid/animation/ObjectAnimator; -HSPLandroid/animation/AnimatorSet$Builder;-><init>(Landroid/animation/AnimatorSet;Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorSet$Builder;->after(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; -HSPLandroid/animation/AnimatorSet$Builder;->before(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; -HSPLandroid/animation/AnimatorSet$Builder;->with(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; -HSPLandroid/animation/AnimatorSet$Node;-><init>(Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorSet$Node;->addChild(Landroid/animation/AnimatorSet$Node;)V -HSPLandroid/animation/AnimatorSet$Node;->addParent(Landroid/animation/AnimatorSet$Node;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node; -HSPLandroid/animation/AnimatorSet$Node;->addParents(Ljava/util/ArrayList;)V -HSPLandroid/animation/AnimatorSet$Node;->addSibling(Landroid/animation/AnimatorSet$Node;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node; -HSPLandroid/animation/AnimatorSet$Node;->clone()Landroid/animation/AnimatorSet$Node;+]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet$SeekState;-><init>(Landroid/animation/AnimatorSet;)V -HSPLandroid/animation/AnimatorSet$SeekState;->getPlayTimeNormalized()J -HSPLandroid/animation/AnimatorSet$SeekState;->isActive()Z -HSPLandroid/animation/AnimatorSet$SeekState;->reset()V -HSPLandroid/animation/AnimatorSet;-><init>()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->addAnimationCallback(J)V -HSPLandroid/animation/AnimatorSet;->addAnimationEndListener()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->cancel()V -HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/Animator; -HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/AnimatorSet;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->createDependencyGraph()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;]Landroid/animation/AnimatorSet$Node;Landroid/animation/AnimatorSet$Node;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z+]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimatorSet;->end()V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator; -HSPLandroid/animation/AnimatorSet;->endAnimation()V+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimatorSet;->ensureChildStartAndEndTimes()[J -HSPLandroid/animation/AnimatorSet;->findLatestEventIdForTime(J)I -HSPLandroid/animation/AnimatorSet;->findNextIndex(J[J)I -HSPLandroid/animation/AnimatorSet;->findSiblings(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V -HSPLandroid/animation/AnimatorSet;->getChangingConfigurations()I -HSPLandroid/animation/AnimatorSet;->getChildAnimations()Ljava/util/ArrayList;+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimatorSet;->getNodeForAnimation(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Node;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimatorSet;->getStartAndEndTimes(Landroid/util/LongArray;J)V -HSPLandroid/animation/AnimatorSet;->getStartDelay()J -HSPLandroid/animation/AnimatorSet;->getTotalDuration()J -HSPLandroid/animation/AnimatorSet;->handleAnimationEvents(IIJ)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->initAnimation()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->initChildren()V -HSPLandroid/animation/AnimatorSet;->isEmptySet(Landroid/animation/AnimatorSet;)Z+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimatorSet;->isInitialized()Z+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->isRunning()Z -HSPLandroid/animation/AnimatorSet;->isStarted()Z -HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder; -HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V -HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V -HSPLandroid/animation/AnimatorSet;->pulseAnimationFrame(J)Z -HSPLandroid/animation/AnimatorSet;->pulseFrame(Landroid/animation/AnimatorSet$Node;J)V -HSPLandroid/animation/AnimatorSet;->removeAnimationCallback()V -HSPLandroid/animation/AnimatorSet;->removeAnimationEndListener()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/Animator; -HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet; -HSPLandroid/animation/AnimatorSet;->setInterpolator(Landroid/animation/TimeInterpolator;)V -HSPLandroid/animation/AnimatorSet;->setStartDelay(J)V -HSPLandroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/animation/AnimatorSet;->shouldPlayTogether()Z -HSPLandroid/animation/AnimatorSet;->skipToEndValue(Z)V -HSPLandroid/animation/AnimatorSet;->sortAnimationEvents()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->start()V -HSPLandroid/animation/AnimatorSet;->start(ZZ)V+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->startAnimation()V+]Landroid/animation/AnimatorSet;Landroid/animation/AnimatorSet;]Landroid/animation/AnimatorSet$SeekState;Landroid/animation/AnimatorSet$SeekState;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->startWithoutPulsing(Z)V -HSPLandroid/animation/AnimatorSet;->updateAnimatorsDuration()V+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; -HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator;,Landroid/animation/AnimatorSet;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/ArgbEvaluator;-><init>()V -HSPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/animation/ArgbEvaluator;->getInstance()Landroid/animation/ArgbEvaluator; -HSPLandroid/animation/FloatKeyframeSet;-><init>([Landroid/animation/Keyframe$FloatKeyframe;)V -HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/FloatKeyframeSet; -HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/Keyframes; -HSPLandroid/animation/FloatKeyframeSet;->getFloatValue(F)F+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/animation/Keyframe$FloatKeyframe;Landroid/animation/Keyframe$FloatKeyframe; -HSPLandroid/animation/FloatKeyframeSet;->getValue(F)Ljava/lang/Object; -HSPLandroid/animation/IntKeyframeSet;-><init>([Landroid/animation/Keyframe$IntKeyframe;)V -HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/IntKeyframeSet;+]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe; -HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/Keyframes; -HSPLandroid/animation/IntKeyframeSet;->getIntValue(F)I -HSPLandroid/animation/Keyframe$FloatKeyframe;-><init>(F)V -HSPLandroid/animation/Keyframe$FloatKeyframe;-><init>(FF)V -HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe$FloatKeyframe;+]Landroid/animation/Keyframe$FloatKeyframe;Landroid/animation/Keyframe$FloatKeyframe; -HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe$FloatKeyframe;->getFloatValue()F -HSPLandroid/animation/Keyframe$FloatKeyframe;->getValue()Ljava/lang/Object; -HSPLandroid/animation/Keyframe$FloatKeyframe;->setValue(Ljava/lang/Object;)V+]Ljava/lang/Object;Ljava/lang/Float;]Ljava/lang/Float;Ljava/lang/Float; -HSPLandroid/animation/Keyframe$IntKeyframe;-><init>(FI)V -HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe$IntKeyframe; -HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe$IntKeyframe;->getIntValue()I -HSPLandroid/animation/Keyframe$IntKeyframe;->getValue()Ljava/lang/Object; -HSPLandroid/animation/Keyframe$IntKeyframe;->setValue(Ljava/lang/Object;)V -HSPLandroid/animation/Keyframe$ObjectKeyframe;-><init>(FLjava/lang/Object;)V -HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe$ObjectKeyframe; -HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe$ObjectKeyframe;->getValue()Ljava/lang/Object; -HSPLandroid/animation/Keyframe;-><init>()V -HSPLandroid/animation/Keyframe;->getFraction()F -HSPLandroid/animation/Keyframe;->getInterpolator()Landroid/animation/TimeInterpolator; -HSPLandroid/animation/Keyframe;->hasValue()Z -HSPLandroid/animation/Keyframe;->ofFloat(F)Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe;->ofFloat(FF)Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe;->ofInt(FI)Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation/Keyframe; -HSPLandroid/animation/Keyframe;->setInterpolator(Landroid/animation/TimeInterpolator;)V -HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V -HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z -HSPLandroid/animation/KeyframeSet;-><init>([Landroid/animation/Keyframe;)V+]Landroid/animation/Keyframe;Landroid/animation/Keyframe$ObjectKeyframe;,Landroid/animation/Keyframe$IntKeyframe;,Landroid/animation/Keyframe$FloatKeyframe; -HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/KeyframeSet; -HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/Keyframes; -HSPLandroid/animation/KeyframeSet;->getKeyframes()Ljava/util/List; -HSPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;+]Landroid/animation/Keyframe;Landroid/animation/Keyframe$ObjectKeyframe; -HSPLandroid/animation/KeyframeSet;->ofFloat([F)Landroid/animation/KeyframeSet; -HSPLandroid/animation/KeyframeSet;->ofInt([I)Landroid/animation/KeyframeSet; -HSPLandroid/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Landroid/animation/KeyframeSet; -HSPLandroid/animation/KeyframeSet;->setEvaluator(Landroid/animation/TypeEvaluator;)V -HSPLandroid/animation/LayoutTransition$1;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/LayoutTransition$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V -HSPLandroid/animation/LayoutTransition$3;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/LayoutTransition$3;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/animation/LayoutTransition$4;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/LayoutTransition$5;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/LayoutTransition$CleanupCallback;->cleanup()V -HSPLandroid/animation/LayoutTransition$CleanupCallback;->onPreDraw()Z -HSPLandroid/animation/LayoutTransition;-><init>()V -HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;)V -HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V -HSPLandroid/animation/LayoutTransition;->addTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V -HSPLandroid/animation/LayoutTransition;->cancel()V -HSPLandroid/animation/LayoutTransition;->cancel(I)V -HSPLandroid/animation/LayoutTransition;->disableTransitionType(I)V -HSPLandroid/animation/LayoutTransition;->hideChild(Landroid/view/ViewGroup;Landroid/view/View;I)V -HSPLandroid/animation/LayoutTransition;->isChangingLayout()Z -HSPLandroid/animation/LayoutTransition;->layoutChange(Landroid/view/ViewGroup;)V -HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;)V -HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V -HSPLandroid/animation/LayoutTransition;->removeTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V -HSPLandroid/animation/LayoutTransition;->runAppearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V -HSPLandroid/animation/LayoutTransition;->runChangeTransition(Landroid/view/ViewGroup;Landroid/view/View;I)V -HSPLandroid/animation/LayoutTransition;->runDisappearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V -HSPLandroid/animation/LayoutTransition;->setAnimateParentHierarchy(Z)V -HSPLandroid/animation/LayoutTransition;->setAnimator(ILandroid/animation/Animator;)V -HSPLandroid/animation/LayoutTransition;->setDuration(J)V -HSPLandroid/animation/LayoutTransition;->setInterpolator(ILandroid/animation/TimeInterpolator;)V -HSPLandroid/animation/LayoutTransition;->setStartDelay(IJ)V -HSPLandroid/animation/LayoutTransition;->setupChangeAnimation(Landroid/view/ViewGroup;ILandroid/animation/Animator;JLandroid/view/View;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;missing_types]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;]Landroid/animation/Animator;Landroid/animation/ObjectAnimator; -HSPLandroid/animation/LayoutTransition;->showChild(Landroid/view/ViewGroup;Landroid/view/View;I)V -HSPLandroid/animation/LayoutTransition;->startChangingAnimations()V -HSPLandroid/animation/ObjectAnimator;-><init>()V -HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Landroid/util/Property;)V -HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Ljava/lang/String;)V -HSPLandroid/animation/ObjectAnimator;->animateValue(F)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/Animator; -HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->getPropertyName()Ljava/lang/String;+]Landroid/util/Property;missing_types -HSPLandroid/animation/ObjectAnimator;->getTarget()Ljava/lang/Object; -HSPLandroid/animation/ObjectAnimator;->hasSameTargetAndProperties(Landroid/animation/Animator;)Z -HSPLandroid/animation/ObjectAnimator;->initAnimation()V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/ObjectAnimator;->isInitialized()Z -HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Landroid/util/Property;[F)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->setAutoCancel(Z)V -HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/Animator; -HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ValueAnimator; -HSPLandroid/animation/ObjectAnimator;->setFloatValues([F)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->setIntValues([I)V -HSPLandroid/animation/ObjectAnimator;->setObjectValues([Ljava/lang/Object;)V -HSPLandroid/animation/ObjectAnimator;->setProperty(Landroid/util/Property;)V -HSPLandroid/animation/ObjectAnimator;->setPropertyName(Ljava/lang/String;)V -HSPLandroid/animation/ObjectAnimator;->setTarget(Ljava/lang/Object;)V+]Landroid/animation/ObjectAnimator;Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ObjectAnimator;->setupEndValues()V -HSPLandroid/animation/ObjectAnimator;->setupStartValues()V -HSPLandroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z -HSPLandroid/animation/ObjectAnimator;->start()V -HSPLandroid/animation/PathKeyframes$1;->getFloatValue(F)F -HSPLandroid/animation/PathKeyframes$2;->getFloatValue(F)F -HSPLandroid/animation/PathKeyframes$FloatKeyframesBase;->getValue(F)Ljava/lang/Object; -HSPLandroid/animation/PathKeyframes$SimpleKeyframes;->clone()Landroid/animation/Keyframes; -HSPLandroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;F)V -HSPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/ArrayList; -HSPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/List; -HSPLandroid/animation/PathKeyframes;->getValue(F)Ljava/lang/Object; -HSPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/PointF; -HSPLandroid/animation/PropertyValuesHolder$1;->getValueAtFraction(F)Ljava/lang/Object; -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Landroid/util/Property;[F)V -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;[F)V -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes$FloatKeyframes;Landroid/animation/FloatKeyframeSet; -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V+]Landroid/util/FloatProperty;Landroid/view/View$2;,Landroid/view/View$12;,Landroid/view/View$13;,Landroid/view/View$5; -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setFloatValues([F)V -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setProperty(Landroid/util/Property;)V -HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Long;Ljava/lang/Long; -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Ljava/lang/String;[I)V -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes$IntKeyframes;Landroid/animation/IntKeyframeSet; -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setIntValues([I)V -HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Long;Ljava/lang/Long; -HSPLandroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V -HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V+]Landroid/util/Property;missing_types -HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V -HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/PropertyValuesHolder-IA;)V -HSPLandroid/animation/PropertyValuesHolder;->calculateValue(F)V+]Landroid/animation/Keyframes;Landroid/animation/KeyframeSet; -HSPLandroid/animation/PropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder;+]Landroid/animation/Keyframes;Landroid/animation/KeyframeSet;,Landroid/animation/IntKeyframeSet;,Landroid/animation/FloatKeyframeSet; -HSPLandroid/animation/PropertyValuesHolder;->convertBack(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/animation/PropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object; -HSPLandroid/animation/PropertyValuesHolder;->getMethodName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/animation/PropertyValuesHolder;->getPropertyFunction(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLandroid/animation/PropertyValuesHolder;->getPropertyName()Ljava/lang/String; -HSPLandroid/animation/PropertyValuesHolder;->getPropertyValues(Landroid/animation/PropertyValuesHolder$PropertyValues;)V -HSPLandroid/animation/PropertyValuesHolder;->getValueType()Ljava/lang/Class; -HSPLandroid/animation/PropertyValuesHolder;->init()V -HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Landroid/util/Property;[F)Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Ljava/lang/String;[F)Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder;->ofInt(Ljava/lang/String;[I)Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder;->ofKeyframes(Ljava/lang/String;Landroid/animation/Keyframes;)Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder;->ofObject(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V+]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/PropertyValuesHolder;->setEvaluator(Landroid/animation/TypeEvaluator;)V -HSPLandroid/animation/PropertyValuesHolder;->setFloatValues([F)V -HSPLandroid/animation/PropertyValuesHolder;->setIntValues([I)V -HSPLandroid/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V -HSPLandroid/animation/PropertyValuesHolder;->setProperty(Landroid/util/Property;)V -HSPLandroid/animation/PropertyValuesHolder;->setPropertyName(Ljava/lang/String;)V -HSPLandroid/animation/PropertyValuesHolder;->setupEndValue(Ljava/lang/Object;)V -HSPLandroid/animation/PropertyValuesHolder;->setupGetter(Ljava/lang/Class;)V -HSPLandroid/animation/PropertyValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V+]Ljava/lang/Object;missing_types]Landroid/animation/Keyframes;Landroid/animation/IntKeyframeSet;,Landroid/animation/FloatKeyframeSet;,Landroid/animation/KeyframeSet;]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe;,Landroid/animation/Keyframe$FloatKeyframe;,Landroid/animation/Keyframe$ObjectKeyframe;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;]Landroid/util/Property;missing_types]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method; -HSPLandroid/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLandroid/animation/PropertyValuesHolder;->setupStartValue(Ljava/lang/Object;)V -HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V+]Ljava/lang/Object;missing_types]Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;]Landroid/animation/Keyframe;Landroid/animation/Keyframe$IntKeyframe; -HSPLandroid/animation/StateListAnimator$1;-><init>(Landroid/animation/StateListAnimator;)V -HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V -HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator; -HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Ljava/lang/Object; -HSPLandroid/animation/StateListAnimator$Tuple;-><init>([ILandroid/animation/Animator;)V -HSPLandroid/animation/StateListAnimator;-><init>()V -HSPLandroid/animation/StateListAnimator;->addState([ILandroid/animation/Animator;)V -HSPLandroid/animation/StateListAnimator;->appendChangingConfigurations(I)V -HSPLandroid/animation/StateListAnimator;->clearTarget()V -HSPLandroid/animation/StateListAnimator;->clone()Landroid/animation/StateListAnimator; -HSPLandroid/animation/StateListAnimator;->createConstantState()Landroid/content/res/ConstantState; -HSPLandroid/animation/StateListAnimator;->getChangingConfigurations()I -HSPLandroid/animation/StateListAnimator;->getTarget()Landroid/view/View; -HSPLandroid/animation/StateListAnimator;->initAnimatorListener()V -HSPLandroid/animation/StateListAnimator;->jumpToCurrentState()V -HSPLandroid/animation/StateListAnimator;->setChangingConfigurations(I)V -HSPLandroid/animation/StateListAnimator;->setState([I)V -HSPLandroid/animation/StateListAnimator;->setTarget(Landroid/view/View;)V -HSPLandroid/animation/StateListAnimator;->start(Landroid/animation/StateListAnimator$Tuple;)V -HSPLandroid/animation/TimeAnimator;-><init>()V -HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnimator$TimeListener;)V -HSPLandroid/animation/ValueAnimator;-><init>()V -HSPLandroid/animation/ValueAnimator;->addAnimationCallback(J)V -HSPLandroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V -HSPLandroid/animation/ValueAnimator;->animateBasedOnTime(J)Z+]Landroid/animation/ValueAnimator;Landroid/animation/ObjectAnimator;,Landroid/animation/ValueAnimator; -HSPLandroid/animation/ValueAnimator;->animateValue(F)V+]Landroid/animation/TimeInterpolator;missing_types]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ValueAnimator;->areAnimatorsEnabled()Z -HSPLandroid/animation/ValueAnimator;->cancel()V -HSPLandroid/animation/ValueAnimator;->clampFraction(F)F -HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/Animator; -HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/ValueAnimator;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;,Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/ValueAnimator;->doAnimationFrame(J)Z+]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;,Landroid/animation/ObjectAnimator; -HSPLandroid/animation/ValueAnimator;->end()V -HSPLandroid/animation/ValueAnimator;->endAnimation()V -HSPLandroid/animation/ValueAnimator;->getAnimatedFraction()F -HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;+]Landroid/animation/PropertyValuesHolder;Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; -HSPLandroid/animation/ValueAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler; -HSPLandroid/animation/ValueAnimator;->getCurrentAnimationsCount()I -HSPLandroid/animation/ValueAnimator;->getCurrentIteration(F)I -HSPLandroid/animation/ValueAnimator;->getCurrentIterationFraction(FZ)F -HSPLandroid/animation/ValueAnimator;->getCurrentPlayTime()J -HSPLandroid/animation/ValueAnimator;->getDuration()J -HSPLandroid/animation/ValueAnimator;->getDurationScale()F -HSPLandroid/animation/ValueAnimator;->getInterpolator()Landroid/animation/TimeInterpolator; -HSPLandroid/animation/ValueAnimator;->getNameForTrace()Ljava/lang/String; -HSPLandroid/animation/ValueAnimator;->getRepeatCount()I -HSPLandroid/animation/ValueAnimator;->getRepeatMode()I -HSPLandroid/animation/ValueAnimator;->getScaledDuration()J -HSPLandroid/animation/ValueAnimator;->getStartDelay()J -HSPLandroid/animation/ValueAnimator;->getTotalDuration()J -HSPLandroid/animation/ValueAnimator;->getValues()[Landroid/animation/PropertyValuesHolder; -HSPLandroid/animation/ValueAnimator;->initAnimation()V -HSPLandroid/animation/ValueAnimator;->isInitialized()Z -HSPLandroid/animation/ValueAnimator;->isPulsingInternal()Z -HSPLandroid/animation/ValueAnimator;->isRunning()Z -HSPLandroid/animation/ValueAnimator;->isStarted()Z -HSPLandroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator; -HSPLandroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator; -HSPLandroid/animation/ValueAnimator;->ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator; -HSPLandroid/animation/ValueAnimator;->pause()V -HSPLandroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z -HSPLandroid/animation/ValueAnimator;->removeAllUpdateListeners()V -HSPLandroid/animation/ValueAnimator;->removeAnimationCallback()V -HSPLandroid/animation/ValueAnimator;->resolveDurationScale()F -HSPLandroid/animation/ValueAnimator;->setAllowRunningAsynchronously(Z)V -HSPLandroid/animation/ValueAnimator;->setAnimationHandler(Landroid/animation/AnimationHandler;)V -HSPLandroid/animation/ValueAnimator;->setCurrentFraction(F)V -HSPLandroid/animation/ValueAnimator;->setCurrentPlayTime(J)V -HSPLandroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/Animator; -HSPLandroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator; -HSPLandroid/animation/ValueAnimator;->setDurationScale(F)V -HSPLandroid/animation/ValueAnimator;->setEvaluator(Landroid/animation/TypeEvaluator;)V -HSPLandroid/animation/ValueAnimator;->setFloatValues([F)V -HSPLandroid/animation/ValueAnimator;->setIntValues([I)V -HSPLandroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V -HSPLandroid/animation/ValueAnimator;->setObjectValues([Ljava/lang/Object;)V -HSPLandroid/animation/ValueAnimator;->setRepeatCount(I)V -HSPLandroid/animation/ValueAnimator;->setRepeatMode(I)V -HSPLandroid/animation/ValueAnimator;->setStartDelay(J)V -HSPLandroid/animation/ValueAnimator;->setValues([Landroid/animation/PropertyValuesHolder;)V -HSPLandroid/animation/ValueAnimator;->shouldPlayBackward(IZ)Z -HSPLandroid/animation/ValueAnimator;->skipToEndValue(Z)V -HSPLandroid/animation/ValueAnimator;->start()V -HSPLandroid/animation/ValueAnimator;->start(Z)V -HSPLandroid/animation/ValueAnimator;->startAnimation()V -HSPLandroid/animation/ValueAnimator;->startWithoutPulsing(Z)V -HSPLandroid/app/Activity$1;-><init>(Landroid/app/Activity;)V -HSPLandroid/app/Activity$1;->isTaskRoot()Z -HSPLandroid/app/Activity$1;->updateNavigationBarColor(I)V -HSPLandroid/app/Activity$1;->updateStatusBarColor(I)V -HSPLandroid/app/Activity$HostCallbacks;-><init>(Landroid/app/Activity;)V -HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V -HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater; -HSPLandroid/app/Activity$HostCallbacks;->onUseFragmentManagerInflaterFactory()Z -HSPLandroid/app/Activity;-><init>()V -HSPLandroid/app/Activity;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Landroid/app/Instrumentation;Landroid/os/IBinder;ILandroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Landroid/app/Activity$NonConfigurationInstances;Landroid/content/res/Configuration;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;Landroid/os/IBinder;Landroid/os/IBinder;)V -HSPLandroid/app/Activity;->attachBaseContext(Landroid/content/Context;)V -HSPLandroid/app/Activity;->cancelInputsAndStartExitTransition(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->collectActivityLifecycleCallbacks()[Ljava/lang/Object; -HSPLandroid/app/Activity;->dispatchActivityCreated(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->dispatchActivityPostCreated(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->dispatchActivityPostResumed()V -HSPLandroid/app/Activity;->dispatchActivityPostStarted()V -HSPLandroid/app/Activity;->dispatchActivityPreCreated(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->dispatchActivityPreResumed()V -HSPLandroid/app/Activity;->dispatchActivityPreStarted()V -HSPLandroid/app/Activity;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;)V -HSPLandroid/app/Activity;->dispatchActivityResumed()V -HSPLandroid/app/Activity;->dispatchActivityStarted()V -HSPLandroid/app/Activity;->dispatchEnterAnimationComplete()V -HSPLandroid/app/Activity;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLandroid/app/Activity;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/app/Activity;->findViewById(I)Landroid/view/View; -HSPLandroid/app/Activity;->finish()V -HSPLandroid/app/Activity;->finish(I)V -HSPLandroid/app/Activity;->finishAfterTransition()V -HSPLandroid/app/Activity;->getActivityToken()Landroid/os/IBinder; -HSPLandroid/app/Activity;->getApplication()Landroid/app/Application; -HSPLandroid/app/Activity;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; -HSPLandroid/app/Activity;->getAutofillClientController()Landroid/view/autofill/AutofillClientController; -HSPLandroid/app/Activity;->getCallingActivity()Landroid/content/ComponentName; -HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName; -HSPLandroid/app/Activity;->getContentCaptureManager()Landroid/view/contentcapture/ContentCaptureManager; -HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String; -HSPLandroid/app/Activity;->getCurrentFocus()Landroid/view/View; -HSPLandroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager; -HSPLandroid/app/Activity;->getIntent()Landroid/content/Intent; -HSPLandroid/app/Activity;->getLastNonConfigurationInstance()Ljava/lang/Object; -HSPLandroid/app/Activity;->getLayoutInflater()Landroid/view/LayoutInflater; -HSPLandroid/app/Activity;->getNextAutofillId()I -HSPLandroid/app/Activity;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; -HSPLandroid/app/Activity;->getReferrer()Landroid/net/Uri; -HSPLandroid/app/Activity;->getRequestedOrientation()I -HSPLandroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/app/Activity;->getTaskId()I -HSPLandroid/app/Activity;->getTitle()Ljava/lang/CharSequence; -HSPLandroid/app/Activity;->getTitleColor()I -HSPLandroid/app/Activity;->getVolumeControlStream()I -HSPLandroid/app/Activity;->getWindow()Landroid/view/Window; -HSPLandroid/app/Activity;->getWindowManager()Landroid/view/WindowManager; -HSPLandroid/app/Activity;->initWindowDecorActionBar()V -HSPLandroid/app/Activity;->isChangingConfigurations()Z -HSPLandroid/app/Activity;->isChild()Z -HSPLandroid/app/Activity;->isDestroyed()Z -HSPLandroid/app/Activity;->isFinishing()Z -HSPLandroid/app/Activity;->isInMultiWindowMode()Z -HSPLandroid/app/Activity;->isResumed()Z -HSPLandroid/app/Activity;->isTaskRoot()Z -HSPLandroid/app/Activity;->makeVisible()V -HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V -HSPLandroid/app/Activity;->notifyVoiceInteractionManagerServiceActivityEvent(I)V -HSPLandroid/app/Activity;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V -HSPLandroid/app/Activity;->onAttachFragment(Landroid/app/Fragment;)V -HSPLandroid/app/Activity;->onAttachedToWindow()V -HSPLandroid/app/Activity;->onBackPressed()V -HSPLandroid/app/Activity;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/Activity;->onContentChanged()V -HSPLandroid/app/Activity;->onCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->onCreateDescription()Ljava/lang/CharSequence; -HSPLandroid/app/Activity;->onCreateOptionsMenu(Landroid/view/Menu;)Z -HSPLandroid/app/Activity;->onCreatePanelMenu(ILandroid/view/Menu;)Z -HSPLandroid/app/Activity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/app/Activity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/app/Activity;->onDestroy()V -HSPLandroid/app/Activity;->onDetachedFromWindow()V -HSPLandroid/app/Activity;->onEnterAnimationComplete()V -HSPLandroid/app/Activity;->onKeyDown(ILandroid/view/KeyEvent;)Z -HSPLandroid/app/Activity;->onKeyUp(ILandroid/view/KeyEvent;)Z -HSPLandroid/app/Activity;->onLowMemory()V -HSPLandroid/app/Activity;->onMenuItemSelected(ILandroid/view/MenuItem;)Z -HSPLandroid/app/Activity;->onNewIntent(Landroid/content/Intent;)V -HSPLandroid/app/Activity;->onPause()V -HSPLandroid/app/Activity;->onPictureInPictureRequested()Z -HSPLandroid/app/Activity;->onPostCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->onPostResume()V -HSPLandroid/app/Activity;->onPrepareOptionsMenu(Landroid/view/Menu;)Z -HSPLandroid/app/Activity;->onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z -HSPLandroid/app/Activity;->onProvideReferrer()Landroid/net/Uri; -HSPLandroid/app/Activity;->onRestart()V -HSPLandroid/app/Activity;->onRestoreInstanceState(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->onResume()V -HSPLandroid/app/Activity;->onRetainNonConfigurationChildInstances()Ljava/util/HashMap; -HSPLandroid/app/Activity;->onSaveInstanceState(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->onStart()V -HSPLandroid/app/Activity;->onStateNotSaved()V -HSPLandroid/app/Activity;->onStop()V -HSPLandroid/app/Activity;->onTitleChanged(Ljava/lang/CharSequence;I)V -HSPLandroid/app/Activity;->onTopResumedActivityChanged(Z)V -HSPLandroid/app/Activity;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/app/Activity;->onTrimMemory(I)V -HSPLandroid/app/Activity;->onUserInteraction()V -HSPLandroid/app/Activity;->onUserLeaveHint()V -HSPLandroid/app/Activity;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/WindowManager;Landroid/view/WindowManagerImpl; -HSPLandroid/app/Activity;->onWindowFocusChanged(Z)V -HSPLandroid/app/Activity;->overridePendingTransition(II)V -HSPLandroid/app/Activity;->overridePendingTransition(III)V -HSPLandroid/app/Activity;->performCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->performCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V -HSPLandroid/app/Activity;->performDestroy()V -HSPLandroid/app/Activity;->performPause()V -HSPLandroid/app/Activity;->performResume(ZLjava/lang/String;)V -HSPLandroid/app/Activity;->performStart(Ljava/lang/String;)V -HSPLandroid/app/Activity;->performStop(ZLjava/lang/String;)V -HSPLandroid/app/Activity;->performTopResumedActivityChanged(ZLjava/lang/String;)V -HSPLandroid/app/Activity;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V -HSPLandroid/app/Activity;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/app/Activity;->reportFullyDrawn()V -HSPLandroid/app/Activity;->restoreHasCurrentPermissionRequest(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->restoreManagedDialogs(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->retainNonConfigurationInstances()Landroid/app/Activity$NonConfigurationInstances; -HSPLandroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V -HSPLandroid/app/Activity;->saveManagedDialogs(Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->setContentView(I)V -HSPLandroid/app/Activity;->setContentView(Landroid/view/View;)V -HSPLandroid/app/Activity;->setIntent(Landroid/content/Intent;)V -HSPLandroid/app/Activity;->setRequestedOrientation(I)V -HSPLandroid/app/Activity;->setResult(ILandroid/content/Intent;)V -HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V -HSPLandroid/app/Activity;->setTheme(I)V -HSPLandroid/app/Activity;->setTitle(Ljava/lang/CharSequence;)V -HSPLandroid/app/Activity;->setVolumeControlStream(I)V -HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;)V -HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V -HSPLandroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V -HSPLandroid/app/Activity;->startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V -HSPLandroid/app/Activity;->transferSpringboardActivityOptions(Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/app/Activity;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/app/ActivityClient$1;-><init>()V -HSPLandroid/app/ActivityClient$1;->create()Landroid/app/ActivityClient; -HSPLandroid/app/ActivityClient$1;->create()Ljava/lang/Object; -HSPLandroid/app/ActivityClient$ActivityClientControllerSingleton;-><init>()V -HSPLandroid/app/ActivityClient$ActivityClientControllerSingleton;->create()Landroid/app/IActivityClientController; -HSPLandroid/app/ActivityClient$ActivityClientControllerSingleton;->create()Ljava/lang/Object; -HSPLandroid/app/ActivityClient;-><clinit>()V -HSPLandroid/app/ActivityClient;-><init>()V -HSPLandroid/app/ActivityClient;->activityDestroyed(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityClient;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V -HSPLandroid/app/ActivityClient;->activityPaused(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityClient;->activityResumed(Landroid/os/IBinder;Z)V -HSPLandroid/app/ActivityClient;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V -HSPLandroid/app/ActivityClient;->activityTopResumedStateLost()V -HSPLandroid/app/ActivityClient;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z -HSPLandroid/app/ActivityClient;->getActivityClientController()Landroid/app/IActivityClientController; -HSPLandroid/app/ActivityClient;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName; -HSPLandroid/app/ActivityClient;->getDisplayId(Landroid/os/IBinder;)I -HSPLandroid/app/ActivityClient;->getInstance()Landroid/app/ActivityClient; -HSPLandroid/app/ActivityClient;->getTaskForActivity(Landroid/os/IBinder;Z)I -HSPLandroid/app/ActivityClient;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V -HSPLandroid/app/ActivityClient;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V -HSPLandroid/app/ActivityClient;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V -HSPLandroid/app/ActivityClient;->setActivityClientController(Landroid/app/IActivityClientController;)Landroid/app/IActivityClientController; -HSPLandroid/app/ActivityClient;->setRequestedOrientation(Landroid/os/IBinder;I)V -HSPLandroid/app/ActivityClient;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V -HSPLandroid/app/ActivityManager$3;->create()Landroid/app/IActivityManager; -HSPLandroid/app/ActivityManager$3;->create()Ljava/lang/Object; -HSPLandroid/app/ActivityManager$AppTask;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo; -HSPLandroid/app/ActivityManager$MemoryInfo;-><init>()V -HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$PendingIntentInfo; -HSPLandroid/app/ActivityManager$PendingIntentInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ActivityManager$PendingIntentInfo;-><init>(Ljava/lang/String;IZI)V -HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RecentTaskInfo; -HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData;-><init>()V -HSPLandroid/app/ActivityManager$RecentTaskInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningAppProcessInfo; -HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>()V -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$RunningAppProcessInfo-IA;)V -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->importanceToProcState(I)I -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportance(I)I -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForClient(ILandroid/content/Context;)I -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForTargetSdk(II)I -HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningServiceInfo; -HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ActivityManager$RunningServiceInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$RunningTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningTaskInfo; -HSPLandroid/app/ActivityManager$RunningTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$TaskDescription; -HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ActivityManager$TaskDescription;-><init>()V -HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;I)V -HSPLandroid/app/ActivityManager$TaskDescription;->copyFromPreserveHiddenFields(Landroid/app/ActivityManager$TaskDescription;)V -HSPLandroid/app/ActivityManager$TaskDescription;->getBackgroundColor()I -HSPLandroid/app/ActivityManager$TaskDescription;->getIcon()Landroid/graphics/Bitmap; -HSPLandroid/app/ActivityManager$TaskDescription;->getIconFilename()Ljava/lang/String; -HSPLandroid/app/ActivityManager$TaskDescription;->getInMemoryIcon()Landroid/graphics/Bitmap; -HSPLandroid/app/ActivityManager$TaskDescription;->getPrimaryColor()I -HSPLandroid/app/ActivityManager$TaskDescription;->loadTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap; -HSPLandroid/app/ActivityManager$TaskDescription;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/ActivityManager$TaskDescription;->setBackgroundColor(I)V -HSPLandroid/app/ActivityManager$TaskDescription;->setBackgroundColorFloating(I)V -HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureNavigationBarContrastWhenTransparent(Z)V -HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureStatusBarContrastWhenTransparent(Z)V -HSPLandroid/app/ActivityManager$TaskDescription;->setIcon(Landroid/graphics/drawable/Icon;)V -HSPLandroid/app/ActivityManager$TaskDescription;->setNavigationBarColor(I)V -HSPLandroid/app/ActivityManager$TaskDescription;->setPrimaryColor(I)V -HSPLandroid/app/ActivityManager$TaskDescription;->setStatusBarColor(I)V -HSPLandroid/app/ActivityManager$TaskDescription;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/ActivityManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/app/ActivityManager;->addOnUidImportanceListener(Landroid/app/ActivityManager$OnUidImportanceListener;I)V -HSPLandroid/app/ActivityManager;->checkComponentPermission(Ljava/lang/String;IIZ)I -HSPLandroid/app/ActivityManager;->getAppTasks()Ljava/util/List; -HSPLandroid/app/ActivityManager;->getCurrentUser()I -HSPLandroid/app/ActivityManager;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo; -HSPLandroid/app/ActivityManager;->getHistoricalProcessExitReasons(Ljava/lang/String;II)Ljava/util/List; -HSPLandroid/app/ActivityManager;->getLargeMemoryClass()I -HSPLandroid/app/ActivityManager;->getLauncherLargeIconSizeInner(Landroid/content/Context;)I -HSPLandroid/app/ActivityManager;->getMemoryClass()I -HSPLandroid/app/ActivityManager;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V -HSPLandroid/app/ActivityManager;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V -HSPLandroid/app/ActivityManager;->getPackageImportance(Ljava/lang/String;)I -HSPLandroid/app/ActivityManager;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo; -HSPLandroid/app/ActivityManager;->getRunningAppProcesses()Ljava/util/List; -HSPLandroid/app/ActivityManager;->getRunningServices(I)Ljava/util/List; -HSPLandroid/app/ActivityManager;->getService()Landroid/app/IActivityManager; -HSPLandroid/app/ActivityManager;->getTaskService()Landroid/app/IActivityTaskManager; -HSPLandroid/app/ActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/ActivityManager;->isBackgroundRestricted()Z -HSPLandroid/app/ActivityManager;->isHighEndGfx()Z -HSPLandroid/app/ActivityManager;->isLowMemoryKillReportSupported()Z -HSPLandroid/app/ActivityManager;->isLowRamDevice()Z -HSPLandroid/app/ActivityManager;->isLowRamDeviceStatic()Z -HSPLandroid/app/ActivityManager;->isRunningInTestHarness()Z -HSPLandroid/app/ActivityManager;->isRunningInUserTestHarness()Z -HSPLandroid/app/ActivityManager;->isStartResultFatalError(I)Z -HSPLandroid/app/ActivityManager;->isUserAMonkey()Z -HSPLandroid/app/ActivityManager;->isUserRunning(I)Z -HSPLandroid/app/ActivityManager;->staticGetLargeMemoryClass()I -HSPLandroid/app/ActivityManager;->staticGetMemoryClass()I -HSPLandroid/app/ActivityOptions$SourceInfo;-><init>(IJ)V -HSPLandroid/app/ActivityOptions;-><init>()V -HSPLandroid/app/ActivityOptions;-><init>(Landroid/os/Bundle;)V -HSPLandroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/ActivityOptions; -HSPLandroid/app/ActivityOptions;->getAnimationType()I -HSPLandroid/app/ActivityOptions;->makeBasic()Landroid/app/ActivityOptions; -HSPLandroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions; -HSPLandroid/app/ActivityOptions;->setLaunchWindowingMode(I)V -HSPLandroid/app/ActivityOptions;->setSourceInfo(IJ)V -HSPLandroid/app/ActivityOptions;->toBundle()Landroid/os/Bundle; -HSPLandroid/app/ActivityTaskManager$1;->create()Landroid/app/ActivityTaskManager; -HSPLandroid/app/ActivityTaskManager$1;->create()Ljava/lang/Object; -HSPLandroid/app/ActivityTaskManager$2;->create()Landroid/app/IActivityTaskManager; -HSPLandroid/app/ActivityTaskManager$2;->create()Ljava/lang/Object; -HSPLandroid/app/ActivityTaskManager;-><init>()V -HSPLandroid/app/ActivityTaskManager;->getDefaultAppRecentsLimitStatic()I -HSPLandroid/app/ActivityTaskManager;->getInstance()Landroid/app/ActivityTaskManager; -HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskManager; -HSPLandroid/app/ActivityTaskManager;->getTasks(IZ)Ljava/util/List; -HSPLandroid/app/ActivityTaskManager;->getTasks(IZZ)Ljava/util/List; -HSPLandroid/app/ActivityTaskManager;->supportsMultiWindow(Landroid/content/Context;)Z -HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/app/ActivityThread$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/ActivityThread$2;-><init>(Landroid/app/ActivityThread;Landroid/app/IActivityManager;)V -HSPLandroid/app/ActivityThread$3;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$3;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V -HSPLandroid/app/ActivityThread$4;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$4;->run()V -HSPLandroid/app/ActivityThread$ActivityClientRecord$1;-><init>(Landroid/app/ActivityThread$ActivityClientRecord;)V -HSPLandroid/app/ActivityThread$ActivityClientRecord;->-$$Nest$misPreHoneycomb(Landroid/app/ActivityThread$ActivityClientRecord;)Z -HSPLandroid/app/ActivityThread$ActivityClientRecord;->getLifecycleState()I -HSPLandroid/app/ActivityThread$ActivityClientRecord;->init()V -HSPLandroid/app/ActivityThread$ActivityClientRecord;->isPersistable()Z -HSPLandroid/app/ActivityThread$ActivityClientRecord;->isPreHoneycomb()Z -HSPLandroid/app/ActivityThread$ActivityClientRecord;->setState(I)V -HSPLandroid/app/ActivityThread$AndroidOs;-><init>(Llibcore/io/Os;)V -HSPLandroid/app/ActivityThread$AndroidOs;->access(Ljava/lang/String;I)Z -HSPLandroid/app/ActivityThread$AndroidOs;->install()V -HSPLandroid/app/ActivityThread$AndroidOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor; -HSPLandroid/app/ActivityThread$AndroidOs;->remove(Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$AndroidOs;->rename(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$AndroidOs;->stat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLandroid/app/ActivityThread$AppBindData;-><init>()V -HSPLandroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ApplicationThread-IA;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->clearDnsCache()V -HSPLandroid/app/ActivityThread$ApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->dumpCacheInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->dumpResources(Landroid/os/ParcelFileDescriptor;Landroid/os/RemoteCallback;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->notifyContentProviderPublishStatus(Landroid/app/ContentProviderHolder;Ljava/lang/String;IZ)V -HSPLandroid/app/ActivityThread$ApplicationThread;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZIJ)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;III)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;I)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleLowMemory()V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZZIIILjava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleReceiverList(Ljava/util/List;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIIILjava/lang/String;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleStopService(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleTrimMemory(I)V -HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->setCoreSettings(Landroid/os/Bundle;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->setNetworkBlockSeq(J)V -HSPLandroid/app/ActivityThread$ApplicationThread;->setProcessState(I)V -HSPLandroid/app/ActivityThread$ApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread$ApplicationThread;->updateCompatOverrideScale(Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/app/ActivityThread$BindServiceData;-><init>()V -HSPLandroid/app/ActivityThread$BindServiceData;->toString()Ljava/lang/String; -HSPLandroid/app/ActivityThread$ContextCleanupInfo;-><init>()V -HSPLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V -HSPLandroid/app/ActivityThread$CreateServiceData;-><init>()V -HSPLandroid/app/ActivityThread$CreateServiceData;->toString()Ljava/lang/String; -HSPLandroid/app/ActivityThread$DumpResourcesData;-><init>()V -HSPLandroid/app/ActivityThread$GcIdler;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z -HSPLandroid/app/ActivityThread$H;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$H;->handleMessage(Landroid/os/Message;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/app/servertransaction/TransactionExecutor;Landroid/app/servertransaction/TransactionExecutor; -HSPLandroid/app/ActivityThread$Idler;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$Idler;-><init>(Landroid/app/ActivityThread;Landroid/app/ActivityThread$Idler-IA;)V -HSPLandroid/app/ActivityThread$Idler;->queueIdle()Z -HSPLandroid/app/ActivityThread$Profiler;-><init>()V -HSPLandroid/app/ActivityThread$ProviderKey;-><init>(Ljava/lang/String;I)V -HSPLandroid/app/ActivityThread$ProviderKey;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/ActivityThread$ProviderKey;->hashCode()I -HSPLandroid/app/ActivityThread$ProviderRefCount;-><init>(Landroid/app/ContentProviderHolder;Landroid/app/ActivityThread$ProviderClientRecord;II)V -HSPLandroid/app/ActivityThread$PurgeIdler;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread$PurgeIdler;->queueIdle()Z -HSPLandroid/app/ActivityThread$ReceiverData;-><init>(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZLandroid/os/IBinder;IILjava/lang/String;)V -HSPLandroid/app/ActivityThread$RequestAssistContextExtras;-><init>()V -HSPLandroid/app/ActivityThread$ServiceArgsData;-><init>()V -HSPLandroid/app/ActivityThread$ServiceArgsData;->toString()Ljava/lang/String; -HSPLandroid/app/ActivityThread;->-$$Nest$fgetmTransactionExecutor(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor; -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindApplication(Landroid/app/ActivityThread;Landroid/app/ActivityThread$AppBindData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleBindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleCreateBackupAgent(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleCreateService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateServiceData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDestroyBackupAgent(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpGfxInfo(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpProvider(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpResources(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpResourcesData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleDumpService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleEnterAnimationComplete(Landroid/app/ActivityThread;Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleReceiver(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ReceiverData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleServiceArgs(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ServiceArgsData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetContentCaptureOptionsCallback(Landroid/app/ActivityThread;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleSetCoreSettings(Landroid/app/ActivityThread;Landroid/os/Bundle;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleStopService(Landroid/app/ActivityThread;Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mhandleUnbindService(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V -HSPLandroid/app/ActivityThread;->-$$Nest$mpurgePendingResources(Landroid/app/ActivityThread;)V -HSPLandroid/app/ActivityThread;->-$$Nest$msendMessage(Landroid/app/ActivityThread;ILjava/lang/Object;IIZ)V -HSPLandroid/app/ActivityThread;-><init>()V -HSPLandroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider; -HSPLandroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider; -HSPLandroid/app/ActivityThread;->attach(ZJ)V -HSPLandroid/app/ActivityThread;->callActivityOnSaveInstanceState(Landroid/app/ActivityThread$ActivityClientRecord;)V -HSPLandroid/app/ActivityThread;->callActivityOnStop(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V -HSPLandroid/app/ActivityThread;->checkAndBlockForNetworkAccess()V -HSPLandroid/app/ActivityThread;->cleanUpPendingRemoveWindows(Landroid/app/ActivityThread$ActivityClientRecord;Z)V -HSPLandroid/app/ActivityThread;->collectComponentCallbacks(Z)Ljava/util/ArrayList; -HSPLandroid/app/ActivityThread;->completeRemoveProvider(Landroid/app/ActivityThread$ProviderRefCount;)V -HSPLandroid/app/ActivityThread;->countLaunchingActivities(I)V -HSPLandroid/app/ActivityThread;->createBaseContextForActivity(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/app/ContextImpl; -HSPLandroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread; -HSPLandroid/app/ActivityThread;->currentApplication()Landroid/app/Application; -HSPLandroid/app/ActivityThread;->currentAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String; -HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String; -HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String; -HSPLandroid/app/ActivityThread;->deliverNewIntents(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V -HSPLandroid/app/ActivityThread;->deliverResults(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->dumpMemoryInfo(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;IIIIIIZIII)V -HSPLandroid/app/ActivityThread;->getActivitiesToBeDestroyed()Ljava/util/Map; -HSPLandroid/app/ActivityThread;->getActivity(Landroid/os/IBinder;)Landroid/app/Activity; -HSPLandroid/app/ActivityThread;->getActivityClient(Landroid/os/IBinder;)Landroid/app/ActivityThread$ActivityClientRecord; -HSPLandroid/app/ActivityThread;->getApplication()Landroid/app/Application; -HSPLandroid/app/ActivityThread;->getApplicationThread()Landroid/app/ActivityThread$ApplicationThread; -HSPLandroid/app/ActivityThread;->getBackupAgentName(Landroid/app/ActivityThread$CreateBackupAgentData;)Ljava/lang/String; -HSPLandroid/app/ActivityThread;->getBackupAgentsForUser(I)Landroid/util/ArrayMap; -HSPLandroid/app/ActivityThread;->getExecutor()Ljava/util/concurrent/Executor; -HSPLandroid/app/ActivityThread;->getFloatCoreSetting(Ljava/lang/String;F)F -HSPLandroid/app/ActivityThread;->getGetProviderKey(Ljava/lang/String;I)Landroid/app/ActivityThread$ProviderKey; -HSPLandroid/app/ActivityThread;->getHandler()Landroid/os/Handler; -HSPLandroid/app/ActivityThread;->getInstrumentation()Landroid/app/Instrumentation; -HSPLandroid/app/ActivityThread;->getIntCoreSetting(Ljava/lang/String;I)I+]Landroid/os/Bundle;Landroid/os/Bundle; -HSPLandroid/app/ActivityThread;->getIntentBeingBroadcast()Landroid/content/Intent; -HSPLandroid/app/ActivityThread;->getLooper()Landroid/os/Looper; -HSPLandroid/app/ActivityThread;->getOperationTypeFromBackupMode(I)I -HSPLandroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->getPackageInfo(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZZ)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->getPackageInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;II)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->getPackageInfoNoCheck(Landroid/content/pm/ApplicationInfo;)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->getPackageInfoNoCheck(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->getPackageManager()Landroid/content/pm/IPackageManager; -HSPLandroid/app/ActivityThread;->getPermissionManager()Landroid/permission/IPermissionManager; -HSPLandroid/app/ActivityThread;->getStringCoreSetting(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/ActivityThread;->getSystemContext()Landroid/app/ContextImpl; -HSPLandroid/app/ActivityThread;->getSystemUiContext()Landroid/app/ContextImpl; -HSPLandroid/app/ActivityThread;->getSystemUiContextNoCreate()Landroid/app/ContextImpl; -HSPLandroid/app/ActivityThread;->getTopLevelResources(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Landroid/app/LoadedApk;Landroid/content/res/Configuration;)Landroid/content/res/Resources; -HSPLandroid/app/ActivityThread;->handleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/app/ActivityThread;->handleBindApplication(Landroid/app/ActivityThread$AppBindData;)V -HSPLandroid/app/ActivityThread;->handleBindService(Landroid/app/ActivityThread$BindServiceData;)V -HSPLandroid/app/ActivityThread;->handleConfigurationChanged(Landroid/content/res/Configuration;I)V -HSPLandroid/app/ActivityThread;->handleCreateBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V -HSPLandroid/app/ActivityThread;->handleCreateService(Landroid/app/ActivityThread$CreateServiceData;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Ljava/util/List;Ljava/util/Collections$EmptyList;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy; -HSPLandroid/app/ActivityThread;->handleDestroyBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V -HSPLandroid/app/ActivityThread;->handleDispatchPackageBroadcast(I[Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleDumpGfxInfo(Landroid/app/ActivityThread$DumpComponentInfo;)V -HSPLandroid/app/ActivityThread;->handleDumpProvider(Landroid/app/ActivityThread$DumpComponentInfo;)V -HSPLandroid/app/ActivityThread;->handleDumpResources(Landroid/app/ActivityThread$DumpResourcesData;)V -HSPLandroid/app/ActivityThread;->handleDumpService(Landroid/app/ActivityThread$DumpComponentInfo;)V -HSPLandroid/app/ActivityThread;->handleEnterAnimationComplete(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V -HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;ILandroid/content/Intent;)Landroid/app/Activity; -HSPLandroid/app/ActivityThread;->handleLowMemory()V -HSPLandroid/app/ActivityThread;->handleNewIntent(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V -HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V -HSPLandroid/app/ActivityThread;->handleRelaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/ActivityThread;->handleRequestAssistContextExtras(Landroid/app/ActivityThread$RequestAssistContextExtras;)V -HSPLandroid/app/ActivityThread;->handleResumeActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZZZLjava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleSendResult(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V -HSPLandroid/app/ActivityThread;->handleSetContentCaptureOptionsCallback(Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V -HSPLandroid/app/ActivityThread;->handleStopService(Landroid/os/IBinder;)V -HSPLandroid/app/ActivityThread;->handleTopResumedActivityChanged(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V -HSPLandroid/app/ActivityThread;->handleTrimMemory(I)V -HSPLandroid/app/ActivityThread;->handleUnbindService(Landroid/app/ActivityThread$BindServiceData;)V -HSPLandroid/app/ActivityThread;->handleUnstableProviderDied(Landroid/os/IBinder;Z)V -HSPLandroid/app/ActivityThread;->handleUnstableProviderDiedLocked(Landroid/os/IBinder;Z)V -HSPLandroid/app/ActivityThread;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V -HSPLandroid/app/ActivityThread;->initZipPathValidatorCallback()V -HSPLandroid/app/ActivityThread;->initializeMainlineModules()V -HSPLandroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V -HSPLandroid/app/ActivityThread;->installProvider(Landroid/content/Context;Landroid/app/ContentProviderHolder;Landroid/content/pm/ProviderInfo;ZZZ)Landroid/app/ContentProviderHolder; -HSPLandroid/app/ActivityThread;->installProviderAuthoritiesLocked(Landroid/content/IContentProvider;Landroid/content/ContentProvider;Landroid/app/ContentProviderHolder;)Landroid/app/ActivityThread$ProviderClientRecord; -HSPLandroid/app/ActivityThread;->isHandleSplashScreenExit(Landroid/os/IBinder;)Z -HSPLandroid/app/ActivityThread;->isInDensityCompatMode()Z -HSPLandroid/app/ActivityThread;->isLoadedApkResourceDirsUpToDate(Landroid/app/LoadedApk;Landroid/content/pm/ApplicationInfo;)Z -HSPLandroid/app/ActivityThread;->isProtectedBroadcast(Landroid/content/Intent;)Z -HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/ActivityInfo;)Z -HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/ComponentInfo;Ljava/lang/String;)Z -HSPLandroid/app/ActivityThread;->isProtectedComponent(Landroid/content/pm/ServiceInfo;)Z -HSPLandroid/app/ActivityThread;->isSystem()Z -HSPLandroid/app/ActivityThread;->lambda$getGetProviderKey$3(Landroid/app/ActivityThread$ProviderKey;)Landroid/app/ActivityThread$ProviderKey; -HSPLandroid/app/ActivityThread;->main([Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->onCoreSettingsChange()V -HSPLandroid/app/ActivityThread;->peekPackageInfo(Ljava/lang/String;Z)Landroid/app/LoadedApk; -HSPLandroid/app/ActivityThread;->performLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/Intent;)Landroid/app/Activity; -HSPLandroid/app/ActivityThread;->performPauseActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;Landroid/app/servertransaction/PendingTransactionActions;)Landroid/os/Bundle; -HSPLandroid/app/ActivityThread;->performPauseActivityIfNeeded(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->performRestartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Z)V -HSPLandroid/app/ActivityThread;->performResumeActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)Z -HSPLandroid/app/ActivityThread;->performStopActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions$StopInfo;ZZLjava/lang/String;)V -HSPLandroid/app/ActivityThread;->performUserLeavingActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V -HSPLandroid/app/ActivityThread;->printRow(Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/app/ActivityThread;->purgePendingResources()V -HSPLandroid/app/ActivityThread;->relaunchAllActivities(ZLjava/lang/String;)V -HSPLandroid/app/ActivityThread;->releaseProvider(Landroid/content/IContentProvider;Z)Z -HSPLandroid/app/ActivityThread;->reportSizeConfigurations(Landroid/app/ActivityThread$ActivityClientRecord;)V -HSPLandroid/app/ActivityThread;->reportStop(Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/ActivityThread;->reportTopResumedActivityChanged(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V -HSPLandroid/app/ActivityThread;->scheduleContextCleanup(Landroid/app/ContextImpl;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/ActivityThread;->schedulePurgeIdler()V -HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;)V -HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;I)V -HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;IIZ)V -HSPLandroid/app/ActivityThread;->setupGraphicsSupport(Landroid/content/Context;)V -HSPLandroid/app/ActivityThread;->unscheduleGcIdler()V -HSPLandroid/app/ActivityThread;->updateDebugViewAttributeState()Z -HSPLandroid/app/ActivityThread;->updateDeviceIdForNonUIContexts(I)V -HSPLandroid/app/ActivityThread;->updatePendingConfiguration(Landroid/content/res/Configuration;)V -HSPLandroid/app/ActivityThread;->updateProcessState(IZ)V -HSPLandroid/app/ActivityThread;->updateVisibility(Landroid/app/ActivityThread$ActivityClientRecord;Z)V -HSPLandroid/app/ActivityThread;->updateVmProcessState(I)V -HSPLandroid/app/ActivityTransitionState;-><init>()V -HSPLandroid/app/ActivityTransitionState;->enterReady(Landroid/app/Activity;)V -HSPLandroid/app/ActivityTransitionState;->getPendingExitNames()Ljava/util/ArrayList; -HSPLandroid/app/ActivityTransitionState;->onResume(Landroid/app/Activity;)V -HSPLandroid/app/ActivityTransitionState;->onStop(Landroid/app/Activity;)V -HSPLandroid/app/ActivityTransitionState;->readState(Landroid/os/Bundle;)V -HSPLandroid/app/ActivityTransitionState;->restoreExitedViews()V -HSPLandroid/app/ActivityTransitionState;->restoreReenteringViews()V -HSPLandroid/app/ActivityTransitionState;->saveState(Landroid/os/Bundle;)V -HSPLandroid/app/ActivityTransitionState;->startExitBackTransition(Landroid/app/Activity;)Z -HSPLandroid/app/ActivityTransitionState;->startExitOutTransition(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AlarmManager$AlarmClockInfo; -HSPLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/AlarmManager$AlarmClockInfo;->getTriggerTime()J -HSPLandroid/app/AlarmManager$ListenerWrapper;-><init>(Landroid/app/AlarmManager;Landroid/app/AlarmManager$OnAlarmListener;)V -HSPLandroid/app/AlarmManager$ListenerWrapper;->cancel()V -HSPLandroid/app/AlarmManager$ListenerWrapper;->doAlarm(Landroid/app/IAlarmCompleteListener;)V -HSPLandroid/app/AlarmManager$ListenerWrapper;->run()V -HSPLandroid/app/AlarmManager;-><init>(Landroid/app/IAlarmManager;Landroid/content/Context;)V -HSPLandroid/app/AlarmManager;->cancel(Landroid/app/AlarmManager$OnAlarmListener;)V -HSPLandroid/app/AlarmManager;->cancel(Landroid/app/PendingIntent;)V -HSPLandroid/app/AlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo; -HSPLandroid/app/AlarmManager;->legacyExactLength()J -HSPLandroid/app/AlarmManager;->set(IJJJLandroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V -HSPLandroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V -HSPLandroid/app/AlarmManager;->set(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V -HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V -HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V -HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V -HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Landroid/os/Handler;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V -HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V -HSPLandroid/app/AlarmManager;->setInexactRepeating(IJJLandroid/app/PendingIntent;)V -HSPLandroid/app/AlertDialog;-><init>(Landroid/content/Context;IZ)V -HSPLandroid/app/AlertDialog;->onCreate(Landroid/os/Bundle;)V -HSPLandroid/app/AlertDialog;->resolveDialogTheme(Landroid/content/Context;I)I -HSPLandroid/app/AppCompatCallbacks;->isChangeEnabled(J)Z -HSPLandroid/app/AppComponentFactory;-><init>()V -HSPLandroid/app/AppComponentFactory;->instantiateActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity; -HSPLandroid/app/AppComponentFactory;->instantiateApplication(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/app/Application; -HSPLandroid/app/AppComponentFactory;->instantiateClassLoader(Ljava/lang/ClassLoader;Landroid/content/pm/ApplicationInfo;)Ljava/lang/ClassLoader; -HSPLandroid/app/AppComponentFactory;->instantiateProvider(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/content/ContentProvider; -HSPLandroid/app/AppComponentFactory;->instantiateReceiver(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/content/BroadcastReceiver; -HSPLandroid/app/AppComponentFactory;->instantiateService(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Service; -HSPLandroid/app/AppGlobals;->getInitialApplication()Landroid/app/Application; -HSPLandroid/app/AppGlobals;->getIntCoreSetting(Ljava/lang/String;I)I+]Landroid/app/ActivityThread;Landroid/app/ActivityThread; -HSPLandroid/app/AppGlobals;->getPackageManager()Landroid/content/pm/IPackageManager; -HSPLandroid/app/AppOpsManager$1;->onNoted(Landroid/app/SyncNotedAppOp;)V -HSPLandroid/app/AppOpsManager$1;->onSelfNoted(Landroid/app/SyncNotedAppOp;)V -HSPLandroid/app/AppOpsManager$1;->reportStackTraceIfNeeded(Landroid/app/SyncNotedAppOp;)V -HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastAccessEvent(III)Landroid/app/AppOpsManager$NoteOpEvent; -HSPLandroid/app/AppOpsManager$AttributedOpEntry;->getLastRejectEvent(III)Landroid/app/AppOpsManager$NoteOpEvent; -HSPLandroid/app/AppOpsManager$NoteOpEvent;->getDuration()J -HSPLandroid/app/AppOpsManager$NoteOpEvent;->getNoteTime()J -HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;-><init>(Landroid/app/AppOpsManager$OnOpNotedCallback;)V -HSPLandroid/app/AppOpsManager$OnOpNotedCallback$1;->opNoted(Landroid/app/AsyncNotedAppOp;)V -HSPLandroid/app/AppOpsManager$OnOpNotedCallback;-><init>()V -HSPLandroid/app/AppOpsManager$OnOpNotedCallback;->getAsyncNotedExecutor()Ljava/util/concurrent/Executor; -HSPLandroid/app/AppOpsManager$OpEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$OpEntry; -HSPLandroid/app/AppOpsManager$OpEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/AppOpsManager$OpEntry;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/AppOpsManager$PackageOps$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$PackageOps; -HSPLandroid/app/AppOpsManager$PackageOps$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/AppOpsManager$PackageOps;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List; -HSPLandroid/app/AppOpsManager$PackageOps;->getPackageName()Ljava/lang/String; -HSPLandroid/app/AppOpsManager$PausedNotedAppOpsCollection;-><init>(ILandroid/util/ArrayMap;)V -HSPLandroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V -HSPLandroid/app/AppOpsManager;->checkOp(IILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->checkPackage(ILjava/lang/String;)V -HSPLandroid/app/AppOpsManager;->collectNoteOpCallsForValidation(I)V -HSPLandroid/app/AppOpsManager;->extractFlagsFromKey(J)I -HSPLandroid/app/AppOpsManager;->extractUidStateFromKey(J)I -HSPLandroid/app/AppOpsManager;->finishNotedAppOpsCollection()V -HSPLandroid/app/AppOpsManager;->finishOp(IILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/AppOpsManager;->getClientId()Landroid/os/IBinder; -HSPLandroid/app/AppOpsManager;->getFormattedStackTrace()Ljava/lang/String; -HSPLandroid/app/AppOpsManager;->getLastEvent(Landroid/util/LongSparseArray;III)Landroid/app/AppOpsManager$NoteOpEvent; -HSPLandroid/app/AppOpsManager;->getNotedOpCollectionMode(ILjava/lang/String;I)I -HSPLandroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List; -HSPLandroid/app/AppOpsManager;->getService()Lcom/android/internal/app/IAppOpsService; -HSPLandroid/app/AppOpsManager;->getToken(Lcom/android/internal/app/IAppOpsService;)Landroid/os/IBinder; -HSPLandroid/app/AppOpsManager;->isCollectingStackTraces()Z -HSPLandroid/app/AppOpsManager;->isListeningForOpNoted()Z -HSPLandroid/app/AppOpsManager;->lambda$new$0(Landroid/provider/DeviceConfig$Properties;)V -HSPLandroid/app/AppOpsManager;->leftCircularDistance(III)I -HSPLandroid/app/AppOpsManager;->makeKey(II)J -HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I -HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String; -HSPLandroid/app/AppOpsManager;->opToPublicName(I)Ljava/lang/String; -HSPLandroid/app/AppOpsManager;->opToSwitch(I)I -HSPLandroid/app/AppOpsManager;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; -HSPLandroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->prefixParcelWithAppOpsIfNeeded(Landroid/os/Parcel;)V -HSPLandroid/app/AppOpsManager;->readAndLogNotedAppops(Landroid/os/Parcel;)V -HSPLandroid/app/AppOpsManager;->resolveLastRestrictedUidState(I)I -HSPLandroid/app/AppOpsManager;->setOnOpNotedCallback(Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpNotedCallback;)V -HSPLandroid/app/AppOpsManager;->setUidMode(Ljava/lang/String;II)V -HSPLandroid/app/AppOpsManager;->startNotedAppOpsCollection(I)V -HSPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;ZLjava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->startWatchingActive([Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpActiveChangedListener;)V -HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V -HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V -HSPLandroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V -HSPLandroid/app/AppOpsManager;->stopWatchingMode(Landroid/app/AppOpsManager$OnOpChangedListener;)V -HSPLandroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I -HSPLandroid/app/AppOpsManager;->toReceiverId(Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/app/AppOpsManager;->unsafeCheckOp(Ljava/lang/String;ILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->unsafeCheckOpRaw(Ljava/lang/String;ILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(IILjava/lang/String;)I -HSPLandroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostDestroyed(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostPaused(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostResumed(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostStarted(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostStopped(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreDestroyed(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPrePaused(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreResumed(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreStarted(Landroid/app/Activity;)V -HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreStopped(Landroid/app/Activity;)V -HSPLandroid/app/Application;-><init>()V -HSPLandroid/app/Application;->attach(Landroid/content/Context;)V -HSPLandroid/app/Application;->collectActivityLifecycleCallbacks()[Ljava/lang/Object; -HSPLandroid/app/Application;->dispatchActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application;->dispatchActivityDestroyed(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPaused(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application;->dispatchActivityPostDestroyed(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPostPaused(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPostResumed(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPostSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application;->dispatchActivityPostStarted(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPostStopped(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application;->dispatchActivityPreDestroyed(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPrePaused(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPreResumed(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPreSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application;->dispatchActivityPreStarted(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityPreStopped(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityResumed(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Application;->dispatchActivityStarted(Landroid/app/Activity;)V -HSPLandroid/app/Application;->dispatchActivityStopped(Landroid/app/Activity;)V -HSPLandroid/app/Application;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; -HSPLandroid/app/Application;->getProcessName()Ljava/lang/String; -HSPLandroid/app/Application;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/Application;->onCreate()V -HSPLandroid/app/Application;->onLowMemory()V -HSPLandroid/app/Application;->onTrimMemory(I)V -HSPLandroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V -HSPLandroid/app/Application;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/app/Application;->unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V -HSPLandroid/app/Application;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Ljava/lang/Throwable;)V -HSPLandroid/app/ApplicationErrorReport$CrashInfo;->sanitizeString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/ApplicationErrorReport$CrashInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/ApplicationExitInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ApplicationExitInfo; -HSPLandroid/app/ApplicationExitInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ApplicationExitInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/ApplicationExitInfo;->getImportance()I -HSPLandroid/app/ApplicationExitInfo;->getProcessName()Ljava/lang/String; -HSPLandroid/app/ApplicationExitInfo;->getPss()J -HSPLandroid/app/ApplicationExitInfo;->getReason()I -HSPLandroid/app/ApplicationExitInfo;->getRss()J -HSPLandroid/app/ApplicationExitInfo;->getStatus()I -HSPLandroid/app/ApplicationExitInfo;->getTimestamp()J -HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>()V -HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>(Landroid/app/ApplicationLoaders$CachedClassLoader-IA;)V -HSPLandroid/app/ApplicationLoaders;->addNative(Ljava/lang/ClassLoader;Ljava/util/Collection;)V -HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoader(Landroid/content/pm/SharedLibraryInfo;)V -HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoaders(Ljava/util/List;)V -HSPLandroid/app/ApplicationLoaders;->getCachedNonBootclasspathSystemLib(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader; -HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader; -HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; -HSPLandroid/app/ApplicationLoaders;->getClassLoaderWithSharedLibraries(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; -HSPLandroid/app/ApplicationLoaders;->getDefault()Landroid/app/ApplicationLoaders; -HSPLandroid/app/ApplicationLoaders;->getSharedLibraryClassLoaderWithSharedLibraries(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; -HSPLandroid/app/ApplicationLoaders;->sharedLibrariesEquals(Ljava/util/List;Ljava/util/List;)Z -HSPLandroid/app/ApplicationPackageManager$1;->recompute(Landroid/app/ApplicationPackageManager$HasSystemFeatureQuery;)Ljava/lang/Boolean; -HSPLandroid/app/ApplicationPackageManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/ApplicationPackageManager$2;-><init>(Landroid/app/ApplicationPackageManager;Landroid/content/pm/PackageManager$OnChecksumsReadyListener;)V -HSPLandroid/app/ApplicationPackageManager$2;->onChecksumsReady(Ljava/util/List;)V -HSPLandroid/app/ApplicationPackageManager$3;->recompute(Ljava/lang/Integer;)Landroid/app/ApplicationPackageManager$GetPackagesForUidResult; -HSPLandroid/app/ApplicationPackageManager$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/ApplicationPackageManager$GetPackagesForUidResult;-><init>([Ljava/lang/String;)V -HSPLandroid/app/ApplicationPackageManager$GetPackagesForUidResult;->value()[Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;-><init>(Ljava/lang/String;I)V -HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/ApplicationPackageManager$HasSystemFeatureQuery;->hashCode()I -HSPLandroid/app/ApplicationPackageManager$ResourceName;-><init>(Ljava/lang/String;I)V -HSPLandroid/app/ApplicationPackageManager$ResourceName;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/ApplicationPackageManager$ResourceName;->hashCode()I -HSPLandroid/app/ApplicationPackageManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V -HSPLandroid/app/ApplicationPackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/ApplicationPackageManager;->checkSignatures(II)I -HSPLandroid/app/ApplicationPackageManager;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/app/ApplicationPackageManager;->configurationChanged()V -HSPLandroid/app/ApplicationPackageManager;->encodeCertificates(Ljava/util/List;)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; -HSPLandroid/app/ApplicationPackageManager;->getActivityInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ActivityInfo; -HSPLandroid/app/ApplicationPackageManager;->getApplicationEnabledSetting(Ljava/lang/String;)I -HSPLandroid/app/ApplicationPackageManager;->getApplicationIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/ApplicationPackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/ApplicationPackageManager;->getApplicationInfo(Ljava/lang/String;Landroid/content/pm/PackageManager$ApplicationInfoFlags;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$ApplicationInfoFlags;I)Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/ApplicationPackageManager;->getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence; -HSPLandroid/app/ApplicationPackageManager;->getCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/ApplicationPackageManager;->getCachedString(Landroid/app/ApplicationPackageManager$ResourceName;)Ljava/lang/CharSequence; -HSPLandroid/app/ApplicationPackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;)I -HSPLandroid/app/ApplicationPackageManager;->getDefaultTextClassifierPackageName()Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/ApplicationPackageManager;->getInstallSourceInfo(Ljava/lang/String;)Landroid/content/pm/InstallSourceInfo; -HSPLandroid/app/ApplicationPackageManager;->getInstalledApplications(I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(II)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(Landroid/content/pm/PackageManager$ApplicationInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(Landroid/content/pm/PackageManager$PackageInfoFlags;)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(II)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(Landroid/content/pm/PackageManager$PackageInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/app/ApplicationPackageManager;Landroid/app/ApplicationPackageManager;]Landroid/content/Intent;Landroid/content/Intent; -HSPLandroid/app/ApplicationPackageManager;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo; -HSPLandroid/app/ApplicationPackageManager;->getNameForUid(I)Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo; -HSPLandroid/app/ApplicationPackageManager;->getPackageInfo(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;)Landroid/content/pm/PackageInfo; -HSPLandroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/PackageInfo; -HSPLandroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;I)Landroid/content/pm/PackageInfo; -HSPLandroid/app/ApplicationPackageManager;->getPackageInstaller()Landroid/content/pm/PackageInstaller; -HSPLandroid/app/ApplicationPackageManager;->getPackageUid(Ljava/lang/String;I)I -HSPLandroid/app/ApplicationPackageManager;->getPackageUid(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;)I -HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;I)I -HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;II)I -HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$PackageInfoFlags;I)I -HSPLandroid/app/ApplicationPackageManager;->getPackagesForUid(I)[Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getPackagesHoldingPermissions([Ljava/lang/String;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->getPermissionControllerPackageName()Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I -HSPLandroid/app/ApplicationPackageManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo; -HSPLandroid/app/ApplicationPackageManager;->getPermissionManager()Landroid/permission/PermissionManager; -HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo; -HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ProviderInfo; -HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo; -HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ActivityInfo; -HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources; -HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;Landroid/content/res/Configuration;)Landroid/content/res/Resources;+]Landroid/app/ActivityThread;Landroid/app/ActivityThread;]Ljava/lang/Object;Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources; -HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo; -HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ServiceInfo; -HSPLandroid/app/ApplicationPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo; -HSPLandroid/app/ApplicationPackageManager;->getSystemSharedLibraryNames()[Ljava/lang/String; -HSPLandroid/app/ApplicationPackageManager;->getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence; -HSPLandroid/app/ApplicationPackageManager;->getUserBadgeColor(Landroid/os/UserHandle;Z)I -HSPLandroid/app/ApplicationPackageManager;->getUserBadgedIcon(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/ApplicationPackageManager;->getUserId()I+]Landroid/app/ContextImpl;Landroid/app/ContextImpl; -HSPLandroid/app/ApplicationPackageManager;->getUserManager()Landroid/os/UserManager; -HSPLandroid/app/ApplicationPackageManager;->getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser; -HSPLandroid/app/ApplicationPackageManager;->handlePackageBroadcast(I[Ljava/lang/String;Z)V -HSPLandroid/app/ApplicationPackageManager;->hasSystemFeature(Ljava/lang/String;)Z -HSPLandroid/app/ApplicationPackageManager;->hasSystemFeature(Ljava/lang/String;I)Z -HSPLandroid/app/ApplicationPackageManager;->hasUserBadge(I)Z -HSPLandroid/app/ApplicationPackageManager;->isInstantApp()Z -HSPLandroid/app/ApplicationPackageManager;->isInstantApp(Ljava/lang/String;)Z -HSPLandroid/app/ApplicationPackageManager;->isPackageSuspended(Ljava/lang/String;)Z -HSPLandroid/app/ApplicationPackageManager;->isPackageSuspendedForUser(Ljava/lang/String;I)Z -HSPLandroid/app/ApplicationPackageManager;->isSafeMode()Z -HSPLandroid/app/ApplicationPackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/ApplicationPackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/ApplicationPackageManager;->maybeAdjustApplicationInfo(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/ApplicationPackageManager;->onImplicitDirectBoot(I)V -HSPLandroid/app/ApplicationPackageManager;->putCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/app/ApplicationPackageManager;->putCachedString(Landroid/app/ApplicationPackageManager$ResourceName;Ljava/lang/CharSequence;)V -HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceivers(Landroid/content/Intent;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceivers(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;II)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentActivities(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;II)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List;+]Landroid/content/pm/IPackageManager;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/content/pm/PackageManager$ResolveInfoFlags;Landroid/content/pm/PackageManager$ResolveInfoFlags;]Landroid/content/pm/ParceledListSlice;Landroid/content/pm/ParceledListSlice;]Landroid/content/Intent;Landroid/content/Intent; -HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProviders(Landroid/content/Intent;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProviders(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;II)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentServices(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;II)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Ljava/util/List; -HSPLandroid/app/ApplicationPackageManager;->removeOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V -HSPLandroid/app/ApplicationPackageManager;->requestChecksums(Ljava/lang/String;ZILjava/util/List;Landroid/content/pm/PackageManager$OnChecksumsReadyListener;)V -HSPLandroid/app/ApplicationPackageManager;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveContentProvider(Ljava/lang/String;Landroid/content/pm/PackageManager$ComponentInfoFlags;)Landroid/content/pm/ProviderInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveContentProviderAsUser(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveContentProviderAsUser(Ljava/lang/String;Landroid/content/pm/PackageManager$ComponentInfoFlags;I)Landroid/content/pm/ProviderInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveService(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;Landroid/content/pm/PackageManager$ResolveInfoFlags;I)Landroid/content/pm/ResolveInfo; -HSPLandroid/app/ApplicationPackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)V -HSPLandroid/app/ApplicationPackageManager;->setSystemAppState(Ljava/lang/String;I)V -HSPLandroid/app/ApplicationPackageManager;->updateFlagsForApplication(JI)J -HSPLandroid/app/ApplicationPackageManager;->updateFlagsForComponent(JILandroid/content/Intent;)J -HSPLandroid/app/ApplicationPackageManager;->updateFlagsForPackage(JI)J -HSPLandroid/app/ApplicationPackageManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IILandroid/os/UserHandle;)V -HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AsyncNotedAppOp; -HSPLandroid/app/AsyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/AsyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;J)V -HSPLandroid/app/AsyncNotedAppOp;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/AsyncNotedAppOp;->getMessage()Ljava/lang/String; -HSPLandroid/app/AsyncNotedAppOp;->getOp()Ljava/lang/String; -HSPLandroid/app/AsyncNotedAppOp;->onConstructed()V -HSPLandroid/app/BackStackRecord$Op;-><init>(ILandroid/app/Fragment;)V -HSPLandroid/app/BackStackRecord;-><init>(Landroid/app/FragmentManagerImpl;)V -HSPLandroid/app/BackStackRecord;->add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction; -HSPLandroid/app/BackStackRecord;->addOp(Landroid/app/BackStackRecord$Op;)V -HSPLandroid/app/BackStackRecord;->bumpBackStackNesting(I)V -HSPLandroid/app/BackStackRecord;->commit()I -HSPLandroid/app/BackStackRecord;->commitInternal(Z)I -HSPLandroid/app/BackStackRecord;->doAddOp(ILandroid/app/Fragment;Ljava/lang/String;I)V -HSPLandroid/app/BackStackRecord;->executeOps()V -HSPLandroid/app/BackStackRecord;->expandOps(Ljava/util/ArrayList;Landroid/app/Fragment;)Landroid/app/Fragment; -HSPLandroid/app/BackStackRecord;->generateOps(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z -HSPLandroid/app/BackStackRecord;->isFragmentPostponed(Landroid/app/BackStackRecord$Op;)Z -HSPLandroid/app/BackStackRecord;->isPostponed()Z -HSPLandroid/app/BackStackRecord;->runOnCommitRunnables()V -HSPLandroid/app/BroadcastOptions;-><init>()V -HSPLandroid/app/BroadcastOptions;->isTemporaryAppAllowlistSet()Z -HSPLandroid/app/BroadcastOptions;->makeBasic()Landroid/app/BroadcastOptions; -HSPLandroid/app/BroadcastOptions;->setTemporaryAppWhitelistDuration(J)V -HSPLandroid/app/BroadcastOptions;->toBundle()Landroid/os/Bundle; -HSPLandroid/app/ClientTransactionHandler;-><init>()V -HSPLandroid/app/ClientTransactionHandler;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/ConfigurationChangedListenerController;-><init>()V -HSPLandroid/app/ConfigurationController;-><init>(Landroid/app/ActivityThreadInternal;)V -HSPLandroid/app/ConfigurationController;->applyCompatConfiguration()Landroid/content/res/Configuration; -HSPLandroid/app/ConfigurationController;->createNewConfigAndUpdateIfNotNull(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration; -HSPLandroid/app/ConfigurationController;->getCompatConfiguration()Landroid/content/res/Configuration; -HSPLandroid/app/ConfigurationController;->getConfiguration()Landroid/content/res/Configuration; -HSPLandroid/app/ConfigurationController;->getCurDefaultDisplayDpi()I -HSPLandroid/app/ConfigurationController;->getPendingConfiguration(Z)Landroid/content/res/Configuration; -HSPLandroid/app/ConfigurationController;->handleConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/ConfigurationController;->handleConfigurationChanged(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/app/ConfigurationController;->performConfigurationChanged(Landroid/content/ComponentCallbacks2;Landroid/content/res/Configuration;)V -HSPLandroid/app/ConfigurationController;->setCompatConfiguration(Landroid/content/res/Configuration;)V -HSPLandroid/app/ConfigurationController;->setConfiguration(Landroid/content/res/Configuration;)V -HSPLandroid/app/ConfigurationController;->updateDefaultDensity(I)V -HSPLandroid/app/ConfigurationController;->updateLocaleListFromAppContext(Landroid/content/Context;)V -HSPLandroid/app/ConfigurationController;->updatePendingConfiguration(Landroid/content/res/Configuration;)Landroid/content/res/Configuration; -HSPLandroid/app/ContentProviderHolder$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ContentProviderHolder; -HSPLandroid/app/ContentProviderHolder$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/content/pm/ProviderInfo;)V -HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/ContentProviderHolder;-><init>(Landroid/os/Parcel;Landroid/app/ContentProviderHolder-IA;)V -HSPLandroid/app/ContentProviderHolder;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/ContextImpl$1;-><init>(Ljava/lang/String;)V -HSPLandroid/app/ContextImpl$ApplicationContentResolver;-><init>(Landroid/content/Context;Landroid/app/ActivityThread;)V -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider; -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider; -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireUnstableProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider; -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthority(Ljava/lang/String;)I -HSPLandroid/app/ContextImpl$ApplicationContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V -HSPLandroid/app/ContextImpl;-><init>(Landroid/app/ContextImpl;Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/ContextParams;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/UserHandle;ILjava/lang/ClassLoader;Ljava/lang/String;IZ)V+]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/content/ContextParams;Landroid/content/ContextParams; -HSPLandroid/app/ContextImpl;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z -HSPLandroid/app/ContextImpl;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z -HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z -HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z -HSPLandroid/app/ContextImpl;->bindServiceCommon(Landroid/content/Intent;Landroid/content/ServiceConnection;JLjava/lang/String;Landroid/os/Handler;Ljava/util/concurrent/Executor;Landroid/os/UserHandle;)Z -HSPLandroid/app/ContextImpl;->canLoadUnsafeResources()Z -HSPLandroid/app/ContextImpl;->checkCallingOrSelfPermission(Ljava/lang/String;)I -HSPLandroid/app/ContextImpl;->checkCallingPermission(Ljava/lang/String;)I -HSPLandroid/app/ContextImpl;->checkMode(I)V -HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;II)I -HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I -HSPLandroid/app/ContextImpl;->checkSelfPermission(Ljava/lang/String;)I -HSPLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;III)I -HSPLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I -HSPLandroid/app/ContextImpl;->createActivityContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/pm/ActivityInfo;Landroid/os/IBinder;ILandroid/content/res/Configuration;)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createAttributionContext(Ljava/lang/String;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createAttributionSource(Ljava/lang/String;Landroid/content/AttributionSource;Ljava/util/Set;ZI)Landroid/content/AttributionSource;+]Ljava/util/Set;missing_types]Landroid/permission/PermissionManager;Landroid/permission/PermissionManager;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createContext(Landroid/content/ContextParams;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createCredentialProtectedStorageContext()Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createDeviceProtectedStorageContext()Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createPackageContextAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createResources(Landroid/os/IBinder;Landroid/app/LoadedApk;Ljava/lang/String;Ljava/lang/Integer;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/List;)Landroid/content/res/Resources; -HSPLandroid/app/ContextImpl;->createSystemContext(Landroid/app/ActivityThread;)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;I)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createWindowContext(ILandroid/os/Bundle;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createWindowContext(ILandroid/os/Bundle;)Landroid/window/WindowContext; -HSPLandroid/app/ContextImpl;->createWindowContext(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/content/Context; -HSPLandroid/app/ContextImpl;->createWindowContext(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/window/WindowContext; -HSPLandroid/app/ContextImpl;->createWindowContextBase(Landroid/os/IBinder;I)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->createWindowContextInternal(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/window/WindowContext; -HSPLandroid/app/ContextImpl;->createWindowContextResources(Landroid/app/ContextImpl;)Landroid/content/res/Resources; -HSPLandroid/app/ContextImpl;->databaseList()[Ljava/lang/String; -HSPLandroid/app/ContextImpl;->deleteDatabase(Ljava/lang/String;)Z -HSPLandroid/app/ContextImpl;->deleteFile(Ljava/lang/String;)Z -HSPLandroid/app/ContextImpl;->deleteSharedPreferences(Ljava/lang/String;)Z -HSPLandroid/app/ContextImpl;->enforce(Ljava/lang/String;IZILjava/lang/String;)V -HSPLandroid/app/ContextImpl;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V -HSPLandroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;Z)[Ljava/io/File; -HSPLandroid/app/ContextImpl;->ensurePrivateCacheDirExists(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;IILjava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->fileList()[Ljava/lang/String; -HSPLandroid/app/ContextImpl;->finalize()V -HSPLandroid/app/ContextImpl;->getActivityToken()Landroid/os/IBinder; -HSPLandroid/app/ContextImpl;->getApplicationContext()Landroid/content/Context; -HSPLandroid/app/ContextImpl;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;+]Landroid/app/LoadedApk;Landroid/app/LoadedApk; -HSPLandroid/app/ContextImpl;->getAssets()Landroid/content/res/AssetManager; -HSPLandroid/app/ContextImpl;->getAssociatedDisplayId()I -HSPLandroid/app/ContextImpl;->getAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/app/ContextImpl;->getAttributionTag()Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; -HSPLandroid/app/ContextImpl;->getAutofillOptions()Landroid/content/AutofillOptions; -HSPLandroid/app/ContextImpl;->getBasePackageName()Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getCacheDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/app/ContextImpl;->getCodeCacheDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getCodeCacheDirBeforeBind(Ljava/io/File;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions; -HSPLandroid/app/ContextImpl;->getContentResolver()Landroid/content/ContentResolver; -HSPLandroid/app/ContextImpl;->getDataDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getDatabasePath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->getDatabasesDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getDeviceId()I -HSPLandroid/app/ContextImpl;->getDir(Ljava/lang/String;I)Ljava/io/File; -HSPLandroid/app/ContextImpl;->getDisplay()Landroid/view/Display; -HSPLandroid/app/ContextImpl;->getDisplayAdjustments(I)Landroid/view/DisplayAdjustments; -HSPLandroid/app/ContextImpl;->getDisplayId()I -HSPLandroid/app/ContextImpl;->getDisplayNoVerify()Landroid/view/Display; -HSPLandroid/app/ContextImpl;->getExternalCacheDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getExternalCacheDirs()[Ljava/io/File; -HSPLandroid/app/ContextImpl;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/app/ContextImpl;->getExternalMediaDirs()[Ljava/io/File; -HSPLandroid/app/ContextImpl;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->getFilesDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getImpl(Landroid/content/Context;)Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->getMainExecutor()Ljava/util/concurrent/Executor; -HSPLandroid/app/ContextImpl;->getMainLooper()Landroid/os/Looper; -HSPLandroid/app/ContextImpl;->getMainThreadHandler()Landroid/os/Handler; -HSPLandroid/app/ContextImpl;->getNoBackupFilesDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getOpPackageName()Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getOuterContext()Landroid/content/Context; -HSPLandroid/app/ContextImpl;->getPackageCodePath()Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getPackageManager()Landroid/content/pm/PackageManager; -HSPLandroid/app/ContextImpl;->getPackageName()Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getPackageResourcePath()Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getPreferencesDir()Ljava/io/File; -HSPLandroid/app/ContextImpl;->getReceiverRestrictedContext()Landroid/content/Context; -HSPLandroid/app/ContextImpl;->getResources()Landroid/content/res/Resources; -HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/LoadedApk;Landroid/app/LoadedApk;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->getSharedPreferencesCacheLocked()Landroid/util/ArrayMap;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String;]Landroid/app/ContextImpl;Landroid/app/ContextImpl; -HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; -HSPLandroid/app/ContextImpl;->getTheme()Landroid/content/res/Resources$Theme; -HSPLandroid/app/ContextImpl;->getThemeResId()I -HSPLandroid/app/ContextImpl;->getUser()Landroid/os/UserHandle; -HSPLandroid/app/ContextImpl;->getUserId()I -HSPLandroid/app/ContextImpl;->getWindowContextToken()Landroid/os/IBinder; -HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V -HSPLandroid/app/ContextImpl;->initializeTheme()V -HSPLandroid/app/ContextImpl;->isAssociatedWithDisplay()Z -HSPLandroid/app/ContextImpl;->isCredentialProtectedStorage()Z -HSPLandroid/app/ContextImpl;->isDeviceProtectedStorage()Z -HSPLandroid/app/ContextImpl;->isRestricted()Z -HSPLandroid/app/ContextImpl;->isSystemOrSystemUI(Landroid/content/Context;)Z -HSPLandroid/app/ContextImpl;->isUiContext()Z -HSPLandroid/app/ContextImpl;->makeFilename(Ljava/io/File;Ljava/lang/String;)Ljava/io/File; -HSPLandroid/app/ContextImpl;->moveFiles(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)I -HSPLandroid/app/ContextImpl;->moveSharedPreferencesFrom(Landroid/content/Context;Ljava/lang/String;)Z -HSPLandroid/app/ContextImpl;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream; -HSPLandroid/app/ContextImpl;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream; -HSPLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/app/ContextImpl;->performFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->registerReceiverInternal(Landroid/content/BroadcastReceiver;ILandroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;Landroid/content/Context;I)Landroid/content/Intent; -HSPLandroid/app/ContextImpl;->resolveUserId(Landroid/net/Uri;)I -HSPLandroid/app/ContextImpl;->revokeUriPermission(Landroid/net/Uri;I)V -HSPLandroid/app/ContextImpl;->scheduleFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;)V -HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V -HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V -HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V -HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;Landroid/os/Bundle;)V -HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V -HSPLandroid/app/ContextImpl;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V -HSPLandroid/app/ContextImpl;->setAutofillOptions(Landroid/content/AutofillOptions;)V -HSPLandroid/app/ContextImpl;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V -HSPLandroid/app/ContextImpl;->setDisplay(Landroid/view/Display;)V -HSPLandroid/app/ContextImpl;->setFilePermissionsFromMode(Ljava/lang/String;II)V -HSPLandroid/app/ContextImpl;->setOuterContext(Landroid/content/Context;)V -HSPLandroid/app/ContextImpl;->setResources(Landroid/content/res/Resources;)V -HSPLandroid/app/ContextImpl;->setTheme(I)V -HSPLandroid/app/ContextImpl;->startActivity(Landroid/content/Intent;)V -HSPLandroid/app/ContextImpl;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V -HSPLandroid/app/ContextImpl;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName; -HSPLandroid/app/ContextImpl;->startService(Landroid/content/Intent;)Landroid/content/ComponentName; -HSPLandroid/app/ContextImpl;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName; -HSPLandroid/app/ContextImpl;->startServiceCommon(Landroid/content/Intent;ZLandroid/os/UserHandle;)Landroid/content/ComponentName; -HSPLandroid/app/ContextImpl;->stopService(Landroid/content/Intent;)Z -HSPLandroid/app/ContextImpl;->stopServiceCommon(Landroid/content/Intent;Landroid/os/UserHandle;)Z -HSPLandroid/app/ContextImpl;->unbindService(Landroid/content/ServiceConnection;)V -HSPLandroid/app/ContextImpl;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V -HSPLandroid/app/ContextImpl;->updateDeviceId(I)V -HSPLandroid/app/ContextImpl;->updateDeviceIdIfChanged(I)V -HSPLandroid/app/ContextImpl;->updateDisplay(I)V -HSPLandroid/app/ContextImpl;->validateServiceIntent(Landroid/content/Intent;)V -HSPLandroid/app/ContextImpl;->warnIfCallingFromSystemProcess()V -HSPLandroid/app/DexLoadReporter;->getInstance()Landroid/app/DexLoadReporter; -HSPLandroid/app/DexLoadReporter;->isSecondaryDexFile(Ljava/lang/String;[Ljava/lang/String;)Z -HSPLandroid/app/DexLoadReporter;->notifyPackageManager(Ljava/util/Map;)V -HSPLandroid/app/DexLoadReporter;->registerAppDataDir(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/util/Set;)V -HSPLandroid/app/DexLoadReporter;->report(Ljava/util/Map;)V -HSPLandroid/app/Dialog$ListenersHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/app/Dialog;-><init>(Landroid/content/Context;I)V -HSPLandroid/app/Dialog;-><init>(Landroid/content/Context;IZ)V -HSPLandroid/app/Dialog;->cancel()V -HSPLandroid/app/Dialog;->dismiss()V -HSPLandroid/app/Dialog;->dismissDialog()V -HSPLandroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/app/Dialog;->findViewById(I)Landroid/view/View; -HSPLandroid/app/Dialog;->getContext()Landroid/content/Context; -HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window; -HSPLandroid/app/Dialog;->hide()V -HSPLandroid/app/Dialog;->onAttachedToWindow()V -HSPLandroid/app/Dialog;->onContentChanged()V -HSPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Dialog;->onDetachedFromWindow()V -HSPLandroid/app/Dialog;->onStart()V -HSPLandroid/app/Dialog;->onStop()V -HSPLandroid/app/Dialog;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/app/Dialog;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/app/Dialog;->onWindowFocusChanged(Z)V -HSPLandroid/app/Dialog;->setCancelable(Z)V -HSPLandroid/app/Dialog;->setCanceledOnTouchOutside(Z)V -HSPLandroid/app/Dialog;->setContentView(Landroid/view/View;)V -HSPLandroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V -HSPLandroid/app/Dialog;->setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V -HSPLandroid/app/Dialog;->setOnShowListener(Landroid/content/DialogInterface$OnShowListener;)V -HSPLandroid/app/Dialog;->setOwnerActivity(Landroid/app/Activity;)V -HSPLandroid/app/Dialog;->show()V -HSPLandroid/app/DownloadManager$CursorTranslator;-><init>(Landroid/database/Cursor;Landroid/net/Uri;Z)V -HSPLandroid/app/DownloadManager$Query;-><init>()V -HSPLandroid/app/DownloadManager$Query;->joinStrings(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/String; -HSPLandroid/app/DownloadManager$Query;->runQuery(Landroid/content/ContentResolver;[Ljava/lang/String;Landroid/net/Uri;)Landroid/database/Cursor; -HSPLandroid/app/DownloadManager;-><init>(Landroid/content/Context;)V -HSPLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor; -HSPLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;[Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/app/EventLogTags;->writeWmOnTopResumedGainedCalled(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/FeatureFlagsImpl;->notificationChannelVibrationEffectApi()Z -HSPLandroid/app/Fragment$1;-><init>(Landroid/app/Fragment;)V -HSPLandroid/app/Fragment;-><init>()V -HSPLandroid/app/Fragment;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/Fragment;->getActivity()Landroid/app/Activity; -HSPLandroid/app/Fragment;->getAnimatingAway()Landroid/animation/Animator; -HSPLandroid/app/Fragment;->getChildFragmentManager()Landroid/app/FragmentManager; -HSPLandroid/app/Fragment;->getContext()Landroid/content/Context; -HSPLandroid/app/Fragment;->getNextAnim()I -HSPLandroid/app/Fragment;->getNextTransition()I -HSPLandroid/app/Fragment;->getNextTransitionStyle()I -HSPLandroid/app/Fragment;->getView()Landroid/view/View; -HSPLandroid/app/Fragment;->initState()V -HSPLandroid/app/Fragment;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment; -HSPLandroid/app/Fragment;->instantiateChildFragmentManager()V -HSPLandroid/app/Fragment;->noteStateNotSaved()V -HSPLandroid/app/Fragment;->onActivityCreated(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->onAttach(Landroid/app/Activity;)V -HSPLandroid/app/Fragment;->onAttach(Landroid/content/Context;)V -HSPLandroid/app/Fragment;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/Fragment;->onCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->onCreateAnimator(IZI)Landroid/animation/Animator; -HSPLandroid/app/Fragment;->onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View; -HSPLandroid/app/Fragment;->onDestroy()V -HSPLandroid/app/Fragment;->onDestroyView()V -HSPLandroid/app/Fragment;->onDetach()V -HSPLandroid/app/Fragment;->onGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater; -HSPLandroid/app/Fragment;->onLowMemory()V -HSPLandroid/app/Fragment;->onPause()V -HSPLandroid/app/Fragment;->onResume()V -HSPLandroid/app/Fragment;->onSaveInstanceState(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->onStart()V -HSPLandroid/app/Fragment;->onStop()V -HSPLandroid/app/Fragment;->onTrimMemory(I)V -HSPLandroid/app/Fragment;->onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->onViewStateRestored(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->performActivityCreated(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->performConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/Fragment;->performCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->performCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z -HSPLandroid/app/Fragment;->performCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View; -HSPLandroid/app/Fragment;->performDestroy()V -HSPLandroid/app/Fragment;->performDestroyView()V -HSPLandroid/app/Fragment;->performDetach()V -HSPLandroid/app/Fragment;->performGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater; -HSPLandroid/app/Fragment;->performLowMemory()V -HSPLandroid/app/Fragment;->performPause()V -HSPLandroid/app/Fragment;->performPrepareOptionsMenu(Landroid/view/Menu;)Z -HSPLandroid/app/Fragment;->performResume()V -HSPLandroid/app/Fragment;->performSaveInstanceState(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->performStart()V -HSPLandroid/app/Fragment;->performStop()V -HSPLandroid/app/Fragment;->performTrimMemory(I)V -HSPLandroid/app/Fragment;->restoreChildFragmentState(Landroid/os/Bundle;Z)V -HSPLandroid/app/Fragment;->restoreViewState(Landroid/os/Bundle;)V -HSPLandroid/app/Fragment;->setIndex(ILandroid/app/Fragment;)V -HSPLandroid/app/Fragment;->setNextAnim(I)V -HSPLandroid/app/Fragment;->setNextTransition(II)V -HSPLandroid/app/FragmentContainer;-><init>()V -HSPLandroid/app/FragmentContainer;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment; -HSPLandroid/app/FragmentController;-><init>(Landroid/app/FragmentHostCallback;)V -HSPLandroid/app/FragmentController;->attachHost(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentController;->createController(Landroid/app/FragmentHostCallback;)Landroid/app/FragmentController; -HSPLandroid/app/FragmentController;->dispatchActivityCreated()V -HSPLandroid/app/FragmentController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/FragmentController;->dispatchCreate()V -HSPLandroid/app/FragmentController;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z -HSPLandroid/app/FragmentController;->dispatchDestroy()V -HSPLandroid/app/FragmentController;->dispatchLowMemory()V -HSPLandroid/app/FragmentController;->dispatchPause()V -HSPLandroid/app/FragmentController;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z -HSPLandroid/app/FragmentController;->dispatchResume()V -HSPLandroid/app/FragmentController;->dispatchStart()V -HSPLandroid/app/FragmentController;->dispatchStop()V -HSPLandroid/app/FragmentController;->dispatchTrimMemory(I)V -HSPLandroid/app/FragmentController;->doLoaderDestroy()V -HSPLandroid/app/FragmentController;->doLoaderStart()V -HSPLandroid/app/FragmentController;->doLoaderStop(Z)V -HSPLandroid/app/FragmentController;->execPendingActions()Z -HSPLandroid/app/FragmentController;->getFragmentManager()Landroid/app/FragmentManager; -HSPLandroid/app/FragmentController;->noteStateNotSaved()V -HSPLandroid/app/FragmentController;->reportLoaderStart()V -HSPLandroid/app/FragmentController;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V -HSPLandroid/app/FragmentController;->retainLoaderNonConfig()Landroid/util/ArrayMap; -HSPLandroid/app/FragmentController;->retainNestedNonConfig()Landroid/app/FragmentManagerNonConfig; -HSPLandroid/app/FragmentController;->saveAllState()Landroid/os/Parcelable; -HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;)V -HSPLandroid/app/FragmentHostCallback;-><init>(Landroid/app/Activity;Landroid/content/Context;Landroid/os/Handler;I)V -HSPLandroid/app/FragmentHostCallback;->doLoaderDestroy()V -HSPLandroid/app/FragmentHostCallback;->doLoaderStart()V -HSPLandroid/app/FragmentHostCallback;->doLoaderStop(Z)V -HSPLandroid/app/FragmentHostCallback;->getActivity()Landroid/app/Activity; -HSPLandroid/app/FragmentHostCallback;->getContext()Landroid/content/Context; -HSPLandroid/app/FragmentHostCallback;->getFragmentManagerImpl()Landroid/app/FragmentManagerImpl; -HSPLandroid/app/FragmentHostCallback;->getHandler()Landroid/os/Handler; -HSPLandroid/app/FragmentHostCallback;->getLoaderManager(Ljava/lang/String;ZZ)Landroid/app/LoaderManagerImpl; -HSPLandroid/app/FragmentHostCallback;->getRetainLoaders()Z -HSPLandroid/app/FragmentHostCallback;->inactivateFragment(Ljava/lang/String;)V -HSPLandroid/app/FragmentHostCallback;->reportLoaderStart()V -HSPLandroid/app/FragmentHostCallback;->retainLoaderNonConfig()Landroid/util/ArrayMap; -HSPLandroid/app/FragmentManager;-><init>()V -HSPLandroid/app/FragmentManagerImpl$1;-><init>(Landroid/app/FragmentManagerImpl;)V -HSPLandroid/app/FragmentManagerImpl;-><init>()V -HSPLandroid/app/FragmentManagerImpl;->addAddedFragments(Landroid/util/ArraySet;)V -HSPLandroid/app/FragmentManagerImpl;->addFragment(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->attachController(Landroid/app/FragmentHostCallback;Landroid/app/FragmentContainer;Landroid/app/Fragment;)V -HSPLandroid/app/FragmentManagerImpl;->beginTransaction()Landroid/app/FragmentTransaction; -HSPLandroid/app/FragmentManagerImpl;->burpActive()V -HSPLandroid/app/FragmentManagerImpl;->checkStateLoss()V -HSPLandroid/app/FragmentManagerImpl;->cleanupExec()V -HSPLandroid/app/FragmentManagerImpl;->dispatchActivityCreated()V -HSPLandroid/app/FragmentManagerImpl;->dispatchCreate()V -HSPLandroid/app/FragmentManagerImpl;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z -HSPLandroid/app/FragmentManagerImpl;->dispatchMoveToState(I)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentActivityCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentDestroyed(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentDetached(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentPaused(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentPreAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentPreCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentResumed(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentSaveInstanceState(Landroid/app/Fragment;Landroid/os/Bundle;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentStarted(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentStopped(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentViewCreated(Landroid/app/Fragment;Landroid/view/View;Landroid/os/Bundle;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentViewDestroyed(Landroid/app/Fragment;Z)V -HSPLandroid/app/FragmentManagerImpl;->dispatchPause()V -HSPLandroid/app/FragmentManagerImpl;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z -HSPLandroid/app/FragmentManagerImpl;->dispatchResume()V -HSPLandroid/app/FragmentManagerImpl;->dispatchStart()V -HSPLandroid/app/FragmentManagerImpl;->dispatchStop()V -HSPLandroid/app/FragmentManagerImpl;->doPendingDeferredStart()V -HSPLandroid/app/FragmentManagerImpl;->endAnimatingAwayFragments()V -HSPLandroid/app/FragmentManagerImpl;->enqueueAction(Landroid/app/FragmentManagerImpl$OpGenerator;Z)V -HSPLandroid/app/FragmentManagerImpl;->ensureExecReady(Z)V -HSPLandroid/app/FragmentManagerImpl;->ensureInflatedFragmentView(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentManagerImpl;->execPendingActions()Z -HSPLandroid/app/FragmentManagerImpl;->executeOps(Ljava/util/ArrayList;Ljava/util/ArrayList;II)V -HSPLandroid/app/FragmentManagerImpl;->executeOpsTogether(Ljava/util/ArrayList;Ljava/util/ArrayList;II)V -HSPLandroid/app/FragmentManagerImpl;->executePendingTransactions()Z -HSPLandroid/app/FragmentManagerImpl;->executePostponedTransaction(Ljava/util/ArrayList;Ljava/util/ArrayList;)V -HSPLandroid/app/FragmentManagerImpl;->findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment; -HSPLandroid/app/FragmentManagerImpl;->findFragmentUnder(Landroid/app/Fragment;)Landroid/app/Fragment; -HSPLandroid/app/FragmentManagerImpl;->forcePostponedTransactions()V -HSPLandroid/app/FragmentManagerImpl;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z -HSPLandroid/app/FragmentManagerImpl;->getLayoutInflaterFactory()Landroid/view/LayoutInflater$Factory2; -HSPLandroid/app/FragmentManagerImpl;->getPrimaryNavigationFragment()Landroid/app/Fragment; -HSPLandroid/app/FragmentManagerImpl;->getTargetSdk()I -HSPLandroid/app/FragmentManagerImpl;->isStateSaved()Z -HSPLandroid/app/FragmentManagerImpl;->loadAnimator(Landroid/app/Fragment;IZI)Landroid/animation/Animator; -HSPLandroid/app/FragmentManagerImpl;->makeActive(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentManagerImpl;->makeInactive(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentManagerImpl;->makeRemovedFragmentsInvisible(Landroid/util/ArraySet;)V -HSPLandroid/app/FragmentManagerImpl;->moveFragmentToExpectedState(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentManagerImpl;->moveToState(IZ)V -HSPLandroid/app/FragmentManagerImpl;->moveToState(Landroid/app/Fragment;IIIZ)V -HSPLandroid/app/FragmentManagerImpl;->noteStateNotSaved()V -HSPLandroid/app/FragmentManagerImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/app/FragmentManagerImpl;->performPendingDeferredStart(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentManagerImpl;->popBackStackImmediate()Z -HSPLandroid/app/FragmentManagerImpl;->popBackStackImmediate(Ljava/lang/String;II)Z -HSPLandroid/app/FragmentManagerImpl;->popBackStackState(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;II)Z -HSPLandroid/app/FragmentManagerImpl;->postponePostponableTransactions(Ljava/util/ArrayList;Ljava/util/ArrayList;IILandroid/util/ArraySet;)I -HSPLandroid/app/FragmentManagerImpl;->removeRedundantOperationsAndExecute(Ljava/util/ArrayList;Ljava/util/ArrayList;)V -HSPLandroid/app/FragmentManagerImpl;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V -HSPLandroid/app/FragmentManagerImpl;->saveAllState()Landroid/os/Parcelable; -HSPLandroid/app/FragmentManagerImpl;->saveFragmentBasicState(Landroid/app/Fragment;)Landroid/os/Bundle; -HSPLandroid/app/FragmentManagerImpl;->saveNonConfig()V -HSPLandroid/app/FragmentManagerImpl;->scheduleCommit()V -HSPLandroid/app/FragmentManagerImpl;->setRetaining(Landroid/app/FragmentManagerNonConfig;)V -HSPLandroid/app/FragmentManagerImpl;->startPendingDeferredFragments()V -HSPLandroid/app/FragmentManagerState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/FragmentManagerState; -HSPLandroid/app/FragmentManagerState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/FragmentManagerState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/FragmentManagerState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/FragmentState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/FragmentState; -HSPLandroid/app/FragmentState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/FragmentState$1;->newArray(I)[Landroid/app/FragmentState; -HSPLandroid/app/FragmentState$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/app/FragmentState;-><init>(Landroid/app/Fragment;)V -HSPLandroid/app/FragmentState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/FragmentState;->instantiate(Landroid/app/FragmentHostCallback;Landroid/app/FragmentContainer;Landroid/app/Fragment;Landroid/app/FragmentManagerNonConfig;)Landroid/app/Fragment; -HSPLandroid/app/FragmentState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/FragmentTransaction;-><init>()V -HSPLandroid/app/FragmentTransition;->addToFirstInLastOut(Landroid/app/BackStackRecord;Landroid/app/BackStackRecord$Op;Landroid/util/SparseArray;ZZ)V -HSPLandroid/app/FragmentTransition;->calculateFragments(Landroid/app/BackStackRecord;Landroid/util/SparseArray;Z)V -HSPLandroid/app/FragmentTransition;->startTransitions(Landroid/app/FragmentManagerImpl;Ljava/util/ArrayList;Ljava/util/ArrayList;IIZ)V -HSPLandroid/app/GameManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/app/GameManager;->isAngleEnabled(Ljava/lang/String;)Z -HSPLandroid/app/IActivityClientController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityDestroyed(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityPaused(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityResumed(Landroid/os/IBinder;Z)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->activityTopResumedStateLost()V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IActivityClientController$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z -HSPLandroid/app/IActivityClientController$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName; -HSPLandroid/app/IActivityClientController$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I -HSPLandroid/app/IActivityClientController$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I -HSPLandroid/app/IActivityClientController$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;III)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;Landroid/window/SizeConfigurationBuckets;)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->setRequestedOrientation(Landroid/os/IBinder;I)V -HSPLandroid/app/IActivityClientController$Stub$Proxy;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V -HSPLandroid/app/IActivityClientController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityClientController; -HSPLandroid/app/IActivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->addPackageDependency(Ljava/lang/String;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IActivityManager$Stub$Proxy;->attachApplication(Landroid/app/IApplicationThread;J)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;I)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->bindServiceInstance(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;JLjava/lang/String;Ljava/lang/String;I)I -HSPLandroid/app/IActivityManager$Stub$Proxy;->broadcastIntentWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I -HSPLandroid/app/IActivityManager$Stub$Proxy;->cancelIntentSender(Landroid/content/IIntentSender;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I -HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermissionForDevice(Ljava/lang/String;III)I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/IActivityManager$Stub$Proxy;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/IActivityManager$Stub$Proxy;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I -HSPLandroid/app/IActivityManager$Stub$Proxy;->finishAttachApplication(J)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/pm/UserInfo; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUserId()I -HSPLandroid/app/IActivityManager$Stub$Proxy;->getHistoricalProcessExitReasons(Ljava/lang/String;III)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getInfoForIntentSender(Landroid/content/IIntentSender;)Landroid/app/ActivityManager$PendingIntentInfo; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getIntentSenderWithFeature(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getRunningAppProcesses()Ljava/util/List; -HSPLandroid/app/IActivityManager$Stub$Proxy;->getServices(II)Ljava/util/List; -HSPLandroid/app/IActivityManager$Stub$Proxy;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;I)Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->isBackgroundRestricted(Ljava/lang/String;)Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->isUserAMonkey()Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->refContentProvider(Landroid/os/IBinder;II)Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->registerReceiverWithFeature(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent; -HSPLandroid/app/IActivityManager$Stub$Proxy;->registerStrictModeCallback(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->removeContentProvider(Landroid/os/IBinder;Z)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->serviceDoneExecuting(Landroid/os/IBinder;IIILandroid/content/Intent;)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/app/IActivityManager$Stub$Proxy;Landroid/app/IActivityManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/IActivityManager$Stub$Proxy;->setRenderThread(I)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;I)Landroid/content/ComponentName; -HSPLandroid/app/IActivityManager$Stub$Proxy;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I -HSPLandroid/app/IActivityManager$Stub$Proxy;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->unbindService(Landroid/app/IServiceConnection;)Z -HSPLandroid/app/IActivityManager$Stub$Proxy;->unregisterReceiver(Landroid/content/IIntentReceiver;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V -HSPLandroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager; -HSPLandroid/app/IActivityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getActivityClientController()Landroid/app/IActivityClientController; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getAppTasks(Ljava/lang/String;)Ljava/util/List; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLockTaskModeState()I -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V -HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I -HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager; -HSPLandroid/app/IAlarmCompleteListener$Stub$Proxy;->alarmComplete(Landroid/os/IBinder;)V -HSPLandroid/app/IAlarmListener$Stub;-><init>()V -HSPLandroid/app/IAlarmListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IAlarmListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IAlarmManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IAlarmManager$Stub$Proxy;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo; -HSPLandroid/app/IAlarmManager$Stub$Proxy;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V -HSPLandroid/app/IAlarmManager$Stub$Proxy;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V -HSPLandroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager; -HSPLandroid/app/IAppTask$Stub$Proxy;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo; -HSPLandroid/app/IAppTraceRetriever$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IAppTraceRetriever$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAppTraceRetriever; -HSPLandroid/app/IApplicationThread$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IApplicationThread$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IApplicationThread$Stub;-><init>()V -HSPLandroid/app/IApplicationThread$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IApplicationThread$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IApplicationThread; -HSPLandroid/app/IApplicationThread$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/app/IApplicationThread$Stub;->getMaxTransactionId()I -HSPLandroid/app/IApplicationThread$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/app/IApplicationThread$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/IBackupAgent$Stub;-><init>()V -HSPLandroid/app/IBackupAgent$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IBackupAgent$Stub;->getMaxTransactionId()I -HSPLandroid/app/IBackupAgent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/IGameManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IGameManagerService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IGameManagerService$Stub$Proxy;->isAngleEnabled(Ljava/lang/String;I)Z -HSPLandroid/app/IGameManagerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IGameManagerService; -HSPLandroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher; -HSPLandroid/app/ILocalWallpaperColorConsumer$Stub;-><init>()V -HSPLandroid/app/INotificationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabled(Ljava/lang/String;)Z -HSPLandroid/app/INotificationManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelAllNotifications(Ljava/lang/String;I)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->finishToken(Ljava/lang/String;Landroid/os/IBinder;)V -HSPLandroid/app/INotificationManager$Stub$Proxy;->getActiveNotificationsFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy; -HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenMode()I -HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List; -HSPLandroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z -HSPLandroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager; -HSPLandroid/app/IServiceConnection$Stub;-><init>()V -HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IServiceConnection$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/app/IServiceConnection$Stub;->getMaxTransactionId()I -HSPLandroid/app/IServiceConnection$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/ITaskStackListener$Stub;-><init>()V -HSPLandroid/app/ITaskStackListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/ITaskStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection; -HSPLandroid/app/IUiModeManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/IUiModeManager$Stub$Proxy;->addCallback(Landroid/app/IUiModeManagerCallback;)V -HSPLandroid/app/IUiModeManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IUiModeManager$Stub$Proxy;->getContrast()F -HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I -HSPLandroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager; -HSPLandroid/app/IUiModeManagerCallback$Stub;-><init>()V -HSPLandroid/app/IUiModeManagerCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IUidObserver$Stub;-><init>()V -HSPLandroid/app/IUidObserver$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IUidObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/IUnsafeIntentStrictModeCallback$Stub;-><init>()V -HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->getUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/IUserSwitchObserver$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(III)Landroid/app/WallpaperColors; -HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo; -HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager; -HSPLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V -HSPLandroid/app/IWallpaperManagerCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/Instrumentation;-><init>()V -HSPLandroid/app/Instrumentation;->basicInit(Landroid/app/ActivityThread;)V -HSPLandroid/app/Instrumentation;->callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Instrumentation;->callActivityOnDestroy(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Landroid/content/Intent;)V -HSPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Lcom/android/internal/content/ReferrerIntent;)V -HSPLandroid/app/Instrumentation;->callActivityOnPause(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnPictureInPictureRequested(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Instrumentation;->callActivityOnRestart(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnRestoreInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Instrumentation;->callActivityOnResume(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V -HSPLandroid/app/Instrumentation;->callActivityOnStart(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnStop(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callActivityOnUserLeaving(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->callApplicationOnCreate(Landroid/app/Application;)V -HSPLandroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V -HSPLandroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult; -HSPLandroid/app/Instrumentation;->getFactory(Ljava/lang/String;)Landroid/app/AppComponentFactory; -HSPLandroid/app/Instrumentation;->isInstrumenting()Z -HSPLandroid/app/Instrumentation;->newActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity; -HSPLandroid/app/Instrumentation;->newApplication(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Context;)Landroid/app/Application; -HSPLandroid/app/Instrumentation;->notifyStartActivityResult(ILandroid/os/Bundle;)V -HSPLandroid/app/Instrumentation;->onCreate(Landroid/os/Bundle;)V -HSPLandroid/app/Instrumentation;->onEnterAnimationComplete()V -HSPLandroid/app/Instrumentation;->postPerformCreate(Landroid/app/Activity;)V -HSPLandroid/app/Instrumentation;->prePerformCreate(Landroid/app/Activity;)V -HSPLandroid/app/IntentReceiverLeaked;-><init>(Ljava/lang/String;)V -HSPLandroid/app/IntentService$ServiceHandler;-><init>(Landroid/app/IntentService;Landroid/os/Looper;)V -HSPLandroid/app/IntentService$ServiceHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/app/IntentService;-><init>(Ljava/lang/String;)V -HSPLandroid/app/IntentService;->onCreate()V -HSPLandroid/app/IntentService;->onDestroy()V -HSPLandroid/app/IntentService;->onStart(Landroid/content/Intent;I)V -HSPLandroid/app/IntentService;->onStartCommand(Landroid/content/Intent;II)I -HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/content/Context;Landroid/app/job/IJobScheduler;)V -HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/content/Context;Landroid/app/job/IJobScheduler;Ljava/lang/String;)V -HSPLandroid/app/JobSchedulerImpl;->cancel(I)V -HSPLandroid/app/JobSchedulerImpl;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I -HSPLandroid/app/JobSchedulerImpl;->getAllPendingJobs()Ljava/util/List; -HSPLandroid/app/JobSchedulerImpl;->getPendingJob(I)Landroid/app/job/JobInfo; -HSPLandroid/app/JobSchedulerImpl;->schedule(Landroid/app/job/JobInfo;)I -HSPLandroid/app/JobSchedulerImpl;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I -HSPLandroid/app/KeyguardManager$1;-><init>(Landroid/app/KeyguardManager;)V -HSPLandroid/app/KeyguardManager;-><init>(Landroid/content/Context;)V -HSPLandroid/app/KeyguardManager;->inKeyguardRestrictedInputMode()Z -HSPLandroid/app/KeyguardManager;->isDeviceLocked()Z -HSPLandroid/app/KeyguardManager;->isDeviceLocked(I)Z -HSPLandroid/app/KeyguardManager;->isDeviceSecure()Z -HSPLandroid/app/KeyguardManager;->isDeviceSecure(I)Z -HSPLandroid/app/KeyguardManager;->isKeyguardLocked()Z -HSPLandroid/app/KeyguardManager;->isKeyguardSecure()Z -HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher$Args;)V -HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0;->run()V -HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIILjava/lang/String;)V -HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->getRunnable()Ljava/lang/Runnable; -HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->lambda$getRunnable$0()V -HSPLandroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V -HSPLandroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIILjava/lang/String;)V -HSPLandroid/app/LoadedApk$ReceiverDispatcher;-><init>(Landroid/app/IApplicationThread;Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)V -HSPLandroid/app/LoadedApk$ReceiverDispatcher;->getIIntentReceiver()Landroid/content/IIntentReceiver; -HSPLandroid/app/LoadedApk$ReceiverDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZZIILjava/lang/String;)V -HSPLandroid/app/LoadedApk$ReceiverDispatcher;->validate(Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;-><init>()V -HSPLandroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;-><init>(Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo-IA;)V -HSPLandroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;->binderDied()V -HSPLandroid/app/LoadedApk$ServiceDispatcher$InnerConnection;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;)V -HSPLandroid/app/LoadedApk$ServiceDispatcher$InnerConnection;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V -HSPLandroid/app/LoadedApk$ServiceDispatcher$RunConnection;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;IZ)V -HSPLandroid/app/LoadedApk$ServiceDispatcher$RunConnection;->run()V -HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;J)V -HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;J)V -HSPLandroid/app/LoadedApk$ServiceDispatcher;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V -HSPLandroid/app/LoadedApk$ServiceDispatcher;->death(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/app/LoadedApk$ServiceDispatcher;->doConnected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V -HSPLandroid/app/LoadedApk$ServiceDispatcher;->doDeath(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/app/LoadedApk$ServiceDispatcher;->doForget()V -HSPLandroid/app/LoadedApk$ServiceDispatcher;->getFlags()J -HSPLandroid/app/LoadedApk$ServiceDispatcher;->getIServiceConnection()Landroid/app/IServiceConnection; -HSPLandroid/app/LoadedApk$ServiceDispatcher;->validate(Landroid/content/Context;Landroid/os/Handler;Ljava/util/concurrent/Executor;)V -HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;-><init>(Landroid/app/LoadedApk;Landroid/util/SparseArray;)V -HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->constructSplit(I[II)V -HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->ensureSplitLoaded(Ljava/lang/String;)I -HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->getClassLoaderForSplit(Ljava/lang/String;)Ljava/lang/ClassLoader; -HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->getSplitPathsForSplit(Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/app/LoadedApk$SplitDependencyLoaderImpl;->isSplitCached(I)Z -HSPLandroid/app/LoadedApk$WarningContextClassLoader;-><init>()V -HSPLandroid/app/LoadedApk$WarningContextClassLoader;-><init>(Landroid/app/LoadedApk$WarningContextClassLoader-IA;)V -HSPLandroid/app/LoadedApk;->-$$Nest$fgetmClassLoader(Landroid/app/LoadedApk;)Ljava/lang/ClassLoader; -HSPLandroid/app/LoadedApk;->-$$Nest$fgetmLock(Landroid/app/LoadedApk;)Ljava/lang/Object; -HSPLandroid/app/LoadedApk;->-$$Nest$fgetmSplitNames(Landroid/app/LoadedApk;)[Ljava/lang/String; -HSPLandroid/app/LoadedApk;->-$$Nest$fgetmSplitResDirs(Landroid/app/LoadedApk;)[Ljava/lang/String; -HSPLandroid/app/LoadedApk;->-$$Nest$mcreateOrUpdateClassLoaderLocked(Landroid/app/LoadedApk;Ljava/util/List;)V -HSPLandroid/app/LoadedApk;-><init>(Landroid/app/ActivityThread;)V -HSPLandroid/app/LoadedApk;-><init>(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)V -HSPLandroid/app/LoadedApk;->adjustNativeLibraryPaths(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/LoadedApk;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy; -HSPLandroid/app/LoadedApk;->allowVmViolations()Landroid/os/StrictMode$VmPolicy; -HSPLandroid/app/LoadedApk;->appendApkLibPathIfNeeded(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V -HSPLandroid/app/LoadedApk;->appendSharedLibrariesLibPathsIfNeeded(Ljava/util/List;Landroid/content/pm/ApplicationInfo;Ljava/util/Set;Ljava/util/List;)V -HSPLandroid/app/LoadedApk;->canAccessDataDir()Z -HSPLandroid/app/LoadedApk;->createAppFactory(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)Landroid/app/AppComponentFactory; -HSPLandroid/app/LoadedApk;->createOrUpdateClassLoaderLocked(Ljava/util/List;)V -HSPLandroid/app/LoadedApk;->createSharedLibrariesLoaders(Ljava/util/List;ZLjava/lang/String;Ljava/lang/String;)Landroid/util/Pair; -HSPLandroid/app/LoadedApk;->createSharedLibraryLoader(Landroid/content/pm/SharedLibraryInfo;ZLjava/lang/String;Ljava/lang/String;)Ljava/lang/ClassLoader; -HSPLandroid/app/LoadedApk;->forgetReceiverDispatcher(Landroid/content/Context;Landroid/content/BroadcastReceiver;)Landroid/content/IIntentReceiver; -HSPLandroid/app/LoadedApk;->forgetServiceDispatcher(Landroid/content/Context;Landroid/content/ServiceConnection;)Landroid/app/IServiceConnection; -HSPLandroid/app/LoadedApk;->getAppDir()Ljava/lang/String; -HSPLandroid/app/LoadedApk;->getAppFactory()Landroid/app/AppComponentFactory; -HSPLandroid/app/LoadedApk;->getApplication()Landroid/app/Application; -HSPLandroid/app/LoadedApk;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; -HSPLandroid/app/LoadedApk;->getAssets()Landroid/content/res/AssetManager; -HSPLandroid/app/LoadedApk;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/app/LoadedApk;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo; -HSPLandroid/app/LoadedApk;->getCredentialProtectedDataDirFile()Ljava/io/File; -HSPLandroid/app/LoadedApk;->getDataDirFile()Ljava/io/File; -HSPLandroid/app/LoadedApk;->getDeviceProtectedDataDirFile()Ljava/io/File; -HSPLandroid/app/LoadedApk;->getOverlayDirs()[Ljava/lang/String; -HSPLandroid/app/LoadedApk;->getOverlayPaths()[Ljava/lang/String; -HSPLandroid/app/LoadedApk;->getPackageName()Ljava/lang/String; -HSPLandroid/app/LoadedApk;->getReceiverDispatcher(Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)Landroid/content/IIntentReceiver; -HSPLandroid/app/LoadedApk;->getResDir()Ljava/lang/String; -HSPLandroid/app/LoadedApk;->getResources()Landroid/content/res/Resources; -HSPLandroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;J)Landroid/app/IServiceConnection; -HSPLandroid/app/LoadedApk;->getServiceDispatcher(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;J)Landroid/app/IServiceConnection; -HSPLandroid/app/LoadedApk;->getServiceDispatcherCommon(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;Ljava/util/concurrent/Executor;J)Landroid/app/IServiceConnection; -HSPLandroid/app/LoadedApk;->getSplitClassLoader(Ljava/lang/String;)Ljava/lang/ClassLoader; -HSPLandroid/app/LoadedApk;->getSplitPaths(Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/app/LoadedApk;->getSplitResDirs()[Ljava/lang/String; -HSPLandroid/app/LoadedApk;->initializeJavaContextClassLoader()V -HSPLandroid/app/LoadedApk;->isSecurityViolation()Z -HSPLandroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application; -HSPLandroid/app/LoadedApk;->makeApplicationInner(ZLandroid/app/Instrumentation;)Landroid/app/Application; -HSPLandroid/app/LoadedApk;->makeApplicationInner(ZLandroid/app/Instrumentation;Z)Landroid/app/Application; -HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V -HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V -HSPLandroid/app/LoadedApk;->registerAppInfoToArt()V -HSPLandroid/app/LoadedApk;->removeContextRegistrations(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/LoadedApk;->rewriteRValues(Ljava/lang/ClassLoader;Ljava/lang/String;I)V -HSPLandroid/app/LoadedApk;->setApplicationInfo(Landroid/content/pm/ApplicationInfo;)Z -HSPLandroid/app/LoadedApk;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V -HSPLandroid/app/LoadedApk;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V -HSPLandroid/app/LoadedApk;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V -HSPLandroid/app/Notification$$ExternalSyntheticLambda0;-><init>(Landroid/app/Notification;Landroid/os/Parcel;)V -HSPLandroid/app/Notification$$ExternalSyntheticLambda0;->onMarshaled(Landroid/app/PendingIntent;Landroid/os/Parcel;I)V -HSPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification; -HSPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$Action; -HSPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/Notification$Action$1;->newArray(I)[Landroid/app/Notification$Action; -HSPLandroid/app/Notification$Action$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V -HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZ)V -HSPLandroid/app/Notification$Action$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Action$Builder; -HSPLandroid/app/Notification$Action$Builder;->build()Landroid/app/Notification$Action; -HSPLandroid/app/Notification$Action$Builder;->setAllowGeneratedReplies(Z)Landroid/app/Notification$Action$Builder; -HSPLandroid/app/Notification$Action$Builder;->setAuthenticationRequired(Z)Landroid/app/Notification$Action$Builder; -HSPLandroid/app/Notification$Action$Builder;->setContextual(Z)Landroid/app/Notification$Action$Builder; -HSPLandroid/app/Notification$Action$Builder;->setSemanticAction(I)Landroid/app/Notification$Action$Builder; -HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZZ)V -HSPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z -HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon; -HSPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput; -HSPLandroid/app/Notification$Action;->isContextual()Z -HSPLandroid/app/Notification$Action;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/Notification$BigPictureStyle;-><init>()V -HSPLandroid/app/Notification$BigPictureStyle;->addExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$BigPictureStyle;->purgeResources()V -HSPLandroid/app/Notification$BigPictureStyle;->reduceImageSizes(Landroid/content/Context;)V -HSPLandroid/app/Notification$BigPictureStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$BigTextStyle;-><init>()V -HSPLandroid/app/Notification$BigTextStyle;-><init>(Landroid/app/Notification$Builder;)V -HSPLandroid/app/Notification$BigTextStyle;->addExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$BigTextStyle;->bigText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle; -HSPLandroid/app/Notification$BigTextStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$BigTextStyle;->setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle; -HSPLandroid/app/Notification$BubbleMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$BubbleMetadata; -HSPLandroid/app/Notification$BubbleMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/Notification$BubbleMetadata;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;)V -HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;Landroid/app/Notification;)V -HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V -HSPLandroid/app/Notification$Builder;->addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->addPerson(Landroid/app/Person;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->addPerson(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->build()Landroid/app/Notification; -HSPLandroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification; -HSPLandroid/app/Notification$Builder;->getStyle()Landroid/app/Notification$Style; -HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;)Landroid/app/Notification; -HSPLandroid/app/Notification$Builder;->recoverBuilder(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->sanitizeColor()V -HSPLandroid/app/Notification$Builder;->setAllowSystemGeneratedContextualActions(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setAutoCancel(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setBadgeIconType(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setBubbleMetadata(Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setCustomContentView(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setDefaults(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setDeleteIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setFlag(IZ)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setFullScreenIntent(Landroid/app/PendingIntent;Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setGroup(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setGroupAlertBehavior(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setGroupSummary(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setLights(III)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setLocalOnly(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setNumber(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setOngoing(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setOnlyAlertOnce(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setPriority(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setProgress(IIZ)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setPublicVersion(Landroid/app/Notification;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setRemoteInputHistory([Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSettingsText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setShortcutId(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setShowWhen(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSmallIcon(II)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSmallIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSortKey(Ljava/lang/String;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSound(Landroid/net/Uri;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setStyle(Landroid/app/Notification$Style;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setSubText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setTimeoutAfter(J)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setUsesChronometer(Z)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setVibrate([J)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setVisibility(I)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->setWhen(J)Landroid/app/Notification$Builder; -HSPLandroid/app/Notification$Builder;->usesStandardHeader()Z -HSPLandroid/app/Notification$Colors;-><init>()V -HSPLandroid/app/Notification$DecoratedCustomViewStyle;-><init>()V -HSPLandroid/app/Notification$InboxStyle;-><init>()V -HSPLandroid/app/Notification$InboxStyle;->addExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$InboxStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MediaStyle;-><init>()V -HSPLandroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification; -HSPLandroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;)V -HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;Z)V -HSPLandroid/app/Notification$MessagingStyle$Message;->getDataUri()Landroid/net/Uri; -HSPLandroid/app/Notification$MessagingStyle$Message;->getMessageFromBundle(Landroid/os/Bundle;)Landroid/app/Notification$MessagingStyle$Message; -HSPLandroid/app/Notification$MessagingStyle$Message;->getMessagesFromBundleArray([Landroid/os/Parcelable;)Ljava/util/List; -HSPLandroid/app/Notification$MessagingStyle$Message;->getSenderPerson()Landroid/app/Person; -HSPLandroid/app/Notification$MessagingStyle$Message;->getText()Ljava/lang/CharSequence; -HSPLandroid/app/Notification$MessagingStyle$Message;->getTimestamp()J -HSPLandroid/app/Notification$MessagingStyle$Message;->toBundle()Landroid/os/Bundle; -HSPLandroid/app/Notification$MessagingStyle;-><init>()V -HSPLandroid/app/Notification$MessagingStyle;-><init>(Landroid/app/Person;)V -HSPLandroid/app/Notification$MessagingStyle;->addExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MessagingStyle;->addMessage(Landroid/app/Notification$MessagingStyle$Message;)Landroid/app/Notification$MessagingStyle; -HSPLandroid/app/Notification$MessagingStyle;->findLatestIncomingMessage(Ljava/util/List;)Landroid/app/Notification$MessagingStyle$Message; -HSPLandroid/app/Notification$MessagingStyle;->fixTitleAndTextExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MessagingStyle;->getMessages()Ljava/util/List; -HSPLandroid/app/Notification$MessagingStyle;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$MessagingStyle;->setConversationTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$MessagingStyle; -HSPLandroid/app/Notification$MessagingStyle;->setGroupConversation(Z)Landroid/app/Notification$MessagingStyle; -HSPLandroid/app/Notification$MessagingStyle;->validate(Landroid/content/Context;)V -HSPLandroid/app/Notification$StandardTemplateParams;-><init>()V -HSPLandroid/app/Notification$Style;-><init>()V -HSPLandroid/app/Notification$Style;->addExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$Style;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification; -HSPLandroid/app/Notification$Style;->internalSetBigContentTitle(Ljava/lang/CharSequence;)V -HSPLandroid/app/Notification$Style;->purgeResources()V -HSPLandroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;)V -HSPLandroid/app/Notification$Style;->restoreFromExtras(Landroid/os/Bundle;)V -HSPLandroid/app/Notification$Style;->setBuilder(Landroid/app/Notification$Builder;)V -HSPLandroid/app/Notification$Style;->validate(Landroid/content/Context;)V -HSPLandroid/app/Notification;-><init>()V -HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V -HSPLandroid/app/Notification;->addFieldsFromContext(Landroid/content/pm/ApplicationInfo;Landroid/app/Notification;)V -HSPLandroid/app/Notification;->areStyledNotificationsVisiblyDifferent(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z -HSPLandroid/app/Notification;->cloneInto(Landroid/app/Notification;Z)V -HSPLandroid/app/Notification;->findRemoteInputActionPair(Z)Landroid/util/Pair; -HSPLandroid/app/Notification;->fixDuplicateExtra(Landroid/os/Parcelable;Ljava/lang/String;)V -HSPLandroid/app/Notification;->fixDuplicateExtras()V -HSPLandroid/app/Notification;->getBubbleMetadata()Landroid/app/Notification$BubbleMetadata; -HSPLandroid/app/Notification;->getChannelId()Ljava/lang/String; -HSPLandroid/app/Notification;->getContextualActions()Ljava/util/List; -HSPLandroid/app/Notification;->getGroup()Ljava/lang/String; -HSPLandroid/app/Notification;->getGroupAlertBehavior()I -HSPLandroid/app/Notification;->getLargeIcon()Landroid/graphics/drawable/Icon; -HSPLandroid/app/Notification;->getNotificationStyle()Ljava/lang/Class; -HSPLandroid/app/Notification;->getNotificationStyleClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLandroid/app/Notification;->getParcelableArrayFromBundle(Landroid/os/Bundle;Ljava/lang/String;Ljava/lang/Class;)[Landroid/os/Parcelable; -HSPLandroid/app/Notification;->getShortcutId()Ljava/lang/String; -HSPLandroid/app/Notification;->getSmallIcon()Landroid/graphics/drawable/Icon; -HSPLandroid/app/Notification;->getSortKey()Ljava/lang/String; -HSPLandroid/app/Notification;->isColorized()Z -HSPLandroid/app/Notification;->isForegroundService()Z -HSPLandroid/app/Notification;->isGroupChild()Z -HSPLandroid/app/Notification;->isGroupSummary()Z -HSPLandroid/app/Notification;->isMediaNotification()Z -HSPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/graphics/drawable/Icon$1;,Landroid/app/PendingIntent$1;,Landroid/media/AudioAttributes$1;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V -HSPLandroid/app/Notification;->reduceImageSizesForRemoteView(Landroid/widget/RemoteViews;Landroid/content/Context;Z)V -HSPLandroid/app/Notification;->removeTextSizeSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/app/Notification;->safeCharSequence(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/app/Notification;->setSmallIcon(Landroid/graphics/drawable/Icon;)V -HSPLandroid/app/Notification;->suppressAlertingDueToGrouping()Z -HSPLandroid/app/Notification;->toString()Ljava/lang/String; -HSPLandroid/app/Notification;->visibilityToString(I)Ljava/lang/String; -HSPLandroid/app/Notification;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V+]Landroid/app/PendingIntent;Landroid/app/PendingIntent;]Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;]Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel; -HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/app/NotificationChannel$1;Landroid/app/NotificationChannel$1; -HSPLandroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/net/Uri$1;,Landroid/media/AudioAttributes$1;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/net/Uri;Landroid/net/Uri$StringUri; -HSPLandroid/app/NotificationChannel;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V -HSPLandroid/app/NotificationChannel;->canBubble()Z -HSPLandroid/app/NotificationChannel;->canBypassDnd()Z -HSPLandroid/app/NotificationChannel;->canShowBadge()Z -HSPLandroid/app/NotificationChannel;->enableLights(Z)V -HSPLandroid/app/NotificationChannel;->enableVibration(Z)V -HSPLandroid/app/NotificationChannel;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/NotificationChannel;->getAudioAttributes()Landroid/media/AudioAttributes; -HSPLandroid/app/NotificationChannel;->getConversationId()Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getDescription()Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getGroup()Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getId()Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getImportance()I -HSPLandroid/app/NotificationChannel;->getLightColor()I -HSPLandroid/app/NotificationChannel;->getLockscreenVisibility()I -HSPLandroid/app/NotificationChannel;->getName()Ljava/lang/CharSequence; -HSPLandroid/app/NotificationChannel;->getOriginalImportance()I -HSPLandroid/app/NotificationChannel;->getSound()Landroid/net/Uri; -HSPLandroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/app/NotificationChannel;->getUserLockedFields()I -HSPLandroid/app/NotificationChannel;->getVibrationPattern()[J -HSPLandroid/app/NotificationChannel;->hasUserSetImportance()Z -HSPLandroid/app/NotificationChannel;->isBlockable()Z -HSPLandroid/app/NotificationChannel;->isDeleted()Z -HSPLandroid/app/NotificationChannel;->isImportantConversation()Z -HSPLandroid/app/NotificationChannel;->setBlockable(Z)V -HSPLandroid/app/NotificationChannel;->setBypassDnd(Z)V -HSPLandroid/app/NotificationChannel;->setDescription(Ljava/lang/String;)V -HSPLandroid/app/NotificationChannel;->setGroup(Ljava/lang/String;)V -HSPLandroid/app/NotificationChannel;->setLightColor(I)V -HSPLandroid/app/NotificationChannel;->setLockscreenVisibility(I)V -HSPLandroid/app/NotificationChannel;->setShowBadge(Z)V -HSPLandroid/app/NotificationChannel;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)V -HSPLandroid/app/NotificationChannel;->setVibrationPattern([J)V -HSPLandroid/app/NotificationChannel;->shouldShowLights()Z -HSPLandroid/app/NotificationChannel;->shouldVibrate()Z -HSPLandroid/app/NotificationChannel;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V -HSPLandroid/app/NotificationChannelGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannelGroup; -HSPLandroid/app/NotificationChannelGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/NotificationChannelGroup;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/NotificationChannelGroup;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;)V -HSPLandroid/app/NotificationChannelGroup;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/NotificationChannelGroup;->getChannels()Ljava/util/List; -HSPLandroid/app/NotificationChannelGroup;->getDescription()Ljava/lang/String; -HSPLandroid/app/NotificationChannelGroup;->getId()Ljava/lang/String; -HSPLandroid/app/NotificationChannelGroup;->getName()Ljava/lang/CharSequence; -HSPLandroid/app/NotificationChannelGroup;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/NotificationChannelGroup;->isBlocked()Z -HSPLandroid/app/NotificationChannelGroup;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/NotificationManager$Policy$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationManager$Policy; -HSPLandroid/app/NotificationManager$Policy$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/NotificationManager$Policy;-><init>(IIIIII)V -HSPLandroid/app/NotificationManager$Policy;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/NotificationManager$Policy;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/NotificationManager$Policy;->suppressedVisualEffectsEqual(II)Z -HSPLandroid/app/NotificationManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/app/NotificationManager;->areNotificationsEnabled()Z -HSPLandroid/app/NotificationManager;->cancel(I)V -HSPLandroid/app/NotificationManager;->cancel(Ljava/lang/String;I)V -HSPLandroid/app/NotificationManager;->cancelAll()V -HSPLandroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V -HSPLandroid/app/NotificationManager;->createNotificationChannel(Landroid/app/NotificationChannel;)V -HSPLandroid/app/NotificationManager;->createNotificationChannelGroup(Landroid/app/NotificationChannelGroup;)V -HSPLandroid/app/NotificationManager;->createNotificationChannelGroups(Ljava/util/List;)V -HSPLandroid/app/NotificationManager;->createNotificationChannels(Ljava/util/List;)V -HSPLandroid/app/NotificationManager;->deleteNotificationChannel(Ljava/lang/String;)V -HSPLandroid/app/NotificationManager;->fixLegacySmallIcon(Landroid/app/Notification;Ljava/lang/String;)V -HSPLandroid/app/NotificationManager;->fixNotification(Landroid/app/Notification;)Landroid/app/Notification; -HSPLandroid/app/NotificationManager;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification; -HSPLandroid/app/NotificationManager;->getAutomaticZenRules()Ljava/util/Map; -HSPLandroid/app/NotificationManager;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy; -HSPLandroid/app/NotificationManager;->getCurrentInterruptionFilter()I -HSPLandroid/app/NotificationManager;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel; -HSPLandroid/app/NotificationManager;->getNotificationChannelGroup(Ljava/lang/String;)Landroid/app/NotificationChannelGroup; -HSPLandroid/app/NotificationManager;->getNotificationChannelGroups()Ljava/util/List; -HSPLandroid/app/NotificationManager;->getNotificationChannels()Ljava/util/List; -HSPLandroid/app/NotificationManager;->getNotificationPolicy()Landroid/app/NotificationManager$Policy; -HSPLandroid/app/NotificationManager;->getService()Landroid/app/INotificationManager; -HSPLandroid/app/NotificationManager;->isNotificationPolicyAccessGranted()Z -HSPLandroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V -HSPLandroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Notification;)V -HSPLandroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V -HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I -HSPLandroid/app/PendingIntent$$ExternalSyntheticLambda3;->get()Ljava/lang/Object; -HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V -HSPLandroid/app/PendingIntent$FinishedDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V -HSPLandroid/app/PendingIntent$FinishedDispatcher;->run()V -HSPLandroid/app/PendingIntent;-><init>(Landroid/content/IIntentSender;)V -HSPLandroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V -HSPLandroid/app/PendingIntent;->buildServicePendingIntent(Landroid/content/Context;ILandroid/content/Intent;II)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->cancel()V -HSPLandroid/app/PendingIntent;->checkPendingIntent(ILandroid/content/Intent;Landroid/content/Context;Z)V -HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/PendingIntent;->getActivities(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getActivitiesAsUser(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->getCachedInfo()Landroid/app/ActivityManager$PendingIntentInfo; -HSPLandroid/app/PendingIntent;->getCreatorPackage()Ljava/lang/String; -HSPLandroid/app/PendingIntent;->getCreatorUid()I -HSPLandroid/app/PendingIntent;->getIntent()Landroid/content/Intent; -HSPLandroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender; -HSPLandroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; -HSPLandroid/app/PendingIntent;->hashCode()I -HSPLandroid/app/PendingIntent;->isActivity()Z -HSPLandroid/app/PendingIntent;->isNewMutableDisallowedImplicitPendingIntent(ILandroid/content/Intent;Z)Z -HSPLandroid/app/PendingIntent;->send()V -HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;)V -HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/app/PendingIntent;->sendAndReturnResult(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)I -HSPLandroid/app/PendingIntent;->setOnMarshaledListener(Landroid/app/PendingIntent$OnMarshaledListener;)V -HSPLandroid/app/PendingIntent;->toString()Ljava/lang/String; -HSPLandroid/app/PendingIntent;->writePendingIntentOrNullToParcel(Landroid/app/PendingIntent;Landroid/os/Parcel;)V -HSPLandroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Person; -HSPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/Person$Builder;-><init>()V -HSPLandroid/app/Person$Builder;-><init>(Landroid/app/Person;)V -HSPLandroid/app/Person$Builder;->build()Landroid/app/Person; -HSPLandroid/app/Person$Builder;->setBot(Z)Landroid/app/Person$Builder; -HSPLandroid/app/Person$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Person$Builder; -HSPLandroid/app/Person$Builder;->setImportant(Z)Landroid/app/Person$Builder; -HSPLandroid/app/Person$Builder;->setKey(Ljava/lang/String;)Landroid/app/Person$Builder; -HSPLandroid/app/Person$Builder;->setName(Ljava/lang/CharSequence;)Landroid/app/Person$Builder; -HSPLandroid/app/Person$Builder;->setUri(Ljava/lang/String;)Landroid/app/Person$Builder; -HSPLandroid/app/Person;-><init>(Landroid/app/Person$Builder;)V -HSPLandroid/app/Person;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/Person;->getIcon()Landroid/graphics/drawable/Icon; -HSPLandroid/app/Person;->getKey()Ljava/lang/String; -HSPLandroid/app/Person;->getName()Ljava/lang/CharSequence; -HSPLandroid/app/Person;->getUri()Ljava/lang/String; -HSPLandroid/app/Person;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PictureInPictureParams; -HSPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/PictureInPictureParams;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/PropertyInvalidatedCache$1;-><init>(Landroid/app/PropertyInvalidatedCache;IFZ)V -HSPLandroid/app/PropertyInvalidatedCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z -HSPLandroid/app/PropertyInvalidatedCache$DefaultComputer;-><init>(Landroid/app/PropertyInvalidatedCache;)V -HSPLandroid/app/PropertyInvalidatedCache$NoPreloadHolder;-><clinit>()V -HSPLandroid/app/PropertyInvalidatedCache$NoPreloadHolder;->next()J -HSPLandroid/app/PropertyInvalidatedCache$QueryHandler;-><init>()V -HSPLandroid/app/PropertyInvalidatedCache$QueryHandler;->shouldBypassCache(Ljava/lang/Object;)Z -HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fgetmHighWaterMark(Landroid/app/PropertyInvalidatedCache;)J -HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fgetmMaxEntries(Landroid/app/PropertyInvalidatedCache;)I -HSPLandroid/app/PropertyInvalidatedCache;->-$$Nest$fputmHighWaterMark(Landroid/app/PropertyInvalidatedCache;J)V -HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;)V -HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/PropertyInvalidatedCache;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PropertyInvalidatedCache$QueryHandler;)V -HSPLandroid/app/PropertyInvalidatedCache;->bypass(Ljava/lang/Object;)Z+]Landroid/app/PropertyInvalidatedCache$QueryHandler;Landroid/app/PropertyInvalidatedCache$DefaultComputer; -HSPLandroid/app/PropertyInvalidatedCache;->cacheName()Ljava/lang/String; -HSPLandroid/app/PropertyInvalidatedCache;->clear()V -HSPLandroid/app/PropertyInvalidatedCache;->createMap()Ljava/util/LinkedHashMap; -HSPLandroid/app/PropertyInvalidatedCache;->createPropertyName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/PropertyInvalidatedCache;->disableLocal()V -HSPLandroid/app/PropertyInvalidatedCache;->dumpCacheInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V -HSPLandroid/app/PropertyInvalidatedCache;->getActiveCaches()Ljava/util/ArrayList; -HSPLandroid/app/PropertyInvalidatedCache;->getActiveCorks()Ljava/util/ArrayList; -HSPLandroid/app/PropertyInvalidatedCache;->getCurrentNonce()J+]Landroid/os/SystemProperties$Handle;Landroid/os/SystemProperties$Handle; -HSPLandroid/app/PropertyInvalidatedCache;->invalidateCache(Ljava/lang/String;)V -HSPLandroid/app/PropertyInvalidatedCache;->invalidateCacheLocked(Ljava/lang/String;)V -HSPLandroid/app/PropertyInvalidatedCache;->isDisabled()Z -HSPLandroid/app/PropertyInvalidatedCache;->isReservedNonce(J)Z -HSPLandroid/app/PropertyInvalidatedCache;->maybeCheckConsistency(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/PropertyInvalidatedCache;->query(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Landroid/app/PropertyInvalidatedCache$1;]Landroid/app/PropertyInvalidatedCache;megamorphic_types -HSPLandroid/app/PropertyInvalidatedCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/PropertyInvalidatedCache;->refresh(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/PropertyInvalidatedCache;->registerCache()V -HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V -HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/app/QueuedWork;->-$$Nest$smprocessPendingWork()V -HSPLandroid/app/QueuedWork;->addFinisher(Ljava/lang/Runnable;)V -HSPLandroid/app/QueuedWork;->getHandler()Landroid/os/Handler; -HSPLandroid/app/QueuedWork;->handlerRemoveMessages(I)V+]Landroid/os/Handler;Landroid/app/QueuedWork$QueuedWorkHandler; -HSPLandroid/app/QueuedWork;->hasPendingWork()Z -HSPLandroid/app/QueuedWork;->processPendingWork()V -HSPLandroid/app/QueuedWork;->queue(Ljava/lang/Runnable;Z)V -HSPLandroid/app/QueuedWork;->removeFinisher(Ljava/lang/Runnable;)V -HSPLandroid/app/QueuedWork;->waitToFinish()V -HSPLandroid/app/ReceiverInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ReceiverInfo; -HSPLandroid/app/ReceiverInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ReceiverInfo;-><init>()V -HSPLandroid/app/ReceiverInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/ReceiverRestrictedContext;-><init>(Landroid/content/Context;)V -HSPLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteAction; -HSPLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/RemoteAction;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V -HSPLandroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/RemoteAction;->getActionIntent()Landroid/app/PendingIntent; -HSPLandroid/app/RemoteAction;->getIcon()Landroid/graphics/drawable/Icon; -HSPLandroid/app/RemoteAction;->getTitle()Ljava/lang/CharSequence; -HSPLandroid/app/RemoteAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteInput; -HSPLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/RemoteInput$1;->newArray(I)[Landroid/app/RemoteInput; -HSPLandroid/app/RemoteInput$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/app/RemoteInput;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/RemoteInput;->getAllowFreeFormInput()Z -HSPLandroid/app/RemoteInput;->getChoices()[Ljava/lang/CharSequence; -HSPLandroid/app/RemoteInput;->getEditChoicesBeforeSending()I -HSPLandroid/app/RemoteInput;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/ResourcesManager$ActivityResource;-><init>()V -HSPLandroid/app/ResourcesManager$ActivityResource;-><init>(Landroid/app/ResourcesManager$ActivityResource-IA;)V -HSPLandroid/app/ResourcesManager$ActivityResources;-><init>()V -HSPLandroid/app/ResourcesManager$ActivityResources;-><init>(Landroid/app/ResourcesManager$ActivityResources-IA;)V -HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;-><init>(Landroid/app/ResourcesManager;)V -HSPLandroid/app/ResourcesManager$ApkAssetsSupplier;->load(Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets; -HSPLandroid/app/ResourcesManager$ApkKey;-><init>(Ljava/lang/String;ZZ)V -HSPLandroid/app/ResourcesManager$ApkKey;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/lang/String; -HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I+]Ljava/lang/Object;Ljava/lang/String; -HSPLandroid/app/ResourcesManager$UpdateHandler;-><init>(Landroid/app/ResourcesManager;)V -HSPLandroid/app/ResourcesManager$UpdateHandler;-><init>(Landroid/app/ResourcesManager;Landroid/app/ResourcesManager$UpdateHandler-IA;)V -HSPLandroid/app/ResourcesManager;->-$$Nest$mloadApkAssets(Landroid/app/ResourcesManager;Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets; -HSPLandroid/app/ResourcesManager;-><init>()V -HSPLandroid/app/ResourcesManager;->addApplicationPathsLocked(Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/app/ResourcesManager;->appendLibAssetsForMainAssetPath(Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/app/ResourcesManager;->appendPendingAppInfoUpdate([Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/app/ResourcesManager;->applyAllPendingAppInfoUpdates()V -HSPLandroid/app/ResourcesManager;->applyCompatConfiguration(ILandroid/content/res/Configuration;)Z -HSPLandroid/app/ResourcesManager;->applyConfigurationToResources(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Z -HSPLandroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;Landroid/content/res/ResourcesKey;Landroid/content/res/ResourcesImpl;)V -HSPLandroid/app/ResourcesManager;->applyDisplayMetricsToConfiguration(Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V -HSPLandroid/app/ResourcesManager;->applyNewResourceDirsLocked([Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/app/ResourcesManager;->cleanupReferences(Ljava/util/ArrayList;Ljava/lang/ref/ReferenceQueue;)V -HSPLandroid/app/ResourcesManager;->cleanupReferences(Ljava/util/ArrayList;Ljava/lang/ref/ReferenceQueue;Ljava/util/function/Function;)V -HSPLandroid/app/ResourcesManager;->combinedOverlayPaths([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/app/ResourcesManager;->createApkAssetsSupplierNotLocked(Landroid/content/res/ResourcesKey;)Landroid/app/ResourcesManager$ApkAssetsSupplier; -HSPLandroid/app/ResourcesManager;->createAssetManager(Landroid/content/res/ResourcesKey;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/AssetManager; -HSPLandroid/app/ResourcesManager;->createBaseTokenResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;Ljava/util/List;)Landroid/content/res/Resources; -HSPLandroid/app/ResourcesManager;->createResources(Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/Resources; -HSPLandroid/app/ResourcesManager;->createResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Landroid/content/res/Configuration;Ljava/lang/Integer;Ljava/lang/ClassLoader;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/Resources; -HSPLandroid/app/ResourcesManager;->createResourcesForActivityLocked(Landroid/os/IBinder;Landroid/content/res/Configuration;Ljava/lang/Integer;Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources; -HSPLandroid/app/ResourcesManager;->createResourcesImpl(Landroid/content/res/ResourcesKey;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/ResourcesImpl; -HSPLandroid/app/ResourcesManager;->createResourcesLocked(Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;+]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/app/ResourcesManager;->extractApkKeys(Landroid/content/res/ResourcesKey;)Ljava/util/ArrayList;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/app/ResourcesManager;->findKeyForResourceImplLocked(Landroid/content/res/ResourcesImpl;)Landroid/content/res/ResourcesKey; -HSPLandroid/app/ResourcesManager;->findOrCreateResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl; -HSPLandroid/app/ResourcesManager;->findOrCreateResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;Landroid/app/ResourcesManager$ApkAssetsSupplier;)Landroid/content/res/ResourcesImpl; -HSPLandroid/app/ResourcesManager;->findResourcesForActivityLocked(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;)Landroid/content/res/Resources; -HSPLandroid/app/ResourcesManager;->findResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl; -HSPLandroid/app/ResourcesManager;->generateConfig(Landroid/content/res/ResourcesKey;)Landroid/content/res/Configuration; -HSPLandroid/app/ResourcesManager;->generateDisplayId(Landroid/content/res/ResourcesKey;)I -HSPLandroid/app/ResourcesManager;->getAdjustedDisplay(ILandroid/content/res/Resources;)Landroid/view/Display; -HSPLandroid/app/ResourcesManager;->getConfiguration()Landroid/content/res/Configuration; -HSPLandroid/app/ResourcesManager;->getDisplayMetrics()Landroid/util/DisplayMetrics; -HSPLandroid/app/ResourcesManager;->getDisplayMetrics(ILandroid/view/DisplayAdjustments;)Landroid/util/DisplayMetrics; -HSPLandroid/app/ResourcesManager;->getDisplayMetrics(Landroid/content/res/Configuration;)Landroid/util/DisplayMetrics; -HSPLandroid/app/ResourcesManager;->getInstance()Landroid/app/ResourcesManager; -HSPLandroid/app/ResourcesManager;->getLocaleConfig()Landroid/app/LocaleConfig; -HSPLandroid/app/ResourcesManager;->getOrCreateActivityResourcesStructLocked(Landroid/os/IBinder;)Landroid/app/ResourcesManager$ActivityResources; -HSPLandroid/app/ResourcesManager;->getResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Integer;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;Ljava/util/List;)Landroid/content/res/Resources; -HSPLandroid/app/ResourcesManager;->initializeApplicationPaths(Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/app/ResourcesManager;->isSameResourcesOverrideConfig(Landroid/os/IBinder;Landroid/content/res/Configuration;)Z -HSPLandroid/app/ResourcesManager;->lambda$cleanupReferences$1(Ljava/util/function/Function;Ljava/util/HashSet;Ljava/lang/Object;)Z -HSPLandroid/app/ResourcesManager;->lambda$createResourcesForActivityLocked$0(Landroid/app/ResourcesManager$ActivityResource;)Ljava/lang/ref/WeakReference; -HSPLandroid/app/ResourcesManager;->loadApkAssets(Landroid/app/ResourcesManager$ApkKey;)Landroid/content/res/ApkAssets; -HSPLandroid/app/ResourcesManager;->overlayPathToIdmapPath(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/ResourcesManager;->rebaseActivityOverrideConfig(Landroid/app/ResourcesManager$ActivityResource;Landroid/content/res/Configuration;I)Landroid/content/res/ResourcesKey; -HSPLandroid/app/ResourcesManager;->rebaseKeyForActivity(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Z)V -HSPLandroid/app/ResourcesManager;->rebaseKeyForDisplay(Landroid/content/res/ResourcesKey;I)V -HSPLandroid/app/ResourcesManager;->redirectResourcesToNewImplLocked(Landroid/util/ArrayMap;)V -HSPLandroid/app/ResourcesManager;->updateResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/Configuration;I)V -HSPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ResultInfo; -HSPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ResultInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/Service;-><init>()V -HSPLandroid/app/Service;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Ljava/lang/String;Landroid/os/IBinder;Landroid/app/Application;Ljava/lang/Object;)V -HSPLandroid/app/Service;->attachBaseContext(Landroid/content/Context;)V -HSPLandroid/app/Service;->clearStartForegroundServiceStackTrace()V -HSPLandroid/app/Service;->createServiceBaseContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/content/Context; -HSPLandroid/app/Service;->detachAndCleanUp()V -HSPLandroid/app/Service;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V -HSPLandroid/app/Service;->getApplication()Landroid/app/Application; -HSPLandroid/app/Service;->getClassName()Ljava/lang/String; -HSPLandroid/app/Service;->logForegroundServiceStopIfNecessary()V -HSPLandroid/app/Service;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/app/Service;->onCreate()V -HSPLandroid/app/Service;->onDestroy()V -HSPLandroid/app/Service;->onLowMemory()V -HSPLandroid/app/Service;->onStart(Landroid/content/Intent;I)V -HSPLandroid/app/Service;->onStartCommand(Landroid/content/Intent;II)I -HSPLandroid/app/Service;->onTrimMemory(I)V -HSPLandroid/app/Service;->onUnbind(Landroid/content/Intent;)Z -HSPLandroid/app/Service;->setStartForegroundServiceStackTrace(Ljava/lang/String;Landroid/app/StackTrace;)V -HSPLandroid/app/Service;->startForeground(ILandroid/app/Notification;)V -HSPLandroid/app/Service;->stopForeground(I)V -HSPLandroid/app/Service;->stopForeground(Z)V -HSPLandroid/app/Service;->stopSelf()V -HSPLandroid/app/Service;->stopSelf(I)V -HSPLandroid/app/Service;->stopSelfResult(I)Z -HSPLandroid/app/ServiceConnectionLeaked;-><init>(Ljava/lang/String;)V -HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ServiceStartArgs; -HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/ServiceStartArgs;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/SharedPreferencesImpl$$ExternalSyntheticLambda0;-><init>(Landroid/app/SharedPreferencesImpl;)V -HSPLandroid/app/SharedPreferencesImpl$$ExternalSyntheticLambda0;->run()V -HSPLandroid/app/SharedPreferencesImpl$1;->run()V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;)V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0;->run()V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl$1;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;J)V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl$1;->run()V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl$2;-><init>(Landroid/app/SharedPreferencesImpl$EditorImpl;Ljava/lang/Runnable;)V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl$2;->run()V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;-><init>(Landroid/app/SharedPreferencesImpl;)V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->apply()V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->clear()Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commit()Z -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult;+]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Ljava/lang/Object;Ljava/lang/String;,Ljava/lang/Boolean;,Ljava/lang/Long;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;]Ljava/util/Set;Ljava/util/HashMap$EntrySet; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->notifyListeners(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;)V -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putFloat(Ljava/lang/String;F)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->putStringSet(Ljava/lang/String;Ljava/util/Set;)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$EditorImpl;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;-><init>(JZLjava/util/List;Ljava/util/Set;Ljava/util/Map;)V -HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;-><init>(JZLjava/util/List;Ljava/util/Set;Ljava/util/Map;Landroid/app/SharedPreferencesImpl$MemoryCommitResult-IA;)V -HSPLandroid/app/SharedPreferencesImpl$MemoryCommitResult;->setDiskWriteResult(ZZ)V -HSPLandroid/app/SharedPreferencesImpl$SharedPreferencesThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmCurrentMemoryStateGeneration(Landroid/app/SharedPreferencesImpl;)J -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmDiskWritesInFlight(Landroid/app/SharedPreferencesImpl;)I -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmListeners(Landroid/app/SharedPreferencesImpl;)Ljava/util/WeakHashMap; -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmLock(Landroid/app/SharedPreferencesImpl;)Ljava/lang/Object; -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmMap(Landroid/app/SharedPreferencesImpl;)Ljava/util/Map; -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fgetmWritingToDiskLock(Landroid/app/SharedPreferencesImpl;)Ljava/lang/Object; -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmCurrentMemoryStateGeneration(Landroid/app/SharedPreferencesImpl;J)V -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmDiskWritesInFlight(Landroid/app/SharedPreferencesImpl;I)V -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$fputmMap(Landroid/app/SharedPreferencesImpl;Ljava/util/Map;)V -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$menqueueDiskWrite(Landroid/app/SharedPreferencesImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Ljava/lang/Runnable;)V -HSPLandroid/app/SharedPreferencesImpl;->-$$Nest$mwriteToFile(Landroid/app/SharedPreferencesImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V -HSPLandroid/app/SharedPreferencesImpl;-><init>(Ljava/io/File;I)V -HSPLandroid/app/SharedPreferencesImpl;->awaitLoadedLocked()V -HSPLandroid/app/SharedPreferencesImpl;->contains(Ljava/lang/String;)Z -HSPLandroid/app/SharedPreferencesImpl;->createFileOutputStream(Ljava/io/File;)Ljava/io/FileOutputStream; -HSPLandroid/app/SharedPreferencesImpl;->edit()Landroid/content/SharedPreferences$Editor; -HSPLandroid/app/SharedPreferencesImpl;->enqueueDiskWrite(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Ljava/lang/Runnable;)V -HSPLandroid/app/SharedPreferencesImpl;->getAll()Ljava/util/Map; -HSPLandroid/app/SharedPreferencesImpl;->getBoolean(Ljava/lang/String;Z)Z -HSPLandroid/app/SharedPreferencesImpl;->getFloat(Ljava/lang/String;F)F -HSPLandroid/app/SharedPreferencesImpl;->getInt(Ljava/lang/String;I)I -HSPLandroid/app/SharedPreferencesImpl;->getLong(Ljava/lang/String;J)J -HSPLandroid/app/SharedPreferencesImpl;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/SharedPreferencesImpl;->getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set; -HSPLandroid/app/SharedPreferencesImpl;->hasFileChangedUnexpectedly()Z -HSPLandroid/app/SharedPreferencesImpl;->lambda$startLoadFromDisk$0()V -HSPLandroid/app/SharedPreferencesImpl;->loadFromDisk()V -HSPLandroid/app/SharedPreferencesImpl;->makeBackupFile(Ljava/io/File;)Ljava/io/File; -HSPLandroid/app/SharedPreferencesImpl;->registerOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V -HSPLandroid/app/SharedPreferencesImpl;->startLoadFromDisk()V -HSPLandroid/app/SharedPreferencesImpl;->startReloadIfChangedUnexpectedly()V -HSPLandroid/app/SharedPreferencesImpl;->unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V -HSPLandroid/app/SharedPreferencesImpl;->writeToFile(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V+]Ljava/io/File;Ljava/io/File;]Lcom/android/internal/util/ExponentiallyBucketedHistogram;Lcom/android/internal/util/ExponentiallyBucketedHistogram;]Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;]Ljava/io/FileOutputStream;Ljava/io/FileOutputStream; -HSPLandroid/app/StackTrace;-><init>(Ljava/lang/String;)V -HSPLandroid/app/StatusBarManager;-><init>(Landroid/content/Context;)V -HSPLandroid/app/SyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/SyncNotedAppOp; -HSPLandroid/app/SyncNotedAppOp$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/SyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/SyncNotedAppOp;-><init>(ILjava/lang/String;)V -HSPLandroid/app/SyncNotedAppOp;-><init>(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/SyncNotedAppOp;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/SyncNotedAppOp;->getAttributionTag()Ljava/lang/String; -HSPLandroid/app/SyncNotedAppOp;->getOp()Ljava/lang/String; -HSPLandroid/app/SyncNotedAppOp;->getOpMode()I -HSPLandroid/app/SyncNotedAppOp;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/SystemServiceRegistry$100;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$104;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$106;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$108;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$109;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Landroid/media/MediaRouter; -HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$110;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$111;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$112;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$113;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$114;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$115;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$116;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$117;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$122;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$123;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$124;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$125;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$126;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$127;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$128;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$129;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Landroid/view/textclassifier/TextClassificationManager; -HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$130;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$131;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$138;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$139;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$15;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$18;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/AccessibilityManager; -HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager; -HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager; -HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$24;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Landroid/hardware/input/InputManager; -HSPLandroid/app/SystemServiceRegistry$26;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/DisplayManager; -HSPLandroid/app/SystemServiceRegistry$27;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$28;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$29;->getService(Landroid/app/ContextImpl;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/app/SystemServiceRegistry$29;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$2;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/CaptioningManager; -HSPLandroid/app/SystemServiceRegistry$2;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Landroid/app/KeyguardManager; -HSPLandroid/app/SystemServiceRegistry$31;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Landroid/view/LayoutInflater; -HSPLandroid/app/SystemServiceRegistry$32;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Landroid/location/LocationManager; -HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$34;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/app/NotificationManager; -HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$36;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager; -HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$38;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$39;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Landroid/accounts/AccountManager; -HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager; -HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager; -HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$46;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$47;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$48;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$49;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Landroid/app/ActivityManager; -HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$50;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Landroid/app/UiModeManager; -HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$53;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$54;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager; -HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$61;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager; -HSPLandroid/app/SystemServiceRegistry$61;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Landroid/app/AppOpsManager; -HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$63;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Landroid/companion/virtual/VirtualDeviceManager;+]Landroid/app/ContextImpl;Landroid/app/ContextImpl;]Landroid/content/res/Resources;Landroid/content/res/Resources; -HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$75;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$7;->createService(Landroid/app/ContextImpl;)Landroid/app/AlarmManager; -HSPLandroid/app/SystemServiceRegistry$7;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$83;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$84;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$85;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$87;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$89;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Landroid/media/AudioManager; -HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$90;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$92;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$93;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$94;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$95;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$99;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;+]Landroid/app/SystemServiceRegistry$CachedServiceFetcher;megamorphic_types]Ljava/lang/Object;[Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry$StaticServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->createServiceCache()[Ljava/lang/Object; -HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object;+]Landroid/app/SystemServiceRegistry$ServiceFetcher;megamorphic_types -HSPLandroid/app/SystemServiceRegistry;->getSystemServiceFetcher(Ljava/lang/String;)Landroid/app/SystemServiceRegistry$ServiceFetcher;+]Ljava/util/Map;Landroid/util/ArrayMap; -HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String; -HSPLandroid/app/TaskInfo;-><init>()V -HSPLandroid/app/TaskInfo;->getWindowingMode()I -HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/TaskStackListener;-><init>()V -HSPLandroid/app/TaskStackListener;->onActivityRequestedOrientationChanged(II)V -HSPLandroid/app/TaskStackListener;->onActivityRestartAttempt(Landroid/app/ActivityManager$RunningTaskInfo;ZZZ)V -HSPLandroid/app/TaskStackListener;->onRecentTaskListUpdated()V -HSPLandroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentName;)V -HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V -HSPLandroid/app/TaskStackListener;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V -HSPLandroid/app/TaskStackListener;->onTaskFocusChanged(IZ)V -HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(I)V -HSPLandroid/app/TaskStackListener;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V -HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(I)V -HSPLandroid/app/TaskStackListener;->onTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V -HSPLandroid/app/TaskStackListener;->onTaskRemoved(I)V -HSPLandroid/app/TaskStackListener;->onTaskRequestedOrientationChanged(II)V -HSPLandroid/app/UiModeManager$1;-><init>(Landroid/app/UiModeManager;)V -HSPLandroid/app/UiModeManager$Globals;->-$$Nest$fgetmService(Landroid/app/UiModeManager$Globals;)Landroid/app/IUiModeManager; -HSPLandroid/app/UiModeManager$Globals;-><init>(Landroid/app/IUiModeManager;)V -HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>()V -HSPLandroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager;-><init>(Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA;)V -HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V -HSPLandroid/app/UiModeManager;->getActiveProjectionTypes()I -HSPLandroid/app/UiModeManager;->getCurrentModeType()I -HSPLandroid/app/UriGrantsManager$1;->create()Landroid/app/IUriGrantsManager; -HSPLandroid/app/UriGrantsManager$1;->create()Ljava/lang/Object; -HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager; -HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors; -HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/WallpaperColors;->getColorHints()I -HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List; -HSPLandroid/app/WallpaperManager$Globals$1;-><init>(Landroid/app/WallpaperManager$Globals;)V -HSPLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V -HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V -HSPLandroid/app/WallpaperManager$Globals;->getWallpaperColors(III)Landroid/app/WallpaperColors; -HSPLandroid/app/WallpaperManager;-><init>(Landroid/app/IWallpaperManager;Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/app/WallpaperManager;->getWallpaperColors(I)Landroid/app/WallpaperColors; -HSPLandroid/app/WallpaperManager;->getWallpaperColors(II)Landroid/app/WallpaperColors; -HSPLandroid/app/WallpaperManager;->getWallpaperInfo()Landroid/app/WallpaperInfo; -HSPLandroid/app/WallpaperManager;->getWallpaperInfo(I)Landroid/app/WallpaperInfo; -HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V -HSPLandroid/app/WallpaperManager;->setWallpaperZoomOut(Landroid/os/IBinder;F)V -HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/WindowConfiguration;-><init>()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/WindowConfiguration;->activityTypeToString(I)Ljava/lang/String; -HSPLandroid/app/WindowConfiguration;->areConfigurationsEqualForDisplay(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration;->canReceiveKeys()Z -HSPLandroid/app/WindowConfiguration;->compareTo(Landroid/app/WindowConfiguration;)I -HSPLandroid/app/WindowConfiguration;->diff(Landroid/app/WindowConfiguration;Z)J+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/app/WindowConfiguration;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/WindowConfiguration;->getActivityType()I -HSPLandroid/app/WindowConfiguration;->getAppBounds()Landroid/graphics/Rect; -HSPLandroid/app/WindowConfiguration;->getBounds()Landroid/graphics/Rect; -HSPLandroid/app/WindowConfiguration;->getDisplayRotation()I -HSPLandroid/app/WindowConfiguration;->getMaxBounds()Landroid/graphics/Rect; -HSPLandroid/app/WindowConfiguration;->getRotation()I -HSPLandroid/app/WindowConfiguration;->getWindowingMode()I -HSPLandroid/app/WindowConfiguration;->hasWindowDecorCaption()Z -HSPLandroid/app/WindowConfiguration;->hasWindowShadow()Z -HSPLandroid/app/WindowConfiguration;->inMultiWindowMode(I)Z -HSPLandroid/app/WindowConfiguration;->isFloating(I)Z -HSPLandroid/app/WindowConfiguration;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/app/WindowConfiguration;->setActivityType(I)V -HSPLandroid/app/WindowConfiguration;->setAlwaysOnTop(I)V -HSPLandroid/app/WindowConfiguration;->setAppBounds(IIII)V -HSPLandroid/app/WindowConfiguration;->setAppBounds(Landroid/graphics/Rect;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration;->setBounds(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/app/WindowConfiguration;->setDisplayRotation(I)V -HSPLandroid/app/WindowConfiguration;->setDisplayWindowingMode(I)V -HSPLandroid/app/WindowConfiguration;->setMaxBounds(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/app/WindowConfiguration;->setRotation(I)V -HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;)V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;I)V -HSPLandroid/app/WindowConfiguration;->setToDefaults()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration;->setWindowingMode(I)V -HSPLandroid/app/WindowConfiguration;->tasksAreFloating()Z -HSPLandroid/app/WindowConfiguration;->toString()Ljava/lang/String; -HSPLandroid/app/WindowConfiguration;->unset()V -HSPLandroid/app/WindowConfiguration;->updateFrom(Landroid/app/WindowConfiguration;)I+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/app/WindowConfiguration;->windowingModeToString(I)Ljava/lang/String; -HSPLandroid/app/WindowConfiguration;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;-><init>(Landroid/app/admin/DevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda6;-><init>(Landroid/app/admin/DevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda7;-><init>(Landroid/app/admin/DevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8;-><init>(Landroid/app/admin/DevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;Z)V -HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdmins()Ljava/util/List; -HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdminsAsUser(I)Ljava/util/List; -HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwner()Ljava/lang/String; -HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentInner(Z)Landroid/content/ComponentName; -HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnAnyUser()Landroid/content/ComponentName; -HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnCallingUser()Landroid/content/ComponentName; -HSPLandroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;I)I -HSPLandroid/app/admin/DevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;I)J -HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;)I -HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;I)I -HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwner()Landroid/content/ComponentName; -HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(I)Landroid/content/ComponentName; -HSPLandroid/app/admin/DevicePolicyManager;->getResources()Landroid/app/admin/DevicePolicyResourcesManager; -HSPLandroid/app/admin/DevicePolicyManager;->getService()Landroid/app/admin/IDevicePolicyManager; -HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus()I -HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus(I)I -HSPLandroid/app/admin/DevicePolicyManager;->isAdminActive(Landroid/content/ComponentName;)Z -HSPLandroid/app/admin/DevicePolicyManager;->isAdminActiveAsUser(Landroid/content/ComponentName;I)Z -HSPLandroid/app/admin/DevicePolicyManager;->isCommonCriteriaModeEnabled(Landroid/content/ComponentName;)Z -HSPLandroid/app/admin/DevicePolicyManager;->isDeviceManaged()Z -HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerApp(Ljava/lang/String;)Z -HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnCallingUser(Ljava/lang/String;)Z -HSPLandroid/app/admin/DevicePolicyManager;->isOrganizationOwnedDeviceWithManagedProfile()Z -HSPLandroid/app/admin/DevicePolicyManager;->isParentInstance()Z -HSPLandroid/app/admin/DevicePolicyManager;->isProfileOwnerApp(Ljava/lang/String;)Z -HSPLandroid/app/admin/DevicePolicyManager;->myUserId()I -HSPLandroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V -HSPLandroid/app/admin/DevicePolicyResourcesManager;-><clinit>()V -HSPLandroid/app/admin/DevicePolicyResourcesManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V -HSPLandroid/app/admin/DevicePolicyResourcesManager;->getDrawable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerAsUser(I)Landroid/content/ComponentName; -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryptionStatus(Ljava/lang/String;I)I -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasDeviceOwner()Z -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z -HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isOrganizationOwnedDeviceWithManagedProfile()Z -HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager; -HSPLandroid/app/admin/ParcelableResource$1;-><init>()V -HSPLandroid/app/admin/ParcelableResource;-><clinit>()V -HSPLandroid/app/admin/ParcelableResource;->loadDefaultDrawable(Ljava/util/function/Supplier;)Landroid/graphics/drawable/Drawable; -HSPLandroid/app/assist/AssistContent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V -HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure; -HSPLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->fetchData()V -HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->go()V -HSPLandroid/app/assist/AssistStructure$ParcelTransferReader;->readParcel(II)Landroid/os/Parcel; -HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V -HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->pushViewStackEntry(Landroid/app/assist/AssistStructure$ViewNode;I)V -HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeNextEntryToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;Landroid/os/PooledStringWriter;)Z -HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V -HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcelInner(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)Z -HSPLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeView(Landroid/app/assist/AssistStructure$ViewNode;Landroid/os/Parcel;Landroid/os/PooledStringWriter;I)V -HSPLandroid/app/assist/AssistStructure$SendChannel;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>()V -HSPLandroid/app/assist/AssistStructure$ViewNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;I)V -HSPLandroid/app/assist/AssistStructure$ViewNode;->getAutofillId()Landroid/view/autofill/AutofillId; -HSPLandroid/app/assist/AssistStructure$ViewNode;->getChildCount()I -HSPLandroid/app/assist/AssistStructure$ViewNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[FZ)I -HSPLandroid/app/assist/AssistStructure$ViewNode;->writeString(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getChildCount()I -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getNodeText()Landroid/app/assist/AssistStructure$ViewNodeText; -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->newChild(I)Landroid/view/ViewStructure; -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillHints([Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillId(Landroid/view/autofill/AutofillId;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillType(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setChildCount(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClassName(Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClickable(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setContentDescription(Ljava/lang/CharSequence;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDataIsSensitive(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDimens(IIIIII)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setEnabled(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocusable(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocused(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHint(Ljava/lang/CharSequence;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHintIdEntry(Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setImportantForAutofill(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setInputType(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setLongClickable(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextEms(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextLength(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMinTextEms(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setOpaque(Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setReceiveContentMimeTypes([Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setText(Ljava/lang/CharSequence;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setTextIdEntry(Ljava/lang/String;)V -HSPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setVisibility(I)V -HSPLandroid/app/assist/AssistStructure$ViewNodeParcelable$1;-><init>()V -HSPLandroid/app/assist/AssistStructure$ViewNodeParcelable;-><clinit>()V -HSPLandroid/app/assist/AssistStructure$ViewNodeText;-><init>(Landroid/os/Parcel;Z)V -HSPLandroid/app/assist/AssistStructure$ViewNodeText;->isSimple()Z -HSPLandroid/app/assist/AssistStructure$ViewNodeText;->writeToParcel(Landroid/os/Parcel;ZZ)V -HSPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;)V -HSPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure;Landroid/view/ViewRootImpl;ZI)V -HSPLandroid/app/assist/AssistStructure$WindowNode;->resolveViewAutofillFlags(Landroid/content/Context;I)I -HSPLandroid/app/assist/AssistStructure$WindowNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;[F)V -HSPLandroid/app/assist/AssistStructure;-><init>()V -HSPLandroid/app/assist/AssistStructure;-><init>(Landroid/app/Activity;ZI)V -HSPLandroid/app/assist/AssistStructure;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/assist/AssistStructure;->clearSendChannel()V -HSPLandroid/app/assist/AssistStructure;->ensureData()V -HSPLandroid/app/assist/AssistStructure;->waitForReady()Z -HSPLandroid/app/assist/AssistStructure;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;)V -HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JLandroid/app/backup/IBackupCallback;I)V -HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;-><init>(Landroid/app/backup/BackupAgent;)V -HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;->run()V -HSPLandroid/app/backup/BackupAgent;-><init>()V -HSPLandroid/app/backup/BackupAgent;->attach(Landroid/content/Context;)V -HSPLandroid/app/backup/BackupAgent;->getHandler()Landroid/os/Handler; -HSPLandroid/app/backup/BackupAgent;->onBind()Landroid/os/IBinder; -HSPLandroid/app/backup/BackupAgent;->onCreate()V -HSPLandroid/app/backup/BackupAgent;->onCreate(Landroid/os/UserHandle;)V -HSPLandroid/app/backup/BackupAgent;->onCreate(Landroid/os/UserHandle;I)V -HSPLandroid/app/backup/BackupAgent;->onCreate(Landroid/os/UserHandle;II)V -HSPLandroid/app/backup/BackupAgent;->onDestroy()V -HSPLandroid/app/backup/BackupAgent;->waitForSharedPrefs()V -HSPLandroid/app/backup/BackupAgentHelper;-><init>()V -HSPLandroid/app/backup/BackupAgentHelper;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V -HSPLandroid/app/backup/BackupAgentHelper;->onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/app/backup/BackupDataOutput;-><init>(Ljava/io/FileDescriptor;JI)V -HSPLandroid/app/backup/BackupDataOutput;->finalize()V -HSPLandroid/app/backup/BackupDataOutput;->setKeyPrefix(Ljava/lang/String;)V -HSPLandroid/app/backup/BackupDataOutput;->writeEntityData([BI)I -HSPLandroid/app/backup/BackupDataOutput;->writeEntityHeader(Ljava/lang/String;I)I -HSPLandroid/app/backup/BackupHelperDispatcher;-><init>()V -HSPLandroid/app/backup/BackupHelperDispatcher;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V -HSPLandroid/app/backup/BackupHelperDispatcher;->doOneBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupHelperDispatcher$Header;Landroid/app/backup/BackupHelper;)V -HSPLandroid/app/backup/BackupHelperDispatcher;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/app/backup/BackupManager;-><init>(Landroid/content/Context;)V -HSPLandroid/app/backup/BackupManager;->checkServiceBinder()V -HSPLandroid/app/backup/BackupManager;->dataChanged()V -HSPLandroid/app/backup/BackupManager;->dataChanged(Ljava/lang/String;)V -HSPLandroid/app/backup/BackupRestoreEventLogger;-><init>(I)V -HSPLandroid/app/backup/FileBackupHelper;-><init>(Landroid/content/Context;[Ljava/lang/String;)V -HSPLandroid/app/backup/FileBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/app/backup/FileBackupHelperBase;->finalize()V -HSPLandroid/app/backup/FileBackupHelperBase;->performBackup_checked(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;->operationComplete(J)V -HSPLandroid/app/backup/IBackupCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupCallback; -HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->dataChanged(Ljava/lang/String;)V -HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->getCurrentTransport()Ljava/lang/String; -HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->isBackupServiceActive(I)Z -HSPLandroid/app/backup/IBackupManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManager; -HSPLandroid/app/backup/SharedPreferencesBackupHelper;-><init>(Landroid/content/Context;[Ljava/lang/String;)V -HSPLandroid/app/backup/SharedPreferencesBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/app/blob/BlobStoreManager;-><init>(Landroid/content/Context;Landroid/app/blob/IBlobStoreManager;)V -HSPLandroid/app/blob/BlobStoreManagerFrameworkInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object; -HSPLandroid/app/blob/BlobStoreManagerFrameworkInitializer;->lambda$initialize$0(Landroid/content/Context;Landroid/os/IBinder;)Landroid/app/blob/BlobStoreManager; -HSPLandroid/app/blob/IBlobStoreManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/blob/IBlobStoreManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/blob/IBlobStoreManager; -HSPLandroid/app/compat/ChangeIdStateCache;->getPlatformCompatService()Lcom/android/internal/compat/IPlatformCompat; -HSPLandroid/app/compat/ChangeIdStateCache;->recompute(Landroid/app/compat/ChangeIdStateQuery;)Ljava/lang/Boolean; -HSPLandroid/app/compat/ChangeIdStateCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/app/compat/ChangeIdStateQuery;-><init>(IJLjava/lang/String;II)V -HSPLandroid/app/compat/ChangeIdStateQuery;->byPackageName(JLjava/lang/String;I)Landroid/app/compat/ChangeIdStateQuery; -HSPLandroid/app/compat/ChangeIdStateQuery;->byUid(JI)Landroid/app/compat/ChangeIdStateQuery; -HSPLandroid/app/compat/ChangeIdStateQuery;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/compat/ChangeIdStateQuery;->hashCode()I -HSPLandroid/app/compat/CompatChanges;->isChangeEnabled(J)Z -HSPLandroid/app/compat/CompatChanges;->isChangeEnabled(JI)Z -HSPLandroid/app/compat/CompatChanges;->isChangeEnabled(JLjava/lang/String;Landroid/os/UserHandle;)Z -HSPLandroid/app/contentsuggestions/ContentSelection;-><init>(Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/app/contentsuggestions/ISelectionsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/contentsuggestions/ISelectionsCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/contentsuggestions/ISelectionsCallback; -HSPLandroid/app/contentsuggestions/SelectionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/contentsuggestions/SelectionsRequest; -HSPLandroid/app/contentsuggestions/SelectionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/contentsuggestions/SelectionsRequest;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/job/IJobCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStartMessage(IZ)V -HSPLandroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStopMessage(IZ)V -HSPLandroid/app/job/IJobCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/job/IJobCallback$Stub$Proxy;->completeWork(II)Z -HSPLandroid/app/job/IJobCallback$Stub$Proxy;->dequeueWork(I)Landroid/app/job/JobWorkItem; -HSPLandroid/app/job/IJobCallback$Stub$Proxy;->jobFinished(IZ)V -HSPLandroid/app/job/IJobCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobCallback; -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->cancel(Ljava/lang/String;I)V -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->enqueue(Ljava/lang/String;Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getAllPendingJobsInNamespace(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice; -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getPendingJob(Ljava/lang/String;I)Landroid/app/job/JobInfo; -HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->schedule(Ljava/lang/String;Landroid/app/job/JobInfo;)I -HSPLandroid/app/job/IJobScheduler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobScheduler; -HSPLandroid/app/job/IJobService$Stub;-><init>()V -HSPLandroid/app/job/IJobService$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/job/IJobService$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/app/job/IJobService$Stub;->getMaxTransactionId()I -HSPLandroid/app/job/IJobService$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/app/job/IJobService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo; -HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBackoffPolicy(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmBias(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipData(Landroid/app/job/JobInfo$Builder;)Landroid/content/ClipData; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmClipGrantFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmConstraintFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/PersistableBundle; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlags(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmFlexMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasEarlyConstraint(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmHasLateConstraint(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmInitialBackoffMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIntervalMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPeriodic(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmIsPersisted(Landroid/app/job/JobInfo$Builder;)Z -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobId(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmJobService(Landroid/app/job/JobInfo$Builder;)Landroid/content/ComponentName; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMaxExecutionDelayMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinLatencyMillis(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmMinimumNetworkChunkBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkDownloadBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkRequest(Landroid/app/job/JobInfo$Builder;)Landroid/net/NetworkRequest; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmNetworkUploadBytes(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmPriority(Landroid/app/job/JobInfo$Builder;)I -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTransientExtras(Landroid/app/job/JobInfo$Builder;)Landroid/os/Bundle; -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentMaxDelay(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUpdateDelay(Landroid/app/job/JobInfo$Builder;)J -HSPLandroid/app/job/JobInfo$Builder;->-$$Nest$fgetmTriggerContentUris(Landroid/app/job/JobInfo$Builder;)Ljava/util/ArrayList; -HSPLandroid/app/job/JobInfo$Builder;-><init>(ILandroid/content/ComponentName;)V -HSPLandroid/app/job/JobInfo$Builder;->addTriggerContentUri(Landroid/app/job/JobInfo$TriggerContentUri;)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo; -HSPLandroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setImportantWhileForeground(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setMinimumLatency(J)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setOverrideDeadline(J)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setPeriodic(J)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setPeriodic(JJ)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setPersisted(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setPrefetch(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setRequiredNetwork(Landroid/net/NetworkRequest;)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setRequiredNetworkType(I)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setRequiresBatteryNotLow(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setRequiresCharging(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setRequiresDeviceIdle(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setRequiresStorageNotLow(Z)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setTransientExtras(Landroid/os/Bundle;)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setTriggerContentMaxDelay(J)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$Builder;->setTriggerContentUpdateDelay(J)Landroid/app/job/JobInfo$Builder; -HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo$TriggerContentUri; -HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Landroid/app/job/JobInfo$TriggerContentUri; -HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/net/Uri;I)V -HSPLandroid/app/job/JobInfo$TriggerContentUri;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;)V+]Landroid/os/PersistableBundle;Landroid/os/PersistableBundle;]Landroid/os/Bundle;Landroid/os/Bundle; -HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo-IA;)V -HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/net/NetworkRequest$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/job/JobInfo;->enforceValidity(ZZZZ)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/ComponentName;Landroid/content/ComponentName; -HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle; -HSPLandroid/app/job/JobInfo;->getFlags()I -HSPLandroid/app/job/JobInfo;->getFlexMillis()J -HSPLandroid/app/job/JobInfo;->getId()I -HSPLandroid/app/job/JobInfo;->getIntervalMillis()J -HSPLandroid/app/job/JobInfo;->getMaxExecutionDelayMillis()J -HSPLandroid/app/job/JobInfo;->getMinBackoffMillis()J -HSPLandroid/app/job/JobInfo;->getMinFlexMillis()J -HSPLandroid/app/job/JobInfo;->getMinLatencyMillis()J -HSPLandroid/app/job/JobInfo;->getMinPeriodMillis()J -HSPLandroid/app/job/JobInfo;->getNetworkType()I -HSPLandroid/app/job/JobInfo;->getRequiredNetwork()Landroid/net/NetworkRequest; -HSPLandroid/app/job/JobInfo;->getService()Landroid/content/ComponentName; -HSPLandroid/app/job/JobInfo;->isPeriodic()Z -HSPLandroid/app/job/JobInfo;->isPersisted()Z -HSPLandroid/app/job/JobInfo;->isRequireCharging()Z -HSPLandroid/app/job/JobInfo;->isRequireDeviceIdle()Z -HSPLandroid/app/job/JobInfo;->validateTraceTag(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/app/job/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/net/NetworkRequest;Landroid/net/NetworkRequest;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobParameters; -HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/job/JobParameters;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/job/JobParameters;->completeWork(Landroid/app/job/JobWorkItem;)V -HSPLandroid/app/job/JobParameters;->dequeueWork()Landroid/app/job/JobWorkItem; -HSPLandroid/app/job/JobParameters;->getCallback()Landroid/app/job/IJobCallback; -HSPLandroid/app/job/JobParameters;->getExtras()Landroid/os/PersistableBundle; -HSPLandroid/app/job/JobParameters;->getJobId()I -HSPLandroid/app/job/JobParameters;->getNetwork()Landroid/net/Network; -HSPLandroid/app/job/JobParameters;->getStopReason()I -HSPLandroid/app/job/JobParameters;->getTransientExtras()Landroid/os/Bundle; -HSPLandroid/app/job/JobParameters;->getTriggeredContentAuthorities()[Ljava/lang/String; -HSPLandroid/app/job/JobParameters;->getTriggeredContentUris()[Landroid/net/Uri; -HSPLandroid/app/job/JobParameters;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/job/JobScheduler;-><init>()V -HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object; -HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda1;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object; -HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda2;->createService(Landroid/content/Context;)Ljava/lang/Object; -HSPLandroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda3;->createService(Landroid/content/Context;)Ljava/lang/Object; -HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;Landroid/os/IBinder;)Landroid/app/job/JobScheduler; -HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;Landroid/os/IBinder;)Landroid/os/DeviceIdleManager; -HSPLandroid/app/job/JobService$1;-><init>(Landroid/app/job/JobService;Landroid/app/Service;)V -HSPLandroid/app/job/JobService$1;->onStartJob(Landroid/app/job/JobParameters;)Z -HSPLandroid/app/job/JobService$1;->onStopJob(Landroid/app/job/JobParameters;)Z -HSPLandroid/app/job/JobService;-><init>()V -HSPLandroid/app/job/JobService;->jobFinished(Landroid/app/job/JobParameters;Z)V -HSPLandroid/app/job/JobService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder; -HSPLandroid/app/job/JobServiceEngine$JobHandler;-><init>(Landroid/app/job/JobServiceEngine;Landroid/os/Looper;)V -HSPLandroid/app/job/JobServiceEngine$JobHandler;->ackStartMessage(Landroid/app/job/JobParameters;Z)V -HSPLandroid/app/job/JobServiceEngine$JobHandler;->ackStopMessage(Landroid/app/job/JobParameters;Z)V -HSPLandroid/app/job/JobServiceEngine$JobHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/app/job/JobServiceEngine$JobInterface;-><init>(Landroid/app/job/JobServiceEngine;)V -HSPLandroid/app/job/JobServiceEngine$JobInterface;->startJob(Landroid/app/job/JobParameters;)V -HSPLandroid/app/job/JobServiceEngine$JobInterface;->stopJob(Landroid/app/job/JobParameters;)V -HSPLandroid/app/job/JobServiceEngine;-><init>(Landroid/app/Service;)V -HSPLandroid/app/job/JobServiceEngine;->getBinder()Landroid/os/IBinder; -HSPLandroid/app/job/JobServiceEngine;->jobFinished(Landroid/app/job/JobParameters;Z)V -HSPLandroid/app/job/JobWorkItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobWorkItem; -HSPLandroid/app/job/JobWorkItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/content/Intent;)V -HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/content/Intent;JJJ)V -HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/job/JobWorkItem;->enforceValidity(Z)V -HSPLandroid/app/job/JobWorkItem;->getIntent()Landroid/content/Intent; -HSPLandroid/app/job/JobWorkItem;->getWorkId()I -HSPLandroid/app/job/JobWorkItem;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionContext; -HSPLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/prediction/AppPredictionContext;->getUiSurface()Ljava/lang/String; -HSPLandroid/app/prediction/AppPredictionContext;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionSessionId; -HSPLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/prediction/AppPredictionSessionId;->equals(Ljava/lang/Object;)Z -HSPLandroid/app/prediction/AppPredictionSessionId;->hashCode()I -HSPLandroid/app/prediction/AppPredictionSessionId;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTarget; -HSPLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/prediction/AppTarget$Builder;-><init>(Landroid/app/prediction/AppTargetId;Ljava/lang/String;Landroid/os/UserHandle;)V -HSPLandroid/app/prediction/AppTarget$Builder;->build()Landroid/app/prediction/AppTarget; -HSPLandroid/app/prediction/AppTarget$Builder;->setClassName(Ljava/lang/String;)Landroid/app/prediction/AppTarget$Builder; -HSPLandroid/app/prediction/AppTarget;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/prediction/AppTarget;->getClassName()Ljava/lang/String; -HSPLandroid/app/prediction/AppTarget;->getPackageName()Ljava/lang/String; -HSPLandroid/app/prediction/AppTarget;->getShortcutInfo()Landroid/content/pm/ShortcutInfo; -HSPLandroid/app/prediction/AppTarget;->getUser()Landroid/os/UserHandle; -HSPLandroid/app/prediction/AppTarget;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetEvent; -HSPLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/prediction/AppTargetEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetId; -HSPLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/prediction/AppTargetId;-><init>(Ljava/lang/String;)V -HSPLandroid/app/prediction/AppTargetId;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionCallback; -HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityConfigurationChangeItem; -HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/ActivityLifecycleItem;-><init>()V -HSPLandroid/app/servertransaction/ActivityRelaunchItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityResultItem; -HSPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/ActivityResultItem;->getPostExecutionState()I -HSPLandroid/app/servertransaction/ActivityTransactionItem;-><init>()V -HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ClientTransaction; -HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ClientTransaction-IA;)V -HSPLandroid/app/servertransaction/ClientTransaction;->getCallbacks()Ljava/util/List; -HSPLandroid/app/servertransaction/ClientTransaction;->getLifecycleStateRequest()Landroid/app/servertransaction/ActivityLifecycleItem; -HSPLandroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V -HSPLandroid/app/servertransaction/ClientTransactionItem;-><init>()V -HSPLandroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I -HSPLandroid/app/servertransaction/ClientTransactionItem;->isActivityLifecycleItem()Z -HSPLandroid/app/servertransaction/ClientTransactionItem;->shouldHaveDefinedPreExecutionState()Z -HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ConfigurationChangeItem; -HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ConfigurationChangeItem-IA;)V -HSPLandroid/app/servertransaction/DestroyActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/DestroyActivityItem; -HSPLandroid/app/servertransaction/DestroyActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/DestroyActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/DestroyActivityItem;->getTargetState()I -HSPLandroid/app/servertransaction/LaunchActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/LaunchActivityItem; -HSPLandroid/app/servertransaction/LaunchActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/LaunchActivityItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/NewIntentItem; -HSPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/NewIntentItem;->getPostExecutionState()I -HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/PauseActivityItem; -HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/servertransaction/PauseActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/PauseActivityItem;->getTargetState()I -HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;-><init>()V -HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->run()V -HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V -HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setDescription(Ljava/lang/CharSequence;)V -HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setPersistentState(Landroid/os/PersistableBundle;)V -HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setState(Landroid/os/Bundle;)V -HSPLandroid/app/servertransaction/PendingTransactionActions;-><init>()V -HSPLandroid/app/servertransaction/PendingTransactionActions;->clear()V -HSPLandroid/app/servertransaction/PendingTransactionActions;->getOldState()Landroid/os/Bundle; -HSPLandroid/app/servertransaction/PendingTransactionActions;->getStopInfo()Landroid/app/servertransaction/PendingTransactionActions$StopInfo; -HSPLandroid/app/servertransaction/PendingTransactionActions;->setCallOnPostCreate(Z)V -HSPLandroid/app/servertransaction/PendingTransactionActions;->setOldState(Landroid/os/Bundle;)V -HSPLandroid/app/servertransaction/PendingTransactionActions;->setRestoreInstanceState(Z)V -HSPLandroid/app/servertransaction/PendingTransactionActions;->setStopInfo(Landroid/app/servertransaction/PendingTransactionActions$StopInfo;)V -HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldCallOnPostCreate()Z -HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldRestoreInstanceState()Z -HSPLandroid/app/servertransaction/ResumeActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ResumeActivityItem; -HSPLandroid/app/servertransaction/ResumeActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/ResumeActivityItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/servertransaction/ResumeActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/ResumeActivityItem;->getTargetState()I -HSPLandroid/app/servertransaction/StartActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/StartActivityItem; -HSPLandroid/app/servertransaction/StartActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/StartActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/StartActivityItem;->getTargetState()I -HSPLandroid/app/servertransaction/StopActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/StopActivityItem; -HSPLandroid/app/servertransaction/StopActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/StopActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/StopActivityItem;->getTargetState()I -HSPLandroid/app/servertransaction/TopResumedActivityChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/TopResumedActivityChangeItem; -HSPLandroid/app/servertransaction/TopResumedActivityChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V -HSPLandroid/app/servertransaction/TransactionExecutor;-><init>(Landroid/app/ClientTransactionHandler;)V -HSPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;ILandroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;IZLandroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/servertransaction/TransactionExecutor;->execute(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/servertransaction/TransactionExecutor;->executeCallbacks(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/servertransaction/TransactionExecutor;->executeLifecycleState(Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/servertransaction/TransactionExecutor;->executeNonLifecycleItem(Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransactionItem;Z)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/app/servertransaction/TransactionExecutorHelper;Landroid/app/servertransaction/TransactionExecutorHelper;]Landroid/app/ClientTransactionHandler;Landroid/app/ActivityThread;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/servertransaction/ClientTransactionItem;megamorphic_types]Landroid/content/Context;missing_types]Ljava/util/Map;Ljava/util/Collections$SynchronizedMap;]Landroid/app/servertransaction/TransactionExecutor;Landroid/app/servertransaction/TransactionExecutor; -HSPLandroid/app/servertransaction/TransactionExecutor;->executeTransactionItems(Landroid/app/servertransaction/ClientTransaction;)V+]Landroid/app/servertransaction/ClientTransaction;Landroid/app/servertransaction/ClientTransaction;]Ljava/util/List;Ljava/util/ArrayList;]Landroid/app/servertransaction/ClientTransactionItem;megamorphic_types -HSPLandroid/app/servertransaction/TransactionExecutor;->performLifecycleSequence(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/util/IntArray;Landroid/app/servertransaction/ClientTransaction;)V -HSPLandroid/app/servertransaction/TransactionExecutorHelper;-><init>()V -HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getClosestOfStates(Landroid/app/ActivityThread$ActivityClientRecord;[I)I -HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getClosestPreExecutionState(Landroid/app/ActivityThread$ActivityClientRecord;I)I -HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getLifecyclePath(IIZ)Landroid/util/IntArray; -HSPLandroid/app/servertransaction/TransactionExecutorHelper;->lastCallbackRequestingState(Landroid/app/servertransaction/ClientTransaction;)I -HSPLandroid/app/slice/ISliceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSlices(Ljava/lang/String;)[Landroid/net/Uri; -HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->grantSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V -HSPLandroid/app/slice/ISliceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/slice/ISliceManager; -HSPLandroid/app/slice/Slice;->getHints()Ljava/util/List; -HSPLandroid/app/slice/Slice;->getItems()Ljava/util/List; -HSPLandroid/app/slice/SliceItem;->getAction()Landroid/app/PendingIntent; -HSPLandroid/app/slice/SliceItem;->getFormat()Ljava/lang/String; -HSPLandroid/app/slice/SliceItem;->getHints()Ljava/util/List; -HSPLandroid/app/slice/SliceItem;->getText()Ljava/lang/CharSequence; -HSPLandroid/app/slice/SliceManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/app/slice/SliceManager;->bindSlice(Landroid/net/Uri;Ljava/util/Set;)Landroid/app/slice/Slice; -HSPLandroid/app/slice/SliceManager;->getPinnedSlices()Ljava/util/List; -HSPLandroid/app/slice/SliceManager;->grantSlicePermission(Ljava/lang/String;Landroid/net/Uri;)V -HSPLandroid/app/slice/SliceProvider;-><init>([Ljava/lang/String;)V -HSPLandroid/app/slice/SliceProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V -HSPLandroid/app/slice/SliceProvider;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/app/slice/SliceProvider;->handleBindSlice(Landroid/net/Uri;Ljava/util/List;Ljava/lang/String;II)Landroid/app/slice/Slice; -HSPLandroid/app/slice/SliceProvider;->onBindSliceStrict(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice; -HSPLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/slice/SliceSpec; -HSPLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/slice/SliceSpec$1;->newArray(I)[Landroid/app/slice/SliceSpec; -HSPLandroid/app/slice/SliceSpec$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/app/slice/SliceSpec;-><init>(Ljava/lang/String;I)V -HSPLandroid/app/slice/SliceSpec;->getRevision()I -HSPLandroid/app/slice/SliceSpec;->getType()Ljava/lang/String; -HSPLandroid/app/slice/SliceSpec;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/smartspace/SmartspaceAction$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceAction;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceConfig$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceConfig;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceSessionId$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceSessionId;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceTarget$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceTarget;-><clinit>()V -HSPLandroid/app/smartspace/SmartspaceTargetEvent$1;-><init>()V -HSPLandroid/app/smartspace/SmartspaceTargetEvent;-><clinit>()V -HSPLandroid/app/time/TimeZoneCapabilities$Builder;-><init>(Landroid/os/UserHandle;)V -HSPLandroid/app/time/TimeZoneCapabilities$Builder;->build()Landroid/app/time/TimeZoneCapabilities; -HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureAutoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; -HSPLandroid/app/time/TimeZoneCapabilities$Builder;->setConfigureGeoDetectionEnabledCapability(I)Landroid/app/time/TimeZoneCapabilities$Builder; -HSPLandroid/app/time/TimeZoneCapabilities$Builder;->verifyCapabilitySet(ILjava/lang/String;)V -HSPLandroid/app/time/TimeZoneCapabilities;-><init>(Landroid/app/time/TimeZoneCapabilities$Builder;)V -HSPLandroid/app/time/TimeZoneConfiguration$Builder;-><init>()V -HSPLandroid/app/time/TimeZoneConfiguration$Builder;->build()Landroid/app/time/TimeZoneConfiguration; -HSPLandroid/app/time/TimeZoneConfiguration;-><init>(Landroid/app/time/TimeZoneConfiguration$Builder;)V -HSPLandroid/app/timedetector/ITimeDetectorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/timedetector/ITimeDetectorService; -HSPLandroid/app/timedetector/TimeDetectorImpl;-><init>()V -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;-><init>(I)V -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->build()Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion; -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->setMatchType(I)Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder; -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->setQuality(I)Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder; -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->setZoneId(Ljava/lang/String;)Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder; -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;->validate()V -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder;)V -HSPLandroid/app/timezonedetector/TelephonyTimeZoneSuggestion;->toString()Ljava/lang/String; -HSPLandroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceLocked(II)Z -HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceSecure(II)Z -HSPLandroid/app/trust/ITrustManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustManager; -HSPLandroid/app/trust/TrustManager;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/AppStandbyInfo; -HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/usage/AppStandbyInfo;-><init>(Ljava/lang/String;I)V -HSPLandroid/app/usage/AppStandbyInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;+]Landroid/app/usage/IStorageStatsManager$Stub$Proxy;Landroid/app/usage/IStorageStatsManager$Stub$Proxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IStorageStatsManager; -HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I -HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents; -HSPLandroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager; -HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/StorageStats; -HSPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/usage/StorageStats;->getAppBytes()J -HSPLandroid/app/usage/StorageStats;->getCacheBytes()J -HSPLandroid/app/usage/StorageStats;->getDataBytes()J -HSPLandroid/app/usage/StorageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IStorageStatsManager;)V -HSPLandroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/util/UUID;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats; -HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageEvents; -HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/usage/UsageEvents$Event;-><init>()V -HSPLandroid/app/usage/UsageEvents$Event;->getClassName()Ljava/lang/String; -HSPLandroid/app/usage/UsageEvents$Event;->getEventType()I -HSPLandroid/app/usage/UsageEvents$Event;->getPackageName()Ljava/lang/String; -HSPLandroid/app/usage/UsageEvents$Event;->getTimeStamp()J -HSPLandroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V -HSPLandroid/app/usage/UsageEvents;->getNextEvent(Landroid/app/usage/UsageEvents$Event;)Z -HSPLandroid/app/usage/UsageEvents;->hasNextEvent()Z -HSPLandroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V -HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageStats;+]Landroid/os/Bundle;Landroid/os/Bundle;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Set;Landroid/util/MapCollections$KeySet; -HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/app/usage/UsageStats$1;->readBundleToEventMap(Landroid/os/Bundle;Landroid/util/ArrayMap;)V -HSPLandroid/app/usage/UsageStats;-><init>()V -HSPLandroid/app/usage/UsageStats;->getPackageName()Ljava/lang/String; -HSPLandroid/app/usage/UsageStats;->update(Ljava/lang/String;JII)V -HSPLandroid/app/usage/UsageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IUsageStatsManager;)V -HSPLandroid/app/usage/UsageStatsManager;->queryEvents(JJ)Landroid/app/usage/UsageEvents; -HSPLandroid/app/usage/UsageStatsManager;->queryUsageStats(IJJ)Ljava/util/List; -HSPLandroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda3;-><init>()V -HSPLandroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda5;-><init>()V -HSPLandroid/appwidget/AppWidgetManager;-><init>(Landroid/content/Context;Lcom/android/internal/appwidget/IAppWidgetService;)V -HSPLandroid/appwidget/AppWidgetManager;->getAppWidgetIds(Landroid/content/ComponentName;)[I -HSPLandroid/appwidget/AppWidgetManager;->getInstalledProvidersForPackage(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List; -HSPLandroid/appwidget/AppWidgetManager;->getInstalledProvidersForProfile(ILandroid/os/UserHandle;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/appwidget/AppWidgetManager;->getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager; -HSPLandroid/appwidget/AppWidgetManager;->isBoundWidgetPackage(Ljava/lang/String;I)Z -HSPLandroid/appwidget/AppWidgetManager;->lambda$new$0(Landroid/appwidget/AppWidgetProviderInfo;)Landroid/content/ComponentName; -HSPLandroid/appwidget/AppWidgetManager;->lambda$new$1(Landroid/content/ComponentName;)Z -HSPLandroid/appwidget/AppWidgetManager;->lambda$new$2(I)[Landroid/content/ComponentName; -HSPLandroid/appwidget/AppWidgetManager;->lambda$new$3()V -HSPLandroid/appwidget/AppWidgetProvider;-><init>()V -HSPLandroid/appwidget/AppWidgetProvider;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V -HSPLandroid/appwidget/AppWidgetProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/appwidget/AppWidgetProviderInfo; -HSPLandroid/appwidget/AppWidgetProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/appwidget/AppWidgetProviderInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle; -HSPLandroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V -HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager; -HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy;->getDeviceIdForDisplayId(I)I -HSPLandroid/companion/virtual/IVirtualDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/virtual/IVirtualDeviceManager; -HSPLandroid/companion/virtual/VirtualDeviceManager;-><init>(Landroid/companion/virtual/IVirtualDeviceManager;Landroid/content/Context;)V -HSPLandroid/companion/virtual/VirtualDeviceManager;->getDeviceIdForDisplayId(I)I -HSPLandroid/companion/virtual/flags/FeatureFlagsImpl;-><init>()V -HSPLandroid/companion/virtual/flags/FeatureFlagsImpl;->enableNativeVdm()Z -HSPLandroid/companion/virtual/flags/Flags;-><clinit>()V -HSPLandroid/companion/virtual/flags/Flags;->enableNativeVdm()Z+]Landroid/companion/virtual/flags/FeatureFlags;Landroid/companion/virtual/flags/FeatureFlagsImpl; -HSPLandroid/compat/Compatibility$BehaviorChangeDelegate;->isChangeEnabled(J)Z -HSPLandroid/compat/Compatibility;->isChangeEnabled(J)Z -HSPLandroid/compat/Compatibility;->setBehaviorChangeDelegate(Landroid/compat/Compatibility$BehaviorChangeDelegate;)V -HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V -HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->isCallerSystem()Z -HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V -HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;-><init>(Landroid/content/AbstractThreadedSyncAdapter;Ljava/lang/String;Landroid/content/SyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V -HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->isCanceled()Z -HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->run()V -HSPLandroid/content/AbstractThreadedSyncAdapter;->-$$Nest$mtoSyncKey(Landroid/content/AbstractThreadedSyncAdapter;Landroid/accounts/Account;)Landroid/accounts/Account; -HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;Z)V -HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;ZZ)V -HSPLandroid/content/AbstractThreadedSyncAdapter;->getContext()Landroid/content/Context; -HSPLandroid/content/AbstractThreadedSyncAdapter;->getSyncAdapterBinder()Landroid/os/IBinder; -HSPLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled()V -HSPLandroid/content/AbstractThreadedSyncAdapter;->toSyncKey(Landroid/accounts/Account;)Landroid/accounts/Account; -HSPLandroid/content/AsyncQueryHandler$WorkerHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/content/AsyncQueryHandler;-><init>(Landroid/content/ContentResolver;)V -HSPLandroid/content/AsyncQueryHandler;->createHandler(Landroid/os/Looper;)Landroid/os/Handler; -HSPLandroid/content/AsyncQueryHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/content/AsyncQueryHandler;->startQuery(ILjava/lang/Object;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/AttributionSource$1;-><init>()V -HSPLandroid/content/AttributionSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AttributionSource; -HSPLandroid/content/AttributionSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/AttributionSource$ScopedParcelState;-><init>(Landroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource$ScopedParcelState;->close()V -HSPLandroid/content/AttributionSource$ScopedParcelState;->getParcel()Landroid/os/Parcel; -HSPLandroid/content/AttributionSource;-><clinit>()V -HSPLandroid/content/AttributionSource;-><init>(IILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;[Ljava/lang/String;ILandroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource;-><init>(IILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;[Ljava/lang/String;Landroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource;-><init>(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;ILandroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)V -HSPLandroid/content/AttributionSource;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/util/Set;Landroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSource;Landroid/content/AttributionSource;)V -HSPLandroid/content/AttributionSource;-><init>(Landroid/content/AttributionSourceState;)V -HSPLandroid/content/AttributionSource;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/AttributionSource;->asScopedParcelState()Landroid/content/AttributionSource$ScopedParcelState; -HSPLandroid/content/AttributionSource;->asState()Landroid/content/AttributionSourceState; -HSPLandroid/content/AttributionSource;->checkCallingPid()Z -HSPLandroid/content/AttributionSource;->checkCallingUid()Z -HSPLandroid/content/AttributionSource;->enforceCallingPid()V -HSPLandroid/content/AttributionSource;->enforceCallingUid()V -HSPLandroid/content/AttributionSource;->getAttributionTag()Ljava/lang/String; -HSPLandroid/content/AttributionSource;->getNext()Landroid/content/AttributionSource; -HSPLandroid/content/AttributionSource;->getPackageName()Ljava/lang/String; -HSPLandroid/content/AttributionSource;->getRenouncedPermissions()Ljava/util/Set; -HSPLandroid/content/AttributionSource;->getToken()Landroid/os/IBinder; -HSPLandroid/content/AttributionSource;->getUid()I -HSPLandroid/content/AttributionSource;->myAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/content/AttributionSource;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/AttributionSourceState$1;-><init>()V -HSPLandroid/content/AttributionSourceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AttributionSourceState; -HSPLandroid/content/AttributionSourceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/AttributionSourceState$1;->newArray(I)[Landroid/content/AttributionSourceState; -HSPLandroid/content/AttributionSourceState$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/AttributionSourceState;-><clinit>()V -HSPLandroid/content/AttributionSourceState;-><init>()V -HSPLandroid/content/AttributionSourceState;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/content/AttributionSourceState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AutofillOptions; -HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/AutofillOptions;-><init>(IZ)V -HSPLandroid/content/AutofillOptions;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z -HSPLandroid/content/BroadcastReceiver$PendingResult$1;-><init>(Landroid/content/BroadcastReceiver$PendingResult;Landroid/app/IActivityManager;)V -HSPLandroid/content/BroadcastReceiver$PendingResult$1;->run()V -HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V -HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZZLandroid/os/IBinder;IIILjava/lang/String;)V -HSPLandroid/content/BroadcastReceiver$PendingResult;->checkSynchronousHint()V -HSPLandroid/content/BroadcastReceiver$PendingResult;->finish()V -HSPLandroid/content/BroadcastReceiver$PendingResult;->sendFinished(Landroid/app/IActivityManager;)V -HSPLandroid/content/BroadcastReceiver$PendingResult;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V -HSPLandroid/content/BroadcastReceiver$PendingResult;->setResultCode(I)V -HSPLandroid/content/BroadcastReceiver;-><init>()V -HSPLandroid/content/BroadcastReceiver;->checkSynchronousHint()V -HSPLandroid/content/BroadcastReceiver;->getDebugUnregister()Z -HSPLandroid/content/BroadcastReceiver;->getPendingResult()Landroid/content/BroadcastReceiver$PendingResult; -HSPLandroid/content/BroadcastReceiver;->getResultCode()I -HSPLandroid/content/BroadcastReceiver;->getResultExtras(Z)Landroid/os/Bundle; -HSPLandroid/content/BroadcastReceiver;->getSendingUserId()I -HSPLandroid/content/BroadcastReceiver;->goAsync()Landroid/content/BroadcastReceiver$PendingResult; -HSPLandroid/content/BroadcastReceiver;->isInitialStickyBroadcast()Z -HSPLandroid/content/BroadcastReceiver;->isOrderedBroadcast()Z -HSPLandroid/content/BroadcastReceiver;->setPendingResult(Landroid/content/BroadcastReceiver$PendingResult;)V -HSPLandroid/content/BroadcastReceiver;->setResultCode(I)V -HSPLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ClipData; -HSPLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/ClipData$Item;-><init>(Landroid/content/Intent;)V -HSPLandroid/content/ClipData$Item;->getText()Ljava/lang/CharSequence; -HSPLandroid/content/ClipData;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/ClipData;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;Landroid/content/ClipData$Item;)V -HSPLandroid/content/ClipData;->getDescription()Landroid/content/ClipDescription; -HSPLandroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item; -HSPLandroid/content/ClipData;->getItemCount()I -HSPLandroid/content/ClipData;->isStyledText()Z -HSPLandroid/content/ClipData;->newIntent(Ljava/lang/CharSequence;Landroid/content/Intent;)Landroid/content/ClipData; -HSPLandroid/content/ClipData;->prepareToLeaveProcess(ZI)V -HSPLandroid/content/ClipData;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/ClipDescription;-><init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V -HSPLandroid/content/ClipDescription;->compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z -HSPLandroid/content/ClipDescription;->confidencesToBundle()Landroid/os/Bundle; -HSPLandroid/content/ClipDescription;->readBundleToConfidences(Landroid/os/Bundle;)V -HSPLandroid/content/ClipDescription;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V -HSPLandroid/content/ClipboardManager;->addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V -HSPLandroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData; -HSPLandroid/content/ClipboardManager;->getPrimaryClipDescription()Landroid/content/ClipDescription; -HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V -HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;-><init>(Landroid/content/res/Configuration;)V -HSPLandroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V -HSPLandroid/content/ComponentCallbacksController;-><init>()V -HSPLandroid/content/ComponentCallbacksController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/content/ComponentCallbacksController;->dispatchLowMemory()V -HSPLandroid/content/ComponentCallbacksController;->dispatchTrimMemory(I)V -HSPLandroid/content/ComponentCallbacksController;->forAllComponentCallbacks(Ljava/util/function/Consumer;)V -HSPLandroid/content/ComponentCallbacksController;->lambda$dispatchConfigurationChanged$0(Landroid/content/res/Configuration;Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/ComponentCallbacksController;->lambda$dispatchTrimMemory$1(ILandroid/content/ComponentCallbacks;)V -HSPLandroid/content/ComponentCallbacksController;->registerCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/ComponentCallbacksController;->unregisterCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName; -HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/ComponentName$1;->newArray(I)[Landroid/content/ComponentName; -HSPLandroid/content/ComponentName$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V -HSPLandroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/String;)V -HSPLandroid/content/ComponentName;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/ComponentName;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V -HSPLandroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ComponentName;->appendShortClassName(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ComponentName;->compareTo(Landroid/content/ComponentName;)I -HSPLandroid/content/ComponentName;->createRelative(Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName; -HSPLandroid/content/ComponentName;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/ComponentName;->flattenToShortString()Ljava/lang/String; -HSPLandroid/content/ComponentName;->flattenToString()Ljava/lang/String; -HSPLandroid/content/ComponentName;->getClassName()Ljava/lang/String; -HSPLandroid/content/ComponentName;->getPackageName()Ljava/lang/String; -HSPLandroid/content/ComponentName;->getShortClassName()Ljava/lang/String; -HSPLandroid/content/ComponentName;->hashCode()I -HSPLandroid/content/ComponentName;->readFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName; -HSPLandroid/content/ComponentName;->toShortString()Ljava/lang/String; -HSPLandroid/content/ComponentName;->toString()Ljava/lang/String; -HSPLandroid/content/ComponentName;->unflattenFromString(Ljava/lang/String;)Landroid/content/ComponentName;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/content/ComponentName;->writeToParcel(Landroid/content/ComponentName;Landroid/os/Parcel;)V -HSPLandroid/content/ComponentName;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions; -HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1;->apply(I)Ljava/lang/Object; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->-$$Nest$smcreateFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions$ContentProtectionOptions; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;-><init>(ZILjava/util/List;Ljava/util/List;I)V -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions$ContentProtectionOptions; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->createGroupsFromParcel(Landroid/os/Parcel;)Ljava/util/List;+]Ljava/util/stream/Stream;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$11;,Ljava/util/stream/ReferencePipeline$15;,Ljava/util/stream/IntPipeline$1;]Ljava/util/stream/IntStream;Ljava/util/stream/IntPipeline$Head;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->lambda$createGroupsFromParcel$0(I)Ljava/util/ArrayList; -HSPLandroid/content/ContentCaptureOptions$ContentProtectionOptions;->writeToParcel(Landroid/os/Parcel;)V -HSPLandroid/content/ContentCaptureOptions;-><init>(IIIIILandroid/util/ArraySet;)V -HSPLandroid/content/ContentCaptureOptions;-><init>(ZIIIIIZZLandroid/content/ContentCaptureOptions$ContentProtectionOptions;Landroid/util/ArraySet;)V -HSPLandroid/content/ContentCaptureOptions;->isWhitelisted(Landroid/content/Context;)Z -HSPLandroid/content/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ContentProvider$Transport;-><init>(Landroid/content/ContentProvider;)V -HSPLandroid/content/ContentProvider$Transport;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal; -HSPLandroid/content/ContentProvider$Transport;->delete(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/os/Bundle;)I -HSPLandroid/content/ContentProvider$Transport;->enforceFilePermission(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;)V -HSPLandroid/content/ContentProvider$Transport;->enforceReadPermission(Landroid/content/AttributionSource;Landroid/net/Uri;)I -HSPLandroid/content/ContentProvider$Transport;->enforceWritePermission(Landroid/content/AttributionSource;Landroid/net/Uri;)I -HSPLandroid/content/ContentProvider$Transport;->getContentProvider()Landroid/content/ContentProvider; -HSPLandroid/content/ContentProvider$Transport;->getProviderName()Ljava/lang/String; -HSPLandroid/content/ContentProvider$Transport;->insert(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri; -HSPLandroid/content/ContentProvider$Transport;->openTypedAssetFile(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentProvider$Transport;->query(Landroid/content/AttributionSource;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentProvider$Transport;->update(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I -HSPLandroid/content/ContentProvider;->-$$Nest$fgetmTransport(Landroid/content/ContentProvider;)Landroid/content/ContentProvider$Transport; -HSPLandroid/content/ContentProvider;->-$$Nest$mmaybeGetUriWithoutUserId(Landroid/content/ContentProvider;Landroid/net/Uri;)Landroid/net/Uri; -HSPLandroid/content/ContentProvider;->-$$Nest$msetCallingAttributionSource(Landroid/content/ContentProvider;Landroid/content/AttributionSource;)Landroid/content/AttributionSource; -HSPLandroid/content/ContentProvider;->-$$Nest$mvalidateIncomingAuthority(Landroid/content/ContentProvider;Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->-$$Nest$smtraceBegin(JLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;-><init>()V -HSPLandroid/content/ContentProvider;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V -HSPLandroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V -HSPLandroid/content/ContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentProvider;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSource;)I -HSPLandroid/content/ContentProvider;->checkUser(IILandroid/content/Context;)Z -HSPLandroid/content/ContentProvider;->clearCallingIdentity()Landroid/content/ContentProvider$CallingIdentity; -HSPLandroid/content/ContentProvider;->coerceToLocalContentProvider(Landroid/content/IContentProvider;)Landroid/content/ContentProvider; -HSPLandroid/content/ContentProvider;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I -HSPLandroid/content/ContentProvider;->deniedAccessSystemUserOnlyProvider(IZ)Z -HSPLandroid/content/ContentProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->enforceReadPermissionInner(Landroid/net/Uri;Landroid/content/AttributionSource;)I -HSPLandroid/content/ContentProvider;->enforceWritePermissionInner(Landroid/net/Uri;Landroid/content/AttributionSource;)I -HSPLandroid/content/ContentProvider;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/ContentProvider;->getCallingAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/content/ContentProvider;->getCallingPackage()Ljava/lang/String; -HSPLandroid/content/ContentProvider;->getContext()Landroid/content/Context; -HSPLandroid/content/ContentProvider;->getIContentProvider()Landroid/content/IContentProvider; -HSPLandroid/content/ContentProvider;->getPathPermissions()[Landroid/content/pm/PathPermission; -HSPLandroid/content/ContentProvider;->getReadPermission()Ljava/lang/String; -HSPLandroid/content/ContentProvider;->getUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri; -HSPLandroid/content/ContentProvider;->getUserIdFromAuthority(Ljava/lang/String;I)I -HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;)I -HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;I)I -HSPLandroid/content/ContentProvider;->getWritePermission()Ljava/lang/String; -HSPLandroid/content/ContentProvider;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri; -HSPLandroid/content/ContentProvider;->matchesOurAuthorities(Ljava/lang/String;)Z -HSPLandroid/content/ContentProvider;->maybeAddUserId(Landroid/net/Uri;I)Landroid/net/Uri; -HSPLandroid/content/ContentProvider;->maybeGetUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri; -HSPLandroid/content/ContentProvider;->onCallingPackageChanged()V -HSPLandroid/content/ContentProvider;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/content/ContentProvider;->onLowMemory()V -HSPLandroid/content/ContentProvider;->onTrimMemory(I)V -HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentProvider;->restoreCallingIdentity(Landroid/content/ContentProvider$CallingIdentity;)V -HSPLandroid/content/ContentProvider;->setAuthorities(Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->setCallingAttributionSource(Landroid/content/AttributionSource;)Landroid/content/AttributionSource; -HSPLandroid/content/ContentProvider;->setPathPermissions([Landroid/content/pm/PathPermission;)V -HSPLandroid/content/ContentProvider;->setReadPermission(Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->setTransportLoggingEnabled(Z)V -HSPLandroid/content/ContentProvider;->setWritePermission(Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->traceBegin(JLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->update(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I -HSPLandroid/content/ContentProvider;->uriHasUserId(Landroid/net/Uri;)Z -HSPLandroid/content/ContentProvider;->validateIncomingAuthority(Ljava/lang/String;)V -HSPLandroid/content/ContentProvider;->validateIncomingUri(Landroid/net/Uri;)Landroid/net/Uri; -HSPLandroid/content/ContentProviderClient$CursorWrapperInner;-><init>(Landroid/content/ContentProviderClient;Landroid/database/Cursor;)V -HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->close()V -HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->finalize()V -HSPLandroid/content/ContentProviderClient;-><init>(Landroid/content/ContentResolver;Landroid/content/IContentProvider;Ljava/lang/String;Z)V -HSPLandroid/content/ContentProviderClient;->afterRemote()V -HSPLandroid/content/ContentProviderClient;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentProviderClient;->applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentProviderClient;->beforeRemote()V -HSPLandroid/content/ContentProviderClient;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentProviderClient;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentProviderClient;->close()V -HSPLandroid/content/ContentProviderClient;->closeInternal()Z -HSPLandroid/content/ContentProviderClient;->finalize()V -HSPLandroid/content/ContentProviderClient;->getLocalContentProvider()Landroid/content/ContentProvider; -HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentProviderClient;->release()Z -HSPLandroid/content/ContentProviderClient;->setDetectNotResponding(J)V -HSPLandroid/content/ContentProviderNative;-><init>()V -HSPLandroid/content/ContentProviderNative;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentProvider; -HSPLandroid/content/ContentProviderNative;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/ContentProviderOperation$Builder;->assertSelectionAllowed()V -HSPLandroid/content/ContentProviderOperation$Builder;->assertValuesAllowed()V -HSPLandroid/content/ContentProviderOperation$Builder;->build()Landroid/content/ContentProviderOperation; -HSPLandroid/content/ContentProviderOperation$Builder;->ensureSelectionArgs()V -HSPLandroid/content/ContentProviderOperation$Builder;->setSelectionArg(ILjava/lang/Object;)V -HSPLandroid/content/ContentProviderOperation$Builder;->setValue(Ljava/lang/String;Ljava/lang/Object;)V -HSPLandroid/content/ContentProviderOperation$Builder;->withExpectedCount(I)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation$Builder;->withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation$Builder;->withValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation$Builder;->withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;)V -HSPLandroid/content/ContentProviderOperation;->apply(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentProviderOperation;->applyInternal(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;+]Landroid/content/ContentProviderOperation;Landroid/content/ContentProviderOperation; -HSPLandroid/content/ContentProviderOperation;->getUri()Landroid/net/Uri; -HSPLandroid/content/ContentProviderOperation;->isInsert()Z -HSPLandroid/content/ContentProviderOperation;->isReadOperation()Z -HSPLandroid/content/ContentProviderOperation;->isWriteOperation()Z -HSPLandroid/content/ContentProviderOperation;->isYieldAllowed()Z -HSPLandroid/content/ContentProviderOperation;->newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation;->newDelete(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation;->newInsert(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation;->newUpdate(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder; -HSPLandroid/content/ContentProviderOperation;->resolveExtrasBackReferences([Landroid/content/ContentProviderResult;I)Landroid/os/Bundle; -HSPLandroid/content/ContentProviderOperation;->resolveSelectionArgsBackReferences([Landroid/content/ContentProviderResult;I)[Ljava/lang/String; -HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/ContentValues;Landroid/content/ContentValues; -HSPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/ContentProviderProxy;->call(Landroid/content/AttributionSource;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os/ICancellationSignal; -HSPLandroid/content/ContentProviderProxy;->delete(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/os/Bundle;)I -HSPLandroid/content/ContentProviderProxy;->insert(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri; -HSPLandroid/content/ContentProviderProxy;->openTypedAssetFile(Landroid/content/AttributionSource;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentProviderProxy;->query(Landroid/content/AttributionSource;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;+]Landroid/content/AttributionSource;Landroid/content/AttributionSource;]Landroid/os/Parcelable$Creator;Landroid/database/BulkCursorDescriptor$1;]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/ICancellationSignal;Landroid/os/ICancellationSignal$Stub$Proxy;]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/IContentObserver;Landroid/database/ContentObserver$Transport;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri;,Landroid/net/Uri$StringUri; -HSPLandroid/content/ContentProviderProxy;->update(Landroid/content/AttributionSource;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I -HSPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/ContentProviderResult$1;->newArray(I)[Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentProviderResult$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/ContentProviderResult;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/ContentResolver$2;-><init>(Landroid/content/SyncStatusObserver;)V -HSPLandroid/content/ContentResolver$2;->onStatusChanged(I)V -HSPLandroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V -HSPLandroid/content/ContentResolver$CursorWrapperInner;->close()V -HSPLandroid/content/ContentResolver$CursorWrapperInner;->finalize()V -HSPLandroid/content/ContentResolver$ParcelFileDescriptorInner;-><init>(Landroid/content/ContentResolver;Landroid/os/ParcelFileDescriptor;Landroid/content/IContentProvider;)V -HSPLandroid/content/ContentResolver$ParcelFileDescriptorInner;->releaseResources()V -HSPLandroid/content/ContentResolver$ResultListener;-><init>()V -HSPLandroid/content/ContentResolver$ResultListener;->onResult(Landroid/os/Bundle;)V -HSPLandroid/content/ContentResolver$ResultListener;->waitForResult(J)V -HSPLandroid/content/ContentResolver$StringResultListener;->getResultFromBundle(Landroid/os/Bundle;)Ljava/lang/Object; -HSPLandroid/content/ContentResolver$StringResultListener;->getResultFromBundle(Landroid/os/Bundle;)Ljava/lang/String; -HSPLandroid/content/ContentResolver;-><init>(Landroid/content/Context;)V -HSPLandroid/content/ContentResolver;-><init>(Landroid/content/Context;Landroid/content/ContentInterface;)V -HSPLandroid/content/ContentResolver;->acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient; -HSPLandroid/content/ContentResolver;->acquireContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient; -HSPLandroid/content/ContentResolver;->acquireExistingProvider(Landroid/net/Uri;)Landroid/content/IContentProvider; -HSPLandroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider; -HSPLandroid/content/ContentResolver;->acquireProvider(Ljava/lang/String;)Landroid/content/IContentProvider; -HSPLandroid/content/ContentResolver;->acquireUnstableContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient; -HSPLandroid/content/ContentResolver;->acquireUnstableProvider(Landroid/net/Uri;)Landroid/content/IContentProvider; -HSPLandroid/content/ContentResolver;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V -HSPLandroid/content/ContentResolver;->addStatusChangeListener(ILandroid/content/SyncStatusObserver;)Ljava/lang/Object; -HSPLandroid/content/ContentResolver;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult; -HSPLandroid/content/ContentResolver;->bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I -HSPLandroid/content/ContentResolver;->call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentResolver;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/ContentResolver;->createSqlQueryBundle(Ljava/lang/String;[Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/content/ContentResolver;->createSqlQueryBundle(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/content/ContentResolver;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I -HSPLandroid/content/ContentResolver;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I -HSPLandroid/content/ContentResolver;->getAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/content/ContentResolver;->getAttributionTag()Ljava/lang/String; -HSPLandroid/content/ContentResolver;->getContentService()Landroid/content/IContentService; -HSPLandroid/content/ContentResolver;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I -HSPLandroid/content/ContentResolver;->getMasterSyncAutomatically()Z -HSPLandroid/content/ContentResolver;->getOutgoingPersistedUriPermissions()Ljava/util/List; -HSPLandroid/content/ContentResolver;->getPackageName()Ljava/lang/String; -HSPLandroid/content/ContentResolver;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/content/ContentResolver;->getResourceId(Landroid/net/Uri;)Landroid/content/ContentResolver$OpenResourceIdResult; -HSPLandroid/content/ContentResolver;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z -HSPLandroid/content/ContentResolver;->getType(Landroid/net/Uri;)Ljava/lang/String; -HSPLandroid/content/ContentResolver;->getUserId()I -HSPLandroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; -HSPLandroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri; -HSPLandroid/content/ContentResolver;->invalidPeriodicExtras(Landroid/os/Bundle;)Z -HSPLandroid/content/ContentResolver;->maybeLogQueryToEventLog(JLandroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/content/ContentResolver;->maybeLogUpdateToEventLog(JLandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;)V -HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;I)V -HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;II)V -HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;Z)V -HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;ZI)V -HSPLandroid/content/ContentResolver;->notifyChange([Landroid/net/Uri;Landroid/database/ContentObserver;II)V -HSPLandroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream; -HSPLandroid/content/ContentResolver;->openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentResolver;->openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V -HSPLandroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V -HSPLandroid/content/ContentResolver;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/content/ContentResolver;->requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/content/ContentResolver;->requestSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/Bundle;)V -HSPLandroid/content/ContentResolver;->resolveUserId(Landroid/net/Uri;)I -HSPLandroid/content/ContentResolver;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V -HSPLandroid/content/ContentResolver;->setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V -HSPLandroid/content/ContentResolver;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V -HSPLandroid/content/ContentResolver;->unregisterContentObserver(Landroid/database/ContentObserver;)V -HSPLandroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I -HSPLandroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I -HSPLandroid/content/ContentResolver;->validateSyncExtrasBundle(Landroid/os/Bundle;)V -HSPLandroid/content/ContentUris;->appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder; -HSPLandroid/content/ContentUris;->parseId(Landroid/net/Uri;)J -HSPLandroid/content/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri; -HSPLandroid/content/ContentValues$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentValues; -HSPLandroid/content/ContentValues$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/ContentValues;-><init>()V -HSPLandroid/content/ContentValues;-><init>(I)V -HSPLandroid/content/ContentValues;-><init>(Landroid/content/ContentValues;)V -HSPLandroid/content/ContentValues;->clear()V -HSPLandroid/content/ContentValues;->containsKey(Ljava/lang/String;)Z -HSPLandroid/content/ContentValues;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/ContentValues;->get(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/content/ContentValues;->getAsBoolean(Ljava/lang/String;)Ljava/lang/Boolean; -HSPLandroid/content/ContentValues;->getAsByteArray(Ljava/lang/String;)[B -HSPLandroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer; -HSPLandroid/content/ContentValues;->getAsLong(Ljava/lang/String;)Ljava/lang/Long; -HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap; -HSPLandroid/content/ContentValues;->isEmpty()Z -HSPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z -HSPLandroid/content/ContentValues;->keySet()Ljava/util/Set; -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Boolean;)V -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Double;)V -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Float;)V -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ContentValues;->put(Ljava/lang/String;[B)V -HSPLandroid/content/ContentValues;->putAll(Landroid/content/ContentValues;)V -HSPLandroid/content/ContentValues;->putNull(Ljava/lang/String;)V -HSPLandroid/content/ContentValues;->putObject(Ljava/lang/String;Ljava/lang/Object;)V -HSPLandroid/content/ContentValues;->remove(Ljava/lang/String;)V -HSPLandroid/content/ContentValues;->size()I -HSPLandroid/content/ContentValues;->toString()Ljava/lang/String; -HSPLandroid/content/ContentValues;->valueSet()Ljava/util/Set; -HSPLandroid/content/ContentValues;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/Context;-><init>()V -HSPLandroid/content/Context;->getColor(I)I -HSPLandroid/content/Context;->getColorStateList(I)Landroid/content/res/ColorStateList; -HSPLandroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/Context;->getNextAutofillId()I -HSPLandroid/content/Context;->getSharedPrefsFile(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/content/Context;->getString(I)Ljava/lang/String; -HSPLandroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/content/Context;->getText(I)Ljava/lang/CharSequence; -HSPLandroid/content/Context;->getToken(Landroid/content/Context;)Landroid/os/IBinder; -HSPLandroid/content/Context;->isAutofillCompatibilityEnabled()Z -HSPLandroid/content/Context;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/Context;missing_types -HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; -HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/ContextParams$Builder;-><init>()V -HSPLandroid/content/ContextParams$Builder;-><init>(Landroid/content/ContextParams;)V -HSPLandroid/content/ContextParams$Builder;->build()Landroid/content/ContextParams; -HSPLandroid/content/ContextParams$Builder;->setAttributionTag(Ljava/lang/String;)Landroid/content/ContextParams$Builder; -HSPLandroid/content/ContextParams;->-$$Nest$fgetmAttributionTag(Landroid/content/ContextParams;)Ljava/lang/String; -HSPLandroid/content/ContextParams;->-$$Nest$fgetmNext(Landroid/content/ContextParams;)Landroid/content/AttributionSource; -HSPLandroid/content/ContextParams;->-$$Nest$fgetmRenouncedPermissions(Landroid/content/ContextParams;)Ljava/util/Set; -HSPLandroid/content/ContextParams;-><clinit>()V -HSPLandroid/content/ContextParams;->getAttributionTag()Ljava/lang/String; -HSPLandroid/content/ContextParams;->getNextAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/content/ContextParams;->getRenouncedPermissions()Ljava/util/Set; -HSPLandroid/content/ContextParams;->isRenouncedPermission(Ljava/lang/String;)Z -HSPLandroid/content/ContextParams;->shouldRegisterAttributionSource()Z -HSPLandroid/content/ContextWrapper;-><init>(Landroid/content/Context;)V -HSPLandroid/content/ContextWrapper;->attachBaseContext(Landroid/content/Context;)V -HSPLandroid/content/ContextWrapper;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z -HSPLandroid/content/ContextWrapper;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z -HSPLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z -HSPLandroid/content/ContextWrapper;->canLoadUnsafeResources()Z -HSPLandroid/content/ContextWrapper;->checkCallingOrSelfPermission(Ljava/lang/String;)I -HSPLandroid/content/ContextWrapper;->checkCallingPermission(Ljava/lang/String;)I -HSPLandroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;II)I -HSPLandroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I -HSPLandroid/content/ContextWrapper;->checkSelfPermission(Ljava/lang/String;)I -HSPLandroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;III)I -HSPLandroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I -HSPLandroid/content/ContextWrapper;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createAttributionContext(Ljava/lang/String;)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createCredentialProtectedStorageContext()Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createDeviceProtectedStorageContext()Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createPackageContextAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->createWindowContext(Landroid/view/Display;ILandroid/os/Bundle;)Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->databaseList()[Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->deleteDatabase(Ljava/lang/String;)Z -HSPLandroid/content/ContextWrapper;->deleteFile(Ljava/lang/String;)Z -HSPLandroid/content/ContextWrapper;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ContextWrapper;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/ContextWrapper;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V -HSPLandroid/content/ContextWrapper;->fileList()[Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getActivityToken()Landroid/os/IBinder; -HSPLandroid/content/ContextWrapper;->getApplicationContext()Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getAssets()Landroid/content/res/AssetManager; -HSPLandroid/content/ContextWrapper;->getAttributionSource()Landroid/content/AttributionSource; -HSPLandroid/content/ContextWrapper;->getAttributionTag()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient; -HSPLandroid/content/ContextWrapper;->getAutofillOptions()Landroid/content/AutofillOptions; -HSPLandroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context; -HSPLandroid/content/ContextWrapper;->getBasePackageName()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getCacheDir()Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/content/ContextWrapper;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions; -HSPLandroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getDataDir()Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getDatabasePath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getDeviceId()I -HSPLandroid/content/ContextWrapper;->getDir(Ljava/lang/String;I)Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getDisplay()Landroid/view/Display; -HSPLandroid/content/ContextWrapper;->getDisplayId()I+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getDisplayNoVerify()Landroid/view/Display; -HSPLandroid/content/ContextWrapper;->getExternalCacheDir()Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getExternalCacheDirs()[Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getExternalMediaDirs()[Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getFilesDir()Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getMainExecutor()Ljava/util/concurrent/Executor; -HSPLandroid/content/ContextWrapper;->getMainLooper()Landroid/os/Looper; -HSPLandroid/content/ContextWrapper;->getMainThreadHandler()Landroid/os/Handler; -HSPLandroid/content/ContextWrapper;->getNextAutofillId()I -HSPLandroid/content/ContextWrapper;->getNoBackupFilesDir()Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getOpPackageName()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getPackageCodePath()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getPackageResourcePath()Ljava/lang/String; -HSPLandroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources; -HSPLandroid/content/ContextWrapper;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/content/ContextWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;+]Landroid/content/Context;missing_types -HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle; -HSPLandroid/content/ContextWrapper;->getUserId()I -HSPLandroid/content/ContextWrapper;->getWindowContextToken()Landroid/os/IBinder; -HSPLandroid/content/ContextWrapper;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V -HSPLandroid/content/ContextWrapper;->isDeviceProtectedStorage()Z -HSPLandroid/content/ContextWrapper;->isRestricted()Z -HSPLandroid/content/ContextWrapper;->isUiContext()Z -HSPLandroid/content/ContextWrapper;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream; -HSPLandroid/content/ContextWrapper;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream; -HSPLandroid/content/ContextWrapper;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/content/ContextWrapper;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; -HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; -HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent; -HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;I)Landroid/content/Intent; -HSPLandroid/content/ContextWrapper;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent; -HSPLandroid/content/ContextWrapper;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent; -HSPLandroid/content/ContextWrapper;->revokeUriPermission(Landroid/net/Uri;I)V -HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;)V -HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V -HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V -HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V -HSPLandroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V -HSPLandroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/content/ContextWrapper;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V -HSPLandroid/content/ContextWrapper;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V -HSPLandroid/content/ContextWrapper;->setAutofillOptions(Landroid/content/AutofillOptions;)V -HSPLandroid/content/ContextWrapper;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V -HSPLandroid/content/ContextWrapper;->setTheme(I)V -HSPLandroid/content/ContextWrapper;->startActivity(Landroid/content/Intent;)V -HSPLandroid/content/ContextWrapper;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName; -HSPLandroid/content/ContextWrapper;->startService(Landroid/content/Intent;)Landroid/content/ComponentName; -HSPLandroid/content/ContextWrapper;->stopService(Landroid/content/Intent;)Z -HSPLandroid/content/ContextWrapper;->unbindService(Landroid/content/ServiceConnection;)V -HSPLandroid/content/ContextWrapper;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/content/ContextWrapper;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V -HSPLandroid/content/ContextWrapper;->updateDeviceId(I)V -HSPLandroid/content/ContextWrapper;->updateDisplay(I)V -HSPLandroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;Ljava/lang/String;II)V -HSPLandroid/content/IClipboard$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/IContentService$Stub$Proxy;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V -HSPLandroid/content/IContentService$Stub$Proxy;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V -HSPLandroid/content/IContentService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/IContentService$Stub$Proxy;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I -HSPLandroid/content/IContentService$Stub$Proxy;->getMasterSyncAutomatically()Z -HSPLandroid/content/IContentService$Stub$Proxy;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Ljava/util/List; -HSPLandroid/content/IContentService$Stub$Proxy;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType; -HSPLandroid/content/IContentService$Stub$Proxy;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z -HSPLandroid/content/IContentService$Stub$Proxy;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V -HSPLandroid/content/IContentService$Stub$Proxy;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V -HSPLandroid/content/IContentService$Stub$Proxy;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/content/IContentService$Stub$Proxy;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V -HSPLandroid/content/IContentService$Stub$Proxy;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V -HSPLandroid/content/IContentService$Stub$Proxy;->syncAsUser(Landroid/content/SyncRequest;ILjava/lang/String;)V -HSPLandroid/content/IContentService$Stub$Proxy;->unregisterContentObserver(Landroid/database/IContentObserver;)V -HSPLandroid/content/IContentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentService; -HSPLandroid/content/IIntentReceiver$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/IIntentReceiver$Stub;-><init>()V -HSPLandroid/content/IIntentReceiver$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/IIntentReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentReceiver; -HSPLandroid/content/IIntentReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/IIntentSender$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/IIntentSender$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender; -HSPLandroid/content/IOnPrimaryClipChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/IRestrictionsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/IRestrictionsManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/content/IRestrictionsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IRestrictionsManager; -HSPLandroid/content/ISyncAdapter$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/ISyncAdapter$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/ISyncContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/ISyncContext$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/ISyncContext$Stub$Proxy;->onFinished(Landroid/content/SyncResult;)V -HSPLandroid/content/ISyncContext$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncContext; -HSPLandroid/content/ISyncStatusObserver$Stub;-><init>()V -HSPLandroid/content/ISyncStatusObserver$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/ISyncStatusObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/Intent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/Intent; -HSPLandroid/content/Intent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/Intent$FilterComparison;-><init>(Landroid/content/Intent;)V -HSPLandroid/content/Intent$FilterComparison;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/Intent$FilterComparison;->hashCode()I -HSPLandroid/content/Intent;-><init>()V -HSPLandroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V -HSPLandroid/content/Intent;-><init>(Landroid/content/Intent;)V -HSPLandroid/content/Intent;-><init>(Landroid/content/Intent;I)V -HSPLandroid/content/Intent;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/Intent;-><init>(Ljava/lang/String;)V -HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V -HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V -HSPLandroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;+]Ljava/lang/String;Ljava/lang/String;]Landroid/util/ArraySet;Landroid/util/ArraySet; -HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent; -HSPLandroid/content/Intent;->cloneFilter()Landroid/content/Intent; -HSPLandroid/content/Intent;->filterEquals(Landroid/content/Intent;)Z -HSPLandroid/content/Intent;->filterHashCode()I -HSPLandroid/content/Intent;->getAction()Ljava/lang/String; -HSPLandroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z -HSPLandroid/content/Intent;->getBundleExtra(Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/content/Intent;->getByteArrayExtra(Ljava/lang/String;)[B -HSPLandroid/content/Intent;->getCategories()Ljava/util/Set; -HSPLandroid/content/Intent;->getClipData()Landroid/content/ClipData; -HSPLandroid/content/Intent;->getComponent()Landroid/content/ComponentName; -HSPLandroid/content/Intent;->getData()Landroid/net/Uri; -HSPLandroid/content/Intent;->getDataString()Ljava/lang/String; -HSPLandroid/content/Intent;->getExtras()Landroid/os/Bundle; -HSPLandroid/content/Intent;->getFlags()I -HSPLandroid/content/Intent;->getIdentifier()Ljava/lang/String; -HSPLandroid/content/Intent;->getIntArrayExtra(Ljava/lang/String;)[I -HSPLandroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I -HSPLandroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J -HSPLandroid/content/Intent;->getPackage()Ljava/lang/String; -HSPLandroid/content/Intent;->getParcelableArrayExtra(Ljava/lang/String;)[Landroid/os/Parcelable; -HSPLandroid/content/Intent;->getParcelableArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable; -HSPLandroid/content/Intent;->getParcelableExtra(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/content/Intent;->getScheme()Ljava/lang/String; -HSPLandroid/content/Intent;->getSelector()Landroid/content/Intent; -HSPLandroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/content/Intent;->getSourceBounds()Landroid/graphics/Rect; -HSPLandroid/content/Intent;->getStringArrayExtra(Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/content/Intent;->getStringArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/Intent;->getType()Ljava/lang/String; -HSPLandroid/content/Intent;->hasCategory(Ljava/lang/String;)Z -HSPLandroid/content/Intent;->hasExtra(Ljava/lang/String;)Z -HSPLandroid/content/Intent;->hasFileDescriptors()Z -HSPLandroid/content/Intent;->hasWebURI()Z -HSPLandroid/content/Intent;->isImageCaptureIntent()Z -HSPLandroid/content/Intent;->isWebIntent()Z -HSPLandroid/content/Intent;->makeMainActivity(Landroid/content/ComponentName;)Landroid/content/Intent; -HSPLandroid/content/Intent;->migrateExtraStreamToClipData(Landroid/content/Context;)Z -HSPLandroid/content/Intent;->parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/content/Intent; -HSPLandroid/content/Intent;->parseUri(Ljava/lang/String;I)Landroid/content/Intent; -HSPLandroid/content/Intent;->parseUriInternal(Ljava/lang/String;I)Landroid/content/Intent; -HSPLandroid/content/Intent;->prepareToEnterProcess(ILandroid/content/AttributionSource;)V -HSPLandroid/content/Intent;->prepareToEnterProcess(ZLandroid/content/AttributionSource;)V -HSPLandroid/content/Intent;->prepareToLeaveProcess(Landroid/content/Context;)V -HSPLandroid/content/Intent;->prepareToLeaveProcess(Z)V -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[B)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[I)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[J)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[Landroid/os/Parcelable;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtras(Landroid/content/Intent;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putParcelableArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent; -HSPLandroid/content/Intent;->putStringArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent; -HSPLandroid/content/Intent;->readFromParcel(Landroid/os/Parcel;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/os/Parcelable$Creator;Landroid/net/Uri$1;,Landroid/graphics/Rect$1;]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel;]Landroid/content/Intent;Landroid/content/Intent; -HSPLandroid/content/Intent;->removeCategory(Ljava/lang/String;)V+]Landroid/util/ArraySet;Landroid/util/ArraySet; -HSPLandroid/content/Intent;->removeExtra(Ljava/lang/String;)V -HSPLandroid/content/Intent;->replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent; -HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName; -HSPLandroid/content/Intent;->resolveActivityInfo(Landroid/content/pm/PackageManager;I)Landroid/content/pm/ActivityInfo; -HSPLandroid/content/Intent;->resolveSystemService(Landroid/content/pm/PackageManager;I)Landroid/content/ComponentName; -HSPLandroid/content/Intent;->resolveType(Landroid/content/ContentResolver;)Ljava/lang/String; -HSPLandroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String; -HSPLandroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setAllowFds(Z)V -HSPLandroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setClipData(Landroid/content/ClipData;)V -HSPLandroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setDefusable(Z)V -HSPLandroid/content/Intent;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V -HSPLandroid/content/Intent;->setFlags(I)Landroid/content/Intent; -HSPLandroid/content/Intent;->setIdentifier(Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->setSelector(Landroid/content/Intent;)V -HSPLandroid/content/Intent;->setSourceBounds(Landroid/graphics/Rect;)V -HSPLandroid/content/Intent;->setType(Ljava/lang/String;)Landroid/content/Intent; -HSPLandroid/content/Intent;->toShortString(Ljava/lang/StringBuilder;ZZZZ)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ComponentName;Landroid/content/ComponentName; -HSPLandroid/content/Intent;->toString()Ljava/lang/String; -HSPLandroid/content/Intent;->toString(Ljava/lang/StringBuilder;)V -HSPLandroid/content/Intent;->toUri(I)Ljava/lang/String; -HSPLandroid/content/Intent;->toUriFragment(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/content/Intent;->toUriInner(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/content/Intent;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/IntentFilter$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/IntentFilter; -HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/IntentFilter$AuthorityEntry;->getHost()Ljava/lang/String; -HSPLandroid/content/IntentFilter$AuthorityEntry;->match(Landroid/net/Uri;Z)I -HSPLandroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parcel;)V -HSPLandroid/content/IntentFilter;-><init>()V -HSPLandroid/content/IntentFilter;-><init>(Landroid/content/IntentFilter;)V -HSPLandroid/content/IntentFilter;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/IntentFilter;-><init>(Ljava/lang/String;)V -HSPLandroid/content/IntentFilter;->actionsIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->addAction(Ljava/lang/String;)V -HSPLandroid/content/IntentFilter;->addCategory(Ljava/lang/String;)V -HSPLandroid/content/IntentFilter;->addDataAuthority(Landroid/content/IntentFilter$AuthorityEntry;)V -HSPLandroid/content/IntentFilter;->addDataAuthority(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/IntentFilter;->addDataPath(Landroid/os/PatternMatcher;)V -HSPLandroid/content/IntentFilter;->addDataPath(Ljava/lang/String;I)V -HSPLandroid/content/IntentFilter;->addDataScheme(Ljava/lang/String;)V -HSPLandroid/content/IntentFilter;->addDataSchemeSpecificPart(Landroid/os/PatternMatcher;)V -HSPLandroid/content/IntentFilter;->addDataSchemeSpecificPart(Ljava/lang/String;I)V -HSPLandroid/content/IntentFilter;->addDataType(Ljava/lang/String;)V -HSPLandroid/content/IntentFilter;->authoritiesIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->categoriesIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->countActions()I -HSPLandroid/content/IntentFilter;->countCategories()I -HSPLandroid/content/IntentFilter;->countDataAuthorities()I -HSPLandroid/content/IntentFilter;->countDataPaths()I -HSPLandroid/content/IntentFilter;->countDataSchemes()I -HSPLandroid/content/IntentFilter;->countDataTypes()I -HSPLandroid/content/IntentFilter;->countMimeGroups()I -HSPLandroid/content/IntentFilter;->debugCheck()Z -HSPLandroid/content/IntentFilter;->getAction(I)Ljava/lang/String; -HSPLandroid/content/IntentFilter;->getAutoVerify()Z -HSPLandroid/content/IntentFilter;->getCategory(I)Ljava/lang/String; -HSPLandroid/content/IntentFilter;->getDataScheme(I)Ljava/lang/String; -HSPLandroid/content/IntentFilter;->getHosts()[Ljava/lang/String; -HSPLandroid/content/IntentFilter;->getHostsList()Ljava/util/ArrayList; -HSPLandroid/content/IntentFilter;->getOrder()I -HSPLandroid/content/IntentFilter;->getPriority()I -HSPLandroid/content/IntentFilter;->hasAction(Ljava/lang/String;)Z -HSPLandroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z -HSPLandroid/content/IntentFilter;->isImplicitlyVisibleToInstantApp()Z -HSPLandroid/content/IntentFilter;->isVisibleToInstantApp()Z -HSPLandroid/content/IntentFilter;->lambda$addDataType$0(Ljava/lang/String;Ljava/lang/Boolean;)V -HSPLandroid/content/IntentFilter;->match(Landroid/content/ContentResolver;Landroid/content/Intent;ZLjava/lang/String;)I -HSPLandroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I -HSPLandroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;ZLjava/util/Collection;Landroid/os/Bundle;)I -HSPLandroid/content/IntentFilter;->matchAction(Ljava/lang/String;)Z -HSPLandroid/content/IntentFilter;->matchAction(Ljava/lang/String;ZLjava/util/Collection;)Z -HSPLandroid/content/IntentFilter;->matchCategories(Ljava/util/Set;)Ljava/lang/String; -HSPLandroid/content/IntentFilter;->matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)I -HSPLandroid/content/IntentFilter;->matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Z)I -HSPLandroid/content/IntentFilter;->matchDataAuthority(Landroid/net/Uri;Z)I -HSPLandroid/content/IntentFilter;->matchExtras(Landroid/os/Bundle;)Ljava/lang/String; -HSPLandroid/content/IntentFilter;->processMimeType(Ljava/lang/String;Ljava/util/function/BiConsumer;)V -HSPLandroid/content/IntentFilter;->schemesIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->setAutoVerify(Z)V -HSPLandroid/content/IntentFilter;->setOrder(I)V -HSPLandroid/content/IntentFilter;->setPriority(I)V -HSPLandroid/content/IntentFilter;->setVisibilityToInstantApp(I)V -HSPLandroid/content/IntentFilter;->typesIterator()Ljava/util/Iterator; -HSPLandroid/content/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/util/ArraySet;Landroid/util/ArraySet;]Landroid/content/IntentFilter;Landroid/content/IntentFilter;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/IntentSender;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/LocusId; -HSPLandroid/content/LocusId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/LocusId;-><init>(Ljava/lang/String;)V -HSPLandroid/content/LocusId;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/PeriodicSync; -HSPLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/PeriodicSync;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/PermissionChecker;->checkPermissionForDataDeliveryCommon(Landroid/content/Context;Ljava/lang/String;Landroid/content/AttributionSource;Ljava/lang/String;ZZ)I -HSPLandroid/content/PermissionChecker;->checkPermissionForDataDeliveryFromDataSource(Landroid/content/Context;Ljava/lang/String;ILandroid/content/AttributionSource;Ljava/lang/String;)I -HSPLandroid/content/RestrictionsManager;-><init>(Landroid/content/Context;Landroid/content/IRestrictionsManager;)V -HSPLandroid/content/RestrictionsManager;->getApplicationRestrictions()Landroid/os/Bundle; -HSPLandroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;-><init>(Landroid/content/Context;I)V -HSPLandroid/content/SearchRecentSuggestionsProvider;-><init>()V -HSPLandroid/content/SearchRecentSuggestionsProvider;->onCreate()Z -HSPLandroid/content/SearchRecentSuggestionsProvider;->setupSuggestions(Ljava/lang/String;I)V -HSPLandroid/content/ServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V -HSPLandroid/content/ServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V -HSPLandroid/content/SyncAdapterType$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncAdapterType; -HSPLandroid/content/SyncAdapterType$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/SyncAdapterType$1;->newArray(I)[Landroid/content/SyncAdapterType; -HSPLandroid/content/SyncAdapterType$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/SyncAdapterType;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/SyncAdapterType;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/SyncAdapterType;->supportsUploading()Z -HSPLandroid/content/SyncAdaptersCache;->getSyncAdapterPackagesForAuthority(Ljava/lang/String;I)[Ljava/lang/String; -HSPLandroid/content/SyncContext;-><init>(Landroid/content/ISyncContext;)V -HSPLandroid/content/SyncContext;->getSyncContextBinder()Landroid/os/IBinder; -HSPLandroid/content/SyncContext;->onFinished(Landroid/content/SyncResult;)V -HSPLandroid/content/SyncRequest$Builder;->build()Landroid/content/SyncRequest; -HSPLandroid/content/SyncRequest$Builder;->setExtras(Landroid/os/Bundle;)Landroid/content/SyncRequest$Builder; -HSPLandroid/content/SyncRequest$Builder;->setSyncAdapter(Landroid/accounts/Account;Ljava/lang/String;)Landroid/content/SyncRequest$Builder; -HSPLandroid/content/SyncRequest$Builder;->syncOnce()Landroid/content/SyncRequest$Builder; -HSPLandroid/content/SyncRequest;-><init>(Landroid/content/SyncRequest$Builder;)V -HSPLandroid/content/SyncRequest;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/SyncResult;-><init>()V -HSPLandroid/content/SyncResult;->hasError()Z -HSPLandroid/content/SyncResult;->hasHardError()Z -HSPLandroid/content/SyncResult;->hasSoftError()Z -HSPLandroid/content/SyncResult;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/SyncStats;->toString()Ljava/lang/String; -HSPLandroid/content/SyncStats;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/UndoManager$UndoState;->addOperation(Landroid/content/UndoOperation;)V -HSPLandroid/content/UndoManager$UndoState;->destroy()V -HSPLandroid/content/UndoManager$UndoState;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation; -HSPLandroid/content/UndoManager$UndoState;->hasMultipleOwners()Z -HSPLandroid/content/UndoManager$UndoState;->hasOperation(Landroid/content/UndoOwner;)Z -HSPLandroid/content/UndoManager$UndoState;->writeToParcel(Landroid/os/Parcel;)V -HSPLandroid/content/UndoManager;->addOperation(Landroid/content/UndoOperation;I)V -HSPLandroid/content/UndoManager;->beginUpdate(Ljava/lang/CharSequence;)V -HSPLandroid/content/UndoManager;->commitState(Landroid/content/UndoOwner;)I -HSPLandroid/content/UndoManager;->endUpdate()V -HSPLandroid/content/UndoManager;->findPrevState(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I -HSPLandroid/content/UndoManager;->forgetRedos([Landroid/content/UndoOwner;I)I -HSPLandroid/content/UndoManager;->forgetUndos([Landroid/content/UndoOwner;I)I -HSPLandroid/content/UndoManager;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation; -HSPLandroid/content/UndoManager;->getOwner(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner; -HSPLandroid/content/UndoManager;->getTopUndo([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState; -HSPLandroid/content/UndoManager;->isInUndo()Z -HSPLandroid/content/UndoManager;->matchOwners(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z -HSPLandroid/content/UndoManager;->pushWorkingState()V -HSPLandroid/content/UndoManager;->removeOwner(Landroid/content/UndoOwner;)V -HSPLandroid/content/UndoManager;->restoreInstanceState(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V -HSPLandroid/content/UndoManager;->saveInstanceState(Landroid/os/Parcel;)V -HSPLandroid/content/UndoManager;->saveOwner(Landroid/content/UndoOwner;Landroid/os/Parcel;)V -HSPLandroid/content/UndoOperation;->allowMerge()Z -HSPLandroid/content/UndoOperation;->getOwner()Landroid/content/UndoOwner; -HSPLandroid/content/UndoOperation;->hasData()Z -HSPLandroid/content/UndoOperation;->matchOwner(Landroid/content/UndoOwner;)Z -HSPLandroid/content/UndoOwner;-><init>(Ljava/lang/String;Landroid/content/UndoManager;)V -HSPLandroid/content/UriMatcher;-><init>(I)V -HSPLandroid/content/UriMatcher;-><init>(ILjava/lang/String;)V -HSPLandroid/content/UriMatcher;->addURI(Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/content/UriMatcher;->createChild(Ljava/lang/String;)Landroid/content/UriMatcher; -HSPLandroid/content/UriMatcher;->match(Landroid/net/Uri;)I+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/List;Landroid/net/Uri$PathSegments;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri; -HSPLandroid/content/om/OverlayInfo;->ensureValidState()V -HSPLandroid/content/om/OverlayInfo;->isEnabled()Z -HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ActivityInfo; -HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Landroid/content/pm/ActivityInfo; -HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ActivityInfo;-><init>(Landroid/os/Parcel;)V+]Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Set;Landroid/util/ArraySet; -HSPLandroid/content/pm/ActivityInfo;->activityInfoConfigNativeToJava(I)I -HSPLandroid/content/pm/ActivityInfo;->getRealConfigChanged()I -HSPLandroid/content/pm/ActivityInfo;->getThemeResource()I -HSPLandroid/content/pm/ActivityInfo;->hasOnBackInvokedCallbackEnabled()Z -HSPLandroid/content/pm/ActivityInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ApkChecksum$1;-><init>()V -HSPLandroid/content/pm/ApkChecksum$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ApkChecksum; -HSPLandroid/content/pm/ApkChecksum$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ApkChecksum;-><clinit>()V -HSPLandroid/content/pm/ApkChecksum;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ApkChecksum;->getType()I -HSPLandroid/content/pm/ApkChecksum;->getValue()[B -HSPLandroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;->readRawParceled(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ApplicationInfo;-><init>()V -HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;)V+]Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/Set;Ljava/util/Collections$EmptySet; -HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ApplicationInfo-IA;)V -HSPLandroid/content/pm/ApplicationInfo;->getAllApkPaths()[Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/ApplicationInfo;->getBaseCodePath()Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->getBaseResourcePath()Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->getCodePath()Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->getCustomApplicationClassNameForProcess(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->getResourcePath()Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->hasRequestedLegacyExternalStorage()Z -HSPLandroid/content/pm/ApplicationInfo;->hasRtlSupport()Z -HSPLandroid/content/pm/ApplicationInfo;->initForUser(I)V -HSPLandroid/content/pm/ApplicationInfo;->isDirectBootAware()Z -HSPLandroid/content/pm/ApplicationInfo;->isEncryptionAware()Z -HSPLandroid/content/pm/ApplicationInfo;->isExternal()Z -HSPLandroid/content/pm/ApplicationInfo;->isInstantApp()Z -HSPLandroid/content/pm/ApplicationInfo;->isOnBackInvokedCallbackEnabled()Z -HSPLandroid/content/pm/ApplicationInfo;->isPrivilegedApp()Z -HSPLandroid/content/pm/ApplicationInfo;->isProduct()Z -HSPLandroid/content/pm/ApplicationInfo;->isProfileable()Z -HSPLandroid/content/pm/ApplicationInfo;->isProfileableByShell()Z -HSPLandroid/content/pm/ApplicationInfo;->isSignedWithPlatformKey()Z -HSPLandroid/content/pm/ApplicationInfo;->isStaticSharedLibrary()Z -HSPLandroid/content/pm/ApplicationInfo;->isSystemApp()Z -HSPLandroid/content/pm/ApplicationInfo;->isSystemExt()Z -HSPLandroid/content/pm/ApplicationInfo;->isUpdatedSystemApp()Z -HSPLandroid/content/pm/ApplicationInfo;->isVendor()Z -HSPLandroid/content/pm/ApplicationInfo;->requestsIsolatedSplitLoading()Z -HSPLandroid/content/pm/ApplicationInfo;->setBaseCodePath(Ljava/lang/String;)V -HSPLandroid/content/pm/ApplicationInfo;->setBaseResourcePath(Ljava/lang/String;)V -HSPLandroid/content/pm/ApplicationInfo;->setCodePath(Ljava/lang/String;)V -HSPLandroid/content/pm/ApplicationInfo;->setGwpAsanMode(I)V -HSPLandroid/content/pm/ApplicationInfo;->setResourcePath(Ljava/lang/String;)V -HSPLandroid/content/pm/ApplicationInfo;->setSplitCodePaths([Ljava/lang/String;)V -HSPLandroid/content/pm/ApplicationInfo;->setSplitResourcePaths([Ljava/lang/String;)V -HSPLandroid/content/pm/ApplicationInfo;->setVersionCode(J)V -HSPLandroid/content/pm/ApplicationInfo;->toString()Ljava/lang/String; -HSPLandroid/content/pm/ApplicationInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;]Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;]Landroid/os/Parcel;Landroid/os/Parcel;]Ljava/util/UUID;Ljava/util/UUID; -HSPLandroid/content/pm/Attribution$1;-><init>()V -HSPLandroid/content/pm/Attribution;-><clinit>()V -HSPLandroid/content/pm/BaseParceledListSlice$1;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V+]Landroid/content/pm/BaseParceledListSlice;Landroid/content/pm/ParceledListSlice;]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Ljava/util/List;)V -HSPLandroid/content/pm/BaseParceledListSlice;->getList()Ljava/util/List; -HSPLandroid/content/pm/BaseParceledListSlice;->readCreator(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object; -HSPLandroid/content/pm/BaseParceledListSlice;->readVerifyAndAddElement(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class;+]Ljava/lang/Object;megamorphic_types]Ljava/util/List;Ljava/util/ArrayList; -HSPLandroid/content/pm/BaseParceledListSlice;->verifySameType(Ljava/lang/Class;Ljava/lang/Class;)V -HSPLandroid/content/pm/BaseParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/Checksum$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/Checksum; -HSPLandroid/content/pm/Checksum$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/Checksum;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/Checksum;->getType()I -HSPLandroid/content/pm/Checksum;->getValue()[B -HSPLandroid/content/pm/ComponentInfo;-><init>()V -HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/content/pm/ComponentInfo;)V -HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ApplicationInfo$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/ComponentInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/ComponentInfo;->getComponentName()Landroid/content/ComponentName; -HSPLandroid/content/pm/ComponentInfo;->getIconResource()I -HSPLandroid/content/pm/ComponentInfo;->isEnabled()Z -HSPLandroid/content/pm/ComponentInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;+]Landroid/content/pm/PackageManager;Landroid/app/ApplicationPackageManager; -HSPLandroid/content/pm/ComponentInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ConfigurationInfo; -HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/CrossProfileApps;-><init>(Landroid/content/Context;Landroid/content/pm/ICrossProfileApps;)V -HSPLandroid/content/pm/CrossProfileApps;->getTargetUserProfiles()Ljava/util/List; -HSPLandroid/content/pm/FallbackCategoryProvider;->getFallbackCategory(Ljava/lang/String;)I -HSPLandroid/content/pm/FallbackCategoryProvider;->loadFallbacks()V -HSPLandroid/content/pm/FeatureFlagsImpl;-><init>()V -HSPLandroid/content/pm/FeatureFlagsImpl;->relativeReferenceIntentFilters()Z -HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/FeatureInfo; -HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/FeatureInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/Flags;-><clinit>()V -HSPLandroid/content/pm/Flags;->relativeReferenceIntentFilters()Z+]Landroid/content/pm/FeatureFlags;Landroid/content/pm/FeatureFlagsImpl; -HSPLandroid/content/pm/ICrossProfileApps$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/pm/ICrossProfileApps$Stub$Proxy;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List; -HSPLandroid/content/pm/ICrossProfileApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ICrossProfileApps; -HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V -HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor; -HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcuts(Ljava/lang/String;Landroid/content/pm/ShortcutQueryWrapper;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/ILauncherApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ILauncherApps; -HSPLandroid/content/pm/IOnAppsChangedListener$Stub;-><init>()V -HSPLandroid/content/pm/IOnAppsChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/pm/IOnAppsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/pm/IOnChecksumsReadyListener$Stub;-><init>()V -HSPLandroid/content/pm/IOnChecksumsReadyListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/pm/IOnChecksumsReadyListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo; -HSPLandroid/content/pm/IPackageInstallerCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda1;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getActivityInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting(Ljava/lang/String;I)I+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/pm/IPackageManager$Stub$Proxy;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(JI)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(JI)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getNameForUid(I)Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInfo(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/pm/IPackageManager$Stub$Proxy;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroid/content/pm/IPackageInstaller; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;JI)I -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getProviderInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ProviderInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ActivityInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;JI)Landroid/content/pm/ServiceInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames()[Ljava/lang/String; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->hasSystemFeature(Ljava/lang/String;I)Z -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isInstantApp(Ljava/lang/String;I)Z -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isPackageSuspendedForUser(Ljava/lang/String;I)Z -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isProtectedBroadcast(Ljava/lang/String;)Z -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->lambda$notifyDexLoad$1(Landroid/os/Parcel;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyDexLoad(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackageUse(Ljava/lang/String;I)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackagesReplacedReceived([Ljava/lang/String;)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice;+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/content/pm/IPackageManager$Stub$Proxy;Landroid/content/pm/IPackageManager$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->requestPackageChecksums(Ljava/lang/String;ZIILjava/util/List;Landroid/content/pm/IOnChecksumsReadyListener;I)V -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveContentProvider(Ljava/lang/String;JI)Landroid/content/pm/ProviderInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveService(Landroid/content/Intent;Ljava/lang/String;JI)Landroid/content/pm/ResolveInfo; -HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->setComponentEnabledSetting(Landroid/content/ComponentName;IIILjava/lang/String;)V -HSPLandroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager; -HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getShortcuts(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z -HSPLandroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService; -HSPLandroid/content/pm/IncrementalStatesInfo$1;-><init>()V -HSPLandroid/content/pm/IncrementalStatesInfo;-><clinit>()V -HSPLandroid/content/pm/InstallSourceInfo;->getInitiatingPackageName()Ljava/lang/String; -HSPLandroid/content/pm/InstallSourceInfo;->getInstallingPackageName()Ljava/lang/String; -HSPLandroid/content/pm/LauncherActivityInfoInternal$1;-><init>()V -HSPLandroid/content/pm/LauncherActivityInfoInternal;-><clinit>()V -HSPLandroid/content/pm/LauncherActivityInfoInternal;->getActivityInfo()Landroid/content/pm/ActivityInfo; -HSPLandroid/content/pm/LauncherApps$1;-><init>(Landroid/content/pm/LauncherApps;)V -HSPLandroid/content/pm/LauncherApps$1;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V -HSPLandroid/content/pm/LauncherApps$1;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V -HSPLandroid/content/pm/LauncherApps$Callback;-><init>()V -HSPLandroid/content/pm/LauncherApps$Callback;->onShortcutsChanged(Ljava/lang/String;Ljava/util/List;Landroid/os/UserHandle;)V -HSPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackageChanged(Ljava/lang/String;Landroid/os/UserHandle;)V -HSPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnShortcutChanged(Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V -HSPLandroid/content/pm/LauncherApps$ShortcutQuery;-><init>()V -HSPLandroid/content/pm/LauncherApps$ShortcutQuery;->setPackage(Ljava/lang/String;)Landroid/content/pm/LauncherApps$ShortcutQuery; -HSPLandroid/content/pm/LauncherApps$ShortcutQuery;->setQueryFlags(I)Landroid/content/pm/LauncherApps$ShortcutQuery; -HSPLandroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;)V -HSPLandroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;Landroid/content/pm/ILauncherApps;)V -HSPLandroid/content/pm/LauncherApps;->findCallbackLocked(Landroid/content/pm/LauncherApps$Callback;)I -HSPLandroid/content/pm/LauncherApps;->getShortcutIconFd(Landroid/content/pm/ShortcutInfo;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/content/pm/LauncherApps;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor; -HSPLandroid/content/pm/LauncherApps;->getShortcuts(Landroid/content/pm/LauncherApps$ShortcutQuery;Landroid/os/UserHandle;)Ljava/util/List; -HSPLandroid/content/pm/LauncherApps;->logErrorForInvalidProfileAccess(Landroid/os/UserHandle;)V -HSPLandroid/content/pm/LauncherApps;->maybeUpdateDisabledMessage(Ljava/util/List;)Ljava/util/List; -HSPLandroid/content/pm/LauncherApps;->registerCallback(Landroid/content/pm/LauncherApps$Callback;)V -HSPLandroid/content/pm/LauncherApps;->registerCallback(Landroid/content/pm/LauncherApps$Callback;Landroid/os/Handler;)V -HSPLandroid/content/pm/ModuleInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ModuleInfo; -HSPLandroid/content/pm/ModuleInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ModuleInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ModuleInfo;->getPackageName()Ljava/lang/String; -HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInfo; -HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageInfo;-><init>()V -HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ApplicationInfo$1;,Landroid/content/pm/SigningInfo$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/PackageInfo-IA;)V -HSPLandroid/content/pm/PackageInfo;->composeLongVersionCode(II)J -HSPLandroid/content/pm/PackageInfo;->getLongVersionCode()J -HSPLandroid/content/pm/PackageInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/PackageInstaller$SessionCallback;-><init>()V -HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;-><init>(Landroid/content/pm/PackageInstaller$SessionCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionActiveChanged(IZ)V -HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionBadgingChanged(I)V -HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionCreated(I)V -HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionFinished(IZ)V -HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionProgressChanged(IF)V -HSPLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInstaller$SessionInfo; -HSPLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageInstaller$SessionInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getAppPackageName()Ljava/lang/String; -HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getInstallerPackageName()Ljava/lang/String; -HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getSessionId()I -HSPLandroid/content/pm/PackageInstaller$SessionParams;-><init>(I)V -HSPLandroid/content/pm/PackageInstaller;-><init>(Landroid/content/pm/IPackageInstaller;Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo; -HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V -HSPLandroid/content/pm/PackageItemInfo;-><init>()V -HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/content/pm/PackageItemInfo;)V -HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/PackageItemInfo;->forceSafeLabels()V -HSPLandroid/content/pm/PackageItemInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/pm/PackageItemInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence; -HSPLandroid/content/pm/PackageItemInfo;->loadSafeLabel(Landroid/content/pm/PackageManager;FI)Ljava/lang/CharSequence; -HSPLandroid/content/pm/PackageItemInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence; -HSPLandroid/content/pm/PackageItemInfo;->loadXmlMetaData(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/pm/PackageItemInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/PackageManager$2;->recompute(Landroid/content/pm/PackageManager$ApplicationInfoQuery;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/PackageManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageManager$3;->recompute(Landroid/content/pm/PackageManager$PackageInfoQuery;)Landroid/content/pm/PackageInfo; -HSPLandroid/content/pm/PackageManager$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/content/pm/PackageManager$3;Landroid/content/pm/PackageManager$3; -HSPLandroid/content/pm/PackageManager$ApplicationInfoFlags;-><init>(J)V -HSPLandroid/content/pm/PackageManager$ApplicationInfoFlags;->of(J)Landroid/content/pm/PackageManager$ApplicationInfoFlags; -HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;-><init>(Ljava/lang/String;JI)V -HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/pm/PackageManager$ApplicationInfoQuery;->hashCode()I -HSPLandroid/content/pm/PackageManager$ComponentInfoFlags;-><init>(J)V -HSPLandroid/content/pm/PackageManager$ComponentInfoFlags;->of(J)Landroid/content/pm/PackageManager$ComponentInfoFlags; -HSPLandroid/content/pm/PackageManager$Flags;-><init>(J)V -HSPLandroid/content/pm/PackageManager$Flags;->getValue()J -HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>()V -HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V -HSPLandroid/content/pm/PackageManager$PackageInfoFlags;-><init>(J)V -HSPLandroid/content/pm/PackageManager$PackageInfoFlags;->of(J)Landroid/content/pm/PackageManager$PackageInfoFlags; -HSPLandroid/content/pm/PackageManager$PackageInfoQuery;-><init>(Ljava/lang/String;JI)V -HSPLandroid/content/pm/PackageManager$PackageInfoQuery;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/pm/PackageManager$PackageInfoQuery;->hashCode()I -HSPLandroid/content/pm/PackageManager$Property;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/pm/PackageManager$Property;-><init>(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/pm/PackageManager$Property;->toBundle(Landroid/os/Bundle;)Landroid/os/Bundle; -HSPLandroid/content/pm/PackageManager$ResolveInfoFlags;-><init>(J)V -HSPLandroid/content/pm/PackageManager$ResolveInfoFlags;->of(J)Landroid/content/pm/PackageManager$ResolveInfoFlags; -HSPLandroid/content/pm/PackageManager;->-$$Nest$smgetApplicationInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/PackageManager;->-$$Nest$smgetPackageInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo; -HSPLandroid/content/pm/PackageManager;-><init>()V -HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUserCached(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/ApplicationInfo; -HSPLandroid/content/pm/PackageManager;->getPackageInfoAsUserCached(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo; -HSPLandroid/content/pm/PackageManager;->getPackageInfoAsUserUncached(Ljava/lang/String;JI)Landroid/content/pm/PackageInfo; -HSPLandroid/content/pm/PackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List; -HSPLandroid/content/pm/PackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List; -HSPLandroid/content/pm/PackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List; -HSPLandroid/content/pm/PackageParser$Activity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Activity; -HSPLandroid/content/pm/PackageParser$Activity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageParser$Activity;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$ApkLite;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;ZIIIILjava/util/List;Landroid/content/pm/PackageParser$SigningDetails;ZZZZZZZZLjava/lang/String;ZIIII)V -HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$Component;->createIntentsList(Landroid/os/Parcel;)Ljava/util/ArrayList; -HSPLandroid/content/pm/PackageParser$Component;->getComponentName()Landroid/content/ComponentName; -HSPLandroid/content/pm/PackageParser$IntentInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$Package;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$Package;->fixupOwner(Ljava/util/List;)V -HSPLandroid/content/pm/PackageParser$Package;->getChildPackageNames()Ljava/util/List; -HSPLandroid/content/pm/PackageParser$Package;->getLongVersionCode()J -HSPLandroid/content/pm/PackageParser$Package;->internStringArrayList(Ljava/util/List;)V -HSPLandroid/content/pm/PackageParser$Package;->isExternal()Z -HSPLandroid/content/pm/PackageParser$Package;->isMatch(I)Z -HSPLandroid/content/pm/PackageParser$Package;->isPrivileged()Z -HSPLandroid/content/pm/PackageParser$Package;->isProduct()Z -HSPLandroid/content/pm/PackageParser$Package;->isSystem()Z -HSPLandroid/content/pm/PackageParser$Package;->isUpdatedSystemApp()Z -HSPLandroid/content/pm/PackageParser$Package;->isVendor()Z -HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoBaseCodePath(Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoCodePath(Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoResourcePath(Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoSplitCodePaths([Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Package;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Package;->setApplicationVolumeUuid(Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser$Permission$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Permission; -HSPLandroid/content/pm/PackageParser$Permission$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageParser$Permission;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$Provider$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Provider; -HSPLandroid/content/pm/PackageParser$Provider$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageParser$Provider;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$Service$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$Service; -HSPLandroid/content/pm/PackageParser$Service$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageParser$Service;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$ServiceIntentInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$SigningDetails; -HSPLandroid/content/pm/PackageParser$SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PackageParser$SigningDetails;->checkCapability(Landroid/content/pm/PackageParser$SigningDetails;I)Z -HSPLandroid/content/pm/PackageParser$SigningDetails;->hasAncestorOrSelf(Landroid/content/pm/PackageParser$SigningDetails;)Z -HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificate(Landroid/content/pm/Signature;)Z -HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificate(Landroid/content/pm/Signature;I)Z -HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificateInternal(Landroid/content/pm/Signature;I)Z -HSPLandroid/content/pm/PackageParser$SigningDetails;->hasPastSigningCertificates()Z -HSPLandroid/content/pm/PackageParser;-><init>()V -HSPLandroid/content/pm/PackageParser;->checkRequiredSystemProperties(Ljava/lang/String;Ljava/lang/String;)Z -HSPLandroid/content/pm/PackageParser;->generatePermissionInfo(Landroid/content/pm/PackageParser$Permission;I)Landroid/content/pm/PermissionInfo; -HSPLandroid/content/pm/PackageParser;->isApkFile(Ljava/io/File;)Z -HSPLandroid/content/pm/PackageParser;->isApkPath(Ljava/lang/String;)Z -HSPLandroid/content/pm/PackageParser;->parsePackage(Ljava/io/File;IZ)Landroid/content/pm/PackageParser$Package; -HSPLandroid/content/pm/PackageParser;->setCacheDir(Ljava/io/File;)V -HSPLandroid/content/pm/PackageParser;->setCallback(Landroid/content/pm/PackageParser$Callback;)V -HSPLandroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMetrics;)V -HSPLandroid/content/pm/PackageParser;->setOnlyCoreApps(Z)V -HSPLandroid/content/pm/PackageParser;->setSeparateProcesses([Ljava/lang/String;)V -HSPLandroid/content/pm/PackageParser;->toSigningKeys([Landroid/content/pm/Signature;)Landroid/util/ArraySet; -HSPLandroid/content/pm/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String; -HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String; -HSPLandroid/content/pm/PackageStats;-><init>(Ljava/lang/String;)V -HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/content/pm/ParceledListSlice; -HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object; -HSPLandroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V -HSPLandroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;Landroid/content/pm/ParceledListSlice-IA;)V -HSPLandroid/content/pm/ParceledListSlice;-><init>(Ljava/util/List;)V -HSPLandroid/content/pm/ParceledListSlice;->getList()Ljava/util/List; -HSPLandroid/content/pm/ParceledListSlice;->readParcelableCreator(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator; -HSPLandroid/content/pm/ParceledListSlice;->setInlineCountLimit(I)V -HSPLandroid/content/pm/ParceledListSlice;->writeElement(Landroid/os/Parcelable;Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ParceledListSlice;->writeElement(Ljava/lang/Object;Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ParceledListSlice;->writeParcelableCreator(Landroid/os/Parcelable;Landroid/os/Parcel;)V -HSPLandroid/content/pm/ParceledListSlice;->writeParcelableCreator(Ljava/lang/Object;Landroid/os/Parcel;)V -HSPLandroid/content/pm/ParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/PathPermission$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PathPermission; -HSPLandroid/content/pm/PathPermission$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PathPermission$1;->newArray(I)[Landroid/content/pm/PathPermission; -HSPLandroid/content/pm/PathPermission$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/pm/PathPermission;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PathPermission;->getReadPermission()Ljava/lang/String; -HSPLandroid/content/pm/PathPermission;->getWritePermission()Ljava/lang/String; -HSPLandroid/content/pm/PathPermission;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/PermissionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PermissionInfo; -HSPLandroid/content/pm/PermissionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/PermissionInfo$1;->newArray(I)[Landroid/content/pm/PermissionInfo; -HSPLandroid/content/pm/PermissionInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/pm/PermissionInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/PermissionInfo;->fixProtectionLevel(I)I -HSPLandroid/content/pm/PermissionInfo;->getProtection()I -HSPLandroid/content/pm/PermissionInfo;->getProtectionFlags()I -HSPLandroid/content/pm/PermissionInfo;->isAppOp()Z -HSPLandroid/content/pm/PermissionInfo;->isHardRestricted()Z -HSPLandroid/content/pm/PermissionInfo;->isRestricted()Z -HSPLandroid/content/pm/PermissionInfo;->isRuntime()Z -HSPLandroid/content/pm/PermissionInfo;->isSoftRestricted()Z -HSPLandroid/content/pm/ProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ProviderInfo; -HSPLandroid/content/pm/ProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ProviderInfo$1;->newArray(I)[Landroid/content/pm/ProviderInfo; -HSPLandroid/content/pm/ProviderInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/pm/ProviderInfo;-><init>()V -HSPLandroid/content/pm/ProviderInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ProviderInfoList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ProviderInfoList; -HSPLandroid/content/pm/ProviderInfoList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ProviderInfoList;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ProviderInfoList;-><init>(Landroid/os/Parcel;Landroid/content/pm/ProviderInfoList-IA;)V -HSPLandroid/content/pm/ProviderInfoList;->getList()Ljava/util/List; -HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayList;Ljava/lang/Object;)Z -HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ResolveInfo; -HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ResolveInfo;-><init>()V -HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Landroid/content/pm/ServiceInfo$1;,Landroid/content/pm/ActivityInfo$1;,Landroid/text/TextUtils$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ResolveInfo-IA;)V -HSPLandroid/content/pm/ResolveInfo;->getComponentInfo()Landroid/content/pm/ComponentInfo; -HSPLandroid/content/pm/ResolveInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/pm/ResolveInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence; -HSPLandroid/content/pm/ResolveInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ServiceInfo; -HSPLandroid/content/pm/ServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Landroid/content/pm/ServiceInfo; -HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/pm/ServiceInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SharedLibraryInfo; -HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/content/pm/SharedLibraryInfo$1;Landroid/content/pm/SharedLibraryInfo$1; -HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/SharedLibraryInfo-IA;)V -HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;JILandroid/content/pm/VersionedPackage;Ljava/util/List;Ljava/util/List;Z)V -HSPLandroid/content/pm/SharedLibraryInfo;->addDependency(Landroid/content/pm/SharedLibraryInfo;)V -HSPLandroid/content/pm/SharedLibraryInfo;->getAllCodePaths()Ljava/util/List; -HSPLandroid/content/pm/SharedLibraryInfo;->getDependencies()Ljava/util/List; -HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String; -HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String; -HSPLandroid/content/pm/SharedLibraryInfo;->isNative()Z -HSPLandroid/content/pm/SharedLibraryInfo;->isSdk()Z -HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ShortcutInfo; -HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/ShortcutInfo$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V -HSPLandroid/content/pm/ShortcutInfo$Builder;->build()Landroid/content/pm/ShortcutInfo; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setCategories(Ljava/util/Set;)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setIntent(Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setIntents([Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLived(Z)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setRank(I)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo$Builder;->setShortLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder; -HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;)V+]Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo; -HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/ShortcutInfo;->addFlags(I)V -HSPLandroid/content/pm/ShortcutInfo;->cloneCapabilityBindings(Ljava/util/Map;)Ljava/util/Map; -HSPLandroid/content/pm/ShortcutInfo;->cloneCategories(Ljava/util/Set;)Landroid/util/ArraySet; -HSPLandroid/content/pm/ShortcutInfo;->cloneIntents([Landroid/content/Intent;)[Landroid/content/Intent; -HSPLandroid/content/pm/ShortcutInfo;->clonePersons([Landroid/app/Person;)[Landroid/app/Person; -HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V -HSPLandroid/content/pm/ShortcutInfo;->getActivity()Landroid/content/ComponentName; -HSPLandroid/content/pm/ShortcutInfo;->getCategories()Ljava/util/Set; -HSPLandroid/content/pm/ShortcutInfo;->getDisabledMessage()Ljava/lang/CharSequence; -HSPLandroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String; -HSPLandroid/content/pm/ShortcutInfo;->getExtras()Landroid/os/PersistableBundle; -HSPLandroid/content/pm/ShortcutInfo;->getIconResourceId()I -HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String; -HSPLandroid/content/pm/ShortcutInfo;->getLastChangedTimestamp()J -HSPLandroid/content/pm/ShortcutInfo;->getLongLabel()Ljava/lang/CharSequence; -HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String; -HSPLandroid/content/pm/ShortcutInfo;->getPersons()[Landroid/app/Person; -HSPLandroid/content/pm/ShortcutInfo;->getRank()I -HSPLandroid/content/pm/ShortcutInfo;->getShortLabel()Ljava/lang/CharSequence; -HSPLandroid/content/pm/ShortcutInfo;->getUserHandle()Landroid/os/UserHandle; -HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z -HSPLandroid/content/pm/ShortcutInfo;->hasIconFile()Z -HSPLandroid/content/pm/ShortcutInfo;->hasIconResource()Z -HSPLandroid/content/pm/ShortcutInfo;->hasIconUri()Z -HSPLandroid/content/pm/ShortcutInfo;->hasKeyFieldsOnly()Z -HSPLandroid/content/pm/ShortcutInfo;->isCached()Z -HSPLandroid/content/pm/ShortcutInfo;->isDeclaredInManifest()Z -HSPLandroid/content/pm/ShortcutInfo;->isDynamic()Z -HSPLandroid/content/pm/ShortcutInfo;->isEnabled()Z -HSPLandroid/content/pm/ShortcutInfo;->isPinned()Z -HSPLandroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent; -HSPLandroid/content/pm/ShortcutInfo;->updateTimestamp()V -HSPLandroid/content/pm/ShortcutInfo;->validateIcon(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon; -HSPLandroid/content/pm/ShortcutInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/ShortcutManager;-><init>(Landroid/content/Context;Landroid/content/pm/IShortcutService;)V -HSPLandroid/content/pm/ShortcutManager;->addDynamicShortcuts(Ljava/util/List;)Z -HSPLandroid/content/pm/ShortcutManager;->getDynamicShortcuts()Ljava/util/List; -HSPLandroid/content/pm/ShortcutManager;->getFutureOrThrow(Lcom/android/internal/infra/AndroidFuture;)Ljava/lang/Object; -HSPLandroid/content/pm/ShortcutManager;->getManifestShortcuts()Ljava/util/List; -HSPLandroid/content/pm/ShortcutManager;->getMaxShortcutCountPerActivity()I -HSPLandroid/content/pm/ShortcutManager;->getPinnedShortcuts()Ljava/util/List; -HSPLandroid/content/pm/ShortcutManager;->injectMyUserId()I -HSPLandroid/content/pm/ShortcutManager;->setDynamicShortcuts(Ljava/util/List;)Z -HSPLandroid/content/pm/ShortcutManager;->updateShortcuts(Ljava/util/List;)Z -HSPLandroid/content/pm/ShortcutQueryWrapper;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/Signature$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/Signature; -HSPLandroid/content/pm/Signature$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/Signature$1;->newArray(I)[Landroid/content/pm/Signature; -HSPLandroid/content/pm/Signature$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;Landroid/content/pm/Signature-IA;)V -HSPLandroid/content/pm/Signature;-><init>(Ljava/lang/String;)V -HSPLandroid/content/pm/Signature;-><init>([B)V -HSPLandroid/content/pm/Signature;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/pm/Signature;->hashCode()I -HSPLandroid/content/pm/Signature;->parseHexDigit(I)I -HSPLandroid/content/pm/Signature;->toByteArray()[B -HSPLandroid/content/pm/Signature;->toChars()[C -HSPLandroid/content/pm/Signature;->toChars([C[I)[C -HSPLandroid/content/pm/Signature;->toCharsString()Ljava/lang/String; -HSPLandroid/content/pm/SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SigningDetails; -HSPLandroid/content/pm/SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/SigningDetails;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/SigningDetails;->getSignatures()[Landroid/content/pm/Signature; -HSPLandroid/content/pm/SigningInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SigningInfo; -HSPLandroid/content/pm/SigningInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/SigningInfo;->getApkContentsSigners()[Landroid/content/pm/Signature; -HSPLandroid/content/pm/SigningInfo;->getSigningCertificateHistory()[Landroid/content/pm/Signature; -HSPLandroid/content/pm/SigningInfo;->hasMultipleSigners()Z -HSPLandroid/content/pm/SigningInfo;->hasPastSigningCertificates()Z -HSPLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/StringParceledListSlice; -HSPLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/StringParceledListSlice;->getList()Ljava/util/List; -HSPLandroid/content/pm/UserInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/UserInfo; -HSPLandroid/content/pm/UserInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/UserInfo;->getUserHandle()Landroid/os/UserHandle; -HSPLandroid/content/pm/UserInfo;->isAdmin()Z -HSPLandroid/content/pm/UserInfo;->isEnabled()Z -HSPLandroid/content/pm/UserInfo;->isGuest()Z -HSPLandroid/content/pm/UserInfo;->isManagedProfile()Z -HSPLandroid/content/pm/UserInfo;->isPrimary()Z -HSPLandroid/content/pm/UserInfo;->isProfile()Z -HSPLandroid/content/pm/UserInfo;->isQuietModeEnabled()Z -HSPLandroid/content/pm/UserInfo;->isRestricted()Z -HSPLandroid/content/pm/UserInfo;->supportsSwitchTo()Z -HSPLandroid/content/pm/UserInfo;->supportsSwitchToByUser()Z -HSPLandroid/content/pm/UserPackage;-><clinit>()V -HSPLandroid/content/pm/UserPackage;-><init>(ILjava/lang/String;)V -HSPLandroid/content/pm/UserPackage;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/pm/UserPackage;->hashCode()I -HSPLandroid/content/pm/UserPackage;->of(ILjava/lang/String;)Landroid/content/pm/UserPackage; -HSPLandroid/content/pm/UserProperties;->isPresent(J)Z -HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/VersionedPackage; -HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/content/pm/VersionedPackage$1;Landroid/content/pm/VersionedPackage$1; -HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;Landroid/content/pm/VersionedPackage-IA;)V -HSPLandroid/content/pm/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/pm/dex/ArtManager;->getCurrentProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String; -HSPLandroid/content/pm/dex/ArtManager;->getProfileName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/pm/dex/ArtManager;->getReferenceProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String; -HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLite(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;I)Landroid/content/pm/parsing/result/ParseResult; -HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLiteInner(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/parsing/result/ParseResult; -HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseMonolithicPackageLite(Landroid/content/pm/parsing/result/ParseInput;Ljava/io/File;I)Landroid/content/pm/parsing/result/ParseResult; -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;-><init>(Landroid/content/pm/parsing/result/ParseInput$Callback;)V -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->enableDeferredError(Ljava/lang/String;I)Landroid/content/pm/parsing/result/ParseResult; -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->getResult()Ljava/lang/Object; -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->isError()Z -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->isSuccess()Z -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->reset()Landroid/content/pm/parsing/result/ParseInput; -HSPLandroid/content/pm/parsing/result/ParseTypeImpl;->success(Ljava/lang/Object;)Landroid/content/pm/parsing/result/ParseResult; -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/permission/SplitPermissionInfoParcelable; -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;-><init>(Ljava/lang/String;Ljava/util/List;I)V -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getNewPermissions()Ljava/util/List; -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getSplitPermission()Ljava/lang/String; -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getTargetSdk()I -HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->onConstructed()V -HSPLandroid/content/pm/split/SplitDependencyLoader;-><init>(Landroid/util/SparseArray;)V -HSPLandroid/content/pm/split/SplitDependencyLoader;->collectConfigSplitIndices(I)[I -HSPLandroid/content/pm/split/SplitDependencyLoader;->loadDependenciesForSplit(I)V -HSPLandroid/content/res/ApkAssets;-><init>(ILjava/lang/String;ILandroid/content/res/loader/AssetsProvider;)V -HSPLandroid/content/res/ApkAssets;->close()V -HSPLandroid/content/res/ApkAssets;->definesOverlayable()Z -HSPLandroid/content/res/ApkAssets;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V -HSPLandroid/content/res/ApkAssets;->finalize()V -HSPLandroid/content/res/ApkAssets;->getAssetPath()Ljava/lang/String; -HSPLandroid/content/res/ApkAssets;->getDebugName()Ljava/lang/String; -HSPLandroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; -HSPLandroid/content/res/ApkAssets;->isUpToDate()Z -HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;)Landroid/content/res/ApkAssets; -HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;I)Landroid/content/res/ApkAssets; -HSPLandroid/content/res/ApkAssets;->loadOverlayFromPath(Ljava/lang/String;I)Landroid/content/res/ApkAssets; -HSPLandroid/content/res/ApkAssets;->openXml(Ljava/lang/String;)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/AssetFileDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/AssetFileDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/res/AssetFileDescriptor$AutoCloseInputStream;->read([BII)I -HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;JJ)V -HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;JJLandroid/os/Bundle;)V -HSPLandroid/content/res/AssetFileDescriptor;->close()V -HSPLandroid/content/res/AssetFileDescriptor;->createInputStream()Ljava/io/FileInputStream; -HSPLandroid/content/res/AssetFileDescriptor;->getDeclaredLength()J -HSPLandroid/content/res/AssetFileDescriptor;->getExtras()Landroid/os/Bundle; -HSPLandroid/content/res/AssetFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLandroid/content/res/AssetFileDescriptor;->getLength()J -HSPLandroid/content/res/AssetFileDescriptor;->getParcelFileDescriptor()Landroid/os/ParcelFileDescriptor; -HSPLandroid/content/res/AssetFileDescriptor;->getStartOffset()J -HSPLandroid/content/res/AssetFileDescriptor;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/res/AssetManager$AssetInputStream;-><init>(Landroid/content/res/AssetManager;J)V -HSPLandroid/content/res/AssetManager$AssetInputStream;-><init>(Landroid/content/res/AssetManager;JLandroid/content/res/AssetManager$AssetInputStream-IA;)V -HSPLandroid/content/res/AssetManager$AssetInputStream;->available()I -HSPLandroid/content/res/AssetManager$AssetInputStream;->close()V -HSPLandroid/content/res/AssetManager$AssetInputStream;->ensureOpen()V -HSPLandroid/content/res/AssetManager$AssetInputStream;->finalize()V -HSPLandroid/content/res/AssetManager$AssetInputStream;->getNativeAsset()J -HSPLandroid/content/res/AssetManager$AssetInputStream;->mark(I)V -HSPLandroid/content/res/AssetManager$AssetInputStream;->markSupported()Z -HSPLandroid/content/res/AssetManager$AssetInputStream;->read()I -HSPLandroid/content/res/AssetManager$AssetInputStream;->read([B)I -HSPLandroid/content/res/AssetManager$AssetInputStream;->read([BII)I -HSPLandroid/content/res/AssetManager$Builder;-><init>()V -HSPLandroid/content/res/AssetManager$Builder;->addApkAssets(Landroid/content/res/ApkAssets;)Landroid/content/res/AssetManager$Builder; -HSPLandroid/content/res/AssetManager$Builder;->build()Landroid/content/res/AssetManager;+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/content/res/AssetManager;->-$$Nest$fgetmObject(Landroid/content/res/AssetManager;)J -HSPLandroid/content/res/AssetManager;->-$$Nest$fputmApkAssets(Landroid/content/res/AssetManager;[Landroid/content/res/ApkAssets;)V -HSPLandroid/content/res/AssetManager;->-$$Nest$fputmLoaders(Landroid/content/res/AssetManager;[Landroid/content/res/loader/ResourcesLoader;)V -HSPLandroid/content/res/AssetManager;->-$$Nest$mdecRefsLocked(Landroid/content/res/AssetManager;J)V -HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetDestroy(J)V -HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetGetLength(J)J -HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetGetRemainingLength(J)J -HSPLandroid/content/res/AssetManager;->-$$Nest$smnativeAssetRead(J[BII)I -HSPLandroid/content/res/AssetManager;-><init>()V -HSPLandroid/content/res/AssetManager;-><init>(Z)V -HSPLandroid/content/res/AssetManager;-><init>(ZLandroid/content/res/AssetManager-IA;)V -HSPLandroid/content/res/AssetManager;->addAssetPathInternal(Ljava/lang/String;ZZ)I -HSPLandroid/content/res/AssetManager;->applyStyle(JIILandroid/content/res/XmlBlock$Parser;[IJJ)V -HSPLandroid/content/res/AssetManager;->applyStyleToTheme(JIZ)V -HSPLandroid/content/res/AssetManager;->close()V -HSPLandroid/content/res/AssetManager;->containsAllocatedTable()Z -HSPLandroid/content/res/AssetManager;->createSystemAssetsInZygoteLocked(ZLjava/lang/String;)V -HSPLandroid/content/res/AssetManager;->createTheme()J -HSPLandroid/content/res/AssetManager;->decRefsLocked(J)V -HSPLandroid/content/res/AssetManager;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V -HSPLandroid/content/res/AssetManager;->ensureOpenLocked()V -HSPLandroid/content/res/AssetManager;->ensureValidLocked()V -HSPLandroid/content/res/AssetManager;->finalize()V -HSPLandroid/content/res/AssetManager;->findCookieForPath(Ljava/lang/String;)I -HSPLandroid/content/res/AssetManager;->getApkAssets()[Landroid/content/res/ApkAssets; -HSPLandroid/content/res/AssetManager;->getAssignedPackageIdentifiers()Landroid/util/SparseArray; -HSPLandroid/content/res/AssetManager;->getAssignedPackageIdentifiers(ZZ)Landroid/util/SparseArray; -HSPLandroid/content/res/AssetManager;->getLoaders()Ljava/util/List; -HSPLandroid/content/res/AssetManager;->getLocales()[Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getNonSystemLocales()[Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getParentThemeIdentifier(I)I -HSPLandroid/content/res/AssetManager;->getPooledStringForCookie(II)Ljava/lang/CharSequence;+]Landroid/content/res/ApkAssets;Landroid/content/res/ApkAssets;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; -HSPLandroid/content/res/AssetManager;->getResourceArray(I[I)I -HSPLandroid/content/res/AssetManager;->getResourceArraySize(I)I -HSPLandroid/content/res/AssetManager;->getResourceBagText(II)Ljava/lang/CharSequence; -HSPLandroid/content/res/AssetManager;->getResourceEntryName(I)Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourceIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/content/res/AssetManager;->getResourceIntArray(I)[I -HSPLandroid/content/res/AssetManager;->getResourceName(I)Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourcePackageName(I)Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourceStringArray(I)[Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourceText(I)Ljava/lang/CharSequence; -HSPLandroid/content/res/AssetManager;->getResourceTextArray(I)[Ljava/lang/CharSequence; -HSPLandroid/content/res/AssetManager;->getResourceTypeName(I)Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->getResourceValue(IILandroid/util/TypedValue;Z)Z+]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; -HSPLandroid/content/res/AssetManager;->getSizeConfigurations()[Landroid/content/res/Configuration; -HSPLandroid/content/res/AssetManager;->getSystem()Landroid/content/res/AssetManager; -HSPLandroid/content/res/AssetManager;->getThemeValue(JILandroid/util/TypedValue;Z)Z -HSPLandroid/content/res/AssetManager;->incRefsLocked(J)V -HSPLandroid/content/res/AssetManager;->isUpToDate()Z -HSPLandroid/content/res/AssetManager;->list(Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream; -HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;I)Ljava/io/InputStream; -HSPLandroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;I)Ljava/io/InputStream; -HSPLandroid/content/res/AssetManager;->openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock;+]Ljava/lang/Object;Landroid/content/res/XmlBlock; -HSPLandroid/content/res/AssetManager;->openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/AssetManager;->rebaseTheme(JLandroid/content/res/AssetManager;[I[ZI)Landroid/content/res/AssetManager; -HSPLandroid/content/res/AssetManager;->releaseTheme(J)V -HSPLandroid/content/res/AssetManager;->resolveAttrs(JII[I[I[I[I)Z -HSPLandroid/content/res/AssetManager;->retrieveAttributes(Landroid/content/res/XmlBlock$Parser;[I[I[I)Z -HSPLandroid/content/res/AssetManager;->setApkAssets([Landroid/content/res/ApkAssets;Z)V -HSPLandroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIIIIIIIIIIIIIII)V -HSPLandroid/content/res/AssetManager;->setConfigurationInternal(IILjava/lang/String;[Ljava/lang/String;IIIIIIIIIIIIIIIIZ)V -HSPLandroid/content/res/AssetManager;->setThemeTo(JLandroid/content/res/AssetManager;J)V -HSPLandroid/content/res/AssetManager;->xmlBlockGone(I)V -HSPLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/res/ColorStateList$ColorStateListFactory;-><init>(Landroid/content/res/ColorStateList;)V -HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->getChangingConfigurations()I -HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance()Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance()Ljava/lang/Object; -HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object; -HSPLandroid/content/res/ColorStateList;-><init>()V -HSPLandroid/content/res/ColorStateList;-><init>(Landroid/content/res/ColorStateList;)V -HSPLandroid/content/res/ColorStateList;-><init>([[I[I)V -HSPLandroid/content/res/ColorStateList;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/content/res/ColorStateList;->canApplyTheme()Z -HSPLandroid/content/res/ColorStateList;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ColorStateList;->getChangingConfigurations()I -HSPLandroid/content/res/ColorStateList;->getColorForState([II)I -HSPLandroid/content/res/ColorStateList;->getConstantState()Landroid/content/res/ConstantState; -HSPLandroid/content/res/ColorStateList;->getDefaultColor()I -HSPLandroid/content/res/ColorStateList;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/content/res/ColorStateList;->isStateful()Z -HSPLandroid/content/res/ColorStateList;->modulateColor(IFF)I -HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; -HSPLandroid/content/res/ColorStateList;->onColorsChanged()V -HSPLandroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ColorStateList;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/res/CompatibilityInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/CompatibilityInfo; -HSPLandroid/content/res/CompatibilityInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;Landroid/content/res/CompatibilityInfo-IA;)V -HSPLandroid/content/res/CompatibilityInfo;->applyDisplayMetricsIfNeeded(Landroid/util/DisplayMetrics;Z)V -HSPLandroid/content/res/CompatibilityInfo;->applyOverrideScaleIfNeeded(Landroid/content/res/Configuration;)V -HSPLandroid/content/res/CompatibilityInfo;->applyOverrideScaleIfNeeded(Landroid/util/MergedConfiguration;)V -HSPLandroid/content/res/CompatibilityInfo;->applyToConfiguration(ILandroid/content/res/Configuration;)V -HSPLandroid/content/res/CompatibilityInfo;->applyToDisplayMetrics(Landroid/util/DisplayMetrics;)V -HSPLandroid/content/res/CompatibilityInfo;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/res/CompatibilityInfo;->getOverrideInvertedScale()F -HSPLandroid/content/res/CompatibilityInfo;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator; -HSPLandroid/content/res/CompatibilityInfo;->hasOverrideScale()Z -HSPLandroid/content/res/CompatibilityInfo;->hasOverrideScaling()Z -HSPLandroid/content/res/CompatibilityInfo;->hashCode()I -HSPLandroid/content/res/CompatibilityInfo;->isScalingRequired()Z -HSPLandroid/content/res/CompatibilityInfo;->needsCompatResources()Z -HSPLandroid/content/res/CompatibilityInfo;->setOverrideInvertedScale(F)V -HSPLandroid/content/res/CompatibilityInfo;->supportsScreen()Z -HSPLandroid/content/res/ComplexColor;-><init>()V -HSPLandroid/content/res/ComplexColor;->getChangingConfigurations()I -HSPLandroid/content/res/ComplexColor;->setBaseChangingConfigurations(I)V -HSPLandroid/content/res/Configuration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/Configuration; -HSPLandroid/content/res/Configuration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/content/res/Configuration;-><init>()V -HSPLandroid/content/res/Configuration;-><init>(Landroid/content/res/Configuration;)V -HSPLandroid/content/res/Configuration;-><init>(Landroid/os/Parcel;)V -HSPLandroid/content/res/Configuration;-><init>(Landroid/os/Parcel;Landroid/content/res/Configuration-IA;)V -HSPLandroid/content/res/Configuration;->compareTo(Landroid/content/res/Configuration;)I -HSPLandroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;)I -HSPLandroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;ZZ)I -HSPLandroid/content/res/Configuration;->diffPublicOnly(Landroid/content/res/Configuration;)I -HSPLandroid/content/res/Configuration;->equals(Landroid/content/res/Configuration;)Z -HSPLandroid/content/res/Configuration;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/res/Configuration;->fixUpLocaleList()V -HSPLandroid/content/res/Configuration;->generateDelta(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration; -HSPLandroid/content/res/Configuration;->getGrammaticalGender()I -HSPLandroid/content/res/Configuration;->getLayoutDirection()I -HSPLandroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList; -HSPLandroid/content/res/Configuration;->getScreenLayoutNoDirection(I)I -HSPLandroid/content/res/Configuration;->hashCode()I+]Landroid/os/LocaleList;Landroid/os/LocaleList; -HSPLandroid/content/res/Configuration;->isLayoutSizeAtLeast(I)Z -HSPLandroid/content/res/Configuration;->isOtherSeqNewer(Landroid/content/res/Configuration;)Z -HSPLandroid/content/res/Configuration;->isScreenRound()Z -HSPLandroid/content/res/Configuration;->isScreenWideColorGamut()Z -HSPLandroid/content/res/Configuration;->needNewResources(II)Z -HSPLandroid/content/res/Configuration;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/content/res/Configuration;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V -HSPLandroid/content/res/Configuration;->reduceScreenLayout(III)I -HSPLandroid/content/res/Configuration;->resetScreenLayout(I)I -HSPLandroid/content/res/Configuration;->setLayoutDirection(Ljava/util/Locale;)V -HSPLandroid/content/res/Configuration;->setLocale(Ljava/util/Locale;)V -HSPLandroid/content/res/Configuration;->setLocales(Landroid/os/LocaleList;)V -HSPLandroid/content/res/Configuration;->setTo(Landroid/content/res/Configuration;)V+]Ljava/lang/Object;Ljava/util/Locale;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/content/res/Configuration;->setTo(Landroid/content/res/Configuration;II)V -HSPLandroid/content/res/Configuration;->setToDefaults()V+]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/content/res/Configuration;->toString()Ljava/lang/String; -HSPLandroid/content/res/Configuration;->unset()V -HSPLandroid/content/res/Configuration;->updateFrom(Landroid/content/res/Configuration;)I+]Ljava/lang/Object;Ljava/util/Locale;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/os/LocaleList;Landroid/os/LocaleList;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/content/res/Configuration;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/content/res/ConfigurationBoundResourceCache;-><init>()V -HSPLandroid/content/res/ConfigurationBoundResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object; -HSPLandroid/content/res/ConfigurationBoundResourceCache;->getGeneration()I -HSPLandroid/content/res/ConfigurationBoundResourceCache;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object; -HSPLandroid/content/res/ConfigurationBoundResourceCache;->onConfigurationChange(I)V -HSPLandroid/content/res/ConfigurationBoundResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;I)V -HSPLandroid/content/res/ConfigurationBoundResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;IZ)V -HSPLandroid/content/res/ConfigurationBoundResourceCache;->shouldInvalidateEntry(Landroid/content/res/ConstantState;I)Z -HSPLandroid/content/res/ConfigurationBoundResourceCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z -HSPLandroid/content/res/ConstantState;-><init>()V -HSPLandroid/content/res/ConstantState;->newInstance(Landroid/content/res/Resources;)Ljava/lang/Object; -HSPLandroid/content/res/ConstantState;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object; -HSPLandroid/content/res/DrawableCache;-><init>()V -HSPLandroid/content/res/DrawableCache;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Landroid/graphics/drawable/Drawable$ConstantState;I)Z -HSPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z -HSPLandroid/content/res/FeatureFlagsImpl;->defaultLocale()Z -HSPLandroid/content/res/Flags;->defaultLocale()Z+]Landroid/content/res/FeatureFlags;Landroid/content/res/FeatureFlagsImpl; -HSPLandroid/content/res/FontResourcesParser;->parse(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -HSPLandroid/content/res/FontScaleConverterFactory;->forScale(F)Landroid/content/res/FontScaleConverter; -HSPLandroid/content/res/FontScaleConverterFactory;->isNonLinearFontScalingActive(F)Z -HSPLandroid/content/res/GradientColor;-><init>()V -HSPLandroid/content/res/GradientColor;->canApplyTheme()Z -HSPLandroid/content/res/GradientColor;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor; -HSPLandroid/content/res/GradientColor;->getConstantState()Landroid/content/res/ConstantState; -HSPLandroid/content/res/GradientColor;->getDefaultColor()I -HSPLandroid/content/res/GradientColor;->getShader()Landroid/graphics/Shader; -HSPLandroid/content/res/GradientColor;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/content/res/GradientColor;->onColorsChange()V -HSPLandroid/content/res/GradientColor;->updateRootElementState(Landroid/content/res/TypedArray;)V -HSPLandroid/content/res/ResourceId;->isValid(I)Z -HSPLandroid/content/res/Resources$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z -HSPLandroid/content/res/Resources$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V -HSPLandroid/content/res/Resources$NotFoundException;-><init>(Ljava/lang/String;)V -HSPLandroid/content/res/Resources$Theme;-><init>(Landroid/content/res/Resources;)V -HSPLandroid/content/res/Resources$Theme;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme-IA;)V -HSPLandroid/content/res/Resources$Theme;->applyStyle(IZ)V -HSPLandroid/content/res/Resources$Theme;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/res/Resources$Theme;->getAppliedStyleResId()I -HSPLandroid/content/res/Resources$Theme;->getChangingConfigurations()I -HSPLandroid/content/res/Resources$Theme;->getKey()Landroid/content/res/Resources$ThemeKey; -HSPLandroid/content/res/Resources$Theme;->getParentThemeIdentifier(I)I -HSPLandroid/content/res/Resources$Theme;->getResources()Landroid/content/res/Resources; -HSPLandroid/content/res/Resources$Theme;->getTheme()[Ljava/lang/String; -HSPLandroid/content/res/Resources$Theme;->hashCode()I -HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray; -HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl$ThemeImpl;Landroid/content/res/ResourcesImpl$ThemeImpl; -HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray; -HSPLandroid/content/res/Resources$Theme;->rebase()V -HSPLandroid/content/res/Resources$Theme;->rebase(Landroid/content/res/ResourcesImpl;)V -HSPLandroid/content/res/Resources$Theme;->resolveAttribute(ILandroid/util/TypedValue;Z)Z -HSPLandroid/content/res/Resources$Theme;->resolveAttributes([I[I)Landroid/content/res/TypedArray; -HSPLandroid/content/res/Resources$Theme;->setImpl(Landroid/content/res/ResourcesImpl$ThemeImpl;)V -HSPLandroid/content/res/Resources$Theme;->setTo(Landroid/content/res/Resources$Theme;)V -HSPLandroid/content/res/Resources$Theme;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/Resources;Landroid/content/res/Resources; -HSPLandroid/content/res/Resources$ThemeKey;-><init>()V -HSPLandroid/content/res/Resources$ThemeKey;->append(IZ)V -HSPLandroid/content/res/Resources$ThemeKey;->clone()Landroid/content/res/Resources$ThemeKey; -HSPLandroid/content/res/Resources$ThemeKey;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/content/res/Resources$ThemeKey;]Landroid/content/res/Resources$ThemeKey;Landroid/content/res/Resources$ThemeKey; -HSPLandroid/content/res/Resources$ThemeKey;->hashCode()I -HSPLandroid/content/res/Resources$ThemeKey;->moveToLast(I)V -HSPLandroid/content/res/Resources$ThemeKey;->setTo(Landroid/content/res/Resources$ThemeKey;)V+][I[I][Z[Z -HSPLandroid/content/res/Resources;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V -HSPLandroid/content/res/Resources;-><init>(Ljava/lang/ClassLoader;)V+]Ljava/util/Set;Ljava/util/Collections$SynchronizedSet; -HSPLandroid/content/res/Resources;->addLoaders([Landroid/content/res/loader/ResourcesLoader;)V -HSPLandroid/content/res/Resources;->checkCallbacksRegistered()V -HSPLandroid/content/res/Resources;->cleanupThemeReferences()V -HSPLandroid/content/res/Resources;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V -HSPLandroid/content/res/Resources;->dumpHistory(Ljava/io/PrintWriter;Ljava/lang/String;)V -HSPLandroid/content/res/Resources;->finishPreloading()V -HSPLandroid/content/res/Resources;->getAnimation(I)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/Resources;->getAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache; -HSPLandroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; -HSPLandroid/content/res/Resources;->getAttributeSetSourceResId(Landroid/util/AttributeSet;)I -HSPLandroid/content/res/Resources;->getBoolean(I)Z -HSPLandroid/content/res/Resources;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/content/res/Resources;->getColor(I)I -HSPLandroid/content/res/Resources;->getColor(ILandroid/content/res/Resources$Theme;)I -HSPLandroid/content/res/Resources;->getColorStateList(I)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/Resources;->getColorStateList(ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/Resources;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo; -HSPLandroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; -HSPLandroid/content/res/Resources;->getDimension(I)F -HSPLandroid/content/res/Resources;->getDimensionPixelOffset(I)I -HSPLandroid/content/res/Resources;->getDimensionPixelSize(I)I -HSPLandroid/content/res/Resources;->getDisplayAdjustments()Landroid/view/DisplayAdjustments; -HSPLandroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; -HSPLandroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/Resources;->getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/Resources;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/Resources;->getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/Resources;->getDrawableInflater()Landroid/graphics/drawable/DrawableInflater; -HSPLandroid/content/res/Resources;->getFloat(I)F -HSPLandroid/content/res/Resources;->getFont(Landroid/util/TypedValue;I)Landroid/graphics/Typeface; -HSPLandroid/content/res/Resources;->getFraction(III)F -HSPLandroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/content/res/Resources;->getImpl()Landroid/content/res/ResourcesImpl; -HSPLandroid/content/res/Resources;->getIntArray(I)[I -HSPLandroid/content/res/Resources;->getInteger(I)I -HSPLandroid/content/res/Resources;->getLayout(I)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/Resources;->getLoaders()Ljava/util/List; -HSPLandroid/content/res/Resources;->getQuantityString(II)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getQuantityString(II[Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getQuantityText(II)Ljava/lang/CharSequence; -HSPLandroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getResourceName(I)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getResourcePackageName(I)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getResourceTypeName(I)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getSizeConfigurations()[Landroid/content/res/Configuration; -HSPLandroid/content/res/Resources;->getStateListAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache; -HSPLandroid/content/res/Resources;->getString(I)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String; -HSPLandroid/content/res/Resources;->getSystem()Landroid/content/res/Resources; -HSPLandroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence; -HSPLandroid/content/res/Resources;->getTextArray(I)[Ljava/lang/CharSequence; -HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V -HSPLandroid/content/res/Resources;->getValueForDensity(IILandroid/util/TypedValue;Z)V -HSPLandroid/content/res/Resources;->getXml(I)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/Resources;->hasOverrideDisplayAdjustments()Z -HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/Resources;->loadComplexColor(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; -HSPLandroid/content/res/Resources;->loadDrawable(Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/Resources;->loadXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/Resources;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/Resources;->newTheme()Landroid/content/res/Resources$Theme; -HSPLandroid/content/res/Resources;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; -HSPLandroid/content/res/Resources;->obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; -HSPLandroid/content/res/Resources;->obtainTempTypedValue()Landroid/util/TypedValue; -HSPLandroid/content/res/Resources;->obtainTypedArray(I)Landroid/content/res/TypedArray; -HSPLandroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream; -HSPLandroid/content/res/Resources;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream; -HSPLandroid/content/res/Resources;->openRawResourceFd(I)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/Resources;->parseBundleExtra(Ljava/lang/String;Landroid/util/AttributeSet;Landroid/os/Bundle;)V -HSPLandroid/content/res/Resources;->preloadColorStateLists(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)I -HSPLandroid/content/res/Resources;->preloadDrawables(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)I -HSPLandroid/content/res/Resources;->preloadFonts(I)V -HSPLandroid/content/res/Resources;->preloadResources()V -HSPLandroid/content/res/Resources;->releaseTempTypedValue(Landroid/util/TypedValue;)V -HSPLandroid/content/res/Resources;->resourceHasPackage(I)Z -HSPLandroid/content/res/Resources;->selectDefaultTheme(II)I -HSPLandroid/content/res/Resources;->selectSystemTheme(IIIIII)I -HSPLandroid/content/res/Resources;->setCallbacks(Landroid/content/res/Resources$UpdateCallbacks;)V -HSPLandroid/content/res/Resources;->setImpl(Landroid/content/res/ResourcesImpl;)V -HSPLandroid/content/res/Resources;->startPreloading()V -HSPLandroid/content/res/Resources;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)V -HSPLandroid/content/res/Resources;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/content/res/Resources;->updateSystemConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2;->get()Ljava/lang/Object; -HSPLandroid/content/res/ResourcesImpl$LookupStack;-><init>()V -HSPLandroid/content/res/ResourcesImpl$LookupStack;-><init>(Landroid/content/res/ResourcesImpl$LookupStack-IA;)V -HSPLandroid/content/res/ResourcesImpl$LookupStack;->contains(I)Z -HSPLandroid/content/res/ResourcesImpl$LookupStack;->pop()V -HSPLandroid/content/res/ResourcesImpl$LookupStack;->push(I)V -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;-><init>(Landroid/content/res/ResourcesImpl;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->applyStyle(IZ)V -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->finalize()V -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getAppliedStyleResId()I -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getChangingConfigurations()I -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getKey()Landroid/content/res/Resources$ThemeKey; -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getParentThemeIdentifier(I)I -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getTheme()[Ljava/lang/String; -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->obtainStyledAttributes(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->rebase()V -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->rebase(Landroid/content/res/AssetManager;)V -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->resolveAttribute(ILandroid/util/TypedValue;Z)Z -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->resolveAttributes(Landroid/content/res/Resources$Theme;[I[I)Landroid/content/res/TypedArray; -HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->setTo(Landroid/content/res/ResourcesImpl$ThemeImpl;)V -HSPLandroid/content/res/ResourcesImpl;->-$$Nest$sfgetsThemeRegistry()Llibcore/util/NativeAllocationRegistry; -HSPLandroid/content/res/ResourcesImpl;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V+]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl; -HSPLandroid/content/res/ResourcesImpl;->adjustLanguageTag(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/res/ResourcesImpl;->attrForQuantityCode(Ljava/lang/String;)I -HSPLandroid/content/res/ResourcesImpl;->cacheDrawable(Landroid/util/TypedValue;ZLandroid/content/res/DrawableCache;Landroid/content/res/Resources$Theme;ZJLandroid/graphics/drawable/Drawable;I)V+]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/graphics/drawable/Drawable;megamorphic_types -HSPLandroid/content/res/ResourcesImpl;->calcConfigChanges(Landroid/content/res/Configuration;)I -HSPLandroid/content/res/ResourcesImpl;->decodeImageDrawable(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V -HSPLandroid/content/res/ResourcesImpl;->finishPreloading()V -HSPLandroid/content/res/ResourcesImpl;->flushLayoutCache()V -HSPLandroid/content/res/ResourcesImpl;->getAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache; -HSPLandroid/content/res/ResourcesImpl;->getAssets()Landroid/content/res/AssetManager; -HSPLandroid/content/res/ResourcesImpl;->getAttributeSetSourceResId(Landroid/util/AttributeSet;)I -HSPLandroid/content/res/ResourcesImpl;->getColorStateListFromInt(Landroid/util/TypedValue;J)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ResourcesImpl;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo; -HSPLandroid/content/res/ResourcesImpl;->getConfiguration()Landroid/content/res/Configuration; -HSPLandroid/content/res/ResourcesImpl;->getDisplayAdjustments()Landroid/view/DisplayAdjustments; -HSPLandroid/content/res/ResourcesImpl;->getDisplayMetrics()Landroid/util/DisplayMetrics; -HSPLandroid/content/res/ResourcesImpl;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/content/res/ResourcesImpl;->getPluralRule()Landroid/icu/text/PluralRules; -HSPLandroid/content/res/ResourcesImpl;->getQuantityText(II)Ljava/lang/CharSequence; -HSPLandroid/content/res/ResourcesImpl;->getResourceEntryName(I)Ljava/lang/String; -HSPLandroid/content/res/ResourcesImpl;->getResourceName(I)Ljava/lang/String; -HSPLandroid/content/res/ResourcesImpl;->getResourcePackageName(I)Ljava/lang/String; -HSPLandroid/content/res/ResourcesImpl;->getResourceTypeName(I)Ljava/lang/String; -HSPLandroid/content/res/ResourcesImpl;->getSizeConfigurations()[Landroid/content/res/Configuration; -HSPLandroid/content/res/ResourcesImpl;->getStateListAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache; -HSPLandroid/content/res/ResourcesImpl;->getValue(ILandroid/util/TypedValue;Z)V -HSPLandroid/content/res/ResourcesImpl;->getValueForDensity(IILandroid/util/TypedValue;Z)V -HSPLandroid/content/res/ResourcesImpl;->isIntLike(Ljava/lang/String;)Z -HSPLandroid/content/res/ResourcesImpl;->lambda$decodeImageDrawable$1(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/content/res/ResourcesImpl;->lambda$new$0()Landroid/content/res/ResourcesImpl$LookupStack; -HSPLandroid/content/res/ResourcesImpl;->loadColorStateList(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList; -HSPLandroid/content/res/ResourcesImpl;->loadComplexColor(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; -HSPLandroid/content/res/ResourcesImpl;->loadComplexColorForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor; -HSPLandroid/content/res/ResourcesImpl;->loadComplexColorFromName(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/TypedValue;I)Landroid/content/res/ComplexColor;+]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache; -HSPLandroid/content/res/ResourcesImpl;->loadDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;+]Landroid/graphics/drawable/Drawable$ConstantState;megamorphic_types]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/graphics/drawable/Drawable;megamorphic_types -HSPLandroid/content/res/ResourcesImpl;->loadDrawableForCookie(Landroid/content/res/Resources;Landroid/util/TypedValue;II)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;Landroid/util/TypedValue;I)Landroid/graphics/Typeface; -HSPLandroid/content/res/ResourcesImpl;->loadXmlDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILjava/lang/String;)Landroid/graphics/drawable/Drawable; -HSPLandroid/content/res/ResourcesImpl;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;+]Ljava/lang/Object;Ljava/lang/String;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/XmlBlock;Landroid/content/res/XmlBlock; -HSPLandroid/content/res/ResourcesImpl;->newThemeImpl()Landroid/content/res/ResourcesImpl$ThemeImpl; -HSPLandroid/content/res/ResourcesImpl;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream; -HSPLandroid/content/res/ResourcesImpl;->openRawResourceFd(ILandroid/util/TypedValue;)Landroid/content/res/AssetFileDescriptor; -HSPLandroid/content/res/ResourcesImpl;->startPreloading()V -HSPLandroid/content/res/ResourcesImpl;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/app/ResourcesManager;Landroid/app/ResourcesManager;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/os/LocaleList;Landroid/os/LocaleList;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache; -HSPLandroid/content/res/ResourcesImpl;->updateConfigurationImpl(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Z)V+]Landroid/content/res/ResourcesImpl;Landroid/content/res/ResourcesImpl;]Landroid/app/ResourcesManager;Landroid/app/ResourcesManager;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Ljava/util/Locale;Ljava/util/Locale;]Landroid/content/res/DrawableCache;Landroid/content/res/DrawableCache;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/os/LocaleList;Landroid/os/LocaleList;]Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;]Landroid/content/res/ConfigurationBoundResourceCache;Landroid/content/res/ConfigurationBoundResourceCache;]Ljava/lang/Object;Ljava/util/Locale; -HSPLandroid/content/res/ResourcesImpl;->verifyPreloadConfig(IIILjava/lang/String;)Z -HSPLandroid/content/res/ResourcesKey;-><init>(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;[Landroid/content/res/loader/ResourcesLoader;)V -HSPLandroid/content/res/ResourcesKey;->equals(Ljava/lang/Object;)Z -HSPLandroid/content/res/ResourcesKey;->hasOverrideConfiguration()Z -HSPLandroid/content/res/ResourcesKey;->hashCode()I -HSPLandroid/content/res/StringBlock;-><init>(JZ)V -HSPLandroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/content/res/StringBlock$StyleIDs;)Ljava/lang/CharSequence; -HSPLandroid/content/res/StringBlock;->close()V -HSPLandroid/content/res/StringBlock;->finalize()V -HSPLandroid/content/res/StringBlock;->get(I)Ljava/lang/CharSequence; -HSPLandroid/content/res/StringBlock;->getSequence(I)Ljava/lang/CharSequence;+]Landroid/util/SparseArray;Landroid/util/SparseArray; -HSPLandroid/content/res/ThemedResourceCache;-><init>()V -HSPLandroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object; -HSPLandroid/content/res/ThemedResourceCache;->getGeneration()I -HSPLandroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray; -HSPLandroid/content/res/ThemedResourceCache;->getUnthemedLocked(Z)Landroid/util/LongSparseArray; -HSPLandroid/content/res/ThemedResourceCache;->onConfigurationChange(I)V -HSPLandroid/content/res/ThemedResourceCache;->pruneEntriesLocked(Landroid/util/LongSparseArray;I)Z -HSPLandroid/content/res/ThemedResourceCache;->pruneLocked(I)Z -HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;I)V -HSPLandroid/content/res/ThemedResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;IZ)V -HSPLandroid/content/res/TypedArray;-><init>(Landroid/content/res/Resources;)V -HSPLandroid/content/res/TypedArray;->extractThemeAttrs()[I -HSPLandroid/content/res/TypedArray;->extractThemeAttrs([I)[I -HSPLandroid/content/res/TypedArray;->getBoolean(IZ)Z -HSPLandroid/content/res/TypedArray;->getChangingConfigurations()I+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/content/res/TypedArray;->getColor(II)I -HSPLandroid/content/res/TypedArray;->getColorStateList(I)Landroid/content/res/ColorStateList;+]Landroid/content/res/Resources;Landroid/content/res/Resources; -HSPLandroid/content/res/TypedArray;->getComplexColor(I)Landroid/content/res/ComplexColor; -HSPLandroid/content/res/TypedArray;->getDimension(IF)F -HSPLandroid/content/res/TypedArray;->getDimensionPixelOffset(II)I -HSPLandroid/content/res/TypedArray;->getDimensionPixelSize(II)I -HSPLandroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/content/res/TypedArray;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;+]Landroid/content/res/Resources;Landroid/content/res/Resources; -HSPLandroid/content/res/TypedArray;->getFloat(IF)F -HSPLandroid/content/res/TypedArray;->getFont(I)Landroid/graphics/Typeface; -HSPLandroid/content/res/TypedArray;->getFraction(IIIF)F -HSPLandroid/content/res/TypedArray;->getIndex(I)I -HSPLandroid/content/res/TypedArray;->getIndexCount()I -HSPLandroid/content/res/TypedArray;->getInt(II)I -HSPLandroid/content/res/TypedArray;->getInteger(II)I -HSPLandroid/content/res/TypedArray;->getLayoutDimension(II)I -HSPLandroid/content/res/TypedArray;->getLayoutDimension(ILjava/lang/String;)I -HSPLandroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;+]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String; -HSPLandroid/content/res/TypedArray;->getPositionDescription()Ljava/lang/String; -HSPLandroid/content/res/TypedArray;->getResourceId(II)I -HSPLandroid/content/res/TypedArray;->getResources()Landroid/content/res/Resources; -HSPLandroid/content/res/TypedArray;->getString(I)Ljava/lang/String;+]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/content/res/TypedArray;->getText(I)Ljava/lang/CharSequence; -HSPLandroid/content/res/TypedArray;->getTextArray(I)[Ljava/lang/CharSequence; -HSPLandroid/content/res/TypedArray;->getType(I)I -HSPLandroid/content/res/TypedArray;->getValue(ILandroid/util/TypedValue;)Z -HSPLandroid/content/res/TypedArray;->getValueAt(ILandroid/util/TypedValue;)Z -HSPLandroid/content/res/TypedArray;->hasValue(I)Z -HSPLandroid/content/res/TypedArray;->hasValueOrEmpty(I)Z -HSPLandroid/content/res/TypedArray;->length()I -HSPLandroid/content/res/TypedArray;->loadStringValueAt(I)Ljava/lang/CharSequence;+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager;]Landroid/content/res/Validator;Landroid/content/res/Validator; -HSPLandroid/content/res/TypedArray;->obtain(Landroid/content/res/Resources;I)Landroid/content/res/TypedArray;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -HSPLandroid/content/res/TypedArray;->peekValue(I)Landroid/util/TypedValue; -HSPLandroid/content/res/TypedArray;->recycle()V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -HSPLandroid/content/res/TypedArray;->resize(I)V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; -HSPLandroid/content/res/XmlBlock$Parser;-><init>(Landroid/content/res/XmlBlock;JLandroid/content/res/XmlBlock;)V -HSPLandroid/content/res/XmlBlock$Parser;->close()V -HSPLandroid/content/res/XmlBlock$Parser;->finalize()V -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeBooleanValue(IZ)Z -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeCount()I -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeIntValue(II)I -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeIntValue(Ljava/lang/String;Ljava/lang/String;I)I -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeName(I)Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeNameResource(I)I -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeResourceValue(II)I -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeResourceValue(Ljava/lang/String;Ljava/lang/String;I)I -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(I)Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; -HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->getClassAttribute()Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->getDepth()I -HSPLandroid/content/res/XmlBlock$Parser;->getEventType()I -HSPLandroid/content/res/XmlBlock$Parser;->getLineNumber()I -HSPLandroid/content/res/XmlBlock$Parser;->getName()Ljava/lang/String;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; -HSPLandroid/content/res/XmlBlock$Parser;->getPooledString(I)Ljava/lang/CharSequence;+]Landroid/content/res/StringBlock;Landroid/content/res/StringBlock; -HSPLandroid/content/res/XmlBlock$Parser;->getPositionDescription()Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->getSequenceString(Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->getSourceResId()I -HSPLandroid/content/res/XmlBlock$Parser;->getText()Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->isEmptyElementTag()Z -HSPLandroid/content/res/XmlBlock$Parser;->next()I+]Landroid/content/res/XmlBlock$Parser;Landroid/content/res/XmlBlock$Parser;]Landroid/content/res/Validator;Landroid/content/res/Validator; -HSPLandroid/content/res/XmlBlock$Parser;->nextTag()I -HSPLandroid/content/res/XmlBlock$Parser;->nextText()Ljava/lang/String; -HSPLandroid/content/res/XmlBlock$Parser;->require(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/content/res/XmlBlock;->-$$Nest$fgetmOpenCount(Landroid/content/res/XmlBlock;)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$fputmOpenCount(Landroid/content/res/XmlBlock;I)V -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeCount(J)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeData(JI)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeDataType(JI)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeIndex(JLjava/lang/String;Ljava/lang/String;)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeName(JI)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetAttributeStringValue(JI)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetClassAttribute(J)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetLineNumber(J)I -HSPLandroid/content/res/XmlBlock;->-$$Nest$smnativeGetText(J)I -HSPLandroid/content/res/XmlBlock;-><init>(Landroid/content/res/AssetManager;J)V -HSPLandroid/content/res/XmlBlock;->close()V -HSPLandroid/content/res/XmlBlock;->decOpenCountLocked()V -HSPLandroid/content/res/XmlBlock;->finalize()V -HSPLandroid/content/res/XmlBlock;->newParser()Landroid/content/res/XmlResourceParser; -HSPLandroid/content/res/XmlBlock;->newParser(I)Landroid/content/res/XmlResourceParser; -HSPLandroid/content/type/DefaultMimeMapFactory$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/content/type/DefaultMimeMapFactory;->create()Llibcore/content/type/MimeMap; -HSPLandroid/content/type/DefaultMimeMapFactory;->lambda$create$0(Ljava/lang/Class;Ljava/lang/String;)Ljava/io/InputStream; -HSPLandroid/content/type/DefaultMimeMapFactory;->parseTypes(Llibcore/content/type/MimeMap$Builder;Ljava/util/function/Function;Ljava/lang/String;)V -HSPLandroid/database/AbstractCursor$SelfContentObserver;-><init>(Landroid/database/AbstractCursor;)V -HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V -HSPLandroid/database/AbstractCursor;-><init>()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; -HSPLandroid/database/AbstractCursor;->checkPosition()V+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/AbstractCursor;->close()V+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;,Landroid/database/MatrixCursor;]Landroid/database/ContentObservable;Landroid/database/ContentObservable;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; -HSPLandroid/database/AbstractCursor;->fillWindow(ILandroid/database/CursorWindow;)V -HSPLandroid/database/AbstractCursor;->finalize()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; -HSPLandroid/database/AbstractCursor;->getColumnCount()I+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor; -HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I -HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I -HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String;+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor; -HSPLandroid/database/AbstractCursor;->getExtras()Landroid/os/Bundle; -HSPLandroid/database/AbstractCursor;->getPosition()I -HSPLandroid/database/AbstractCursor;->getWantsAllOnMoveCalls()Z -HSPLandroid/database/AbstractCursor;->getWindow()Landroid/database/CursorWindow; -HSPLandroid/database/AbstractCursor;->isAfterLast()Z+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/AbstractCursor;->isClosed()Z -HSPLandroid/database/AbstractCursor;->isLast()Z -HSPLandroid/database/AbstractCursor;->move(I)Z -HSPLandroid/database/AbstractCursor;->moveToFirst()Z -HSPLandroid/database/AbstractCursor;->moveToLast()Z -HSPLandroid/database/AbstractCursor;->moveToNext()Z+]Landroid/database/AbstractCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/MatrixCursor;,Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z+]Landroid/database/AbstractCursor;missing_types -HSPLandroid/database/AbstractCursor;->onChange(Z)V -HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V+]Landroid/database/DataSetObservable;Landroid/database/DataSetObservable; -HSPLandroid/database/AbstractCursor;->onMove(II)Z -HSPLandroid/database/AbstractCursor;->registerContentObserver(Landroid/database/ContentObserver;)V -HSPLandroid/database/AbstractCursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V -HSPLandroid/database/AbstractCursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V -HSPLandroid/database/AbstractCursor;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;)V -HSPLandroid/database/AbstractCursor;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;IZ)V -HSPLandroid/database/AbstractCursor;->unregisterContentObserver(Landroid/database/ContentObserver;)V -HSPLandroid/database/AbstractWindowedCursor;-><init>()V -HSPLandroid/database/AbstractWindowedCursor;->checkPosition()V -HSPLandroid/database/AbstractWindowedCursor;->clearOrCreateWindow(Ljava/lang/String;)V -HSPLandroid/database/AbstractWindowedCursor;->closeWindow()V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B -HSPLandroid/database/AbstractWindowedCursor;->getDouble(I)D+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->getFloat(I)F -HSPLandroid/database/AbstractWindowedCursor;->getInt(I)I+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String;+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->getType(I)I -HSPLandroid/database/AbstractWindowedCursor;->getWindow()Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->hasWindow()Z -HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V+]Landroid/database/AbstractWindowedCursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/AbstractWindowedCursor;->setWindow(Landroid/database/CursorWindow;)V -HSPLandroid/database/BulkCursorDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/database/BulkCursorDescriptor; -HSPLandroid/database/BulkCursorDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/database/BulkCursorDescriptor;-><init>()V -HSPLandroid/database/BulkCursorDescriptor;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/database/BulkCursorDescriptor;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/database/BulkCursorNative;-><init>()V -HSPLandroid/database/BulkCursorNative;->asBinder()Landroid/os/IBinder; -HSPLandroid/database/BulkCursorNative;->asInterface(Landroid/os/IBinder;)Landroid/database/IBulkCursor; -HSPLandroid/database/BulkCursorNative;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/database/BulkCursorProxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/database/BulkCursorProxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/database/BulkCursorProxy;->close()V -HSPLandroid/database/BulkCursorProxy;->getWindow(I)Landroid/database/CursorWindow; -HSPLandroid/database/BulkCursorToCursorAdaptor;-><init>()V -HSPLandroid/database/BulkCursorToCursorAdaptor;->close()V -HSPLandroid/database/BulkCursorToCursorAdaptor;->getColumnNames()[Ljava/lang/String; -HSPLandroid/database/BulkCursorToCursorAdaptor;->getCount()I -HSPLandroid/database/BulkCursorToCursorAdaptor;->getObserver()Landroid/database/IContentObserver; -HSPLandroid/database/BulkCursorToCursorAdaptor;->initialize(Landroid/database/BulkCursorDescriptor;)V -HSPLandroid/database/BulkCursorToCursorAdaptor;->onMove(II)Z+]Landroid/database/IBulkCursor;Landroid/database/BulkCursorProxy;]Landroid/database/BulkCursorToCursorAdaptor;Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V -HSPLandroid/database/ContentObservable;-><init>()V -HSPLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V -HSPLandroid/database/ContentObservable;->registerObserver(Landroid/database/ContentObserver;)V -HSPLandroid/database/ContentObserver$$ExternalSyntheticLambda0;-><init>(Landroid/database/ContentObserver;ZLjava/util/Collection;II)V -HSPLandroid/database/ContentObserver$$ExternalSyntheticLambda0;->run()V -HSPLandroid/database/ContentObserver$Transport;-><init>(Landroid/database/ContentObserver;)V -HSPLandroid/database/ContentObserver$Transport;->onChangeEtc(Z[Landroid/net/Uri;II)V -HSPLandroid/database/ContentObserver$Transport;->releaseContentObserver()V -HSPLandroid/database/ContentObserver;-><init>(Landroid/os/Handler;)V -HSPLandroid/database/ContentObserver;->dispatchChange(ZLjava/util/Collection;II)V -HSPLandroid/database/ContentObserver;->getContentObserver()Landroid/database/IContentObserver; -HSPLandroid/database/ContentObserver;->onChange(Z)V -HSPLandroid/database/ContentObserver;->onChange(ZLandroid/net/Uri;)V -HSPLandroid/database/ContentObserver;->onChange(ZLandroid/net/Uri;I)V -HSPLandroid/database/ContentObserver;->onChange(ZLjava/util/Collection;I)V -HSPLandroid/database/ContentObserver;->onChange(ZLjava/util/Collection;II)V -HSPLandroid/database/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver; -HSPLandroid/database/CrossProcessCursorWrapper;-><init>(Landroid/database/Cursor;)V -HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;-><init>(Landroid/database/IContentObserver;Landroid/os/IBinder$DeathRecipient;)V -HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;)Z -HSPLandroid/database/CursorToBulkCursorAdaptor;-><init>(Landroid/database/Cursor;Landroid/database/IContentObserver;Ljava/lang/String;)V -HSPLandroid/database/CursorToBulkCursorAdaptor;->binderDied()V -HSPLandroid/database/CursorToBulkCursorAdaptor;->close()V -HSPLandroid/database/CursorToBulkCursorAdaptor;->closeFilledWindowLocked()V -HSPLandroid/database/CursorToBulkCursorAdaptor;->createAndRegisterObserverProxyLocked(Landroid/database/IContentObserver;)V -HSPLandroid/database/CursorToBulkCursorAdaptor;->disposeLocked()V -HSPLandroid/database/CursorToBulkCursorAdaptor;->getBulkCursorDescriptor()Landroid/database/BulkCursorDescriptor; -HSPLandroid/database/CursorToBulkCursorAdaptor;->getWindow(I)Landroid/database/CursorWindow; -HSPLandroid/database/CursorToBulkCursorAdaptor;->throwIfCursorIsClosed()V -HSPLandroid/database/CursorToBulkCursorAdaptor;->unregisterObserverProxyLocked()V -HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/database/CursorWindow$1;->newArray(I)[Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;)V -HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;Landroid/database/CursorWindow-IA;)V -HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;)V -HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/database/CursorWindow;->allocRow()Z -HSPLandroid/database/CursorWindow;->clear()V -HSPLandroid/database/CursorWindow;->dispose()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; -HSPLandroid/database/CursorWindow;->finalize()V+]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; -HSPLandroid/database/CursorWindow;->getBlob(II)[B -HSPLandroid/database/CursorWindow;->getCursorWindowSize()I -HSPLandroid/database/CursorWindow;->getDouble(II)D+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->getFloat(II)F -HSPLandroid/database/CursorWindow;->getInt(II)I+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->getLong(II)J+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->getNumRows()I+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->getStartPosition()I -HSPLandroid/database/CursorWindow;->getString(II)Ljava/lang/String;+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->getType(II)I+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow; -HSPLandroid/database/CursorWindow;->onAllReferencesReleased()V -HSPLandroid/database/CursorWindow;->putLong(JII)Z -HSPLandroid/database/CursorWindow;->putNull(II)Z -HSPLandroid/database/CursorWindow;->putString(Ljava/lang/String;II)Z -HSPLandroid/database/CursorWindow;->setNumColumns(I)Z -HSPLandroid/database/CursorWindow;->setStartPosition(I)V -HSPLandroid/database/CursorWindow;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/database/CursorWrapper;-><init>(Landroid/database/Cursor;)V -HSPLandroid/database/CursorWrapper;->close()V -HSPLandroid/database/CursorWrapper;->getBlob(I)[B -HSPLandroid/database/CursorWrapper;->getColumnCount()I -HSPLandroid/database/CursorWrapper;->getColumnIndex(Ljava/lang/String;)I -HSPLandroid/database/CursorWrapper;->getColumnIndexOrThrow(Ljava/lang/String;)I -HSPLandroid/database/CursorWrapper;->getColumnName(I)Ljava/lang/String; -HSPLandroid/database/CursorWrapper;->getColumnNames()[Ljava/lang/String; -HSPLandroid/database/CursorWrapper;->getCount()I -HSPLandroid/database/CursorWrapper;->getExtras()Landroid/os/Bundle; -HSPLandroid/database/CursorWrapper;->getInt(I)I+]Landroid/database/Cursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/content/ContentProviderClient$CursorWrapperInner;,Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/CursorWrapper;->getLong(I)J -HSPLandroid/database/CursorWrapper;->getPosition()I -HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String; -HSPLandroid/database/CursorWrapper;->getType(I)I -HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor; -HSPLandroid/database/CursorWrapper;->isAfterLast()Z+]Landroid/database/Cursor;Landroid/database/sqlite/SQLiteCursor;,Landroid/content/ContentProviderClient$CursorWrapperInner;,Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/CursorWrapper;->isClosed()Z -HSPLandroid/database/CursorWrapper;->isLast()Z -HSPLandroid/database/CursorWrapper;->isNull(I)Z+]Landroid/database/Cursor;Landroid/database/BulkCursorToCursorAdaptor; -HSPLandroid/database/CursorWrapper;->moveToFirst()Z -HSPLandroid/database/CursorWrapper;->moveToLast()Z -HSPLandroid/database/CursorWrapper;->moveToNext()Z -HSPLandroid/database/CursorWrapper;->moveToPosition(I)Z -HSPLandroid/database/CursorWrapper;->registerContentObserver(Landroid/database/ContentObserver;)V -HSPLandroid/database/DataSetObservable;-><init>()V -HSPLandroid/database/DataSetObservable;->notifyChanged()V -HSPLandroid/database/DataSetObservable;->notifyInvalidated()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/database/DataSetObserver;-><init>()V -HSPLandroid/database/DatabaseUtils;->appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/database/DatabaseUtils;->categorizeStatement(Ljava/lang/String;Ljava/lang/String;)I+]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V -HSPLandroid/database/DatabaseUtils;->getSqlStatementPrefixSimple(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I -HSPLandroid/database/DatabaseUtils;->getSqlStatementTypeExtended(Ljava/lang/String;)I -HSPLandroid/database/DatabaseUtils;->getTypeOfObject(Ljava/lang/Object;)I -HSPLandroid/database/DatabaseUtils;->longForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J -HSPLandroid/database/DatabaseUtils;->longForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J -HSPLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J -HSPLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J -HSPLandroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;)V -HSPLandroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;Ljava/lang/String;I)V -HSPLandroid/database/DatabaseUtils;->readExceptionWithFileNotFoundExceptionFromParcel(Landroid/os/Parcel;)V -HSPLandroid/database/DatabaseUtils;->readExceptionWithOperationApplicationExceptionFromParcel(Landroid/os/Parcel;)V -HSPLandroid/database/DatabaseUtils;->sqlEscapeString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/DatabaseUtils;->stringForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/DatabaseUtils;->stringForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/DatabaseUtils;->writeExceptionToParcel(Landroid/os/Parcel;Ljava/lang/Exception;)V -HSPLandroid/database/DefaultDatabaseErrorHandler;-><init>()V -HSPLandroid/database/IContentObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/database/IContentObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/database/IContentObserver$Stub$Proxy;->onChangeEtc(Z[Landroid/net/Uri;II)V -HSPLandroid/database/IContentObserver$Stub;-><init>()V -HSPLandroid/database/IContentObserver$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/database/IContentObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/database/IContentObserver; -HSPLandroid/database/IContentObserver$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/database/IContentObserver$Stub;->getMaxTransactionId()I -HSPLandroid/database/IContentObserver$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/database/IContentObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder; -HSPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/String;Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder; -HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V -HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;I)V -HSPLandroid/database/MatrixCursor;->addRow([Ljava/lang/Object;)V -HSPLandroid/database/MatrixCursor;->ensureCapacity(I)V -HSPLandroid/database/MatrixCursor;->get(I)Ljava/lang/Object; -HSPLandroid/database/MatrixCursor;->getColumnNames()[Ljava/lang/String; -HSPLandroid/database/MatrixCursor;->getCount()I -HSPLandroid/database/MatrixCursor;->getDouble(I)D -HSPLandroid/database/MatrixCursor;->getInt(I)I -HSPLandroid/database/MatrixCursor;->getLong(I)J -HSPLandroid/database/MatrixCursor;->getString(I)Ljava/lang/String; -HSPLandroid/database/MatrixCursor;->getType(I)I -HSPLandroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder; -HSPLandroid/database/MergeCursor$1;-><init>(Landroid/database/MergeCursor;)V -HSPLandroid/database/MergeCursor$1;->onInvalidated()V -HSPLandroid/database/MergeCursor;-><init>([Landroid/database/Cursor;)V -HSPLandroid/database/MergeCursor;->close()V -HSPLandroid/database/MergeCursor;->getColumnNames()[Ljava/lang/String; -HSPLandroid/database/MergeCursor;->getCount()I -HSPLandroid/database/MergeCursor;->getString(I)Ljava/lang/String; -HSPLandroid/database/MergeCursor;->onMove(II)Z -HSPLandroid/database/Observable;-><init>()V -HSPLandroid/database/Observable;->registerObserver(Ljava/lang/Object;)V -HSPLandroid/database/Observable;->unregisterAll()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/database/Observable;->unregisterObserver(Ljava/lang/Object;)V -HSPLandroid/database/sqlite/FeatureFlagsImpl;-><init>()V -HSPLandroid/database/sqlite/FeatureFlagsImpl;->sqliteAllowTempTables()Z -HSPLandroid/database/sqlite/Flags;-><clinit>()V -HSPLandroid/database/sqlite/Flags;->sqliteAllowTempTables()Z+]Landroid/database/sqlite/FeatureFlags;Landroid/database/sqlite/FeatureFlagsImpl; -HSPLandroid/database/sqlite/SQLiteClosable;-><init>()V -HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V -HSPLandroid/database/sqlite/SQLiteClosable;->close()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteDatabase;,Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteClosable;->releaseReference()V+]Landroid/database/sqlite/SQLiteClosable;Landroid/database/CursorWindow;,Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteDatabase;,Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->getTruncateSize()J -HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->init(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->initIfNeeded()V -HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->isLegacyCompatibilityWalEnabled()Z -HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>()V -HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>(Landroid/database/sqlite/SQLiteConnection$Operation-IA;)V -HSPLandroid/database/sqlite/SQLiteConnection$Operation;->describe(Ljava/lang/StringBuilder;Z)V -HSPLandroid/database/sqlite/SQLiteConnection$Operation;->getTraceMethodName()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->dump(Landroid/util/Printer;)V -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperation(I)V -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLogLocked(I)Z+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool; -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->getOperationLocked(I)Landroid/database/sqlite/SQLiteConnection$Operation; -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->newOperationCookieLocked(I)I -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->setResult(J)V -HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->setResult(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatement;-><init>()V -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Landroid/database/sqlite/SQLiteConnection;I)V -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->createStatement(Ljava/lang/String;)J -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->getLastSeqNum()J -HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->getStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$fgetmConnectionPtr(Landroid/database/sqlite/SQLiteConnection;)J -HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$mfinalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->-$$Nest$smnativePrepareStatement(JLjava/lang/String;)J -HSPLandroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration;]Ldalvik/system/CloseGuard;Ldalvik/system/CloseGuard; -HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; -HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatementLI(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration;]Ldalvik/system/BlockGuard$Policy;Ldalvik/system/BlockGuard$1;,Landroid/os/StrictMode$AndroidBlockGuardPolicy; -HSPLandroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; -HSPLandroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V+]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/Number;Ljava/lang/Integer;,Ljava/lang/Double;,Ljava/lang/Long; -HSPLandroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteConnection;->checkDatabaseWiped()V -HSPLandroid/database/sqlite/SQLiteConnection;->close()V -HSPLandroid/database/sqlite/SQLiteConnection;->collectDbStats(Ljava/util/ArrayList;)V -HSPLandroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; -HSPLandroid/database/sqlite/SQLiteConnection;->dispose(Z)V -HSPLandroid/database/sqlite/SQLiteConnection;->dumpUnsafe(Landroid/util/Printer;Z)V -HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J -HSPLandroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->executePerConnectionSqlFromConfiguration(I)V -HSPLandroid/database/sqlite/SQLiteConnection;->finalize()V -HSPLandroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->getConnectionId()I -HSPLandroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats; -HSPLandroid/database/sqlite/SQLiteConnection;->isCacheable(I)Z -HSPLandroid/database/sqlite/SQLiteConnection;->isPreparedStatementInCache(Ljava/lang/String;)Z+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -HSPLandroid/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z -HSPLandroid/database/sqlite/SQLiteConnection;->maybeTruncateWalFile()V -HSPLandroid/database/sqlite/SQLiteConnection;->obtainPreparedStatement(Ljava/lang/String;JIIZJ)Landroid/database/sqlite/SQLiteConnection$PreparedStatement; -HSPLandroid/database/sqlite/SQLiteConnection;->open()V+]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->open(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnection;->prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/database/sqlite/SQLiteConnection$OperationLog;Landroid/database/sqlite/SQLiteConnection$OperationLog; -HSPLandroid/database/sqlite/SQLiteConnection;->reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V -HSPLandroid/database/sqlite/SQLiteConnection;->recyclePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnection;->releasePreparedStatementLI(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V+]Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -HSPLandroid/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V -HSPLandroid/database/sqlite/SQLiteConnection;->setCustomFunctionsFromConfiguration()V -HSPLandroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V -HSPLandroid/database/sqlite/SQLiteConnection;->setJournalFromConfiguration()V -HSPLandroid/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V -HSPLandroid/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V -HSPLandroid/database/sqlite/SQLiteConnection;->setOnlyAllowReadOnlyOperations(Z)V -HSPLandroid/database/sqlite/SQLiteConnection;->setPageSize()V -HSPLandroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteConnection;->setSyncModeFromConfiguration()V -HSPLandroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V -HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter-IA;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionAcquired(Landroid/database/sqlite/SQLiteConnection;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionClosed(Landroid/database/sqlite/SQLiteConnection;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionReleased(Landroid/database/sqlite/SQLiteConnection;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->clearAcquiredConnectionsPreparedStatementCache()V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/Iterator;Ljava/util/WeakHashMap$KeyIterator;]Ljava/util/Set;Ljava/util/WeakHashMap$KeySet; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->close()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionLocked(I)Z -HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionsAndLogExceptionsLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptions()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptionsLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeConnectionAndLogExceptionsLocked(Landroid/database/sqlite/SQLiteConnection;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeExcessConnectionsAndLogExceptionsLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->collectDbStats(Ljava/util/ArrayList;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->disableIdleConnectionHandler()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->dump(Landroid/util/Printer;ZLandroid/util/ArraySet;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->finalize()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPath()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPriority(I)I -HSPLandroid/database/sqlite/SQLiteConnectionPool;->isSessionBlockingImportantConnectionWaitersLocked(ZI)Z -HSPLandroid/database/sqlite/SQLiteConnectionPool;->markAcquiredConnectionsLocked(Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->obtainConnectionWaiterLocked(Ljava/lang/Thread;JIZLjava/lang/String;I)Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->onStatementExecuted(J)V+]Ljava/util/concurrent/atomic/AtomicLong;Ljava/util/concurrent/atomic/AtomicLong; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->open()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->open(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)Landroid/database/sqlite/SQLiteConnectionPool; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->openConnectionLocked(Landroid/database/sqlite/SQLiteDatabaseConfiguration;Z)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigureAllConnectionsLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z -HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->shouldYieldConnection(Landroid/database/sqlite/SQLiteConnection;I)Z -HSPLandroid/database/sqlite/SQLiteConnectionPool;->throwIfClosedLocked()V -HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Landroid/database/sqlite/SQLiteConnection;+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Ljava/util/WeakHashMap;Ljava/util/WeakHashMap;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;+]Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean; -HSPLandroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V -HSPLandroid/database/sqlite/SQLiteConstraintException;-><init>(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteCursor;-><init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V+]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteCursor;->close()V+]Landroid/database/sqlite/SQLiteCursorDriver;Landroid/database/sqlite/SQLiteDirectCursorDriver;]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V+]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/sqlite/SQLiteCursor;Landroid/database/sqlite/SQLiteCursor;]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteCursor;->finalize()V -HSPLandroid/database/sqlite/SQLiteCursor;->getColumnIndex(Ljava/lang/String;)I+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/Map;Ljava/util/HashMap; -HSPLandroid/database/sqlite/SQLiteCursor;->getColumnNames()[Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteCursor;->getCount()I -HSPLandroid/database/sqlite/SQLiteCursor;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;+]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z+]Landroid/database/CursorWindow;Landroid/database/CursorWindow; -HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;-><init>(Landroid/database/sqlite/SQLiteDatabase;)V -HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLandroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/database/sqlite/SQLiteDatabase$1;-><init>(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteDatabase$1;->accept(Ljava/io/File;)Z -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;-><init>()V -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;-><init>(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)V -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->addOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->build()Landroid/database/sqlite/SQLiteDatabase$OpenParams; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->isWriteAheadLoggingEnabled()Z -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->removeOpenFlags(I)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setCursorFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setErrorHandler(Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setIdleConnectionTimeout(J)Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->setWriteAheadLoggingEnabled(Z)V -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmCursorFactory(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase$CursorFactory; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmErrorHandler(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/DatabaseErrorHandler; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmIdleConnectionTimeout(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)J -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmJournalMode(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmLookasideSlotCount(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)I -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmLookasideSlotSize(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)I -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmOpenFlags(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)I -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->-$$Nest$fgetmSyncMode(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;-><init>(ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams-IA;)V -HSPLandroid/database/sqlite/SQLiteDatabase;-><init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteDatabaseConfiguration;Landroid/database/sqlite/SQLiteDatabaseConfiguration; -HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction()V -HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V -HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionNonExclusive()V -HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V -HSPLandroid/database/sqlite/SQLiteDatabase;->collectDbStats(Ljava/util/ArrayList;)V -HSPLandroid/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement; -HSPLandroid/database/sqlite/SQLiteDatabase;->createSession()Landroid/database/sqlite/SQLiteSession; -HSPLandroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I -HSPLandroid/database/sqlite/SQLiteDatabase;->deleteDatabase(Ljava/io/File;)Z -HSPLandroid/database/sqlite/SQLiteDatabase;->deleteDatabase(Ljava/io/File;Z)Z -HSPLandroid/database/sqlite/SQLiteDatabase;->disableWriteAheadLogging()V -HSPLandroid/database/sqlite/SQLiteDatabase;->dispose(Z)V -HSPLandroid/database/sqlite/SQLiteDatabase;->dumpAll(Landroid/util/Printer;ZZ)V -HSPLandroid/database/sqlite/SQLiteDatabase;->dumpDatabaseDirectory(Landroid/util/Printer;Ljava/io/File;Z)V -HSPLandroid/database/sqlite/SQLiteDatabase;->enableWriteAheadLogging()Z -HSPLandroid/database/sqlite/SQLiteDatabase;->endTransaction()V -HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/database/sqlite/SQLiteDatabase;->executeSql(Ljava/lang/String;[Ljava/lang/Object;)I -HSPLandroid/database/sqlite/SQLiteDatabase;->finalize()V -HSPLandroid/database/sqlite/SQLiteDatabase;->findEditTable(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabase;->getActiveDatabasePools()Ljava/util/ArrayList; -HSPLandroid/database/sqlite/SQLiteDatabase;->getActiveDatabases()Ljava/util/ArrayList; -HSPLandroid/database/sqlite/SQLiteDatabase;->getFileTimestamps(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabase;->getMaximumSize()J -HSPLandroid/database/sqlite/SQLiteDatabase;->getPageSize()J -HSPLandroid/database/sqlite/SQLiteDatabase;->getPath()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I -HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; -HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I -HSPLandroid/database/sqlite/SQLiteDatabase;->inTransaction()Z+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -HSPLandroid/database/sqlite/SQLiteDatabase;->insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -HSPLandroid/database/sqlite/SQLiteDatabase;->insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J -HSPLandroid/database/sqlite/SQLiteDatabase;->isMainThread()Z -HSPLandroid/database/sqlite/SQLiteDatabase;->isOpen()Z -HSPLandroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z -HSPLandroid/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z -HSPLandroid/database/sqlite/SQLiteDatabase;->isWriteAheadLoggingEnabled()Z -HSPLandroid/database/sqlite/SQLiteDatabase;->onAllReferencesReleased()V -HSPLandroid/database/sqlite/SQLiteDatabase;->open()V -HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->openInner()V -HSPLandroid/database/sqlite/SQLiteDatabase;->openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;+]Landroid/database/sqlite/SQLiteCursorDriver;Landroid/database/sqlite/SQLiteDirectCursorDriver;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteDatabase;->releaseMemory()I -HSPLandroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -HSPLandroid/database/sqlite/SQLiteDatabase;->replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J -HSPLandroid/database/sqlite/SQLiteDatabase;->setForeignKeyConstraintsEnabled(Z)V -HSPLandroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V -HSPLandroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V -HSPLandroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I -HSPLandroid/database/sqlite/SQLiteDatabase;->updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ContentValues;Landroid/content/ContentValues;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;]Ljava/util/Set;Landroid/util/MapCollections$KeySet; -HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z -HSPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedSafely(J)Z -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Ljava/lang/String;I)V -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLegacyCompatibilityWalEnabled()Z -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isReadOnlyDatabase()Z -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isWalEnabledInternal()Z -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->resolveJournalMode()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->resolveSyncMode()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;-><clinit>()V -HSPLandroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sqlite/SQLiteDebug$PagerStats; -HSPLandroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z -HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V -HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor;+]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteGlobal;->checkDbWipe()Z -HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultJournalMode()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultPageSize()I -HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultSyncMode()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteGlobal;->getJournalSizeLimit()I -HSPLandroid/database/sqlite/SQLiteGlobal;->getWALAutoCheckpoint()I -HSPLandroid/database/sqlite/SQLiteGlobal;->getWALConnectionPoolSize()I -HSPLandroid/database/sqlite/SQLiteGlobal;->getWALSyncMode()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteGlobal;->getWALTruncateSize()J -HSPLandroid/database/sqlite/SQLiteGlobal;->releaseMemory()I -HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;IILandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;IILandroid/database/DatabaseErrorHandler;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->close()V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->getDatabaseLocked(Z)Landroid/database/sqlite/SQLiteDatabase;+]Ljava/io/File;Ljava/io/File;]Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteOpenHelper;->getDatabaseName()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteOpenHelper;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteOpenHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteOpenHelper;->onConfigure(Landroid/database/sqlite/SQLiteDatabase;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->setFilePermissionsForDb(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->setIdleConnectionTimeout(J)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->setOpenParamsBuilder(Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V -HSPLandroid/database/sqlite/SQLiteOpenHelper;->setWriteAheadLoggingEnabled(Z)V -HSPLandroid/database/sqlite/SQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V -HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteQuery;,Landroid/database/sqlite/SQLiteStatement; -HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V -HSPLandroid/database/sqlite/SQLiteProgram;->bindDouble(ID)V -HSPLandroid/database/sqlite/SQLiteProgram;->bindLong(IJ)V -HSPLandroid/database/sqlite/SQLiteProgram;->bindNull(I)V -HSPLandroid/database/sqlite/SQLiteProgram;->bindString(ILjava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteProgram;->clearBindings()V -HSPLandroid/database/sqlite/SQLiteProgram;->getBindArgs()[Ljava/lang/Object; -HSPLandroid/database/sqlite/SQLiteProgram;->getColumnNames()[Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteProgram;->getConnectionFlags()I+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteProgram;->getDatabase()Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteProgram;->getSession()Landroid/database/sqlite/SQLiteSession;+]Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteDatabase; -HSPLandroid/database/sqlite/SQLiteProgram;->getSql()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteProgram;->onAllReferencesReleased()V+]Landroid/database/sqlite/SQLiteProgram;Landroid/database/sqlite/SQLiteStatement;,Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteQuery;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteQuery;->fillWindow(Landroid/database/CursorWindow;IIZ)I+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/CursorWindow;Landroid/database/CursorWindow;]Landroid/database/sqlite/SQLiteQuery;Landroid/database/sqlite/SQLiteQuery; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;-><init>()V -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendClause(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendWhere(Ljava/lang/CharSequence;)V -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->buildQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->buildQueryString(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeProjection([Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeSingleProjection(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeSingleProjectionOrThrow(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeWhere(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrict()Z -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictColumns()Z -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictGrammar()Z -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->maybeWithOperator(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor; -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setDistinct(Z)V -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setProjectionMap(Ljava/util/Map;)V -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setStrict(Z)V -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setTables(Ljava/lang/String;)V -HSPLandroid/database/sqlite/SQLiteQueryBuilder;->wrap(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>()V -HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>(Landroid/database/sqlite/SQLiteSession$Transaction-IA;)V -HSPLandroid/database/sqlite/SQLiteSession;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V -HSPLandroid/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool; -HSPLandroid/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->closeOpenDependents()V+]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque; -HSPLandroid/database/sqlite/SQLiteSession;->endTransaction(Landroid/os/CancellationSignal;)V -HSPLandroid/database/sqlite/SQLiteSession;->endTransactionUnchecked(Landroid/os/CancellationSignal;Z)V -HSPLandroid/database/sqlite/SQLiteSession;->execute(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection; -HSPLandroid/database/sqlite/SQLiteSession;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J -HSPLandroid/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J -HSPLandroid/database/sqlite/SQLiteSession;->executeForString(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z+]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; -HSPLandroid/database/sqlite/SQLiteSession;->hasNestedTransaction()Z -HSPLandroid/database/sqlite/SQLiteSession;->hasTransaction()Z -HSPLandroid/database/sqlite/SQLiteSession;->obtainTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;)Landroid/database/sqlite/SQLiteSession$Transaction; -HSPLandroid/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V+]Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection;]Landroid/os/CancellationSignal;Landroid/os/CancellationSignal; -HSPLandroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V -HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()V+]Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnectionPool; -HSPLandroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V -HSPLandroid/database/sqlite/SQLiteSession;->throwIfNestedTransaction()V -HSPLandroid/database/sqlite/SQLiteSession;->throwIfNoTransaction()V -HSPLandroid/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V -HSPLandroid/database/sqlite/SQLiteSession;->yieldTransaction(JZLandroid/os/CancellationSignal;)Z -HSPLandroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/os/CancellationSignal;)Z -HSPLandroid/database/sqlite/SQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/database/sqlite/SQLiteStatement;->execute()V+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement; -HSPLandroid/database/sqlite/SQLiteStatement;->executeInsert()J -HSPLandroid/database/sqlite/SQLiteStatement;->executeUpdateDelete()I+]Landroid/database/sqlite/SQLiteSession;Landroid/database/sqlite/SQLiteSession;]Landroid/database/sqlite/SQLiteStatement;Landroid/database/sqlite/SQLiteStatement; -HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForLong()J -HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForString()Ljava/lang/String; -HSPLandroid/database/sqlite/SQLiteStatementInfo;-><init>()V -HSPLandroid/ddm/DdmHandle;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V -HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/ddm/DdmHandleAppName$Names-IA;)V -HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V -HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/ddm/DdmHandleHeap;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHello;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHello;->handleFEAT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleHello;->handleHELO(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/ddm/DdmHandleProfiling;->handleChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Landroid/view/SurfaceControl;III)V -HSPLandroid/graphics/BLASTBufferQueue;-><init>(Ljava/lang/String;Z)V -HSPLandroid/graphics/BLASTBufferQueue;->createSurface()Landroid/view/Surface; -HSPLandroid/graphics/BLASTBufferQueue;->destroy()V -HSPLandroid/graphics/BLASTBufferQueue;->finalize()V -HSPLandroid/graphics/BLASTBufferQueue;->gatherPendingTransactions(J)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/graphics/BLASTBufferQueue;->isSameSurfaceControl(Landroid/view/SurfaceControl;)Z -HSPLandroid/graphics/BLASTBufferQueue;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/graphics/BLASTBufferQueue;->setTransactionHangCallback(Landroid/graphics/BLASTBufferQueue$TransactionHangCallback;)V -HSPLandroid/graphics/BLASTBufferQueue;->update(Landroid/view/SurfaceControl;III)V -HSPLandroid/graphics/BaseCanvas;-><init>()V -HSPLandroid/graphics/BaseCanvas;->drawARGB(IIII)V -HSPLandroid/graphics/BaseCanvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawColor(I)V -HSPLandroid/graphics/BaseCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/BaseCanvas;->throwIfHasHwFeaturesInSwMode(Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseCanvas;->throwIfHasHwFeaturesInSwMode(Landroid/graphics/Shader;)V -HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/BaseRecordingCanvas;-><init>(J)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V+]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; -HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Path;Landroid/graphics/Path; -HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; -HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V+]Landroid/graphics/BaseRecordingCanvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint; -HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/Layout$Ellipsizer; -HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/SpannableString; -HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/graphics/Bitmap$Config;->nativeToConfig(I)Landroid/graphics/Bitmap$Config; -HSPLandroid/graphics/Bitmap$Config;->values()[Landroid/graphics/Bitmap$Config; -HSPLandroid/graphics/Bitmap;-><init>(JIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V -HSPLandroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V -HSPLandroid/graphics/Bitmap;->checkPixelAccess(II)V -HSPLandroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V -HSPLandroid/graphics/Bitmap;->checkRecycled(Ljava/lang/String;)V -HSPLandroid/graphics/Bitmap;->checkWidthHeight(II)V -HSPLandroid/graphics/Bitmap;->checkXYSign(II)V -HSPLandroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z -HSPLandroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->copyPixelsToBuffer(Ljava/nio/Buffer;)V -HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->eraseColor(I)V -HSPLandroid/graphics/Bitmap;->extractAlpha(Landroid/graphics/Paint;[I)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->getAllocationByteCount()I -HSPLandroid/graphics/Bitmap;->getByteCount()I -HSPLandroid/graphics/Bitmap;->getColorSpace()Landroid/graphics/ColorSpace; -HSPLandroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config; -HSPLandroid/graphics/Bitmap;->getDefaultDensity()I -HSPLandroid/graphics/Bitmap;->getDensity()I -HSPLandroid/graphics/Bitmap;->getHeight()I -HSPLandroid/graphics/Bitmap;->getNativeInstance()J -HSPLandroid/graphics/Bitmap;->getNinePatchChunk()[B -HSPLandroid/graphics/Bitmap;->getNinePatchInsets()Landroid/graphics/NinePatch$InsetStruct; -HSPLandroid/graphics/Bitmap;->getOpticalInsets(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Bitmap;->getPixel(II)I -HSPLandroid/graphics/Bitmap;->getPixels([IIIIIII)V -HSPLandroid/graphics/Bitmap;->getRowBytes()I -HSPLandroid/graphics/Bitmap;->getScaledHeight(I)I -HSPLandroid/graphics/Bitmap;->getScaledWidth(I)I -HSPLandroid/graphics/Bitmap;->getWidth()I -HSPLandroid/graphics/Bitmap;->hasAlpha()Z -HSPLandroid/graphics/Bitmap;->hasGainmap()Z -HSPLandroid/graphics/Bitmap;->hasMipMap()Z -HSPLandroid/graphics/Bitmap;->isMutable()Z -HSPLandroid/graphics/Bitmap;->isPremultiplied()Z -HSPLandroid/graphics/Bitmap;->isRecycled()Z -HSPLandroid/graphics/Bitmap;->noteHardwareBitmapSlowCall()V -HSPLandroid/graphics/Bitmap;->prepareToDraw()V -HSPLandroid/graphics/Bitmap;->reconfigure(IILandroid/graphics/Bitmap$Config;)V -HSPLandroid/graphics/Bitmap;->recycle()V -HSPLandroid/graphics/Bitmap;->reinit(IIZ)V -HSPLandroid/graphics/Bitmap;->scaleFromDensity(III)I -HSPLandroid/graphics/Bitmap;->setDefaultDensity(I)V -HSPLandroid/graphics/Bitmap;->setDensity(I)V -HSPLandroid/graphics/Bitmap;->setHasAlpha(Z)V -HSPLandroid/graphics/Bitmap;->setHasMipMap(Z)V -HSPLandroid/graphics/Bitmap;->setPremultiplied(Z)V -HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/hardware/HardwareBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/Bitmap;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/graphics/BitmapFactory$Options;-><init>()V -HSPLandroid/graphics/BitmapFactory$Options;->nativeColorSpace(Landroid/graphics/BitmapFactory$Options;)J -HSPLandroid/graphics/BitmapFactory$Options;->nativeInBitmap(Landroid/graphics/BitmapFactory$Options;)J -HSPLandroid/graphics/BitmapFactory$Options;->validate(Landroid/graphics/BitmapFactory$Options;)V -HSPLandroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->decodeStreamInternal(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/BitmapFactory;->setDensityFromOptions(Landroid/graphics/Bitmap;Landroid/graphics/BitmapFactory$Options;)V -HSPLandroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;II)V -HSPLandroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/BitmapShader;->createNativeInstance(JZ)J -HSPLandroid/graphics/BitmapShader;->shouldDiscardNativeInstance(Z)Z -HSPLandroid/graphics/BlendMode;->blendModeToPorterDuffMode(Landroid/graphics/BlendMode;)Landroid/graphics/PorterDuff$Mode; -HSPLandroid/graphics/BlendMode;->fromValue(I)Landroid/graphics/BlendMode; -HSPLandroid/graphics/BlendMode;->getXfermode()Landroid/graphics/Xfermode; -HSPLandroid/graphics/BlendMode;->toValue(Landroid/graphics/BlendMode;)I -HSPLandroid/graphics/BlendModeColorFilter;-><init>(ILandroid/graphics/BlendMode;)V -HSPLandroid/graphics/BlendModeColorFilter;->createNativeInstance()J -HSPLandroid/graphics/BlendModeColorFilter;->getColor()I -HSPLandroid/graphics/BlendModeColorFilter;->getMode()Landroid/graphics/BlendMode; -HSPLandroid/graphics/BlurMaskFilter;-><init>(FLandroid/graphics/BlurMaskFilter$Blur;)V -HSPLandroid/graphics/Canvas;-><init>()V -HSPLandroid/graphics/Canvas;-><init>(J)V -HSPLandroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/Canvas;->checkValidClipOp(Landroid/graphics/Region$Op;)V -HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;)Z -HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z -HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z -HSPLandroid/graphics/Canvas;->clipRect(IIII)Z -HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/RectF;)Z -HSPLandroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V -HSPLandroid/graphics/Canvas;->disableZ()V -HSPLandroid/graphics/Canvas;->drawARGB(IIII)V -HSPLandroid/graphics/Canvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawColor(I)V -HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->enableZ()V -HSPLandroid/graphics/Canvas;->freeCaches()V -HSPLandroid/graphics/Canvas;->freeTextLayoutCaches()V -HSPLandroid/graphics/Canvas;->getClipBounds()Landroid/graphics/Rect; -HSPLandroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Canvas;->getDensity()I -HSPLandroid/graphics/Canvas;->getHeight()I -HSPLandroid/graphics/Canvas;->getNativeCanvasWrapper()J -HSPLandroid/graphics/Canvas;->getSaveCount()I -HSPLandroid/graphics/Canvas;->getWidth()I -HSPLandroid/graphics/Canvas;->isHardwareAccelerated()Z -HSPLandroid/graphics/Canvas;->isOpaque()Z -HSPLandroid/graphics/Canvas;->quickReject(FFFF)Z -HSPLandroid/graphics/Canvas;->restore()V -HSPLandroid/graphics/Canvas;->restoreToCount(I)V -HSPLandroid/graphics/Canvas;->restoreUnclippedLayer(ILandroid/graphics/Paint;)V -HSPLandroid/graphics/Canvas;->rotate(F)V -HSPLandroid/graphics/Canvas;->rotate(FFF)V -HSPLandroid/graphics/Canvas;->save()I -HSPLandroid/graphics/Canvas;->save(I)I -HSPLandroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;I)I -HSPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;)I -HSPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;I)I -HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFI)I -HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFII)I -HSPLandroid/graphics/Canvas;->saveUnclippedLayer(IIII)I -HSPLandroid/graphics/Canvas;->scale(FF)V -HSPLandroid/graphics/Canvas;->scale(FFFF)V -HSPLandroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/Canvas;->setCompatibilityVersion(I)V -HSPLandroid/graphics/Canvas;->setDensity(I)V -HSPLandroid/graphics/Canvas;->setDrawFilter(Landroid/graphics/DrawFilter;)V -HSPLandroid/graphics/Canvas;->setScreenDensity(I)V -HSPLandroid/graphics/Canvas;->translate(FF)V -HSPLandroid/graphics/CanvasProperty;-><init>(J)V -HSPLandroid/graphics/CanvasProperty;->createFloat(F)Landroid/graphics/CanvasProperty; -HSPLandroid/graphics/CanvasProperty;->createPaint(Landroid/graphics/Paint;)Landroid/graphics/CanvasProperty; -HSPLandroid/graphics/CanvasProperty;->getNativeContainer()J -HSPLandroid/graphics/Color;-><init>(FFFFLandroid/graphics/ColorSpace;)V -HSPLandroid/graphics/Color;->HSVToColor(I[F)I -HSPLandroid/graphics/Color;->RGBToHSV(III[F)V -HSPLandroid/graphics/Color;->alpha()F -HSPLandroid/graphics/Color;->alpha(I)I -HSPLandroid/graphics/Color;->alpha(J)F -HSPLandroid/graphics/Color;->argb(IIII)I -HSPLandroid/graphics/Color;->blue()F -HSPLandroid/graphics/Color;->blue(I)I -HSPLandroid/graphics/Color;->blue(J)F -HSPLandroid/graphics/Color;->colorSpace(J)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/Color;->colorToHSV(I[F)V -HSPLandroid/graphics/Color;->getComponents()[F -HSPLandroid/graphics/Color;->green()F -HSPLandroid/graphics/Color;->green(I)I -HSPLandroid/graphics/Color;->green(J)F -HSPLandroid/graphics/Color;->luminance()F -HSPLandroid/graphics/Color;->pack(FFFFLandroid/graphics/ColorSpace;)J -HSPLandroid/graphics/Color;->pack(I)J -HSPLandroid/graphics/Color;->parseColor(Ljava/lang/String;)I -HSPLandroid/graphics/Color;->red()F -HSPLandroid/graphics/Color;->red(I)I -HSPLandroid/graphics/Color;->red(J)F -HSPLandroid/graphics/Color;->rgb(III)I -HSPLandroid/graphics/Color;->toArgb()I -HSPLandroid/graphics/Color;->toArgb(J)I -HSPLandroid/graphics/Color;->valueOf(I)Landroid/graphics/Color; -HSPLandroid/graphics/ColorFilter;-><init>()V -HSPLandroid/graphics/ColorFilter;->getNativeInstance()J -HSPLandroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V -HSPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V -HSPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J -HSPLandroid/graphics/ColorSpace$Named;->values()[Landroid/graphics/ColorSpace$Named; -HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDDDD)V -HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;->hashCode()I -HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)V -HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V -HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V -HSPLandroid/graphics/ColorSpace$Rgb;->area([F)F -HSPLandroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F -HSPLandroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F -HSPLandroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F -HSPLandroid/graphics/ColorSpace$Rgb;->contains([F[F)Z -HSPLandroid/graphics/ColorSpace$Rgb;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/ColorSpace$Rgb;->getNativeInstance()J -HSPLandroid/graphics/ColorSpace$Rgb;->getTransferParameters()Landroid/graphics/ColorSpace$Rgb$TransferParameters; -HSPLandroid/graphics/ColorSpace$Rgb;->getWhitePoint()[F -HSPLandroid/graphics/ColorSpace$Rgb;->hashCode()I -HSPLandroid/graphics/ColorSpace$Rgb;->isGray([F)Z -HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb()Z -HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb([F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)Z -HSPLandroid/graphics/ColorSpace$Rgb;->isWideGamut([FFF)Z -HSPLandroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F -HSPLandroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F -HSPLandroid/graphics/ColorSpace;->-$$Nest$smadaptToIlluminantD50([F[F)[F -HSPLandroid/graphics/ColorSpace;->-$$Nest$sminverse3x3([F)[F -HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V -HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ColorSpace;->adaptToIlluminantD50([F[F)[F -HSPLandroid/graphics/ColorSpace;->chromaticAdaptation([F[F[F)[F -HSPLandroid/graphics/ColorSpace;->compare(Landroid/graphics/ColorSpace$Rgb$TransferParameters;Landroid/graphics/ColorSpace$Rgb$TransferParameters;)Z -HSPLandroid/graphics/ColorSpace;->compare([F[F)Z -HSPLandroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ColorSpace;->getDataSpace()I -HSPLandroid/graphics/ColorSpace;->getId()I -HSPLandroid/graphics/ColorSpace;->getModel()Landroid/graphics/ColorSpace$Model; -HSPLandroid/graphics/ColorSpace;->getName()Ljava/lang/String; -HSPLandroid/graphics/ColorSpace;->inverse3x3([F)[F -HSPLandroid/graphics/ColorSpace;->match([FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ColorSpace;->mul3x3([F[F)[F -HSPLandroid/graphics/ColorSpace;->mul3x3Diag([F[F)[F -HSPLandroid/graphics/ColorSpace;->mul3x3Float3([F[F)[F -HSPLandroid/graphics/Compatibility;-><clinit>()V -HSPLandroid/graphics/Compatibility;->getTargetSdkVersion()I -HSPLandroid/graphics/Compatibility;->setTargetSdkVersion(I)V -HSPLandroid/graphics/DrawFilter;-><init>()V -HSPLandroid/graphics/FrameInfo;-><init>()V -HSPLandroid/graphics/FrameInfo;->addFlags(J)V -HSPLandroid/graphics/FrameInfo;->markAnimationsStart()V -HSPLandroid/graphics/FrameInfo;->markInputHandlingStart()V -HSPLandroid/graphics/FrameInfo;->markPerformTraversalsStart()V -HSPLandroid/graphics/FrameInfo;->setVsync(JJJJJJ)V -HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;-><init>(J)V -HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;->run()V -HSPLandroid/graphics/HardwareRenderer$FrameDrawingCallback;->onFrameDraw(IJ)Landroid/graphics/HardwareRenderer$FrameCommitCallback; -HSPLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;)V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer$1;->onRotateGraphicsStatsBuffer()V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->init(J)V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initDisplayInfo()V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initGraphicsStats()V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initSched(J)V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initUsingContext()V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->requestBuffer()V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->setContext(Landroid/content/Context;)V -HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->setPackageName(Ljava/lang/String;)V -HSPLandroid/graphics/HardwareRenderer;-><init>()V -HSPLandroid/graphics/HardwareRenderer;->addObserver(Landroid/graphics/HardwareRendererObserver;)V -HSPLandroid/graphics/HardwareRenderer;->allocateBuffers()V -HSPLandroid/graphics/HardwareRenderer;->clearContent()V -HSPLandroid/graphics/HardwareRenderer;->destroy()V -HSPLandroid/graphics/HardwareRenderer;->detachSurfaceTexture(J)V -HSPLandroid/graphics/HardwareRenderer;->dumpGlobalProfileInfo(Ljava/io/FileDescriptor;I)V -HSPLandroid/graphics/HardwareRenderer;->isDrawingEnabled()Z -HSPLandroid/graphics/HardwareRenderer;->loadSystemProperties()Z -HSPLandroid/graphics/HardwareRenderer;->notifyFramePending()V -HSPLandroid/graphics/HardwareRenderer;->onLayerDestroyed(Landroid/graphics/TextureLayer;)V -HSPLandroid/graphics/HardwareRenderer;->pause()Z -HSPLandroid/graphics/HardwareRenderer;->pushLayerUpdate(Landroid/graphics/TextureLayer;)V -HSPLandroid/graphics/HardwareRenderer;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V -HSPLandroid/graphics/HardwareRenderer;->removeObserver(Landroid/graphics/HardwareRendererObserver;)V -HSPLandroid/graphics/HardwareRenderer;->sendDeviceConfigurationForDebugging(Landroid/content/res/Configuration;)V -HSPLandroid/graphics/HardwareRenderer;->setASurfaceTransactionCallback(Landroid/graphics/HardwareRenderer$ASurfaceTransactionCallback;)V -HSPLandroid/graphics/HardwareRenderer;->setColorMode(I)F -HSPLandroid/graphics/HardwareRenderer;->setContextForInit(Landroid/content/Context;)V -HSPLandroid/graphics/HardwareRenderer;->setDebuggingEnabled(Z)V -HSPLandroid/graphics/HardwareRenderer;->setFPSDivisor(I)V -HSPLandroid/graphics/HardwareRenderer;->setFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V -HSPLandroid/graphics/HardwareRenderer;->setFrameCompleteCallback(Landroid/graphics/HardwareRenderer$FrameCompleteCallback;)V -HSPLandroid/graphics/HardwareRenderer;->setHighContrastText(Z)V -HSPLandroid/graphics/HardwareRenderer;->setIsSystemOrPersistent()V -HSPLandroid/graphics/HardwareRenderer;->setLightSourceAlpha(FF)V -HSPLandroid/graphics/HardwareRenderer;->setLightSourceGeometry(FFFF)V -HSPLandroid/graphics/HardwareRenderer;->setName(Ljava/lang/String;)V -HSPLandroid/graphics/HardwareRenderer;->setOpaque(Z)V -HSPLandroid/graphics/HardwareRenderer;->setPackageName(Ljava/lang/String;)V -HSPLandroid/graphics/HardwareRenderer;->setPrepareSurfaceControlForWebviewCallback(Landroid/graphics/HardwareRenderer$PrepareSurfaceControlForWebviewCallback;)V -HSPLandroid/graphics/HardwareRenderer;->setRtAnimationsEnabled(Z)V -HSPLandroid/graphics/HardwareRenderer;->setStopped(Z)V -HSPLandroid/graphics/HardwareRenderer;->setSurface(Landroid/view/Surface;)V -HSPLandroid/graphics/HardwareRenderer;->setSurface(Landroid/view/Surface;Z)V -HSPLandroid/graphics/HardwareRenderer;->setSurfaceControl(Landroid/view/SurfaceControl;Landroid/graphics/BLASTBufferQueue;)V -HSPLandroid/graphics/HardwareRenderer;->setTargetHdrSdrRatio(F)V -HSPLandroid/graphics/HardwareRenderer;->setupDiskCache(Ljava/io/File;)V -HSPLandroid/graphics/HardwareRenderer;->syncAndDrawFrame(Landroid/graphics/FrameInfo;)I -HSPLandroid/graphics/HardwareRenderer;->trimMemory(I)V -HSPLandroid/graphics/HardwareRenderer;->validateAlpha(FLjava/lang/String;)V -HSPLandroid/graphics/HardwareRenderer;->validateFinite(FLjava/lang/String;)V -HSPLandroid/graphics/HardwareRenderer;->validatePositive(FLjava/lang/String;)V -HSPLandroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/HardwareRendererObserver;)V -HSPLandroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0;->run()V -HSPLandroid/graphics/HardwareRendererObserver;-><init>(Landroid/graphics/HardwareRendererObserver$OnFrameMetricsAvailableListener;[JLandroid/os/Handler;Z)V -HSPLandroid/graphics/HardwareRendererObserver;->getNativeInstance()J -HSPLandroid/graphics/HardwareRendererObserver;->invokeDataAvailable(Ljava/lang/ref/WeakReference;)Z+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLandroid/graphics/HardwareRendererObserver;->notifyDataAvailable()V+]Landroid/os/Handler;Landroid/os/Handler;,Landroid/view/ViewRootImpl$ViewRootHandler; -HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;-><init>(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)V -HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder; -HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->getDensity()I -HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->getResources()Landroid/content/res/Resources; -HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->toString()Ljava/lang/String; -HSPLandroid/graphics/ImageDecoder$ImageDecoderSourceTrace;-><init>(Landroid/graphics/ImageDecoder;)V -HSPLandroid/graphics/ImageDecoder$ImageDecoderSourceTrace;->close()V -HSPLandroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/util/Size;ZLjava/lang/String;Landroid/graphics/ColorSpace;)V -HSPLandroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/util/Size;ZLjava/lang/String;Landroid/graphics/ColorSpace;Landroid/graphics/ImageDecoder$ImageInfo-IA;)V -HSPLandroid/graphics/ImageDecoder$InputStreamSource;-><init>(Landroid/content/res/Resources;Ljava/io/InputStream;I)V -HSPLandroid/graphics/ImageDecoder$InputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder; -HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getDensity()I -HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getResources()Landroid/content/res/Resources; -HSPLandroid/graphics/ImageDecoder$Source;-><init>()V -HSPLandroid/graphics/ImageDecoder$Source;-><init>(Landroid/graphics/ImageDecoder$Source-IA;)V -HSPLandroid/graphics/ImageDecoder$Source;->computeDstDensity()I -HSPLandroid/graphics/ImageDecoder;->-$$Nest$smdescribeDecoderForTrace(Landroid/graphics/ImageDecoder;)Ljava/lang/String; -HSPLandroid/graphics/ImageDecoder;-><init>(JIIZZ)V -HSPLandroid/graphics/ImageDecoder;->callHeaderDecoded(Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/graphics/ImageDecoder;->checkForExtended()Z -HSPLandroid/graphics/ImageDecoder;->checkState(Z)V -HSPLandroid/graphics/ImageDecoder;->checkSubset(IILandroid/graphics/Rect;)V -HSPLandroid/graphics/ImageDecoder;->close()V -HSPLandroid/graphics/ImageDecoder;->computeDensity(Landroid/graphics/ImageDecoder$Source;)I -HSPLandroid/graphics/ImageDecoder;->createFromAsset(Landroid/content/res/AssetManager$AssetInputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder; -HSPLandroid/graphics/ImageDecoder;->createFromStream(Ljava/io/InputStream;ZZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder; -HSPLandroid/graphics/ImageDecoder;->createSource(Landroid/content/res/Resources;Ljava/io/InputStream;I)Landroid/graphics/ImageDecoder$Source; -HSPLandroid/graphics/ImageDecoder;->decodeBitmap(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/ImageDecoder;->decodeBitmapImpl(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap; -HSPLandroid/graphics/ImageDecoder;->decodeBitmapInternal()Landroid/graphics/Bitmap; -HSPLandroid/graphics/ImageDecoder;->decodeDrawable(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/ImageDecoder;->decodeDrawableImpl(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/ImageDecoder;->describeDecoderForTrace(Landroid/graphics/ImageDecoder;)Ljava/lang/String; -HSPLandroid/graphics/ImageDecoder;->finalize()V -HSPLandroid/graphics/ImageDecoder;->getColorSpace()Landroid/graphics/ColorSpace; -HSPLandroid/graphics/ImageDecoder;->getColorSpacePtr()J -HSPLandroid/graphics/ImageDecoder;->getMimeType()Ljava/lang/String; -HSPLandroid/graphics/ImageDecoder;->requestedResize()Z -HSPLandroid/graphics/ImageDecoder;->setAllocator(I)V -HSPLandroid/graphics/ImageDecoder;->setTargetSize(II)V -HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Insets; -HSPLandroid/graphics/Insets$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/graphics/Insets;-><init>(IIII)V -HSPLandroid/graphics/Insets;-><init>(IIIILandroid/graphics/Insets-IA;)V -HSPLandroid/graphics/Insets;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Insets; -HSPLandroid/graphics/Insets;->hashCode()I -HSPLandroid/graphics/Insets;->max(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets; -HSPLandroid/graphics/Insets;->min(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets; -HSPLandroid/graphics/Insets;->of(IIII)Landroid/graphics/Insets; -HSPLandroid/graphics/Insets;->of(Landroid/graphics/Rect;)Landroid/graphics/Insets; -HSPLandroid/graphics/Insets;->toRect()Landroid/graphics/Rect; -HSPLandroid/graphics/Insets;->toString()Ljava/lang/String; -HSPLandroid/graphics/Insets;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/graphics/Interpolator;-><init>(II)V -HSPLandroid/graphics/Interpolator;->finalize()V -HSPLandroid/graphics/Interpolator;->setKeyFrame(II[F)V -HSPLandroid/graphics/Interpolator;->setKeyFrame(II[F[F)V -HSPLandroid/graphics/Interpolator;->timeToValues(I[F)Landroid/graphics/Interpolator$Result; -HSPLandroid/graphics/Interpolator;->timeToValues([F)Landroid/graphics/Interpolator$Result; -HSPLandroid/graphics/LeakyTypefaceStorage;->readTypefaceFromParcel(Landroid/os/Parcel;)Landroid/graphics/Typeface; -HSPLandroid/graphics/LeakyTypefaceStorage;->writeTypefaceToParcel(Landroid/graphics/Typeface;Landroid/os/Parcel;)V -HSPLandroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/LinearGradient;-><init>(FFFFJJLandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/LinearGradient;-><init>(FFFF[I[FLandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;)V+][J[J -HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V -HSPLandroid/graphics/LinearGradient;->createNativeInstance(JZ)J -HSPLandroid/graphics/MaskFilter;->finalize()V -HSPLandroid/graphics/Matrix;-><init>()V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; -HSPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V -HSPLandroid/graphics/Matrix;->checkPointArrays([FI[FII)V -HSPLandroid/graphics/Matrix;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/Matrix;->getValues([F)V -HSPLandroid/graphics/Matrix;->invert(Landroid/graphics/Matrix;)Z -HSPLandroid/graphics/Matrix;->isIdentity()Z -HSPLandroid/graphics/Matrix;->mapPoints([F)V -HSPLandroid/graphics/Matrix;->mapPoints([FI[FII)V -HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;)Z+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; -HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z -HSPLandroid/graphics/Matrix;->ni()J -HSPLandroid/graphics/Matrix;->postConcat(Landroid/graphics/Matrix;)Z -HSPLandroid/graphics/Matrix;->postRotate(F)Z -HSPLandroid/graphics/Matrix;->postRotate(FFF)Z -HSPLandroid/graphics/Matrix;->postScale(FF)Z -HSPLandroid/graphics/Matrix;->postScale(FFFF)Z -HSPLandroid/graphics/Matrix;->postTranslate(FF)Z -HSPLandroid/graphics/Matrix;->preConcat(Landroid/graphics/Matrix;)Z -HSPLandroid/graphics/Matrix;->preRotate(F)Z -HSPLandroid/graphics/Matrix;->preScale(FF)Z -HSPLandroid/graphics/Matrix;->preTranslate(FF)Z -HSPLandroid/graphics/Matrix;->rectStaysRect()Z -HSPLandroid/graphics/Matrix;->reset()V -HSPLandroid/graphics/Matrix;->set(Landroid/graphics/Matrix;)V -HSPLandroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z -HSPLandroid/graphics/Matrix;->setRotate(F)V -HSPLandroid/graphics/Matrix;->setRotate(FFF)V -HSPLandroid/graphics/Matrix;->setScale(FF)V -HSPLandroid/graphics/Matrix;->setScale(FFFF)V -HSPLandroid/graphics/Matrix;->setTranslate(FF)V -HSPLandroid/graphics/Matrix;->setValues([F)V -HSPLandroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V -HSPLandroid/graphics/NinePatch$InsetStruct;->scaleInsets(IIIIF)Landroid/graphics/Rect; -HSPLandroid/graphics/NinePatch;-><init>(Landroid/graphics/Bitmap;[BLjava/lang/String;)V -HSPLandroid/graphics/NinePatch;->draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;Landroid/graphics/Paint;)V -HSPLandroid/graphics/NinePatch;->finalize()V -HSPLandroid/graphics/NinePatch;->getBitmap()Landroid/graphics/Bitmap; -HSPLandroid/graphics/NinePatch;->getDensity()I -HSPLandroid/graphics/NinePatch;->getHeight()I -HSPLandroid/graphics/NinePatch;->getWidth()I -HSPLandroid/graphics/Outline;-><init>()V -HSPLandroid/graphics/Outline;->isEmpty()Z -HSPLandroid/graphics/Outline;->setAlpha(F)V -HSPLandroid/graphics/Outline;->setConvexPath(Landroid/graphics/Path;)V -HSPLandroid/graphics/Outline;->setEmpty()V+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/graphics/Outline;->setOval(IIII)V -HSPLandroid/graphics/Outline;->setOval(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Outline;->setPath(Landroid/graphics/Path;)V -HSPLandroid/graphics/Outline;->setRect(IIII)V+]Landroid/graphics/Outline;Landroid/graphics/Outline; -HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Outline;->setRoundRect(IIIIF)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/Outline;Landroid/graphics/Outline; -HSPLandroid/graphics/Outline;->setRoundRect(Landroid/graphics/Rect;F)V -HSPLandroid/graphics/Paint$FontMetrics;-><init>()V -HSPLandroid/graphics/Paint$FontMetricsInt;-><init>()V -HSPLandroid/graphics/Paint;-><init>()V -HSPLandroid/graphics/Paint;-><init>(I)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;,Landroid/text/TextPaint;]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; -HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V -HSPLandroid/graphics/Paint;->ascent()F -HSPLandroid/graphics/Paint;->descent()F -HSPLandroid/graphics/Paint;->getAlpha()I -HSPLandroid/graphics/Paint;->getColor()I -HSPLandroid/graphics/Paint;->getColorFilter()Landroid/graphics/ColorFilter; -HSPLandroid/graphics/Paint;->getEndHyphenEdit()I -HSPLandroid/graphics/Paint;->getFlags()I -HSPLandroid/graphics/Paint;->getFontFeatureSettings()Ljava/lang/String; -HSPLandroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics; -HSPLandroid/graphics/Paint;->getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F -HSPLandroid/graphics/Paint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;+]Landroid/graphics/Paint;Landroid/text/TextPaint; -HSPLandroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I -HSPLandroid/graphics/Paint;->getFontMetricsInt(Ljava/lang/CharSequence;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V -HSPLandroid/graphics/Paint;->getFontVariationSettings()Ljava/lang/String; -HSPLandroid/graphics/Paint;->getHinting()I -HSPLandroid/graphics/Paint;->getLetterSpacing()F -HSPLandroid/graphics/Paint;->getMaskFilter()Landroid/graphics/MaskFilter; -HSPLandroid/graphics/Paint;->getNativeInstance()J+]Landroid/graphics/ColorFilter;Landroid/graphics/PorterDuffColorFilter;,Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/Paint;missing_types]Landroid/graphics/Shader;Landroid/graphics/LinearGradient;,Landroid/graphics/drawable/RippleShader;,Landroid/graphics/BitmapShader;,Landroid/graphics/RadialGradient; -HSPLandroid/graphics/Paint;->getRunAdvance(Ljava/lang/CharSequence;IIIIZI)F -HSPLandroid/graphics/Paint;->getRunAdvance([CIIIIZI)F -HSPLandroid/graphics/Paint;->getRunCharacterAdvance(Ljava/lang/CharSequence;IIIIZI[FI)F -HSPLandroid/graphics/Paint;->getRunCharacterAdvance(Ljava/lang/CharSequence;IIIIZI[FILandroid/graphics/RectF;Landroid/graphics/Paint$RunInfo;)F+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;megamorphic_types -HSPLandroid/graphics/Paint;->getRunCharacterAdvance([CIIIIZI[FI)F -HSPLandroid/graphics/Paint;->getShader()Landroid/graphics/Shader; -HSPLandroid/graphics/Paint;->getShadowLayerColor()I -HSPLandroid/graphics/Paint;->getShadowLayerDx()F -HSPLandroid/graphics/Paint;->getShadowLayerDy()F -HSPLandroid/graphics/Paint;->getShadowLayerRadius()F -HSPLandroid/graphics/Paint;->getStartHyphenEdit()I -HSPLandroid/graphics/Paint;->getStrokeCap()Landroid/graphics/Paint$Cap; -HSPLandroid/graphics/Paint;->getStrokeJoin()Landroid/graphics/Paint$Join; -HSPLandroid/graphics/Paint;->getStrokeMiter()F -HSPLandroid/graphics/Paint;->getStrokeWidth()F -HSPLandroid/graphics/Paint;->getStyle()Landroid/graphics/Paint$Style; -HSPLandroid/graphics/Paint;->getTextAlign()Landroid/graphics/Paint$Align; -HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/CharSequence;IILandroid/graphics/Rect;)V+]Landroid/graphics/Paint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/SpannableString; -HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V -HSPLandroid/graphics/Paint;->getTextBounds([CIILandroid/graphics/Rect;)V -HSPLandroid/graphics/Paint;->getTextLocale()Ljava/util/Locale; -HSPLandroid/graphics/Paint;->getTextLocales()Landroid/os/LocaleList; -HSPLandroid/graphics/Paint;->getTextRunAdvances([CIIIIZ[FI)F -HSPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/CharSequence;IIZII)I -HSPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/String;IIZII)I -HSPLandroid/graphics/Paint;->getTextRunCursor([CIIZII)I -HSPLandroid/graphics/Paint;->getTextScaleX()F -HSPLandroid/graphics/Paint;->getTextSize()F -HSPLandroid/graphics/Paint;->getTextSkewX()F -HSPLandroid/graphics/Paint;->getTypeface()Landroid/graphics/Typeface; -HSPLandroid/graphics/Paint;->getUnderlinePosition()F -HSPLandroid/graphics/Paint;->getWordSpacing()F -HSPLandroid/graphics/Paint;->getXfermode()Landroid/graphics/Xfermode; -HSPLandroid/graphics/Paint;->installXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode; -HSPLandroid/graphics/Paint;->isAntiAlias()Z -HSPLandroid/graphics/Paint;->isDither()Z -HSPLandroid/graphics/Paint;->isElegantTextHeight()Z -HSPLandroid/graphics/Paint;->isFilterBitmap()Z+]Landroid/graphics/Paint;missing_types -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F -HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F -HSPLandroid/graphics/Paint;->reset()V -HSPLandroid/graphics/Paint;->resetElegantTextHeight()V -HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V -HSPLandroid/graphics/Paint;->setAlpha(I)V -HSPLandroid/graphics/Paint;->setAntiAlias(Z)V -HSPLandroid/graphics/Paint;->setBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/Paint;->setClassVariablesFrom(Landroid/graphics/Paint;)V -HSPLandroid/graphics/Paint;->setColor(I)V -HSPLandroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter; -HSPLandroid/graphics/Paint;->setCompatibilityScaling(F)V -HSPLandroid/graphics/Paint;->setDither(Z)V -HSPLandroid/graphics/Paint;->setElegantTextHeight(Z)V -HSPLandroid/graphics/Paint;->setEndHyphenEdit(I)V -HSPLandroid/graphics/Paint;->setFakeBoldText(Z)V -HSPLandroid/graphics/Paint;->setFilterBitmap(Z)V -HSPLandroid/graphics/Paint;->setFlags(I)V -HSPLandroid/graphics/Paint;->setFontFeatureSettings(Ljava/lang/String;)V -HSPLandroid/graphics/Paint;->setLetterSpacing(F)V -HSPLandroid/graphics/Paint;->setMaskFilter(Landroid/graphics/MaskFilter;)Landroid/graphics/MaskFilter; -HSPLandroid/graphics/Paint;->setPathEffect(Landroid/graphics/PathEffect;)Landroid/graphics/PathEffect; -HSPLandroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; -HSPLandroid/graphics/Paint;->setShadowLayer(FFFI)V -HSPLandroid/graphics/Paint;->setShadowLayer(FFFJ)V -HSPLandroid/graphics/Paint;->setStartHyphenEdit(I)V -HSPLandroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V -HSPLandroid/graphics/Paint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V -HSPLandroid/graphics/Paint;->setStrokeMiter(F)V -HSPLandroid/graphics/Paint;->setStrokeWidth(F)V -HSPLandroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V -HSPLandroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V -HSPLandroid/graphics/Paint;->setTextLocales(Landroid/os/LocaleList;)V+]Landroid/os/LocaleList;Landroid/os/LocaleList; -HSPLandroid/graphics/Paint;->setTextScaleX(F)V -HSPLandroid/graphics/Paint;->setTextSize(F)V -HSPLandroid/graphics/Paint;->setTextSkewX(F)V -HSPLandroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface; -HSPLandroid/graphics/Paint;->setUnderlineText(Z)V -HSPLandroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode; -HSPLandroid/graphics/Paint;->syncTextLocalesWithMinikin()V+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/LocaleList;Landroid/os/LocaleList; -HSPLandroid/graphics/PaintFlagsDrawFilter;-><init>(II)V -HSPLandroid/graphics/Path;-><init>()V -HSPLandroid/graphics/Path;-><init>(Landroid/graphics/Path;)V -HSPLandroid/graphics/Path;->addArc(FFFFFF)V -HSPLandroid/graphics/Path;->addArc(Landroid/graphics/RectF;FF)V -HSPLandroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addOval(FFFFLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addOval(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addPath(Landroid/graphics/Path;Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; -HSPLandroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addRect(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addRoundRect(FFFFFFLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addRoundRect(FFFF[FLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V -HSPLandroid/graphics/Path;->approximate(F)[F -HSPLandroid/graphics/Path;->arcTo(FFFFFFZ)V -HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FF)V -HSPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V+]Landroid/graphics/Path;Landroid/graphics/Path; -HSPLandroid/graphics/Path;->close()V -HSPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V+]Landroid/graphics/Path;Landroid/graphics/Path; -HSPLandroid/graphics/Path;->cubicTo(FFFFFF)V -HSPLandroid/graphics/Path;->getFillType()Landroid/graphics/Path$FillType; -HSPLandroid/graphics/Path;->isConvex()Z -HSPLandroid/graphics/Path;->isEmpty()Z -HSPLandroid/graphics/Path;->lineTo(FF)V -HSPLandroid/graphics/Path;->moveTo(FF)V -HSPLandroid/graphics/Path;->offset(FF)V -HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z -HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z -HSPLandroid/graphics/Path;->rLineTo(FF)V -HSPLandroid/graphics/Path;->readOnlyNI()J -HSPLandroid/graphics/Path;->reset()V+]Landroid/graphics/Path;Landroid/graphics/Path; -HSPLandroid/graphics/Path;->rewind()V -HSPLandroid/graphics/Path;->set(Landroid/graphics/Path;)V -HSPLandroid/graphics/Path;->setFillType(Landroid/graphics/Path$FillType;)V -HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; -HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V -HSPLandroid/graphics/PathMeasure;-><init>()V -HSPLandroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V -HSPLandroid/graphics/PathMeasure;->finalize()V -HSPLandroid/graphics/PathMeasure;->getLength()F -HSPLandroid/graphics/PathMeasure;->getPosTan(F[F[F)Z -HSPLandroid/graphics/PathMeasure;->setPath(Landroid/graphics/Path;Z)V -HSPLandroid/graphics/Picture;-><init>()V -HSPLandroid/graphics/Picture;->beginRecording(II)Landroid/graphics/Canvas; -HSPLandroid/graphics/Picture;->close()V -HSPLandroid/graphics/Picture;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/Picture;->endRecording()V -HSPLandroid/graphics/Picture;->finalize()V -HSPLandroid/graphics/Picture;->getHeight()I -HSPLandroid/graphics/Picture;->getWidth()I -HSPLandroid/graphics/PixelFormat;->formatHasAlpha(I)Z -HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Point; -HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/graphics/Point;-><init>()V -HSPLandroid/graphics/Point;-><init>(II)V -HSPLandroid/graphics/Point;-><init>(Landroid/graphics/Point;)V -HSPLandroid/graphics/Point;->equals(II)Z -HSPLandroid/graphics/Point;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Point; -HSPLandroid/graphics/Point;->hashCode()I -HSPLandroid/graphics/Point;->offset(II)V -HSPLandroid/graphics/Point;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/graphics/Point;->set(II)V -HSPLandroid/graphics/Point;->set(Landroid/graphics/Point;)V -HSPLandroid/graphics/Point;->toString()Ljava/lang/String; -HSPLandroid/graphics/PointF;-><init>()V -HSPLandroid/graphics/PointF;-><init>(FF)V -HSPLandroid/graphics/PointF;->equals(FF)Z -HSPLandroid/graphics/PointF;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/PointF;->length()F -HSPLandroid/graphics/PointF;->length(FF)F -HSPLandroid/graphics/PointF;->set(FF)V -HSPLandroid/graphics/PointF;->set(Landroid/graphics/PointF;)V -HSPLandroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/PorterDuffColorFilter;->createNativeInstance()J -HSPLandroid/graphics/PorterDuffColorFilter;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/PorterDuffColorFilter;->getColor()I -HSPLandroid/graphics/PorterDuffColorFilter;->getMode()Landroid/graphics/PorterDuff$Mode; -HSPLandroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/RadialGradient;-><init>(FFFFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V -HSPLandroid/graphics/RadialGradient;-><init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/RadialGradient;->createNativeInstance(JZ)J -HSPLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V -HSPLandroid/graphics/RecordingCanvas;->disableZ()V -HSPLandroid/graphics/RecordingCanvas;->drawRenderNode(Landroid/graphics/RenderNode;)V -HSPLandroid/graphics/RecordingCanvas;->drawRipple(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;ILandroid/graphics/RuntimeShader;)V -HSPLandroid/graphics/RecordingCanvas;->drawWebViewFunctor(I)V -HSPLandroid/graphics/RecordingCanvas;->enableZ()V -HSPLandroid/graphics/RecordingCanvas;->finishRecording(Landroid/graphics/RenderNode;)V -HSPLandroid/graphics/RecordingCanvas;->getHeight()I -HSPLandroid/graphics/RecordingCanvas;->getWidth()I -HSPLandroid/graphics/RecordingCanvas;->isHardwareAccelerated()Z -HSPLandroid/graphics/RecordingCanvas;->obtain(Landroid/graphics/RenderNode;II)Landroid/graphics/RecordingCanvas;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -HSPLandroid/graphics/RecordingCanvas;->recycle()V+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -HSPLandroid/graphics/RecordingCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Rect; -HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/graphics/Rect$1;->newArray(I)[Landroid/graphics/Rect; -HSPLandroid/graphics/Rect$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/graphics/Rect;-><init>()V -HSPLandroid/graphics/Rect;-><init>(IIII)V -HSPLandroid/graphics/Rect;-><init>(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->centerX()I -HSPLandroid/graphics/Rect;->centerY()I -HSPLandroid/graphics/Rect;->contains(II)Z -HSPLandroid/graphics/Rect;->contains(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Landroid/graphics/Rect; -HSPLandroid/graphics/Rect;->exactCenterX()F -HSPLandroid/graphics/Rect;->exactCenterY()F -HSPLandroid/graphics/Rect;->hashCode()I -HSPLandroid/graphics/Rect;->height()I -HSPLandroid/graphics/Rect;->inset(II)V -HSPLandroid/graphics/Rect;->inset(IIII)V -HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Insets;)V -HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->intersect(IIII)Z -HSPLandroid/graphics/Rect;->intersect(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Rect;->intersectUnchecked(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Rect;->isEmpty()Z -HSPLandroid/graphics/Rect;->isValid()Z -HSPLandroid/graphics/Rect;->offset(II)V -HSPLandroid/graphics/Rect;->offsetTo(II)V -HSPLandroid/graphics/Rect;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/graphics/Rect;->scale(F)V -HSPLandroid/graphics/Rect;->set(IIII)V -HSPLandroid/graphics/Rect;->set(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->setEmpty()V -HSPLandroid/graphics/Rect;->setIntersect(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Rect;->toShortString(Ljava/lang/StringBuilder;)Ljava/lang/String; -HSPLandroid/graphics/Rect;->toString()Ljava/lang/String; -HSPLandroid/graphics/Rect;->union(IIII)V -HSPLandroid/graphics/Rect;->union(Landroid/graphics/Rect;)V -HSPLandroid/graphics/Rect;->width()I -HSPLandroid/graphics/Rect;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/graphics/RectF;-><init>()V -HSPLandroid/graphics/RectF;-><init>(FFFF)V -HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V -HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/RectF;)V -HSPLandroid/graphics/RectF;->centerX()F -HSPLandroid/graphics/RectF;->centerY()F -HSPLandroid/graphics/RectF;->contains(FF)Z -HSPLandroid/graphics/RectF;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/RectF;->height()F -HSPLandroid/graphics/RectF;->inset(FF)V -HSPLandroid/graphics/RectF;->intersect(FFFF)Z -HSPLandroid/graphics/RectF;->intersect(Landroid/graphics/RectF;)Z+]Landroid/graphics/RectF;Landroid/graphics/RectF; -HSPLandroid/graphics/RectF;->isEmpty()Z -HSPLandroid/graphics/RectF;->offset(FF)V -HSPLandroid/graphics/RectF;->offsetTo(FF)V -HSPLandroid/graphics/RectF;->round(Landroid/graphics/Rect;)V -HSPLandroid/graphics/RectF;->roundOut(Landroid/graphics/Rect;)V -HSPLandroid/graphics/RectF;->set(FFFF)V -HSPLandroid/graphics/RectF;->set(Landroid/graphics/Rect;)V -HSPLandroid/graphics/RectF;->set(Landroid/graphics/RectF;)V -HSPLandroid/graphics/RectF;->setEmpty()V -HSPLandroid/graphics/RectF;->union(FFFF)V -HSPLandroid/graphics/RectF;->union(Landroid/graphics/RectF;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF; -HSPLandroid/graphics/RectF;->width()F -HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Region; -HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/graphics/Region;-><init>()V -HSPLandroid/graphics/Region;-><init>(J)V -HSPLandroid/graphics/Region;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/Region;->finalize()V -HSPLandroid/graphics/Region;->getBounds()Landroid/graphics/Rect; -HSPLandroid/graphics/Region;->op(IIIILandroid/graphics/Region$Op;)Z -HSPLandroid/graphics/Region;->op(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z -HSPLandroid/graphics/Region;->op(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z -HSPLandroid/graphics/Region;->op(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z -HSPLandroid/graphics/Region;->set(IIII)Z -HSPLandroid/graphics/Region;->set(Landroid/graphics/Region;)Z -HSPLandroid/graphics/Region;->setEmpty()V -HSPLandroid/graphics/Region;->setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z -HSPLandroid/graphics/Region;->union(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/Region;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/graphics/RegionIterator;-><init>(Landroid/graphics/Region;)V -HSPLandroid/graphics/RegionIterator;->finalize()V -HSPLandroid/graphics/RegionIterator;->next(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;-><init>([Landroid/graphics/RenderNode$PositionUpdateListener;)V -HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionChanged(JIIII)V -HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionLost(J)V -HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->without(Landroid/graphics/RenderNode$PositionUpdateListener;)Landroid/graphics/RenderNode$CompositePositionUpdateListener; -HSPLandroid/graphics/RenderNode$PositionUpdateListener;->callPositionChanged(Ljava/lang/ref/WeakReference;JIIII)Z -HSPLandroid/graphics/RenderNode$PositionUpdateListener;->callPositionLost(Ljava/lang/ref/WeakReference;J)Z -HSPLandroid/graphics/RenderNode;-><init>(J)V -HSPLandroid/graphics/RenderNode;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V -HSPLandroid/graphics/RenderNode;->addPositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V -HSPLandroid/graphics/RenderNode;->adopt(J)Landroid/graphics/RenderNode; -HSPLandroid/graphics/RenderNode;->beginRecording(II)Landroid/graphics/RecordingCanvas; -HSPLandroid/graphics/RenderNode;->clearStretch()Z -HSPLandroid/graphics/RenderNode;->create(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)Landroid/graphics/RenderNode; -HSPLandroid/graphics/RenderNode;->discardDisplayList()V -HSPLandroid/graphics/RenderNode;->endRecording()V+]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/graphics/RenderNode;->getClipToOutline()Z -HSPLandroid/graphics/RenderNode;->getElevation()F -HSPLandroid/graphics/RenderNode;->getMatrix(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; -HSPLandroid/graphics/RenderNode;->getPivotY()F -HSPLandroid/graphics/RenderNode;->getRotationX()F -HSPLandroid/graphics/RenderNode;->getRotationY()F -HSPLandroid/graphics/RenderNode;->getRotationZ()F -HSPLandroid/graphics/RenderNode;->getScaleX()F -HSPLandroid/graphics/RenderNode;->getScaleY()F -HSPLandroid/graphics/RenderNode;->getTranslationX()F -HSPLandroid/graphics/RenderNode;->getTranslationY()F -HSPLandroid/graphics/RenderNode;->getTranslationZ()F -HSPLandroid/graphics/RenderNode;->hasDisplayList()Z -HSPLandroid/graphics/RenderNode;->hasIdentityMatrix()Z -HSPLandroid/graphics/RenderNode;->isAttached()Z -HSPLandroid/graphics/RenderNode;->offsetTopAndBottom(I)Z -HSPLandroid/graphics/RenderNode;->removePositionUpdateListener(Landroid/graphics/RenderNode$PositionUpdateListener;)V -HSPLandroid/graphics/RenderNode;->setAlpha(F)Z -HSPLandroid/graphics/RenderNode;->setAmbientShadowColor(I)Z -HSPLandroid/graphics/RenderNode;->setAnimationMatrix(Landroid/graphics/Matrix;)Z -HSPLandroid/graphics/RenderNode;->setClipToBounds(Z)Z -HSPLandroid/graphics/RenderNode;->setClipToOutline(Z)Z -HSPLandroid/graphics/RenderNode;->setElevation(F)Z -HSPLandroid/graphics/RenderNode;->setForceDarkAllowed(Z)Z -HSPLandroid/graphics/RenderNode;->setHasOverlappingRendering(Z)Z -HSPLandroid/graphics/RenderNode;->setLayerPaint(Landroid/graphics/Paint;)Z -HSPLandroid/graphics/RenderNode;->setLayerType(I)Z -HSPLandroid/graphics/RenderNode;->setLeftTopRightBottom(IIII)Z -HSPLandroid/graphics/RenderNode;->setOutline(Landroid/graphics/Outline;)Z -HSPLandroid/graphics/RenderNode;->setPivotX(F)Z -HSPLandroid/graphics/RenderNode;->setProjectBackwards(Z)Z -HSPLandroid/graphics/RenderNode;->setProjectionReceiver(Z)Z -HSPLandroid/graphics/RenderNode;->setRenderEffect(Landroid/graphics/RenderEffect;)Z -HSPLandroid/graphics/RenderNode;->setScaleX(F)Z -HSPLandroid/graphics/RenderNode;->setScaleY(F)Z -HSPLandroid/graphics/RenderNode;->setSpotShadowColor(I)Z -HSPLandroid/graphics/RenderNode;->setTranslationX(F)Z -HSPLandroid/graphics/RenderNode;->setTranslationY(F)Z -HSPLandroid/graphics/RenderNode;->setUsageHint(I)V -HSPLandroid/graphics/RenderNode;->stretch(FFFF)Z -HSPLandroid/graphics/RuntimeShader$NoImagePreloadHolder;-><clinit>()V -HSPLandroid/graphics/RuntimeShader;-><init>(Ljava/lang/String;)V -HSPLandroid/graphics/RuntimeShader;->createNativeInstance(JZ)J -HSPLandroid/graphics/RuntimeShader;->getNativeShaderBuilder()J -HSPLandroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;FF)V -HSPLandroid/graphics/RuntimeShader;->setFloatUniform(Ljava/lang/String;FFFFI)V -HSPLandroid/graphics/RuntimeShader;->setInputShader(Ljava/lang/String;Landroid/graphics/Shader;)V -HSPLandroid/graphics/RuntimeShader;->setUniform(Ljava/lang/String;[FZ)V -HSPLandroid/graphics/Shader;-><init>()V -HSPLandroid/graphics/Shader;-><init>(Landroid/graphics/ColorSpace;)V -HSPLandroid/graphics/Shader;->colorSpace()Landroid/graphics/ColorSpace; -HSPLandroid/graphics/Shader;->convertColors([I)[J -HSPLandroid/graphics/Shader;->detectColorSpace([J)Landroid/graphics/ColorSpace; -HSPLandroid/graphics/Shader;->discardNativeInstance()V -HSPLandroid/graphics/Shader;->discardNativeInstanceLocked()V -HSPLandroid/graphics/Shader;->getNativeInstance()J -HSPLandroid/graphics/Shader;->getNativeInstance(Z)J -HSPLandroid/graphics/Shader;->setLocalMatrix(Landroid/graphics/Matrix;)V -HSPLandroid/graphics/Shader;->shouldDiscardNativeInstance(Z)Z -HSPLandroid/graphics/SurfaceTexture$1;->handleMessage(Landroid/os/Message;)V -HSPLandroid/graphics/SurfaceTexture;-><init>(I)V -HSPLandroid/graphics/SurfaceTexture;->finalize()V -HSPLandroid/graphics/SurfaceTexture;->isSingleBuffered()Z -HSPLandroid/graphics/SurfaceTexture;->postEventFromNative(Ljava/lang/ref/WeakReference;)V -HSPLandroid/graphics/SurfaceTexture;->release()V -HSPLandroid/graphics/SurfaceTexture;->setDefaultBufferSize(II)V -HSPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V -HSPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V -HSPLandroid/graphics/TemporaryBuffer;->obtain(I)[C -HSPLandroid/graphics/TemporaryBuffer;->recycle([C)V -HSPLandroid/graphics/TextureLayer;-><init>(Landroid/graphics/HardwareRenderer;J)V -HSPLandroid/graphics/TextureLayer;->close()V -HSPLandroid/graphics/TextureLayer;->detachSurfaceTexture()V -HSPLandroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/content/res/AssetManager;Landroid/content/res/AssetManager; -HSPLandroid/graphics/Typeface$CustomFallbackBuilder;-><init>(Landroid/graphics/fonts/FontFamily;)V -HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->build()Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->setStyle(Landroid/graphics/fonts/FontStyle;)Landroid/graphics/Typeface$CustomFallbackBuilder; -HSPLandroid/graphics/Typeface;-><init>(J)V -HSPLandroid/graphics/Typeface;-><init>(JLjava/lang/String;)V -HSPLandroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->createFromResources(Landroid/content/res/FontResourcesParser$FamilyResourceEntry;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->createWeightStyle(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->defaultFromStyle(I)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->deserializeFontMap(Ljava/nio/ByteBuffer;Ljava/util/Map;)[J -HSPLandroid/graphics/Typeface;->equals(Ljava/lang/Object;)Z -HSPLandroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->getStyle()I -HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface; -HSPLandroid/graphics/Typeface;->getSystemFontFamilyName()Ljava/lang/String; -HSPLandroid/graphics/Typeface;->hasFontFamily(Ljava/lang/String;)Z -HSPLandroid/graphics/Typeface;->readString(Ljava/nio/ByteBuffer;)Ljava/lang/String; -HSPLandroid/graphics/Typeface;->registerGenericFamilyNative(Ljava/lang/String;Landroid/graphics/Typeface;)V -HSPLandroid/graphics/Typeface;->setDefault(Landroid/graphics/Typeface;)V -HSPLandroid/graphics/Typeface;->setSystemFontMap(Landroid/os/SharedMemory;)V -HSPLandroid/graphics/Typeface;->setSystemFontMap(Ljava/util/Map;)V -HSPLandroid/graphics/Xfermode;-><init>()V -HSPLandroid/graphics/animation/RenderNodeAnimator$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/animation/RenderNodeAnimator;)V -HSPLandroid/graphics/animation/RenderNodeAnimator$$ExternalSyntheticLambda0;->run()V -HSPLandroid/graphics/animation/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V -HSPLandroid/graphics/animation/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->applyInterpolator()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->callOnFinished(Landroid/graphics/animation/RenderNodeAnimator;)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->cancel()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->checkMutable()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->cloneListeners()Ljava/util/ArrayList; -HSPLandroid/graphics/animation/RenderNodeAnimator;->doStart()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->end()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->getNativeAnimator()J -HSPLandroid/graphics/animation/RenderNodeAnimator;->init(J)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->isNativeInterpolator(Landroid/animation/TimeInterpolator;)Z -HSPLandroid/graphics/animation/RenderNodeAnimator;->isRunning()Z -HSPLandroid/graphics/animation/RenderNodeAnimator;->moveToRunningState()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->notifyStartListeners()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->onFinished()V -HSPLandroid/graphics/animation/RenderNodeAnimator;->setDuration(J)Landroid/animation/Animator; -HSPLandroid/graphics/animation/RenderNodeAnimator;->setDuration(J)Landroid/graphics/animation/RenderNodeAnimator; -HSPLandroid/graphics/animation/RenderNodeAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->setStartDelay(J)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->setTarget(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->setTarget(Landroid/graphics/RenderNode;)V -HSPLandroid/graphics/animation/RenderNodeAnimator;->start()V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;-><init>(I)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/graphics/drawable/AdaptiveIconDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/graphics/drawable/AdaptiveIconDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->invalidateCache()V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->isStateful()Z -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->addLayer(ILandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->createConstantState(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState; -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getExtraInsetFraction()F -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->invalidateSelf()V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateMaskBoundsInternal(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/Animatable2$AnimationCallback;-><init>()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/graphics/drawable/AnimatedStateListDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;I)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addTransition(IILandroid/graphics/drawable/Drawable;Z)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->generateTransitionKey(II)J -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->getKeyframeIdAt(I)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfKeyframe([I)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfTransition(II)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->isTransitionReversed(II)Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mutate()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->transitionHasReversibleFlag(II)Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->start()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->stop()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimatedStateListDrawable-IA;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState; -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState; -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->init()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->parseItem(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->parseTransition(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->selectTransition(I)Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$1;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$1;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;-><init>(IFLjava/lang/String;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/animation/Animator; -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/graphics/drawable/Drawable$Callback;Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/Drawable$ConstantState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/graphics/drawable/VectorDrawable;Landroid/graphics/drawable/VectorDrawable; -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addPendingAnimator(IFLjava/lang/String;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addTargetAnimator(Ljava/lang/String;Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->inflatePendingAnimators(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimator(I)Landroid/animation/Animator; -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimators(Landroid/animation/AnimatorSet;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT$$ExternalSyntheticLambda0;->run()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->callOnFinished(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createNativeChildAnimator(JJLandroid/animation/ObjectAnimator;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimator(Landroid/animation/ObjectAnimator;J)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForFullPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VFullPath;J)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VGroup;J)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VPath;J)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->end()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getAnimatorNativePtr()J -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getFrameCount(J)I -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->handlePendingAction(I)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->init(Landroid/animation/AnimatorSet;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->invalidateOwningView()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isInfinite()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isStarted()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->lambda$callOnFinished$0(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->parseAnimatorSet(Landroid/animation/AnimatorSet;J)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->pause()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->recordLastSeenTarget(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->setListener(Landroid/animation/Animator$AnimatorListener;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->start()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->startAnimation()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->useLastSeenTarget()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->-$$Nest$smnCreateAnimatorSet()J -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->-$$Nest$smshouldIgnoreInvalidAnimation()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimatedVectorDrawable-IA;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->containsSameValueType(Landroid/animation/PropertyValuesHolder;Landroid/util/Property;)Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->ensureAnimatorSet()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->registerAnimationCallback(Landroid/graphics/drawable/Animatable2$AnimationCallback;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setHotspot(FF)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->shouldIgnoreInvalidAnimation()Z -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->start()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->stop()V -HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->updateAnimatorProperty(Landroid/animation/Animator;Ljava/lang/String;Landroid/graphics/drawable/VectorDrawable;Z)V -HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->addFrame(Landroid/graphics/drawable/Drawable;I)V -HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->growArray(II)V -HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AnimationDrawable;-><init>()V -HSPLandroid/graphics/drawable/AnimationDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimationDrawable$AnimationState; -HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState; -HSPLandroid/graphics/drawable/AnimationDrawable;->getDuration(I)I -HSPLandroid/graphics/drawable/AnimationDrawable;->getNumberOfFrames()I -HSPLandroid/graphics/drawable/AnimationDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimationDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/AnimationDrawable;->isRunning()Z -HSPLandroid/graphics/drawable/AnimationDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/AnimationDrawable;->nextFrame(Z)V -HSPLandroid/graphics/drawable/AnimationDrawable;->run()V -HSPLandroid/graphics/drawable/AnimationDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V -HSPLandroid/graphics/drawable/AnimationDrawable;->setFrame(IZZ)V -HSPLandroid/graphics/drawable/AnimationDrawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/AnimationDrawable;->start()V -HSPLandroid/graphics/drawable/AnimationDrawable;->stop()V -HSPLandroid/graphics/drawable/AnimationDrawable;->unscheduleSelf(Ljava/lang/Runnable;)V -HSPLandroid/graphics/drawable/BitmapDrawable$$ExternalSyntheticLambda2;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;)V -HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/BitmapDrawable;-><init>()V -HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/BitmapDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/BitmapDrawable;->computeBitmapSize()V -HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap; -HSPLandroid/graphics/drawable/BitmapDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/BitmapDrawable;->getColorFilter()Landroid/graphics/ColorFilter; -HSPLandroid/graphics/drawable/BitmapDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/BitmapDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/BitmapDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/BitmapDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/BitmapDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->init(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->isAutoMirrored()Z -HSPLandroid/graphics/drawable/BitmapDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/BitmapDrawable;->lambda$updateStateFromTypedArray$2(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/BitmapDrawable;->needMirroring()Z -HSPLandroid/graphics/drawable/BitmapDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/BitmapDrawable;->setAlpha(I)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setAutoMirrored(Z)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setBitmap(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setDither(Z)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setGravity(I)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setMipMap(Z)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setTileModeXY(Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->updateDstRectAndInsetsIfDirty()V -HSPLandroid/graphics/drawable/BitmapDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/BitmapDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;I)V -HSPLandroid/graphics/drawable/BitmapDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/ClipDrawable$ClipState;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/ClipDrawable$ClipState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/ClipDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/ClipDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/ClipDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; -HSPLandroid/graphics/drawable/ClipDrawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/ClipDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/ClipDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/ColorDrawable$ColorState;-><init>()V -HSPLandroid/graphics/drawable/ColorDrawable$ColorState;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;)V -HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/ColorDrawable;-><init>()V -HSPLandroid/graphics/drawable/ColorDrawable;-><init>(I)V -HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;Landroid/graphics/drawable/ColorDrawable-IA;)V -HSPLandroid/graphics/drawable/ColorDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/ColorDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/graphics/drawable/ColorDrawable;->getAlpha()I -HSPLandroid/graphics/drawable/ColorDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/ColorDrawable;->getColor()I -HSPLandroid/graphics/drawable/ColorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/ColorDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/ColorDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/ColorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/ColorDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/ColorDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/ColorDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/ColorDrawable;->setAlpha(I)V -HSPLandroid/graphics/drawable/ColorDrawable;->setColor(I)V -HSPLandroid/graphics/drawable/ColorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/ColorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/ColorDrawable;Landroid/graphics/drawable/ColorDrawable; -HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/Drawable$ConstantState;-><init>()V -HSPLandroid/graphics/drawable/Drawable$ConstantState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable;-><init>()V -HSPLandroid/graphics/drawable/Drawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/Drawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/Drawable;->clearColorFilter()V -HSPLandroid/graphics/drawable/Drawable;->clearMutated()V -HSPLandroid/graphics/drawable/Drawable;->copyBounds(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable;->createFromXmlInnerForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect; -HSPLandroid/graphics/drawable/Drawable;->getCallback()Landroid/graphics/drawable/Drawable$Callback;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLandroid/graphics/drawable/Drawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/Drawable;->getColorFilter()Landroid/graphics/ColorFilter; -HSPLandroid/graphics/drawable/Drawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/Drawable;->getCurrent()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable;->getDirtyBounds()Landroid/graphics/Rect; -HSPLandroid/graphics/drawable/Drawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/Drawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/Drawable;->getLayoutDirection()I -HSPLandroid/graphics/drawable/Drawable;->getLevel()I -HSPLandroid/graphics/drawable/Drawable;->getMinimumHeight()I+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/graphics/drawable/Drawable;->getMinimumWidth()I+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/graphics/drawable/Drawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/Drawable;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/Drawable;->getState()[I -HSPLandroid/graphics/drawable/Drawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/Drawable;->inflateWithAttributes(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/TypedArray;I)V -HSPLandroid/graphics/drawable/Drawable;->invalidateSelf()V+]Landroid/graphics/drawable/Drawable$Callback;missing_types]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/graphics/drawable/Drawable;->isProjected()Z -HSPLandroid/graphics/drawable/Drawable;->isStateful()Z -HSPLandroid/graphics/drawable/Drawable;->isVisible()Z -HSPLandroid/graphics/drawable/Drawable;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Drawable;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray; -HSPLandroid/graphics/drawable/Drawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/Drawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/Drawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/Drawable;->parseBlendMode(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendMode; -HSPLandroid/graphics/drawable/Drawable;->resolveDensity(Landroid/content/res/Resources;I)I -HSPLandroid/graphics/drawable/Drawable;->resolveOpacity(II)I -HSPLandroid/graphics/drawable/Drawable;->scaleFromDensity(FII)F -HSPLandroid/graphics/drawable/Drawable;->scaleFromDensity(IIIZ)I -HSPLandroid/graphics/drawable/Drawable;->scheduleSelf(Ljava/lang/Runnable;J)V -HSPLandroid/graphics/drawable/Drawable;->setAutoMirrored(Z)V -HSPLandroid/graphics/drawable/Drawable;->setBounds(IIII)V -HSPLandroid/graphics/drawable/Drawable;->setBounds(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/Drawable;megamorphic_types -HSPLandroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/Drawable$Callback;)V -HSPLandroid/graphics/drawable/Drawable;->setChangingConfigurations(I)V -HSPLandroid/graphics/drawable/Drawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/drawable/Drawable;->setDither(Z)V -HSPLandroid/graphics/drawable/Drawable;->setHotspot(FF)V -HSPLandroid/graphics/drawable/Drawable;->setLayoutDirection(I)Z -HSPLandroid/graphics/drawable/Drawable;->setLevel(I)Z -HSPLandroid/graphics/drawable/Drawable;->setSrcDensityOverride(I)V -HSPLandroid/graphics/drawable/Drawable;->setState([I)Z+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/graphics/drawable/Drawable;->setTint(I)V -HSPLandroid/graphics/drawable/Drawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/Drawable;->setTintMode(Landroid/graphics/PorterDuff$Mode;)V -HSPLandroid/graphics/drawable/Drawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/Drawable;->unscheduleSelf(Ljava/lang/Runnable;)V -HSPLandroid/graphics/drawable/Drawable;->updateBlendModeFilter(Landroid/graphics/BlendModeColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;+]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/BlendModeColorFilter;Landroid/graphics/BlendModeColorFilter;]Landroid/graphics/drawable/Drawable;megamorphic_types -HSPLandroid/graphics/drawable/Drawable;->updateTintFilter(Landroid/graphics/PorterDuffColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter; -HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>()V -HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>(Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback-IA;)V -HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->unwrap()Landroid/graphics/drawable/Drawable$Callback; -HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->wrap(Landroid/graphics/drawable/Drawable$Callback;)Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback; -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;-><init>(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/graphics/drawable/Drawable;megamorphic_types -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->addChild(Landroid/graphics/drawable/Drawable;)I -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->canConstantState()Z -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->clearMutated()V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->computeConstantSize()V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->createAllFutures()V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getCapacity()I -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChild(I)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChildCount()I -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChildren()[Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getConstantPadding()Landroid/graphics/Rect; -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getOpacity()I -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->invalidateCache()V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->isConstantSize()Z -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->isStateful()Z -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->mutate()V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->prepareDrawable(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setConstantSize(Z)V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setEnterFadeDuration(I)V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setExitFadeDuration(I)V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setVariablePadding(Z)V -HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->updateDensity(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/DrawableContainer;-><init>()V -HSPLandroid/graphics/drawable/DrawableContainer;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/DrawableContainer;->canApplyTheme()Z -HSPLandroid/graphics/drawable/DrawableContainer;->clearMutated()V -HSPLandroid/graphics/drawable/DrawableContainer;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState; -HSPLandroid/graphics/drawable/DrawableContainer;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/DrawableContainer;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/DrawableContainer;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/DrawableContainer;->getCurrent()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableContainer;->getCurrentIndex()I -HSPLandroid/graphics/drawable/DrawableContainer;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/DrawableContainer;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/DrawableContainer;->getMinimumHeight()I -HSPLandroid/graphics/drawable/DrawableContainer;->getMinimumWidth()I -HSPLandroid/graphics/drawable/DrawableContainer;->getOpacity()I -HSPLandroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets; -HSPLandroid/graphics/drawable/DrawableContainer;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/DrawableContainer;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;]Landroid/graphics/drawable/DrawableContainer;Landroid/graphics/drawable/AnimatedStateListDrawable;,Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;,Landroid/graphics/drawable/StateListDrawable;]Landroid/graphics/drawable/Drawable;megamorphic_types -HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableContainer;->isAutoMirrored()Z -HSPLandroid/graphics/drawable/DrawableContainer;->isStateful()Z -HSPLandroid/graphics/drawable/DrawableContainer;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/DrawableContainer;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableContainer;->needsMirroring()Z -HSPLandroid/graphics/drawable/DrawableContainer;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/DrawableContainer;->onStateChange([I)Z -HSPLandroid/graphics/drawable/DrawableContainer;->selectDrawable(I)Z -HSPLandroid/graphics/drawable/DrawableContainer;->setAlpha(I)V -HSPLandroid/graphics/drawable/DrawableContainer;->setAutoMirrored(Z)V -HSPLandroid/graphics/drawable/DrawableContainer;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/DrawableContainer;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V -HSPLandroid/graphics/drawable/DrawableContainer;->setDither(Z)V -HSPLandroid/graphics/drawable/DrawableContainer;->setHotspot(FF)V -HSPLandroid/graphics/drawable/DrawableContainer;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/DrawableContainer;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/DrawableContainer;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/DrawableContainer;->updateDensity(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/DrawableInflater;-><init>(Landroid/content/res/Resources;Ljava/lang/ClassLoader;)V -HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromClass(Ljava/lang/String;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromTag(Ljava/lang/String;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromXmlForDensity(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;[I)V -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->canConstantState()Z -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->onDensityChanged(II)V -HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->setDensity(I)V -HSPLandroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->canApplyTheme()Z -HSPLandroid/graphics/drawable/DrawableWrapper;->clearMutated()V -HSPLandroid/graphics/drawable/DrawableWrapper;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/DrawableWrapper;->getColorFilter()Landroid/graphics/ColorFilter; -HSPLandroid/graphics/drawable/DrawableWrapper;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/DrawableWrapper;->getDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableWrapper;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/DrawableWrapper;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/DrawableWrapper;->getOpacity()I -HSPLandroid/graphics/drawable/DrawableWrapper;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/DrawableWrapper;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->inflateChildDrawable(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->isStateful()Z -HSPLandroid/graphics/drawable/DrawableWrapper;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/DrawableWrapper;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/DrawableWrapper;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; -HSPLandroid/graphics/drawable/DrawableWrapper;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/DrawableWrapper;->onStateChange([I)Z -HSPLandroid/graphics/drawable/DrawableWrapper;->setAlpha(I)V -HSPLandroid/graphics/drawable/DrawableWrapper;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->setDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->setHotspot(FF)V -HSPLandroid/graphics/drawable/DrawableWrapper;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/DrawableWrapper;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/DrawableWrapper;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->-$$Nest$mcomputeOpacity(Landroid/graphics/drawable/GradientDrawable$GradientState;)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V+]Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/graphics/drawable/GradientDrawable$GradientState; -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->applyDensityScaling(II)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->computeOpacity()V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->hasCenterColor()Z -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadii([F)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setCornerRadius(F)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setDensity(I)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setGradientColors([I)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setSolidColors(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setStroke(ILandroid/content/res/ColorStateList;FF)V -HSPLandroid/graphics/drawable/GradientDrawable;-><init>()V -HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;Landroid/graphics/drawable/GradientDrawable-IA;)V -HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas; -HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z -HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/GradientDrawable;->getColorFilter()Landroid/graphics/ColorFilter; -HSPLandroid/graphics/drawable/GradientDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/GradientDrawable;->getFloatOrFraction(Landroid/content/res/TypedArray;IF)F -HSPLandroid/graphics/drawable/GradientDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/GradientDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/GradientDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/GradientDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/GradientDrawable;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/GradientDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/GradientDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/GradientDrawable;->isOpaque(I)Z -HSPLandroid/graphics/drawable/GradientDrawable;->isOpaqueForState()Z -HSPLandroid/graphics/drawable/GradientDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/GradientDrawable;->modulateAlpha(I)I -HSPLandroid/graphics/drawable/GradientDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/GradientDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/GradientDrawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/GradientDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/GradientDrawable;->setAlpha(I)V+]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/graphics/drawable/GradientDrawable;->setColor(I)V -HSPLandroid/graphics/drawable/GradientDrawable;->setColor(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/GradientDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V -HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V -HSPLandroid/graphics/drawable/GradientDrawable;->setDither(Z)V -HSPLandroid/graphics/drawable/GradientDrawable;->setShape(I)V -HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(II)V -HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(IIFF)V -HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(ILandroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(ILandroid/content/res/ColorStateList;FF)V -HSPLandroid/graphics/drawable/GradientDrawable;->setStrokeInternal(IIFF)V -HSPLandroid/graphics/drawable/GradientDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/GradientDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateDrawableCorners(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableGradient(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawablePadding(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSize(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSolid(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableStroke(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/GradientDrawable;->updateLocalState(Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/GradientDrawable;Landroid/graphics/drawable/GradientDrawable;]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/graphics/Paint;Landroid/graphics/Paint; -HSPLandroid/graphics/drawable/GradientDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/graphics/drawable/Icon;-><init>(I)V -HSPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;)V -HSPLandroid/graphics/drawable/Icon;->createWithAdaptiveBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->createWithBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->createWithResource(Landroid/content/Context;I)Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->createWithResource(Ljava/lang/String;I)Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->getBitmap()Landroid/graphics/Bitmap; -HSPLandroid/graphics/drawable/Icon;->getResId()I -HSPLandroid/graphics/drawable/Icon;->getResPackage()Ljava/lang/String; -HSPLandroid/graphics/drawable/Icon;->getResources()Landroid/content/res/Resources; -HSPLandroid/graphics/drawable/Icon;->getType()I -HSPLandroid/graphics/drawable/Icon;->getUriString()Ljava/lang/String; -HSPLandroid/graphics/drawable/Icon;->hasTint()Z -HSPLandroid/graphics/drawable/Icon;->loadDrawable(Landroid/content/Context;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Icon;->loadDrawableAsUser(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/Icon;->scaleDownIfNecessary(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap; -HSPLandroid/graphics/drawable/Icon;->setBitmap(Landroid/graphics/Bitmap;)V -HSPLandroid/graphics/drawable/Icon;->setTint(I)Landroid/graphics/drawable/Icon; -HSPLandroid/graphics/drawable/Icon;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/InsetDrawable$InsetState;[I)V -HSPLandroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->applyDensityScaling(II)V -HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->onDensityChanged(II)V -HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;-><init>()V -HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;-><init>(FI)V -HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->clone()Landroid/graphics/drawable/InsetDrawable$InsetValue; -HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->getDimension(I)I -HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->scaleFromDensity(II)V -HSPLandroid/graphics/drawable/InsetDrawable;-><init>()V -HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;I)V -HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;IIII)V -HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;Landroid/graphics/drawable/InsetDrawable-IA;)V -HSPLandroid/graphics/drawable/InsetDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/InsetDrawable;->getInset(Landroid/content/res/TypedArray;ILandroid/graphics/drawable/InsetDrawable$InsetValue;)Landroid/graphics/drawable/InsetDrawable$InsetValue; -HSPLandroid/graphics/drawable/InsetDrawable;->getInsets(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/InsetDrawable;Landroid/graphics/drawable/InsetDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/InsetDrawable$InsetValue;Landroid/graphics/drawable/InsetDrawable$InsetValue; -HSPLandroid/graphics/drawable/InsetDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/InsetDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/InsetDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/InsetDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/InsetDrawable;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/InsetDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/InsetDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; -HSPLandroid/graphics/drawable/InsetDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/InsetDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/InsetDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(I)V -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V+]Landroid/graphics/drawable/Drawable$ConstantState;missing_types]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->-$$Nest$fgetmPaddingMode(Landroid/graphics/drawable/LayerDrawable$LayerState;)I -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->-$$Nest$fputmPaddingMode(Landroid/graphics/drawable/LayerDrawable$LayerState;I)V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/LayerDrawable$LayerState;[I)V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->applyDensityScaling(II)V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->canConstantState()Z -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->getOpacity()I -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->invalidateCache()V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->isStateful()Z -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->onDensityChanged(II)V -HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->setDensity(I)V -HSPLandroid/graphics/drawable/LayerDrawable;-><init>()V -HSPLandroid/graphics/drawable/LayerDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/LayerDrawable$LayerState;)V -HSPLandroid/graphics/drawable/LayerDrawable;->addLayer(Landroid/graphics/drawable/Drawable;[IIIIII)Landroid/graphics/drawable/LayerDrawable$ChildDrawable; -HSPLandroid/graphics/drawable/LayerDrawable;->addLayer(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;)I -HSPLandroid/graphics/drawable/LayerDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LayerDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/LayerDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/LayerDrawable;->computeNestedPadding(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/LayerDrawable;->computeStackedPadding(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/LayerDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState; -HSPLandroid/graphics/drawable/LayerDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/LayerDrawable;->ensurePadding()V -HSPLandroid/graphics/drawable/LayerDrawable;->findDrawableByLayerId(I)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LayerDrawable;->findIndexByLayerId(I)I -HSPLandroid/graphics/drawable/LayerDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/LayerDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LayerDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/LayerDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/LayerDrawable;->getNumberOfLayers()I -HSPLandroid/graphics/drawable/LayerDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/LayerDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/LayerDrawable;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/LayerDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LayerDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/LayerDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/LayerDrawable;->isAutoMirrored()Z -HSPLandroid/graphics/drawable/LayerDrawable;->isProjected()Z -HSPLandroid/graphics/drawable/LayerDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/LayerDrawable;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/LayerDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/LayerDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/LayerDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/LayerDrawable;->refreshChildPadding(ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z -HSPLandroid/graphics/drawable/LayerDrawable;->refreshPadding()V -HSPLandroid/graphics/drawable/LayerDrawable;->resolveGravity(IIIII)I -HSPLandroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V -HSPLandroid/graphics/drawable/LayerDrawable;->setAlpha(I)V -HSPLandroid/graphics/drawable/LayerDrawable;->setAutoMirrored(Z)V -HSPLandroid/graphics/drawable/LayerDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/LayerDrawable;->setDither(Z)V -HSPLandroid/graphics/drawable/LayerDrawable;->setDrawable(ILandroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/LayerDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z -HSPLandroid/graphics/drawable/LayerDrawable;->setHotspot(FF)V -HSPLandroid/graphics/drawable/LayerDrawable;->setId(II)V -HSPLandroid/graphics/drawable/LayerDrawable;->setLayerInset(IIIII)V -HSPLandroid/graphics/drawable/LayerDrawable;->setPaddingMode(I)V -HSPLandroid/graphics/drawable/LayerDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/LayerDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/LayerDrawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V -HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V+]Landroid/graphics/drawable/LayerDrawable;Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;)V -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Landroid/graphics/Rect;Ljava/lang/String;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/NinePatchDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/NinePatchDrawable;->computeBitmapSize()V -HSPLandroid/graphics/drawable/NinePatchDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->getAlpha()I -HSPLandroid/graphics/drawable/NinePatchDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/NinePatchDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets; -HSPLandroid/graphics/drawable/NinePatchDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/NinePatchDrawable;->getPaint()Landroid/graphics/Paint; -HSPLandroid/graphics/drawable/NinePatchDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->isAutoMirrored()Z -HSPLandroid/graphics/drawable/NinePatchDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/NinePatchDrawable;->lambda$updateStateFromTypedArray$0(Landroid/graphics/Rect;Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/NinePatchDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/NinePatchDrawable;->setAlpha(I)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->setAutoMirrored(Z)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->setDither(Z)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/NinePatchDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$2;-><init>(Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/animation/RenderNodeAnimator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$2;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$3;-><init>(Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$3;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;ILandroid/graphics/drawable/RippleShader;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getColor()I -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getMaxRadius()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getNoisePhase()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getPaint()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getProgress()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getShader()Landroid/graphics/drawable/RippleShader; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getX()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimationProperties;->getY()Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;-><init>(Landroid/graphics/drawable/RippleAnimationSession;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationCancel(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession$AnimatorListener;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fgetmCurrentAnimation(Landroid/graphics/drawable/RippleAnimationSession;)Landroid/animation/Animator; -HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fgetmLoopAnimation(Landroid/graphics/drawable/RippleAnimationSession;)Landroid/animation/Animator; -HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fgetmOnSessionEnd(Landroid/graphics/drawable/RippleAnimationSession;)Ljava/util/function/Consumer; -HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fputmCurrentAnimation(Landroid/graphics/drawable/RippleAnimationSession;Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$fputmLoopAnimation(Landroid/graphics/drawable/RippleAnimationSession;Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->-$$Nest$monAnimationEnd(Landroid/graphics/drawable/RippleAnimationSession;Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;-><clinit>()V -HSPLandroid/graphics/drawable/RippleAnimationSession;-><init>(Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Z)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->computeDelay()J -HSPLandroid/graphics/drawable/RippleAnimationSession;->end()V -HSPLandroid/graphics/drawable/RippleAnimationSession;->enter(Landroid/graphics/Canvas;)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->enterHardware(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->exit(Landroid/graphics/Canvas;)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->exitHardware(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->getCanvasProperties()Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; -HSPLandroid/graphics/drawable/RippleAnimationSession;->getProperties()Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; -HSPLandroid/graphics/drawable/RippleAnimationSession;->notifyUpdate()V -HSPLandroid/graphics/drawable/RippleAnimationSession;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->setForceSoftwareAnimation(Z)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnAnimationUpdated(Ljava/lang/Runnable;)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->setOnSessionEnd(Ljava/util/function/Consumer;)Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleAnimationSession;->startAnimation(Landroid/animation/Animator;Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleAnimationSession;->useRTAnimations(Landroid/graphics/Canvas;)Z -HSPLandroid/graphics/drawable/RippleComponent;->onBoundsChange()V -HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda0;-><init>(Landroid/graphics/drawable/RippleDrawable;)V -HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V -HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda1;-><init>(Landroid/graphics/drawable/RippleDrawable;)V -HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda1;->run()V -HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda2;-><init>(Landroid/graphics/drawable/RippleDrawable;)V -HSPLandroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda2;->accept(Ljava/lang/Object;)V -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/RippleDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->applyDensityScaling(II)V -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->onDensityChanged(II)V -HSPLandroid/graphics/drawable/RippleDrawable;-><init>()V -HSPLandroid/graphics/drawable/RippleDrawable;-><init>(Landroid/content/res/ColorStateList;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/RippleDrawable;-><init>(Landroid/graphics/drawable/RippleDrawable$RippleState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/RippleDrawable;-><init>(Landroid/graphics/drawable/RippleDrawable$RippleState;Landroid/content/res/Resources;Landroid/graphics/drawable/RippleDrawable-IA;)V -HSPLandroid/graphics/drawable/RippleDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/RippleDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/RippleDrawable;->cancelExitingRipples()V -HSPLandroid/graphics/drawable/RippleDrawable;->clearHotspots()V -HSPLandroid/graphics/drawable/RippleDrawable;->computeRadius()F -HSPLandroid/graphics/drawable/RippleDrawable;->createAnimationProperties(FFFFFF)Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; -HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState; -HSPLandroid/graphics/drawable/RippleDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/RippleDrawable$RippleState; -HSPLandroid/graphics/drawable/RippleDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/RippleDrawable;->drawBackgroundAndRipples(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/RippleDrawable;->drawContent(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/RippleDrawable;->drawPatterned(Landroid/graphics/Canvas;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/drawable/RippleAnimationSession;Landroid/graphics/drawable/RippleAnimationSession; -HSPLandroid/graphics/drawable/RippleDrawable;->drawPatternedBackground(Landroid/graphics/Canvas;FF)V -HSPLandroid/graphics/drawable/RippleDrawable;->exitPatternedAnimation()V -HSPLandroid/graphics/drawable/RippleDrawable;->exitPatternedBackgroundAnimation()V -HSPLandroid/graphics/drawable/RippleDrawable;->getComputedRadius()I -HSPLandroid/graphics/drawable/RippleDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/RippleDrawable;->getDirtyBounds()Landroid/graphics/Rect;+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; -HSPLandroid/graphics/drawable/RippleDrawable;->getMaskType()I -HSPLandroid/graphics/drawable/RippleDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/RippleDrawable;->getOutline(Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/StateListDrawable; -HSPLandroid/graphics/drawable/RippleDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/RippleDrawable;->invalidateSelf()V -HSPLandroid/graphics/drawable/RippleDrawable;->invalidateSelf(Z)V -HSPLandroid/graphics/drawable/RippleDrawable;->isBounded()Z -HSPLandroid/graphics/drawable/RippleDrawable;->isProjected()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/drawable/RippleDrawable; -HSPLandroid/graphics/drawable/RippleDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/RippleDrawable;->jumpToCurrentState()V -HSPLandroid/graphics/drawable/RippleDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/RippleDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/RippleDrawable;->onHotspotBoundsChanged()V -HSPLandroid/graphics/drawable/RippleDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/RippleDrawable;->pruneRipples()V -HSPLandroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZZ)V -HSPLandroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/RippleDrawable;->setHotspot(FF)V -HSPLandroid/graphics/drawable/RippleDrawable;->setHotspotBounds(IIII)V -HSPLandroid/graphics/drawable/RippleDrawable;->setPaddingMode(I)V -HSPLandroid/graphics/drawable/RippleDrawable;->setRippleActive(Z)V -HSPLandroid/graphics/drawable/RippleDrawable;->setVisible(ZZ)Z -HSPLandroid/graphics/drawable/RippleDrawable;->startBackgroundAnimation()V -HSPLandroid/graphics/drawable/RippleDrawable;->tryRippleEnter()V -HSPLandroid/graphics/drawable/RippleDrawable;->updateLocalState()V -HSPLandroid/graphics/drawable/RippleDrawable;->updateMaskShaderIfNeeded()V -HSPLandroid/graphics/drawable/RippleDrawable;->updateRipplePaint()Landroid/graphics/Paint; -HSPLandroid/graphics/drawable/RippleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/RippleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/RippleForeground$1;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/graphics/drawable/RippleForeground$2;->get(Landroid/graphics/drawable/RippleForeground;)Ljava/lang/Float; -HSPLandroid/graphics/drawable/RippleForeground$2;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleForeground$2;->setValue(Landroid/graphics/drawable/RippleForeground;F)V -HSPLandroid/graphics/drawable/RippleForeground$2;->setValue(Ljava/lang/Object;F)V -HSPLandroid/graphics/drawable/RippleForeground$3;->get(Landroid/graphics/drawable/RippleForeground;)Ljava/lang/Float; -HSPLandroid/graphics/drawable/RippleForeground$3;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleForeground$3;->setValue(Landroid/graphics/drawable/RippleForeground;F)V -HSPLandroid/graphics/drawable/RippleForeground$3;->setValue(Ljava/lang/Object;F)V -HSPLandroid/graphics/drawable/RippleForeground$4;->get(Landroid/graphics/drawable/RippleForeground;)Ljava/lang/Float; -HSPLandroid/graphics/drawable/RippleForeground$4;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/graphics/drawable/RippleForeground$4;->setValue(Landroid/graphics/drawable/RippleForeground;F)V -HSPLandroid/graphics/drawable/RippleForeground$4;->setValue(Ljava/lang/Object;F)V -HSPLandroid/graphics/drawable/RippleForeground;-><init>(Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/Rect;FFZ)V -HSPLandroid/graphics/drawable/RippleForeground;->clampStartingPosition()V -HSPLandroid/graphics/drawable/RippleForeground;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V -HSPLandroid/graphics/drawable/RippleForeground;->drawSoftware(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V -HSPLandroid/graphics/drawable/RippleForeground;->end()V -HSPLandroid/graphics/drawable/RippleForeground;->getBounds(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/RippleForeground;->hasFinishedExit()Z -HSPLandroid/graphics/drawable/RippleForeground;->move(FF)V -HSPLandroid/graphics/drawable/RippleForeground;->onTargetRadiusChanged(F)V -HSPLandroid/graphics/drawable/RippleForeground;->pruneHwFinished()V -HSPLandroid/graphics/drawable/RippleForeground;->pruneSwFinished()V -HSPLandroid/graphics/drawable/RippleForeground;->startHardwareEnter()V -HSPLandroid/graphics/drawable/RippleForeground;->startHardwareExit()V -HSPLandroid/graphics/drawable/RippleForeground;->startPending(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/graphics/drawable/RippleForeground;->startSoftwareEnter()V -HSPLandroid/graphics/drawable/RippleForeground;->startSoftwareExit()V -HSPLandroid/graphics/drawable/RippleForeground;->switchToUiThreadAnimation()V -HSPLandroid/graphics/drawable/RippleShader;-><init>()V -HSPLandroid/graphics/drawable/RippleShader;->setColor(II)V -HSPLandroid/graphics/drawable/RippleShader;->setNoisePhase(F)V -HSPLandroid/graphics/drawable/RippleShader;->setOrigin(FF)V -HSPLandroid/graphics/drawable/RippleShader;->setProgress(F)V -HSPLandroid/graphics/drawable/RippleShader;->setRadius(F)V -HSPLandroid/graphics/drawable/RippleShader;->setResolution(FF)V -HSPLandroid/graphics/drawable/RippleShader;->setShader(Landroid/graphics/Shader;)V -HSPLandroid/graphics/drawable/RippleShader;->setTouch(FF)V -HSPLandroid/graphics/drawable/RotateDrawable$RotateState;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/RotateDrawable$RotateState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/RotateDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/RotateDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/RotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; -HSPLandroid/graphics/drawable/RotateDrawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/RotateDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/RotateDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;->-$$Nest$fputmThemeAttrs(Landroid/graphics/drawable/ScaleDrawable$ScaleState;[I)V -HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/ScaleDrawable;-><init>()V -HSPLandroid/graphics/drawable/ScaleDrawable;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/ScaleDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/ScaleDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/ScaleDrawable;->getPercent(Landroid/content/res/TypedArray;IF)F -HSPLandroid/graphics/drawable/ScaleDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/ScaleDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; -HSPLandroid/graphics/drawable/ScaleDrawable;->onBoundsChange(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/ScaleDrawable;Landroid/graphics/drawable/ScaleDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/StateListDrawable; -HSPLandroid/graphics/drawable/ScaleDrawable;->onLevelChange(I)Z -HSPLandroid/graphics/drawable/ScaleDrawable;->updateLocalState()V -HSPLandroid/graphics/drawable/ScaleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/ScaleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/ShapeDrawable$ShapeState;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;)V -HSPLandroid/graphics/drawable/ShapeDrawable;-><init>()V -HSPLandroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/shapes/Shape;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->getAlpha()I -HSPLandroid/graphics/drawable/ShapeDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/ShapeDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/ShapeDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/ShapeDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/ShapeDrawable;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->getPadding(Landroid/graphics/Rect;)Z -HSPLandroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint; -HSPLandroid/graphics/drawable/ShapeDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/ShapeDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/ShapeDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->onDraw(Landroid/graphics/drawable/shapes/Shape;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->setAlpha(I)V -HSPLandroid/graphics/drawable/ShapeDrawable;->setIntrinsicHeight(I)V -HSPLandroid/graphics/drawable/ShapeDrawable;->setIntrinsicWidth(I)V -HSPLandroid/graphics/drawable/ShapeDrawable;->setShape(Landroid/graphics/drawable/shapes/Shape;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/ShapeDrawable;->updateLocalState()V -HSPLandroid/graphics/drawable/ShapeDrawable;->updateShape()V -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/graphics/drawable/StateListDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;)I -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->indexOfStateSet([I)I -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->mutate()V -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/StateListDrawable;-><init>()V -HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;)V -HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;Landroid/graphics/drawable/StateListDrawable-IA;)V -HSPLandroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/StateListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/StateListDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/StateListDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState; -HSPLandroid/graphics/drawable/StateListDrawable;->cloneConstantState()Landroid/graphics/drawable/StateListDrawable$StateListState; -HSPLandroid/graphics/drawable/StateListDrawable;->extractStateSet(Landroid/util/AttributeSet;)[I -HSPLandroid/graphics/drawable/StateListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/StateListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/StateListDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/StateListDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/StateListDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/StateListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V -HSPLandroid/graphics/drawable/StateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/graphics/drawable/TransitionDrawable;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/TransitionDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V -HSPLandroid/graphics/drawable/TransitionDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState; -HSPLandroid/graphics/drawable/TransitionDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/TransitionDrawable;->setCrossFadeEnabled(Z)V -HSPLandroid/graphics/drawable/TransitionDrawable;->startTransition(I)V -HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z -HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativePtr()J -HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativeSize()I -HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->isStateful()Z -HSPLandroid/graphics/drawable/VectorDrawable$VClipPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>()V -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VFullPath;)V -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->canApplyTheme()Z -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->canComplexColorApplyTheme(Landroid/content/res/ComplexColor;)Z -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getFillColor()I -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getNativePtr()J -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getNativeSize()I -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getProperty(Ljava/lang/String;)Landroid/util/Property; -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/lang/String;)I -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->isStateful()Z -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/content/res/ComplexColor;Landroid/content/res/ColorStateList;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->-$$Nest$fgetmChangingConfigurations(Landroid/graphics/drawable/VectorDrawable$VGroup;)I -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->-$$Nest$fgetmNativePtr(Landroid/graphics/drawable/VectorDrawable$VGroup;)J -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>()V -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>(Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/drawable/VectorDrawable$VObject;Landroid/graphics/drawable/VectorDrawable$VGroup;,Landroid/graphics/drawable/VectorDrawable$VFullPath; -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->canApplyTheme()Z -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getGroupName()Ljava/lang/String; -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getNativePtr()J -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getNativeSize()I -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getProperty(Ljava/lang/String;)Landroid/util/Property; -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->isStateful()Z -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V -HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V -HSPLandroid/graphics/drawable/VectorDrawable$VObject;-><init>()V -HSPLandroid/graphics/drawable/VectorDrawable$VObject;->isTreeValid()Z -HSPLandroid/graphics/drawable/VectorDrawable$VObject;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V -HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>()V -HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VPath;)V -HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getPathName()Ljava/lang/String; -HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getProperty(Ljava/lang/String;)Landroid/util/Property; -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->-$$Nest$mcreateNativeTree(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyDensityScaling(II)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->canApplyTheme()Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->canReuseCache()Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->createNativeTree(Landroid/graphics/drawable/VectorDrawable$VGroup;)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->createNativeTreeFromCopy(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->finalize()V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getNativeRenderer()J -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->isStateful()Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onTreeConstructionFinished()V+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup; -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setAlpha(F)Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setDensity(I)Z -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setViewportSize(FF)V -HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->updateCacheStates()V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnAddChild(JJ)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateFullPath()J -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateFullPath(J)J -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateGroup()J -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateGroup(J)J -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateTree(J)J -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnCreateTreeFromCopy(JJ)J -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnGetFullPathProperties(J[BI)Z -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnGetGroupProperties(J[FI)Z -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnGetRootAlpha(J)F -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetName(JLjava/lang/String;)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetPathString(JLjava/lang/String;I)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetRendererViewportSize(JFF)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnSetRootAlpha(JF)Z -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateFullPathFillGradient(JJ)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateFullPathProperties(JFIFIFFFFFIII)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateFullPathStrokeGradient(JJ)V -HSPLandroid/graphics/drawable/VectorDrawable;->-$$Nest$smnUpdateGroupProperties(JFFFFFFF)V -HSPLandroid/graphics/drawable/VectorDrawable;-><init>()V -HSPLandroid/graphics/drawable/VectorDrawable;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/VectorDrawable;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/content/res/Resources;Landroid/graphics/drawable/VectorDrawable-IA;)V -HSPLandroid/graphics/drawable/VectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/graphics/drawable/VectorDrawable;->canApplyTheme()Z -HSPLandroid/graphics/drawable/VectorDrawable;->clearMutated()V -HSPLandroid/graphics/drawable/VectorDrawable;->computeVectorSize()V -HSPLandroid/graphics/drawable/VectorDrawable;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/graphics/drawable/VectorDrawable;->getAlpha()I -HSPLandroid/graphics/drawable/VectorDrawable;->getChangingConfigurations()I -HSPLandroid/graphics/drawable/VectorDrawable;->getColorFilter()Landroid/graphics/ColorFilter; -HSPLandroid/graphics/drawable/VectorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState; -HSPLandroid/graphics/drawable/VectorDrawable;->getIntrinsicHeight()I -HSPLandroid/graphics/drawable/VectorDrawable;->getIntrinsicWidth()I -HSPLandroid/graphics/drawable/VectorDrawable;->getNativeTree()J -HSPLandroid/graphics/drawable/VectorDrawable;->getOpacity()I -HSPLandroid/graphics/drawable/VectorDrawable;->getPixelSize()F -HSPLandroid/graphics/drawable/VectorDrawable;->getTargetByName(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/graphics/drawable/VectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime;]Lcom/android/internal/util/VirtualRefBasePtr;Lcom/android/internal/util/VirtualRefBasePtr;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup; -HSPLandroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Ljava/lang/Object;Ljava/lang/String;]Ljava/util/Stack;Ljava/util/Stack;]Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/graphics/drawable/VectorDrawable$VGroup;]Landroid/graphics/drawable/VectorDrawable$VFullPath;Landroid/graphics/drawable/VectorDrawable$VFullPath; -HSPLandroid/graphics/drawable/VectorDrawable;->isAutoMirrored()Z -HSPLandroid/graphics/drawable/VectorDrawable;->isStateful()Z -HSPLandroid/graphics/drawable/VectorDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLandroid/graphics/drawable/VectorDrawable;->needMirroring()Z -HSPLandroid/graphics/drawable/VectorDrawable;->onStateChange([I)Z -HSPLandroid/graphics/drawable/VectorDrawable;->setAllowCaching(Z)V -HSPLandroid/graphics/drawable/VectorDrawable;->setAlpha(I)V -HSPLandroid/graphics/drawable/VectorDrawable;->setAutoMirrored(Z)V -HSPLandroid/graphics/drawable/VectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/graphics/drawable/VectorDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/graphics/drawable/VectorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/VectorDrawable;->updateColorFilters(Landroid/graphics/BlendMode;Landroid/content/res/ColorStateList;)V -HSPLandroid/graphics/drawable/VectorDrawable;->updateLocalState(Landroid/content/res/Resources;)V -HSPLandroid/graphics/drawable/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V+]Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/graphics/drawable/shapes/OvalShape;-><init>()V -HSPLandroid/graphics/drawable/shapes/OvalShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V -HSPLandroid/graphics/drawable/shapes/OvalShape;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/shapes/PathShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V -HSPLandroid/graphics/drawable/shapes/RectShape;-><init>()V -HSPLandroid/graphics/drawable/shapes/RectShape;->onResize(FF)V -HSPLandroid/graphics/drawable/shapes/RectShape;->rect()Landroid/graphics/RectF; -HSPLandroid/graphics/drawable/shapes/RoundRectShape;-><init>([FLandroid/graphics/RectF;[F)V -HSPLandroid/graphics/drawable/shapes/RoundRectShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V -HSPLandroid/graphics/drawable/shapes/RoundRectShape;->getOutline(Landroid/graphics/Outline;)V -HSPLandroid/graphics/drawable/shapes/RoundRectShape;->onResize(FF)V -HSPLandroid/graphics/drawable/shapes/Shape;-><init>()V -HSPLandroid/graphics/drawable/shapes/Shape;->resize(FF)V -HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)V -HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/os/ParcelFileDescriptor;JJ)V -HSPLandroid/graphics/fonts/Font$Builder;-><init>(Ljava/nio/ByteBuffer;)V -HSPLandroid/graphics/fonts/Font$Builder;-><init>(Ljava/nio/ByteBuffer;Ljava/io/File;Ljava/lang/String;)V -HSPLandroid/graphics/fonts/Font$Builder;->build()Landroid/graphics/fonts/Font; -HSPLandroid/graphics/fonts/Font$Builder;->createBuffer(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)Ljava/nio/ByteBuffer; -HSPLandroid/graphics/fonts/Font$Builder;->setFontVariationSettings(Ljava/lang/String;)Landroid/graphics/fonts/Font$Builder; -HSPLandroid/graphics/fonts/Font$Builder;->setFontVariationSettings([Landroid/graphics/fonts/FontVariationAxis;)Landroid/graphics/fonts/Font$Builder; -HSPLandroid/graphics/fonts/Font$Builder;->setSlant(I)Landroid/graphics/fonts/Font$Builder; -HSPLandroid/graphics/fonts/Font$Builder;->setTtcIndex(I)Landroid/graphics/fonts/Font$Builder; -HSPLandroid/graphics/fonts/Font$Builder;->setWeight(I)Landroid/graphics/fonts/Font$Builder; -HSPLandroid/graphics/fonts/Font;-><init>(J)V -HSPLandroid/graphics/fonts/Font;->getAxes()[Landroid/graphics/fonts/FontVariationAxis; -HSPLandroid/graphics/fonts/Font;->getNativePtr()J -HSPLandroid/graphics/fonts/Font;->getStyle()Landroid/graphics/fonts/FontStyle; -HSPLandroid/graphics/fonts/FontFamily$Builder;-><init>(Landroid/graphics/fonts/Font;)V -HSPLandroid/graphics/fonts/FontFamily$Builder;->build()Landroid/graphics/fonts/FontFamily; -HSPLandroid/graphics/fonts/FontFamily$Builder;->makeStyleIdentifier(Landroid/graphics/fonts/Font;)I -HSPLandroid/graphics/fonts/FontFamily;-><init>(J)V -HSPLandroid/graphics/fonts/FontFamily;->getFont(I)Landroid/graphics/fonts/Font; -HSPLandroid/graphics/fonts/FontFamily;->getNativePtr()J -HSPLandroid/graphics/fonts/FontFamily;->getSize()I -HSPLandroid/graphics/fonts/FontFileUtil;->analyzeStyle(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;)I -HSPLandroid/graphics/fonts/FontStyle;-><init>(II)V -HSPLandroid/graphics/fonts/FontStyle;->getSlant()I -HSPLandroid/graphics/fonts/FontStyle;->getWeight()I -HSPLandroid/graphics/fonts/FontVariationAxis;-><init>(Ljava/lang/String;F)V -HSPLandroid/graphics/fonts/FontVariationAxis;->fromFontVariationSettings(Ljava/lang/String;)[Landroid/graphics/fonts/FontVariationAxis; -HSPLandroid/graphics/fonts/FontVariationAxis;->isValidTag(Ljava/lang/String;)Z -HSPLandroid/graphics/fonts/FontVariationAxis;->makeTag(Ljava/lang/String;)I -HSPLandroid/graphics/fonts/SystemFonts;->mmap(Ljava/lang/String;)Ljava/nio/ByteBuffer; -HSPLandroid/graphics/text/LineBreakConfig$Builder;-><init>()V -HSPLandroid/graphics/text/LineBreakConfig$Builder;->build()Landroid/graphics/text/LineBreakConfig; -HSPLandroid/graphics/text/LineBreakConfig$Builder;->setLineBreakStyle(I)Landroid/graphics/text/LineBreakConfig$Builder; -HSPLandroid/graphics/text/LineBreakConfig$Builder;->setLineBreakWordStyle(I)Landroid/graphics/text/LineBreakConfig$Builder; -HSPLandroid/graphics/text/LineBreakConfig;-><clinit>()V -HSPLandroid/graphics/text/LineBreakConfig;->getLineBreakConfig(II)Landroid/graphics/text/LineBreakConfig; -HSPLandroid/graphics/text/LineBreakConfig;->getLineBreakStyle()I -HSPLandroid/graphics/text/LineBreakConfig;->getLineBreakWordStyle()I -HSPLandroid/graphics/text/LineBreaker$Builder;-><init>()V -HSPLandroid/graphics/text/LineBreaker$Builder;->build()Landroid/graphics/text/LineBreaker; -HSPLandroid/graphics/text/LineBreaker$Builder;->setBreakStrategy(I)Landroid/graphics/text/LineBreaker$Builder; -HSPLandroid/graphics/text/LineBreaker$Builder;->setHyphenationFrequency(I)Landroid/graphics/text/LineBreaker$Builder; -HSPLandroid/graphics/text/LineBreaker$Builder;->setIndents([I)Landroid/graphics/text/LineBreaker$Builder; -HSPLandroid/graphics/text/LineBreaker$Builder;->setJustificationMode(I)Landroid/graphics/text/LineBreaker$Builder; -HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;-><init>()V -HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setIndent(FI)V -HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setTabStops([FF)V -HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setWidth(F)V -HSPLandroid/graphics/text/LineBreaker$Result;-><init>(J)V -HSPLandroid/graphics/text/LineBreaker$Result;->getEndLineHyphenEdit(I)I -HSPLandroid/graphics/text/LineBreaker$Result;->getLineAscent(I)F -HSPLandroid/graphics/text/LineBreaker$Result;->getLineBreakOffset(I)I -HSPLandroid/graphics/text/LineBreaker$Result;->getLineCount()I -HSPLandroid/graphics/text/LineBreaker$Result;->getLineDescent(I)F -HSPLandroid/graphics/text/LineBreaker$Result;->getLineWidth(I)F -HSPLandroid/graphics/text/LineBreaker$Result;->getStartLineHyphenEdit(I)I -HSPLandroid/graphics/text/LineBreaker$Result;->hasLineTab(I)Z -HSPLandroid/graphics/text/LineBreaker;->computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result; -HSPLandroid/graphics/text/MeasuredText$Builder;-><init>([C)V -HSPLandroid/graphics/text/MeasuredText$Builder;->appendReplacementRun(Landroid/graphics/Paint;IF)Landroid/graphics/text/MeasuredText$Builder; -HSPLandroid/graphics/text/MeasuredText$Builder;->appendStyleRun(Landroid/graphics/Paint;IZ)Landroid/graphics/text/MeasuredText$Builder; -HSPLandroid/graphics/text/MeasuredText$Builder;->appendStyleRun(Landroid/graphics/Paint;Landroid/graphics/text/LineBreakConfig;IZ)Landroid/graphics/text/MeasuredText$Builder; -HSPLandroid/graphics/text/MeasuredText$Builder;->build()Landroid/graphics/text/MeasuredText; -HSPLandroid/graphics/text/MeasuredText$Builder;->ensureNativePtrNoReuse()V -HSPLandroid/graphics/text/MeasuredText$Builder;->setComputeHyphenation(I)Landroid/graphics/text/MeasuredText$Builder; -HSPLandroid/graphics/text/MeasuredText$Builder;->setComputeHyphenation(Z)Landroid/graphics/text/MeasuredText$Builder; -HSPLandroid/graphics/text/MeasuredText$Builder;->setComputeLayout(Z)Landroid/graphics/text/MeasuredText$Builder; -HSPLandroid/graphics/text/MeasuredText;->getCharWidthAt(I)F -HSPLandroid/graphics/text/MeasuredText;->getChars()[C -HSPLandroid/graphics/text/MeasuredText;->getNativePtr()J -HSPLandroid/hardware/Camera$CameraInfo;-><init>()V -HSPLandroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V -HSPLandroid/hardware/CameraStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/CameraStatus; -HSPLandroid/hardware/CameraStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Landroid/hardware/CameraStatus; -HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/hardware/GeomagneticField$LegendreTable;-><init>(IF)V -HSPLandroid/hardware/GeomagneticField;-><init>(FFFJ)V -HSPLandroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V -HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/HardwareBuffer; -HSPLandroid/hardware/HardwareBuffer$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/HardwareBuffer;-><init>(J)V -HSPLandroid/hardware/HardwareBuffer;->close()V -HSPLandroid/hardware/HardwareBuffer;->finalize()V -HSPLandroid/hardware/HardwareBuffer;->getFormat()I -HSPLandroid/hardware/HardwareBuffer;->getUsage()J -HSPLandroid/hardware/HardwareBuffer;->isClosed()Z -HSPLandroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/hardware/ICameraService$Stub$Proxy;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus; -HSPLandroid/hardware/ICameraService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/lang/String;IZ)Landroid/hardware/camera2/impl/CameraMetadataNative; -HSPLandroid/hardware/ICameraService$Stub$Proxy;->getConcurrentCameraIds()[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; -HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService; -HSPLandroid/hardware/ICameraServiceListener$Stub;->getMaxTransactionId()I -HSPLandroid/hardware/ICameraServiceListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/OverlayProperties$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/OverlayProperties; -HSPLandroid/hardware/OverlayProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/OverlayProperties;->-$$Nest$smnReadOverlayPropertiesFromParcel(Landroid/os/Parcel;)J -HSPLandroid/hardware/OverlayProperties;-><init>(J)V -HSPLandroid/hardware/Sensor;-><init>()V -HSPLandroid/hardware/Sensor;->getHandle()I -HSPLandroid/hardware/Sensor;->getMaxLengthValuesArray(Landroid/hardware/Sensor;I)I -HSPLandroid/hardware/Sensor;->getMaximumRange()F -HSPLandroid/hardware/Sensor;->getName()Ljava/lang/String; -HSPLandroid/hardware/Sensor;->getReportingMode()I -HSPLandroid/hardware/Sensor;->getStringType()Ljava/lang/String; -HSPLandroid/hardware/Sensor;->getType()I -HSPLandroid/hardware/Sensor;->getVendor()Ljava/lang/String; -HSPLandroid/hardware/Sensor;->isWakeUpSensor()Z -HSPLandroid/hardware/Sensor;->setId(I)V -HSPLandroid/hardware/Sensor;->setType(I)Z -HSPLandroid/hardware/Sensor;->setUuid(JJ)V -HSPLandroid/hardware/SensorEvent;-><init>(I)V -HSPLandroid/hardware/SensorManager;-><init>()V -HSPLandroid/hardware/SensorManager;->cancelTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z -HSPLandroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor; -HSPLandroid/hardware/SensorManager;->getDelay(I)I -HSPLandroid/hardware/SensorManager;->getSensorList(I)Ljava/util/List; -HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z -HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;IILandroid/os/Handler;)Z -HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;)Z -HSPLandroid/hardware/SensorManager;->requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z -HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V -HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SensorPrivacyManager;->isSensorPrivacyEnabled(II)Z -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;ILjava/lang/String;)V -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->addSensor(Landroid/hardware/Sensor;II)Z -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->disableSensor(Landroid/hardware/Sensor;)I -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->dispose()V -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->dispose(Z)V -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->enableSensor(Landroid/hardware/Sensor;II)I -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->finalize()V -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->hasSensors()Z -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeAllSensors()Z -HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/hardware/Sensor;Z)Z -HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;-><init>(Landroid/hardware/SensorEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V -HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V -HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchSensorEvent(I[FIJ)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/hardware/Sensor;Landroid/hardware/Sensor;]Landroid/util/SparseArray;Landroid/util/SparseArray; -HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->dispatchSensorEvent(I[FIJ)V -HSPLandroid/hardware/SystemSensorManager$TriggerEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V -HSPLandroid/hardware/SystemSensorManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V -HSPLandroid/hardware/SystemSensorManager;->cancelTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z -HSPLandroid/hardware/SystemSensorManager;->getFullSensorList()Ljava/util/List; -HSPLandroid/hardware/SystemSensorManager;->getSensorList(I)Ljava/util/List; -HSPLandroid/hardware/SystemSensorManager;->isDeviceSensorPolicyDefault(I)Z -HSPLandroid/hardware/SystemSensorManager;->registerListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z -HSPLandroid/hardware/SystemSensorManager;->requestTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z -HSPLandroid/hardware/SystemSensorManager;->unregisterListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V -HSPLandroid/hardware/TriggerEventListener;-><init>()V -HSPLandroid/hardware/biometrics/BiometricManager;-><init>(Landroid/content/Context;Landroid/hardware/biometrics/IAuthService;)V -HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate()I -HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(I)I -HSPLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(II)I -HSPLandroid/hardware/biometrics/BiometricSourceType;->values()[Landroid/hardware/biometrics/BiometricSourceType; -HSPLandroid/hardware/biometrics/BiometricSourceType;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/hardware/biometrics/IAuthService$Stub$Proxy;->canAuthenticate(Ljava/lang/String;II)I -HSPLandroid/hardware/biometrics/IAuthService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IAuthService; -HSPLandroid/hardware/biometrics/SensorPropertiesInternal$1;-><init>()V -HSPLandroid/hardware/biometrics/SensorPropertiesInternal;-><clinit>()V -HSPLandroid/hardware/camera2/CameraCharacteristics$1;->onDeviceStateChanged(Z)V -HSPLandroid/hardware/camera2/CameraCharacteristics$Key;->equals(Ljava/lang/Object;)Z -HSPLandroid/hardware/camera2/CameraCharacteristics$Key;->getNativeKey()Landroid/hardware/camera2/impl/CameraMetadataNative$Key; -HSPLandroid/hardware/camera2/CameraCharacteristics;->-$$Nest$fgetmLock(Landroid/hardware/camera2/CameraCharacteristics;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/CameraCharacteristics;->-$$Nest$fputmFoldedDeviceState(Landroid/hardware/camera2/CameraCharacteristics;Z)V -HSPLandroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/CameraCharacteristics;->getDeviceStateListener()Landroid/hardware/camera2/CameraManager$DeviceStateListener; -HSPLandroid/hardware/camera2/CameraCharacteristics;->overrideProperty(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;-><init>()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$3;-><init>(Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;Landroid/hardware/camera2/CameraManager$AvailabilityCallback;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->cameraIdHasConcurrentStreamsLocked(Ljava/lang/String;)Z -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->extractCameraIdListLocked()[Ljava/lang/String; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->get()Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService; -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChanged(ILjava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V -HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleAccessPriorityChangeUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->addDeviceStateListener(Landroid/hardware/camera2/CameraManager$DeviceStateListener;)V -HSPLandroid/hardware/camera2/CameraManager$FoldStateListener;->handleStateChange(I)V -HSPLandroid/hardware/camera2/CameraManager;-><init>(Landroid/content/Context;)V -HSPLandroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics; -HSPLandroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String; -HSPLandroid/hardware/camera2/CameraManager;->getDisplaySize()Landroid/util/Size; -HSPLandroid/hardware/camera2/CameraManager;->getPhysicalCameraMultiResolutionConfigs(Ljava/lang/String;Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/ICameraService;)Ljava/util/Map; -HSPLandroid/hardware/camera2/CameraManager;->registerDeviceStateListener(Landroid/hardware/camera2/CameraCharacteristics;)V -HSPLandroid/hardware/camera2/CameraManager;->shouldOverrideToPortrait(Landroid/content/Context;)Z -HSPLandroid/hardware/camera2/CameraMetadata;-><init>()V -HSPLandroid/hardware/camera2/CameraMetadata;->setNativeInstance(Landroid/hardware/camera2/impl/CameraMetadataNative;)V -HSPLandroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;->execute(Ljava/lang/Runnable;)V -HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkAndWrapHandler(Landroid/os/Handler;)Ljava/util/concurrent/Executor; -HSPLandroid/hardware/camera2/impl/CameraDeviceImpl;->checkHandler(Landroid/os/Handler;)Landroid/os/Handler; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/camera2/impl/CameraMetadataNative; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->equals(Ljava/lang/Object;)Z -HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->hashCode()I -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;-><init>()V -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->finalize()V -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->move(Landroid/hardware/camera2/impl/CameraMetadataNative;)Landroid/hardware/camera2/impl/CameraMetadataNative; -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->readValues(I)[B -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setCameraId(I)V -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setDisplaySize(Landroid/util/Size;)V -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setHasMandatoryConcurrentStreams(Z)V -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDescriptor()V -HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->updateNativeAllocation()V -HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->checkNativeType(I)I -HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->wrapClassIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class; -HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;->equals(Ljava/lang/Object;)Z -HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;->hashCode()I -HSPLandroid/hardware/camera2/marshal/MarshalRegistry;->getMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler; -HSPLandroid/hardware/camera2/marshal/Marshaler;-><init>(Landroid/hardware/camera2/marshal/MarshalQueryable;Landroid/hardware/camera2/utils/TypeReference;I)V -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Boolean; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableEnum;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->getNativeSize()I -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Integer; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->unmarshalObject(Ljava/nio/ByteBuffer;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler; -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableRange;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableRect;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSizeF;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableString;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->newArray(I)[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;-><init>(Landroid/os/Parcel;Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination-IA;)V -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;->getConcurrentCameraIdCombination()Ljava/util/Set; -HSPLandroid/hardware/camera2/utils/ConcurrentCameraIdCombination;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/hardware/camera2/utils/TypeReference;->containsTypeVariable(Ljava/lang/reflect/Type;)Z -HSPLandroid/hardware/camera2/utils/TypeReference;->equals(Ljava/lang/Object;)Z -HSPLandroid/hardware/camera2/utils/TypeReference;->getComponentType()Landroid/hardware/camera2/utils/TypeReference; -HSPLandroid/hardware/camera2/utils/TypeReference;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; -HSPLandroid/hardware/camera2/utils/TypeReference;->getRawType()Ljava/lang/Class; -HSPLandroid/hardware/camera2/utils/TypeReference;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class; -HSPLandroid/hardware/camera2/utils/TypeReference;->getType()Ljava/lang/reflect/Type; -HSPLandroid/hardware/camera2/utils/TypeReference;->hashCode()I -HSPLandroid/hardware/devicestate/DeviceStateInfo$1;-><init>()V -HSPLandroid/hardware/devicestate/DeviceStateInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/devicestate/DeviceStateInfo; -HSPLandroid/hardware/devicestate/DeviceStateInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/devicestate/DeviceStateInfo;-><clinit>()V -HSPLandroid/hardware/devicestate/DeviceStateManager;-><init>()V -HSPLandroid/hardware/devicestate/DeviceStateManager;->registerCallback(Ljava/util/concurrent/Executor;Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda0;->run()V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda1;->run()V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2;->run()V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper;-><init>(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;-><init>(Landroid/hardware/devicestate/DeviceStateManagerGlobal;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;-><init>(Landroid/hardware/devicestate/DeviceStateManagerGlobal;Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback-IA;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback;->onDeviceStateInfoChanged(Landroid/hardware/devicestate/DeviceStateInfo;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->-$$Nest$mhandleDeviceStateInfoChanged(Landroid/hardware/devicestate/DeviceStateManagerGlobal;Landroid/hardware/devicestate/DeviceStateInfo;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;-><init>(Landroid/hardware/devicestate/IDeviceStateManager;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->findCallbackLocked(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;)I -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->getInstance()Landroid/hardware/devicestate/DeviceStateManagerGlobal; -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->handleDeviceStateInfoChanged(Landroid/hardware/devicestate/DeviceStateInfo;)V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->registerCallbackIfNeededLocked()V -HSPLandroid/hardware/devicestate/DeviceStateManagerGlobal;->registerDeviceStateCallback(Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy;->registerCallback(Landroid/hardware/devicestate/IDeviceStateManagerCallback;)V -HSPLandroid/hardware/devicestate/IDeviceStateManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/devicestate/IDeviceStateManager; -HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;-><init>()V -HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->getMaxTransactionId()I -HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/hardware/devicestate/IDeviceStateManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;-><init>(Landroid/content/Context;)V -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->accessibilityInversionEnabled(I)Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnAvailable()Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnEnabled(I)Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayAvailable()Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayComponent()Ljava/lang/String; -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSetting(Ljava/lang/String;II)Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSettingDefaultOn(Ljava/lang/String;I)Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->doubleTapSensorType()Ljava/lang/String; -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->dozePickupSensorAvailable()Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->enabled(I)Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationAvailable()Z -HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationEnabled(I)Z -HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getInstance()Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal; -HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->isNightDisplayActivated()Z -HSPLandroid/hardware/display/ColorDisplayManager;-><init>()V -HSPLandroid/hardware/display/ColorDisplayManager;->isDisplayWhiteBalanceAvailable(Landroid/content/Context;)Z -HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayActivated()Z -HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayAvailable(Landroid/content/Context;)Z -HSPLandroid/hardware/display/DeviceProductInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/DeviceProductInfo; -HSPLandroid/hardware/display/DeviceProductInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/DeviceProductInfo$ManufactureDate; -HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/display/DeviceProductInfo$ManufactureDate;->equals(Ljava/lang/Object;)Z -HSPLandroid/hardware/display/DeviceProductInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/display/DeviceProductInfo;-><init>(Landroid/os/Parcel;Landroid/hardware/display/DeviceProductInfo-IA;)V -HSPLandroid/hardware/display/DeviceProductInfo;->equals(Ljava/lang/Object;)Z -HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;-><init>()V -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;-><init>(Landroid/hardware/display/DisplayManager$WeakDisplayCache-IA;)V -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->get(I)Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->put(Landroid/view/Display;)V -HSPLandroid/hardware/display/DisplayManager$WeakDisplayCache;->removeStaleEntries()V -HSPLandroid/hardware/display/DisplayManager;-><init>(Landroid/content/Context;)V -HSPLandroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManager;->getDisplays()[Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManager;->getDisplays(Ljava/lang/String;)[Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManager;->getDisplays([ILjava/util/function/Predicate;)[Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplay(IZ)Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManager;->getStableDisplaySize()Landroid/graphics/Point; -HSPLandroid/hardware/display/DisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus; -HSPLandroid/hardware/display/DisplayManager;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V -HSPLandroid/hardware/display/DisplayManager;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;J)V -HSPLandroid/hardware/display/DisplayManager;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V -HSPLandroid/hardware/display/DisplayManagerGlobal$1;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILjava/lang/String;)V -HSPLandroid/hardware/display/DisplayManagerGlobal$1;->recompute(Ljava/lang/Integer;)Landroid/view/DisplayInfo; -HSPLandroid/hardware/display/DisplayManagerGlobal$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0;->run()V -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;-><init>(Landroid/hardware/display/DisplayManager$DisplayListener;Ljava/util/concurrent/Executor;JLjava/lang/String;)V -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->clearEvents()V -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->handleDisplayEventInner(IILandroid/view/DisplayInfo;Z)V+]Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;]Landroid/hardware/display/DisplayManager$DisplayListener;missing_types -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>(Landroid/hardware/display/DisplayManagerGlobal;)V -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>(Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback-IA;)V -HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->onDisplayEvent(II)V -HSPLandroid/hardware/display/DisplayManagerGlobal;->-$$Nest$fgetmDm(Landroid/hardware/display/DisplayManagerGlobal;)Landroid/hardware/display/IDisplayManager; -HSPLandroid/hardware/display/DisplayManagerGlobal;-><init>(Landroid/hardware/display/IDisplayManager;)V -HSPLandroid/hardware/display/DisplayManagerGlobal;->calculateEventsMaskLocked()I -HSPLandroid/hardware/display/DisplayManagerGlobal;->extraLogging()Z -HSPLandroid/hardware/display/DisplayManagerGlobal;->findDisplayListenerLocked(Landroid/hardware/display/DisplayManager$DisplayListener;)I -HSPLandroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandroid/content/res/Resources;)Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getCompatibleDisplay(ILandroid/view/DisplayAdjustments;)Landroid/view/Display; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayIds()[I -HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayIds(Z)[I -HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayInfo(I)Landroid/view/DisplayInfo; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayInfoLocked(I)Landroid/view/DisplayInfo;+]Landroid/app/PropertyInvalidatedCache;Landroid/hardware/display/DisplayManagerGlobal$1; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getInstance()Landroid/hardware/display/DisplayManagerGlobal; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getLooperForHandler(Landroid/os/Handler;)Landroid/os/Looper; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getPreferredWideGamutColorSpace()Landroid/graphics/ColorSpace; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getStableDisplaySize()Landroid/graphics/Point; -HSPLandroid/hardware/display/DisplayManagerGlobal;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus; -HSPLandroid/hardware/display/DisplayManagerGlobal;->initExtraLogging()Z -HSPLandroid/hardware/display/DisplayManagerGlobal;->maybeLogAllDisplayListeners()V -HSPLandroid/hardware/display/DisplayManagerGlobal;->registerCallbackIfNeededLocked()V -HSPLandroid/hardware/display/DisplayManagerGlobal;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Ljava/util/concurrent/Executor;JLjava/lang/String;)V+]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList; -HSPLandroid/hardware/display/DisplayManagerGlobal;->registerNativeChoreographerForRefreshRateCallbacks()V -HSPLandroid/hardware/display/DisplayManagerGlobal;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V -HSPLandroid/hardware/display/DisplayManagerGlobal;->updateCallbackIfNeededLocked()V -HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->equals(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z -HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->floatEquals(FF)Z -HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isBrightOrDim()Z -HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->isNightDisplayActivated()Z -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayIds(Z)[I -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayInfo(I)Landroid/view/DisplayInfo; -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getOverlaySupport()Landroid/hardware/OverlayProperties; -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getPreferredWideGamutColorSpaceId()I -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getStableDisplaySize()Landroid/graphics/Point; -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus; -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V -HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->registerCallbackWithEventMask(Landroid/hardware/display/IDisplayManagerCallback;J)V -HSPLandroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager; -HSPLandroid/hardware/display/IDisplayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;-><init>()V -HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->getMaxTransactionId()I -HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/display/WifiDisplay$1;->newArray(I)[Landroid/hardware/display/WifiDisplay; -HSPLandroid/hardware/display/WifiDisplay$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/hardware/display/WifiDisplaySessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplaySessionInfo; -HSPLandroid/hardware/display/WifiDisplaySessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/display/WifiDisplaySessionInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplayStatus; -HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/display/WifiDisplayStatus;-><init>(IIILandroid/hardware/display/WifiDisplay;[Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplaySessionInfo;)V -HSPLandroid/hardware/display/WifiDisplayStatus;->getActiveDisplay()Landroid/hardware/display/WifiDisplay; -HSPLandroid/hardware/display/WifiDisplayStatus;->getFeatureState()I -HSPLandroid/hardware/face/FaceManager;->getSensorPropertiesInternal()Ljava/util/List; -HSPLandroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V -HSPLandroid/hardware/fingerprint/FingerprintManager;->hasEnrolledFingerprints(I)Z -HSPLandroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z -HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetectedDeprecated(Ljava/lang/String;Ljava/lang/String;)Z -HSPLandroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService; -HSPLandroid/hardware/input/HostUsiVersion$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/input/HostUsiVersion; -HSPLandroid/hardware/input/HostUsiVersion$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/input/HostUsiVersion;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice; -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDeviceIds()[I -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getVelocityTrackerStrategy()Ljava/lang/String; -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->hasKeys(II[I[Z)Z -HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V -HSPLandroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager; -HSPLandroid/hardware/input/InputDeviceIdentifier;-><init>(Ljava/lang/String;II)V -HSPLandroid/hardware/input/InputManager;-><init>(Landroid/content/Context;)V -HSPLandroid/hardware/input/InputManager;->deviceHasKeys(I[I)[Z -HSPLandroid/hardware/input/InputManager;->getInputDevice(I)Landroid/view/InputDevice; -HSPLandroid/hardware/input/InputManager;->getInputDeviceIds()[I -HSPLandroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager; -HSPLandroid/hardware/input/InputManager;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V -HSPLandroid/hardware/input/InputManager;->unregisterInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;)V -HSPLandroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate;-><init>(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V -HSPLandroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManagerGlobal;)V -HSPLandroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener;-><init>(Landroid/hardware/input/InputManagerGlobal;Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener-IA;)V -HSPLandroid/hardware/input/InputManagerGlobal;-><init>(Landroid/hardware/input/IInputManager;)V -HSPLandroid/hardware/input/InputManagerGlobal;->getInputDevice(I)Landroid/view/InputDevice; -HSPLandroid/hardware/input/InputManagerGlobal;->getInputDeviceIds()[I -HSPLandroid/hardware/input/InputManagerGlobal;->getInputManagerService()Landroid/hardware/input/IInputManager; -HSPLandroid/hardware/input/InputManagerGlobal;->getInstance()Landroid/hardware/input/InputManagerGlobal; -HSPLandroid/hardware/input/InputManagerGlobal;->populateInputDevicesLocked()V -HSPLandroid/hardware/input/InputManagerGlobal;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V -HSPLandroid/hardware/input/InputSettings;->isStylusPointerIconEnabled(Landroid/content/Context;)Z -HSPLandroid/hardware/location/ContextHubClient;-><init>(Landroid/hardware/location/ContextHubInfo;Z)V -HSPLandroid/hardware/location/ContextHubClient;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I -HSPLandroid/hardware/location/ContextHubClient;->setClientProxy(Landroid/hardware/location/IContextHubClient;)V -HSPLandroid/hardware/location/ContextHubClientCallback;-><init>()V -HSPLandroid/hardware/location/ContextHubInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/ContextHubInfo; -HSPLandroid/hardware/location/ContextHubInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/location/ContextHubInfo;->getId()I -HSPLandroid/hardware/location/ContextHubInfo;->getMaxPacketLengthBytes()I -HSPLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/ContextHubClientCallback;)Landroid/hardware/location/ContextHubClient; -HSPLandroid/hardware/location/ContextHubManager;->createQueryCallback(Landroid/hardware/location/ContextHubTransaction;)Landroid/hardware/location/IContextHubTransactionCallback; -HSPLandroid/hardware/location/ContextHubManager;->getContextHubs()Ljava/util/List; -HSPLandroid/hardware/location/ContextHubManager;->queryNanoApps(Landroid/hardware/location/ContextHubInfo;)Landroid/hardware/location/ContextHubTransaction; -HSPLandroid/hardware/location/ContextHubTransaction$Response;-><init>(ILjava/lang/Object;)V -HSPLandroid/hardware/location/ContextHubTransaction$Response;->getContents()Ljava/lang/Object; -HSPLandroid/hardware/location/ContextHubTransaction;-><init>(I)V -HSPLandroid/hardware/location/ContextHubTransaction;->setResponse(Landroid/hardware/location/ContextHubTransaction$Response;)V -HSPLandroid/hardware/location/ContextHubTransaction;->waitForResponse(JLjava/util/concurrent/TimeUnit;)Landroid/hardware/location/ContextHubTransaction$Response; -HSPLandroid/hardware/location/IContextHubCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/location/IContextHubClient$Stub$Proxy;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I -HSPLandroid/hardware/location/IContextHubClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClient; -HSPLandroid/hardware/location/IContextHubClientCallback$Stub;-><init>()V -HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubs()Ljava/util/List; -HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V -HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I -HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;-><init>()V -HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/hardware/location/IGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardware; -HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Landroid/hardware/location/MemoryRegion; -HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppMessage; -HSPLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/location/NanoAppMessage;->createMessageToNanoApp(JI[B)Landroid/hardware/location/NanoAppMessage; -HSPLandroid/hardware/location/NanoAppMessage;->getMessageBody()[B -HSPLandroid/hardware/location/NanoAppMessage;->getMessageType()I -HSPLandroid/hardware/location/NanoAppMessage;->getNanoAppId()J -HSPLandroid/hardware/location/NanoAppMessage;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/hardware/location/NanoAppState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppState; -HSPLandroid/hardware/location/NanoAppState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/location/NanoAppState;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/hardware/location/NanoAppState;->getNanoAppId()J -HSPLandroid/hardware/security/keymint/KeyParameter$1;-><init>()V -HSPLandroid/hardware/security/keymint/KeyParameter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/security/keymint/KeyParameter; -HSPLandroid/hardware/security/keymint/KeyParameter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/security/keymint/KeyParameter$1;->newArray(I)[Landroid/hardware/security/keymint/KeyParameter; -HSPLandroid/hardware/security/keymint/KeyParameter$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/hardware/security/keymint/KeyParameter;-><clinit>()V -HSPLandroid/hardware/security/keymint/KeyParameter;-><init>()V -HSPLandroid/hardware/security/keymint/KeyParameter;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/hardware/security/keymint/KeyParameter;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/hardware/security/keymint/KeyParameterValue$1;-><init>()V -HSPLandroid/hardware/security/keymint/KeyParameterValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/hardware/security/keymint/KeyParameterValue;-><clinit>()V -HSPLandroid/hardware/security/keymint/KeyParameterValue;-><init>(ILjava/lang/Object;)V -HSPLandroid/hardware/security/keymint/KeyParameterValue;-><init>(Landroid/os/Parcel;)V -HSPLandroid/hardware/security/keymint/KeyParameterValue;-><init>(Landroid/os/Parcel;Landroid/hardware/security/keymint/KeyParameterValue-IA;)V -HSPLandroid/hardware/security/keymint/KeyParameterValue;->_assertTag(I)V -HSPLandroid/hardware/security/keymint/KeyParameterValue;->_set(ILjava/lang/Object;)V -HSPLandroid/hardware/security/keymint/KeyParameterValue;->algorithm(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->blob([B)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->blockMode(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getAlgorithm()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlob()[B -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getBlockMode()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getDigest()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getInteger()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getKeyPurpose()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getPaddingMode()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->getTag()I -HSPLandroid/hardware/security/keymint/KeyParameterValue;->integer(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->keyPurpose(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->paddingMode(I)Landroid/hardware/security/keymint/KeyParameterValue; -HSPLandroid/hardware/security/keymint/KeyParameterValue;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/hardware/security/keymint/KeyParameterValue;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/hardware/soundtrigger/KeyphraseMetadata;-><init>(ILjava/lang/String;Ljava/util/Set;I)V -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IIIIZIZIZI)V -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getAudioCapabilities()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getDescription()Ljava/lang/String; -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getId()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getImplementor()Ljava/lang/String; -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxBufferMillis()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxKeyphrases()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxSoundModels()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getMaxUsers()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getPowerConsumptionMw()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getRecognitionModes()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getSupportedModelArch()Ljava/lang/String; -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getUuid()Ljava/util/UUID; -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->getVersion()I -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->isCaptureTransitionSupported()Z -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->isConcurrentCaptureSupported()Z -HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->isTriggerReturnedInEvent()Z -HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;I[BI)V -HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getData()[B -HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getUuid()Ljava/util/UUID; -HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVendorUuid()Ljava/util/UUID; -HSPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->getVersion()I -HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V -HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager; -HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort; -HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V -HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap; -HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String; -HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V -HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z -HSPLandroid/icu/impl/BMPSet;-><init>([II)V -HSPLandroid/icu/impl/BMPSet;->contains(I)Z -HSPLandroid/icu/impl/BMPSet;->containsSlow(III)Z -HSPLandroid/icu/impl/BMPSet;->findCodePoint(III)I -HSPLandroid/icu/impl/BMPSet;->initBits()V -HSPLandroid/icu/impl/BMPSet;->set32x64Bits([III)V -HSPLandroid/icu/impl/CacheValue$NullValue;->isNull()Z -HSPLandroid/icu/impl/CacheValue$SoftValue;-><init>(Ljava/lang/Object;)V -HSPLandroid/icu/impl/CacheValue$SoftValue;->get()Ljava/lang/Object; -HSPLandroid/icu/impl/CacheValue$SoftValue;->resetIfCleared(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/CacheValue$StrongValue;->get()Ljava/lang/Object; -HSPLandroid/icu/impl/CacheValue;-><init>()V -HSPLandroid/icu/impl/CacheValue;->futureInstancesWillBeStrong()Z -HSPLandroid/icu/impl/CacheValue;->getInstance(Ljava/lang/Object;)Landroid/icu/impl/CacheValue; -HSPLandroid/icu/impl/CacheValue;->isNull()Z -HSPLandroid/icu/impl/CacheValue;->setStrength(Landroid/icu/impl/CacheValue$Strength;)V -HSPLandroid/icu/impl/CalType;->getId()Ljava/lang/String; -HSPLandroid/icu/impl/CalType;->values()[Landroid/icu/impl/CalType; -HSPLandroid/icu/impl/CalendarUtil$CalendarPreferences;->getCalendarTypeForRegion(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/CalendarUtil;->getCalendarType(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/impl/CaseMapImpl;->appendUnchanged(Ljava/lang/CharSequence;IILjava/lang/Appendable;ILandroid/icu/text/Edits;)V -HSPLandroid/icu/impl/CaseMapImpl;->applyEdits(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Landroid/icu/text/Edits;)Ljava/lang/String; -HSPLandroid/icu/impl/CaseMapImpl;->internalToUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)V -HSPLandroid/icu/impl/CaseMapImpl;->toUpper(IILjava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable; -HSPLandroid/icu/impl/CharacterIteration;->nextTrail32(Ljava/text/CharacterIterator;I)I -HSPLandroid/icu/impl/CharacterIteration;->previous32(Ljava/text/CharacterIterator;)I -HSPLandroid/icu/impl/ClassLoaderUtil;->getClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader; -HSPLandroid/icu/impl/CurrencyData$CurrencyDisplayInfo;-><init>()V -HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;-><init>()V -HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->getAfterSymbols()[Ljava/lang/String; -HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->getBeforeSymbols()[Ljava/lang/String; -HSPLandroid/icu/impl/CurrencyData$CurrencySpacingInfo;->setSymbolIfNull(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;Ljava/lang/String;)V -HSPLandroid/icu/impl/DateNumberFormat;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/impl/DateNumberFormat;->getDigits()[C -HSPLandroid/icu/impl/DateNumberFormat;->initialize(Landroid/icu/util/ULocale;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/impl/FormattedStringBuilder;-><init>()V -HSPLandroid/icu/impl/FormattedStringBuilder;-><init>(I)V -HSPLandroid/icu/impl/FormattedStringBuilder;-><init>(Landroid/icu/impl/FormattedStringBuilder;)V -HSPLandroid/icu/impl/FormattedStringBuilder;->charAt(I)C -HSPLandroid/icu/impl/FormattedStringBuilder;->clear()Landroid/icu/impl/FormattedStringBuilder; -HSPLandroid/icu/impl/FormattedStringBuilder;->copyFrom(Landroid/icu/impl/FormattedStringBuilder;)V -HSPLandroid/icu/impl/FormattedStringBuilder;->fieldAt(I)Ljava/lang/Object; -HSPLandroid/icu/impl/FormattedStringBuilder;->getCapacity()I -HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;IILjava/lang/Object;)I -HSPLandroid/icu/impl/FormattedStringBuilder;->insert(ILjava/lang/CharSequence;Ljava/lang/Object;)I+]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/icu/impl/FormattedStringBuilder;->insert(I[C[Ljava/lang/Object;)I -HSPLandroid/icu/impl/FormattedStringBuilder;->insertCodePoint(IILjava/lang/Object;)I -HSPLandroid/icu/impl/FormattedStringBuilder;->length()I -HSPLandroid/icu/impl/FormattedStringBuilder;->prepareForInsert(II)I -HSPLandroid/icu/impl/FormattedStringBuilder;->subSequence(II)Ljava/lang/CharSequence; -HSPLandroid/icu/impl/FormattedStringBuilder;->toCharArray()[C -HSPLandroid/icu/impl/FormattedStringBuilder;->toFieldArray()[Ljava/lang/Object; -HSPLandroid/icu/impl/FormattedStringBuilder;->toString()Ljava/lang/String; -HSPLandroid/icu/impl/FormattedStringBuilder;->unwrapField(Ljava/lang/Object;)Ljava/text/Format$Field; -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->isIntOrGroup(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextFieldPosition(Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;)Z+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition;]Ljava/text/FieldPosition;Ljava/text/DontCareFieldPosition; -HSPLandroid/icu/impl/FormattedValueStringBuilderImpl;->nextPosition(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/text/ConstrainedFieldPosition;Ljava/text/Format$Field;)Z+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition; -HSPLandroid/icu/impl/Grego;->dayOfWeek(J)I -HSPLandroid/icu/impl/Grego;->dayToFields(J[I)[I -HSPLandroid/icu/impl/Grego;->fieldsToDay(III)J -HSPLandroid/icu/impl/Grego;->floorDivide(JJ)J -HSPLandroid/icu/impl/Grego;->floorDivide(JJ[J)J -HSPLandroid/icu/impl/Grego;->isLeapYear(I)Z -HSPLandroid/icu/impl/Grego;->monthLength(II)I -HSPLandroid/icu/impl/Grego;->previousMonthLength(II)I -HSPLandroid/icu/impl/Grego;->timeToFields(J[I)[I -HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseName(Ljava/nio/ByteBuffer;ILjava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/util/Set;)Z -HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->addBaseNamesInFolder(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V -HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->binarySearch(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)I -HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->getData(Ljava/nio/ByteBuffer;Ljava/lang/CharSequence;)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->getDataOffset(Ljava/nio/ByteBuffer;I)I -HSPLandroid/icu/impl/ICUBinary$DatPackageReader;->getNameOffset(Ljava/nio/ByteBuffer;I)I -HSPLandroid/icu/impl/ICUBinary$PackageDataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V -HSPLandroid/icu/impl/ICUBinary$PackageDataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUBinary;->addBaseNamesInFileFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V -HSPLandroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;I)I -HSPLandroid/icu/impl/ICUBinary;->compareKeys(Ljava/lang/CharSequence;[BI)I+]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/icu/impl/ICUBinary;->getBytes(Ljava/nio/ByteBuffer;II)[B -HSPLandroid/icu/impl/ICUBinary;->getChars(Ljava/nio/ByteBuffer;II)[C -HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Z)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUBinary;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUBinary;->getDataFromFile(Ljava/lang/String;)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUBinary;->getInts(Ljava/nio/ByteBuffer;II)[I -HSPLandroid/icu/impl/ICUBinary;->getString(Ljava/nio/ByteBuffer;II)Ljava/lang/String; -HSPLandroid/icu/impl/ICUBinary;->readHeader(Ljava/nio/ByteBuffer;ILandroid/icu/impl/ICUBinary$Authenticate;)I -HSPLandroid/icu/impl/ICUBinary;->skipBytes(Ljava/nio/ByteBuffer;I)V -HSPLandroid/icu/impl/ICUBinary;->sliceWithOrder(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; -HSPLandroid/icu/impl/ICUConfig;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;-><init>(ZLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink$EntrypointTable;)V -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;->consumeCurrenciesEntry(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;->consumeCurrencySpacingTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Z)V -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->fetchFormattingData(Ljava/lang/String;)Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData; -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->fetchSpacingInfo()Landroid/icu/impl/CurrencyData$CurrencySpacingInfo; -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getFormatInfo(Ljava/lang/String;)Landroid/icu/impl/CurrencyData$CurrencyFormatInfo; -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSpacingInfo()Landroid/icu/impl/CurrencyData$CurrencySpacingInfo; -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo;->getSymbol(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUCurrencyDisplayInfoProvider;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;-><init>()V -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;-><init>(Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector-IA;)V -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->collect(Ljava/lang/String;Ljava/lang/String;JJIZ)V -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->collects()I -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector;->getList()Ljava/util/List; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->-$$Nest$smcreate()Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;-><init>()V -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->add(Ljava/lang/Object;)V -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->create()Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo$UniqueList;->list()Ljava/util/List; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collect(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->collectRegion(Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;ILandroid/icu/impl/ICUResourceBundle;)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceString;,Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;,Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray;]Landroid/icu/impl/ICUCurrencyMetaInfo$Collector;Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->currencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->currencyDigits(Ljava/lang/String;Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits; -HSPLandroid/icu/impl/ICUCurrencyMetaInfo;->getDate(Landroid/icu/impl/ICUResourceBundle;JZ)J -HSPLandroid/icu/impl/ICUData;->checkStreamForBinaryData(Ljava/io/InputStream;Ljava/lang/String;)V -HSPLandroid/icu/impl/ICUData;->getStream(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/io/InputStream; -HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;->getSupportedIDs()Ljava/util/Set; -HSPLandroid/icu/impl/ICULocaleService$ICUResourceBundleFactory;->loader()Ljava/lang/ClassLoader; -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->createWithCanonical(Landroid/icu/util/ULocale;Ljava/lang/String;I)Landroid/icu/impl/ICULocaleService$LocaleKey; -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentDescriptor()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICULocaleService$LocaleKey;Landroid/icu/impl/ICULocaleService$LocaleKey; -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentID()Ljava/lang/String; -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->currentLocale()Landroid/icu/util/ULocale; -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->fallback()Z -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->kind()I -HSPLandroid/icu/impl/ICULocaleService$LocaleKey;->prefix()Ljava/lang/String; -HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;->create(Landroid/icu/impl/ICUService$Key;Landroid/icu/impl/ICUService;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICULocaleService$LocaleKeyFactory;->handlesKey(Landroid/icu/impl/ICUService$Key;)Z -HSPLandroid/icu/impl/ICULocaleService;->createKey(Landroid/icu/util/ULocale;I)Landroid/icu/impl/ICUService$Key; -HSPLandroid/icu/impl/ICULocaleService;->get(Landroid/icu/util/ULocale;I[Landroid/icu/util/ULocale;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICULocaleService;->get(Landroid/icu/util/ULocale;[Landroid/icu/util/ULocale;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICULocaleService;->validateFallbackLocale()Ljava/lang/String; -HSPLandroid/icu/impl/ICURWLock;->acquireRead()V -HSPLandroid/icu/impl/ICURWLock;->releaseRead()V -HSPLandroid/icu/impl/ICUResourceBundle$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICUResourceBundle$1;->createInstance(Ljava/lang/String;Landroid/icu/impl/ICUResourceBundle$Loader;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle$1AllChildrenSink;-><init>(Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/UResource$Sink;)V -HSPLandroid/icu/impl/ICUResourceBundle$1AllChildrenSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/ICUResourceBundle$2$1;-><init>(Landroid/icu/impl/ICUResourceBundle$2;)V -HSPLandroid/icu/impl/ICUResourceBundle$2;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/Set;)V -HSPLandroid/icu/impl/ICUResourceBundle$2;->run()Ljava/lang/Object; -HSPLandroid/icu/impl/ICUResourceBundle$2;->run()Ljava/lang/Void; -HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICUResourceBundle$3;->createInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry; -HSPLandroid/icu/impl/ICUResourceBundle$5;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/impl/ICUResourceBundle$5;->load()Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set; -HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundle$Loader;-><init>(Landroid/icu/impl/ICUResourceBundle$Loader-IA;)V -HSPLandroid/icu/impl/ICUResourceBundle$WholeBundle;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader;)V -HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$mgetNoFallback(Landroid/icu/impl/ICUResourceBundle;)Z -HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sfgetDEBUG()Z -HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$smgetParentLocaleID(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/ICUResourceBundle$OpenType;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->-$$Nest$sminstantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V -HSPLandroid/icu/impl/ICUResourceBundle;-><init>(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/impl/ICUResourceBundle;->addBundleBaseNamesFromClassLoader(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/Set;)V -HSPLandroid/icu/impl/ICUResourceBundle;->at(I)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->at(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->countPathKeys(Ljava/lang/String;)I+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->createBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->createFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set; -HSPLandroid/icu/impl/ICUResourceBundle;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/ICUResourceBundle;->findResourceWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->findResourceWithFallback([Ljava/lang/String;ILandroid/icu/impl/ICUResourceBundle;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->findStringWithFallback(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->findStringWithFallback(Ljava/lang/String;Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;)Ljava/lang/String;+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundle;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->findWithFallback(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->get(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getAliasedResource(Landroid/icu/impl/ICUResourceBundle;[Ljava/lang/String;ILjava/lang/String;ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getAliasedResource(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;I[Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getAllChildrenWithFallback(Ljava/lang/String;Landroid/icu/impl/UResource$Sink;)V -HSPLandroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallback(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;Landroid/icu/impl/UResource$Sink;Landroid/icu/util/UResourceBundle;)V -HSPLandroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallback(Ljava/lang/String;Landroid/icu/impl/UResource$Sink;)V -HSPLandroid/icu/impl/ICUResourceBundle;->getAllItemsWithFallbackNoFail(Ljava/lang/String;Landroid/icu/impl/UResource$Sink;)V -HSPLandroid/icu/impl/ICUResourceBundle;->getAvailEntry(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle$AvailEntry; -HSPLandroid/icu/impl/ICUResourceBundle;->getBaseName()Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getBundle(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getDefaultScript(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getExplicitParent(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getFullLocaleNameSet(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/util/Set; -HSPLandroid/icu/impl/ICUResourceBundle;->getKey()Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getLocale()Ljava/util/Locale; -HSPLandroid/icu/impl/ICUResourceBundle;->getLocaleID()Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getNoFallback()Z -HSPLandroid/icu/impl/ICUResourceBundle;->getParent()Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getParent()Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->getParentLocaleID(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/ICUResourceBundle$OpenType;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getResDepth()I -HSPLandroid/icu/impl/ICUResourceBundle;->getResPathKeys(Ljava/lang/String;I[Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundle;->getResPathKeys([Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundle;->getStringWithFallback(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundle;->getULocale()Landroid/icu/util/ULocale; -HSPLandroid/icu/impl/ICUResourceBundle;->getWithFallback(Ljava/lang/String;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundle$OpenType;)Landroid/icu/impl/ICUResourceBundle;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/ICUResourceBundle$OpenType;Landroid/icu/impl/ICUResourceBundle$OpenType;]Landroid/icu/impl/CacheBase;Landroid/icu/impl/ICUResourceBundle$1; -HSPLandroid/icu/impl/ICUResourceBundle;->setParent(Ljava/util/ResourceBundle;)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getStringArray()[Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->getType()I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceArray;->handleGetStringArray()[Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceBinary;->getBinary([B)[B -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->createBundleObject(ILjava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getContainerResource(I)I+]Landroid/icu/impl/ICUResourceBundleReader$Container;Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getSize()I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceContainer;->getString(I)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceInt;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceInt;->getInt()I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector;->getIntVector()[I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->getString()Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceString;->getType()I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->findString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->getType()I -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGet(ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGet(Ljava/lang/String;Ljava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/util/UResourceBundle;+]Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable;]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table;,Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16; -HSPLandroid/icu/impl/ICUResourceBundleImpl$ResourceTable;->handleGetObject(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICUResourceBundleImpl;-><init>(Landroid/icu/impl/ICUResourceBundle$WholeBundle;)V -HSPLandroid/icu/impl/ICUResourceBundleImpl;-><init>(Landroid/icu/impl/ICUResourceBundleImpl;Ljava/lang/String;I)V -HSPLandroid/icu/impl/ICUResourceBundleImpl;->createBundleObject(Ljava/lang/String;ILjava/util/HashMap;Landroid/icu/util/UResourceBundle;)Landroid/icu/impl/ICUResourceBundle; -HSPLandroid/icu/impl/ICUResourceBundleImpl;->getResource()I -HSPLandroid/icu/impl/ICUResourceBundleReader$Array16;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V -HSPLandroid/icu/impl/ICUResourceBundleReader$Array16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Array32;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V -HSPLandroid/icu/impl/ICUResourceBundleReader$Array32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Array;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundleReader$Array;->getValue(ILandroid/icu/impl/UResource$Value;)Z -HSPLandroid/icu/impl/ICUResourceBundleReader$Container;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainer16Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I+]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer; -HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainer32Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Container;->getSize()I -HSPLandroid/icu/impl/ICUResourceBundleReader$IsAcceptable;->isDataVersionAcceptable([B)Z -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->hashCode()I -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getAliasString()Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getArray()Landroid/icu/impl/UResource$Array; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getString()Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray()[Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray(Landroid/icu/impl/ICUResourceBundleReader$Array;)[Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getTable()Landroid/icu/impl/UResource$Table; -HSPLandroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getType()I -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->get(I)Ljava/lang/Object;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level; -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level; -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;-><init>(I)V -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->findSimple(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->get(I)Ljava/lang/Object;+]Ljava/lang/ref/SoftReference;Ljava/lang/ref/SoftReference;]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level; -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->makeKey(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level; -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->putIfCleared([Ljava/lang/Object;ILjava/lang/Object;I)Ljava/lang/Object; -HSPLandroid/icu/impl/ICUResourceBundleReader$ResourceCache;->storeDirectly(I)Z -HSPLandroid/icu/impl/ICUResourceBundleReader$Table1632;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V -HSPLandroid/icu/impl/ICUResourceBundleReader$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;-><init>()V -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->findTableItem(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/CharSequence;)I -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->findValue(Ljava/lang/CharSequence;Landroid/icu/impl/UResource$Value;)Z -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getKey(Landroid/icu/impl/ICUResourceBundleReader;I)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getKeyAndValue(ILandroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)Z+]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table1632;,Landroid/icu/impl/ICUResourceBundleReader$Table16; -HSPLandroid/icu/impl/ICUResourceBundleReader$Table;->getResource(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/String;)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$fgetb16BitUnits(Landroid/icu/impl/ICUResourceBundleReader;)Ljava/nio/CharBuffer; -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$fgetpoolStringIndex16Limit(Landroid/icu/impl/ICUResourceBundleReader;)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$fgetpoolStringIndexLimit(Landroid/icu/impl/ICUResourceBundleReader;)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mcompareKeys(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/CharSequence;C)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mgetInt(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mgetResourceByteOffset(Landroid/icu/impl/ICUResourceBundleReader;I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$mgetTableKeyOffsets(Landroid/icu/impl/ICUResourceBundleReader;I)[C -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$sfgetNULL_READER()Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$sfgetPUBLIC_TYPES()[I -HSPLandroid/icu/impl/ICUResourceBundleReader;->-$$Nest$smRES_GET_OFFSET(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLandroid/icu/impl/ICUResourceBundleReader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader-IA;)V -HSPLandroid/icu/impl/ICUResourceBundleReader;->RES_GET_INT(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->RES_GET_OFFSET(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->RES_GET_TYPE(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->URES_IS_ARRAY(I)Z -HSPLandroid/icu/impl/ICUResourceBundleReader;->URES_IS_TABLE(I)Z -HSPLandroid/icu/impl/ICUResourceBundleReader;->compareKeys(Ljava/lang/CharSequence;C)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getAlias(I)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getArray(I)Landroid/icu/impl/ICUResourceBundleReader$Array; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getBinary(I[B)[B -HSPLandroid/icu/impl/ICUResourceBundleReader;->getChars(II)[C -HSPLandroid/icu/impl/ICUResourceBundleReader;->getFullName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getIndexesInt(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getInt(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getIntVector(I)[I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getInts(II)[I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getKey16String(I)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getNoFallback()Z -HSPLandroid/icu/impl/ICUResourceBundleReader;->getReader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getResourceByteOffset(I)I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getRootResource()I -HSPLandroid/icu/impl/ICUResourceBundleReader;->getString(I)Ljava/lang/String;+]Landroid/icu/impl/ICUResourceBundleReader;Landroid/icu/impl/ICUResourceBundleReader; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getStringV2(I)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer;]Ljava/lang/CharSequence;Ljava/nio/ByteBufferAsCharBuffer; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getTable(I)Landroid/icu/impl/ICUResourceBundleReader$Table;+]Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;]Landroid/icu/impl/ICUResourceBundleReader$Table;Landroid/icu/impl/ICUResourceBundleReader$Table16;,Landroid/icu/impl/ICUResourceBundleReader$Table1632; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getTable16KeyOffsets(I)[C+]Ljava/nio/CharBuffer;Ljava/nio/ByteBufferAsCharBuffer; -HSPLandroid/icu/impl/ICUResourceBundleReader;->getTableKeyOffsets(I)[C -HSPLandroid/icu/impl/ICUResourceBundleReader;->init(Ljava/nio/ByteBuffer;)V -HSPLandroid/icu/impl/ICUResourceBundleReader;->makeKeyStringFromBytes([BI)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader;->makeStringFromBytes(II)Ljava/lang/String; -HSPLandroid/icu/impl/ICUResourceBundleReader;->setKeyFromKey16(ILandroid/icu/impl/UResource$Key;)V -HSPLandroid/icu/impl/ICUService$CacheEntry;-><init>(Ljava/lang/String;Ljava/lang/Object;)V -HSPLandroid/icu/impl/ICUService$Key;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/ICUService;->clearServiceCache()V -HSPLandroid/icu/impl/ICUService;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/icu/impl/ICUService;->getKey(Landroid/icu/impl/ICUService$Key;[Ljava/lang/String;Landroid/icu/impl/ICUService$Factory;)Ljava/lang/Object;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Map;Ljava/util/concurrent/ConcurrentHashMap;]Landroid/icu/impl/ICURWLock;Landroid/icu/impl/ICURWLock;]Landroid/icu/impl/ICUService$Key;Landroid/icu/impl/ICULocaleService$LocaleKey; -HSPLandroid/icu/impl/ICUService;->isDefault()Z -HSPLandroid/icu/impl/IDNA2003;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; -HSPLandroid/icu/impl/IDNA2003;->convertToASCII(Landroid/icu/text/UCharacterIterator;I)Ljava/lang/StringBuffer;+]Landroid/icu/text/UCharacterIterator;Landroid/icu/impl/ReplaceableUCharacterIterator;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; -HSPLandroid/icu/impl/IDNA2003;->getSeparatorIndex([CII)I -HSPLandroid/icu/impl/IDNA2003;->isLDHChar(I)Z -HSPLandroid/icu/impl/IDNA2003;->isLabelSeparator(I)Z -HSPLandroid/icu/impl/LocaleIDParser$1;-><init>(Landroid/icu/impl/LocaleIDParser;)V -HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/icu/impl/LocaleIDParser$1;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/LocaleIDParser;-><init>(Ljava/lang/String;Z)V+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->addSeparator()V -HSPLandroid/icu/impl/LocaleIDParser;->append(C)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/LocaleIDParser;->append(Ljava/lang/String;)V -HSPLandroid/icu/impl/LocaleIDParser;->atTerminator()Z -HSPLandroid/icu/impl/LocaleIDParser;->getBaseName()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getCountry()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getKeyComparator()Ljava/util/Comparator; -HSPLandroid/icu/impl/LocaleIDParser;->getKeyword()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getKeywordMap()Ljava/util/Map; -HSPLandroid/icu/impl/LocaleIDParser;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getKeywords()Ljava/util/Iterator; -HSPLandroid/icu/impl/LocaleIDParser;->getLanguage()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getName()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getScript()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getString(I)Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getValue()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->getVariant()Ljava/lang/String; -HSPLandroid/icu/impl/LocaleIDParser;->haveExperimentalLanguagePrefix()Z -HSPLandroid/icu/impl/LocaleIDParser;->haveKeywordAssign()Z -HSPLandroid/icu/impl/LocaleIDParser;->isDoneOrItemSeparator(C)Z -HSPLandroid/icu/impl/LocaleIDParser;->isDoneOrKeywordAssign(C)Z -HSPLandroid/icu/impl/LocaleIDParser;->isTerminator(C)Z -HSPLandroid/icu/impl/LocaleIDParser;->isTerminatorOrIDSeparator(C)Z -HSPLandroid/icu/impl/LocaleIDParser;->next()C -HSPLandroid/icu/impl/LocaleIDParser;->parseBaseName()V -HSPLandroid/icu/impl/LocaleIDParser;->parseCountry()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/LocaleIDParser;->parseKeywords()I -HSPLandroid/icu/impl/LocaleIDParser;->parseLanguage()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/LocaleIDParser;->parseScript()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/LocaleIDParser;->parseVariant()I -HSPLandroid/icu/impl/LocaleIDParser;->reset()V -HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/impl/LocaleIDParser;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;Z)V -HSPLandroid/icu/impl/LocaleIDParser;->setToKeywordStart()Z -HSPLandroid/icu/impl/LocaleIDParser;->skipCountry()V -HSPLandroid/icu/impl/LocaleIDParser;->skipLanguage()V -HSPLandroid/icu/impl/LocaleIDParser;->skipScript()V -HSPLandroid/icu/impl/LocaleIDParser;->skipUntilTerminatorOrIDSeparator()V -HSPLandroid/icu/impl/Norm2AllModes$ComposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I -HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->normalizeAndAppend(Ljava/lang/CharSequence;ZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V -HSPLandroid/icu/impl/Norm2AllModes$DecomposeNormalizer2;->spanQuickCheckYes(Ljava/lang/CharSequence;)I -HSPLandroid/icu/impl/Norm2AllModes$NFKCSingleton;->-$$Nest$sfgetINSTANCE()Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton; -HSPLandroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;->-$$Nest$fgetallModes(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Landroid/icu/impl/Norm2AllModes; -HSPLandroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;->-$$Nest$fgetexception(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Ljava/lang/RuntimeException; -HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalize(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/Norm2AllModes$Normalizer2WithImpl;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/Norm2AllModes;->getFCDNormalizer2()Landroid/icu/text/Normalizer2; -HSPLandroid/icu/impl/Norm2AllModes;->getInstanceFromSingleton(Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton;)Landroid/icu/impl/Norm2AllModes; -HSPLandroid/icu/impl/Norm2AllModes;->getNFCInstance()Landroid/icu/impl/Norm2AllModes; -HSPLandroid/icu/impl/Norm2AllModes;->getNFKCInstance()Landroid/icu/impl/Norm2AllModes; -HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;-><init>(Landroid/icu/impl/Normalizer2Impl;Ljava/lang/Appendable;I)V -HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->append(Ljava/lang/CharSequence;IIZII)V -HSPLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->flushAndAppendZeroCC(Ljava/lang/CharSequence;II)Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer; -HSPLandroid/icu/impl/Normalizer2Impl;->addToStartSet(Landroid/icu/util/MutableCodePointTrie;II)V -HSPLandroid/icu/impl/Normalizer2Impl;->composeQuickCheck(Ljava/lang/CharSequence;IIZZ)I -HSPLandroid/icu/impl/Normalizer2Impl;->decompose(IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V -HSPLandroid/icu/impl/Normalizer2Impl;->decompose(Ljava/lang/CharSequence;IILandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)I+]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/icu/impl/Normalizer2Impl;->decomposeAndAppend(Ljava/lang/CharSequence;ZLandroid/icu/impl/Normalizer2Impl$ReorderingBuffer;)V -HSPLandroid/icu/impl/Normalizer2Impl;->ensureCanonIterData()Landroid/icu/impl/Normalizer2Impl; -HSPLandroid/icu/impl/Normalizer2Impl;->getRawNorm16(I)I -HSPLandroid/icu/impl/Normalizer2Impl;->hangulLVT()I -HSPLandroid/icu/impl/Normalizer2Impl;->isDecompNoAlgorithmic(I)Z -HSPLandroid/icu/impl/Normalizer2Impl;->isDecompYes(I)Z -HSPLandroid/icu/impl/Normalizer2Impl;->isHangulLV(I)Z -HSPLandroid/icu/impl/Normalizer2Impl;->isHangulLVT(I)Z -HSPLandroid/icu/impl/Normalizer2Impl;->isInert(I)Z -HSPLandroid/icu/impl/Normalizer2Impl;->isMaybeOrNonZeroCC(I)Z -HSPLandroid/icu/impl/Normalizer2Impl;->mapAlgorithmic(II)I -HSPLandroid/icu/impl/OlsonTimeZone;-><init>(Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/impl/OlsonTimeZone;->clone()Ljava/lang/Object; -HSPLandroid/icu/impl/OlsonTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone; -HSPLandroid/icu/impl/OlsonTimeZone;->construct(Landroid/icu/util/UResourceBundle;Landroid/icu/util/UResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/impl/OlsonTimeZone;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/OlsonTimeZone;->freeze()Landroid/icu/util/TimeZone; -HSPLandroid/icu/impl/OlsonTimeZone;->getCanonicalID()Ljava/lang/String; -HSPLandroid/icu/impl/OlsonTimeZone;->getHistoricalOffset(JZII[I)V -HSPLandroid/icu/impl/OlsonTimeZone;->getInt(B)I -HSPLandroid/icu/impl/OlsonTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition; -HSPLandroid/icu/impl/OlsonTimeZone;->getOffset(JZ[I)V -HSPLandroid/icu/impl/OlsonTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule; -HSPLandroid/icu/impl/OlsonTimeZone;->hashCode()I -HSPLandroid/icu/impl/OlsonTimeZone;->initTransitionRules()V -HSPLandroid/icu/impl/OlsonTimeZone;->initialDstOffset()I -HSPLandroid/icu/impl/OlsonTimeZone;->initialRawOffset()I -HSPLandroid/icu/impl/OlsonTimeZone;->isFrozen()Z -HSPLandroid/icu/impl/OlsonTimeZone;->loadRule(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/OlsonTimeZone;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/PatternProps;->isWhiteSpace(I)Z -HSPLandroid/icu/impl/PatternProps;->skipWhiteSpace(Ljava/lang/CharSequence;I)I -HSPLandroid/icu/impl/PatternTokenizer;-><init>()V -HSPLandroid/icu/impl/PatternTokenizer;->next(Ljava/lang/StringBuffer;)I+]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/impl/PatternTokenizer;->quoteLiteral(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/PatternTokenizer;->setExtraQuotingCharacters(Landroid/icu/text/UnicodeSet;)Landroid/icu/impl/PatternTokenizer; -HSPLandroid/icu/impl/PatternTokenizer;->setPattern(Ljava/lang/String;)Landroid/icu/impl/PatternTokenizer; -HSPLandroid/icu/impl/PatternTokenizer;->setSyntaxCharacters(Landroid/icu/text/UnicodeSet;)Landroid/icu/impl/PatternTokenizer; -HSPLandroid/icu/impl/PatternTokenizer;->setUsingQuote(Z)Landroid/icu/impl/PatternTokenizer; -HSPLandroid/icu/impl/PluralRulesLoader;->checkBuildRulesIdMaps()V -HSPLandroid/icu/impl/PluralRulesLoader;->forLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules; -HSPLandroid/icu/impl/PluralRulesLoader;->getLocaleIdToRulesIdMap(Landroid/icu/text/PluralRules$PluralType;)Ljava/util/Map; -HSPLandroid/icu/impl/PluralRulesLoader;->getOrCreateRulesForLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules; -HSPLandroid/icu/impl/PluralRulesLoader;->getPluralBundle()Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/PluralRulesLoader;->getRulesIdForLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Ljava/lang/String; -HSPLandroid/icu/impl/RBBIDataWrapper$IsAcceptable;->isDataVersionAcceptable([B)Z -HSPLandroid/icu/impl/RBBIDataWrapper$RBBIDataHeader;-><init>()V -HSPLandroid/icu/impl/RBBIDataWrapper$RBBIStateTable;-><init>()V -HSPLandroid/icu/impl/RBBIDataWrapper$RBBIStateTable;->get(Ljava/nio/ByteBuffer;I)Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable; -HSPLandroid/icu/impl/RBBIDataWrapper;-><init>()V -HSPLandroid/icu/impl/RBBIDataWrapper;->get(Ljava/nio/ByteBuffer;)Landroid/icu/impl/RBBIDataWrapper; -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->getLength()I -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->getText([CI)I -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->next()I+]Landroid/icu/text/Replaceable;Landroid/icu/text/ReplaceableString; -HSPLandroid/icu/impl/ReplaceableUCharacterIterator;->setIndex(I)V -HSPLandroid/icu/impl/RuleCharacterIterator;->_advance(I)V -HSPLandroid/icu/impl/RuleCharacterIterator;->_current()I -HSPLandroid/icu/impl/RuleCharacterIterator;->atEnd()Z -HSPLandroid/icu/impl/RuleCharacterIterator;->getPos(Landroid/icu/impl/RuleCharacterIterator$Position;)Landroid/icu/impl/RuleCharacterIterator$Position; -HSPLandroid/icu/impl/RuleCharacterIterator;->isEscaped()Z -HSPLandroid/icu/impl/RuleCharacterIterator;->next(I)I -HSPLandroid/icu/impl/RuleCharacterIterator;->setPos(Landroid/icu/impl/RuleCharacterIterator$Position;)V -HSPLandroid/icu/impl/RuleCharacterIterator;->skipIgnored(I)V -HSPLandroid/icu/impl/SimpleCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/SimpleCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/icu/impl/SimpleFormatterImpl;->compileToStringMinMaxArguments(Ljava/lang/CharSequence;Ljava/lang/StringBuilder;II)Ljava/lang/String; -HSPLandroid/icu/impl/SimpleFormatterImpl;->format(Ljava/lang/String;[Ljava/lang/CharSequence;Ljava/lang/StringBuilder;Ljava/lang/String;Z[I)Ljava/lang/StringBuilder; -HSPLandroid/icu/impl/SimpleFormatterImpl;->formatPrefixSuffix(Ljava/lang/String;Ljava/text/Format$Field;IILandroid/icu/impl/FormattedStringBuilder;)I -HSPLandroid/icu/impl/SimpleFormatterImpl;->formatRawPattern(Ljava/lang/String;II[Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLandroid/icu/impl/SimpleFormatterImpl;->getArgumentLimit(Ljava/lang/String;)I -HSPLandroid/icu/impl/SoftCache;->getInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/StandardPlural;->fromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/StandardPlural;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/StandardPlural;->orOtherFromString(Ljava/lang/CharSequence;)Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/StandardPlural;->values()[Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/StaticUnicodeSets;->chooseFrom(Ljava/lang/String;Landroid/icu/impl/StaticUnicodeSets$Key;)Landroid/icu/impl/StaticUnicodeSets$Key; -HSPLandroid/icu/impl/StaticUnicodeSets;->chooseFrom(Ljava/lang/String;Landroid/icu/impl/StaticUnicodeSets$Key;Landroid/icu/impl/StaticUnicodeSets$Key;)Landroid/icu/impl/StaticUnicodeSets$Key; -HSPLandroid/icu/impl/StaticUnicodeSets;->get(Landroid/icu/impl/StaticUnicodeSets$Key;)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/impl/StringSegment;-><init>(Ljava/lang/String;Z)V -HSPLandroid/icu/impl/StringSegment;->adjustOffset(I)V -HSPLandroid/icu/impl/StringSegment;->charAt(I)C -HSPLandroid/icu/impl/StringSegment;->codePointsEqual(IIZ)Z -HSPLandroid/icu/impl/StringSegment;->getCodePoint()I -HSPLandroid/icu/impl/StringSegment;->getCommonPrefixLength(Ljava/lang/CharSequence;)I -HSPLandroid/icu/impl/StringSegment;->getOffset()I -HSPLandroid/icu/impl/StringSegment;->getPrefixLengthInternal(Ljava/lang/CharSequence;Z)I -HSPLandroid/icu/impl/StringSegment;->length()I -HSPLandroid/icu/impl/StringSegment;->startsWith(Landroid/icu/text/UnicodeSet;)Z -HSPLandroid/icu/impl/StringSegment;->startsWith(Ljava/lang/CharSequence;)Z -HSPLandroid/icu/impl/TextTrieMap$Node;-><init>(Landroid/icu/impl/TextTrieMap;)V -HSPLandroid/icu/impl/TextTrieMap;-><init>(Z)V -HSPLandroid/icu/impl/TimeZoneNamesFactoryImpl;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames; -HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;-><init>(Ljava/lang/String;JJ)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->from()J -HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->mzID()Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl$MZMapEntry;->to()J -HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache;->parseDate(Ljava/lang/String;)J -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;-><init>([Ljava/lang/String;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->createMetaZoneAndPutInCache(Ljava/util/Map;[Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames; -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->createTimeZoneAndPutInCache(Ljava/util/Map;[Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames; -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getName(Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNames;->getNameTypeIndex(Landroid/icu/text/TimeZoneNames$NameType;)I -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->-$$Nest$mgetNames(Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;)[Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><init>()V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;-><init>(Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader-IA;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->getNames()[Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->loadMetaZone(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->loadNames(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->loadTimeZone(Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->nameTypeIndexFromKey(Landroid/icu/impl/UResource$Key;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex; -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader;->setNameIfEmpty(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl;-><init>(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl;->_getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->_getMetaZoneID(Ljava/lang/String;J)Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->getAvailableMetaZoneIDs(Ljava/lang/String;)Ljava/util/Set; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->getDefaultExemplarLocationName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->getMetaZoneDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->getMetaZoneID(Ljava/lang/String;J)Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->getTimeZoneDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;)Ljava/lang/String; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->initialize(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl;->loadMetaZoneNames(Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames; -HSPLandroid/icu/impl/TimeZoneNamesImpl;->loadStrings(Ljava/lang/String;)V -HSPLandroid/icu/impl/TimeZoneNamesImpl;->loadTimeZoneNames(Ljava/lang/String;)Landroid/icu/impl/TimeZoneNamesImpl$ZNames; -HSPLandroid/icu/impl/Trie2;-><init>()V -HSPLandroid/icu/impl/Trie2;->createFromSerialized(Ljava/nio/ByteBuffer;)Landroid/icu/impl/Trie2; -HSPLandroid/icu/impl/Trie2Writable;-><init>(II)V -HSPLandroid/icu/impl/Trie2Writable;->allocDataBlock(I)I -HSPLandroid/icu/impl/Trie2Writable;->fillBlock(IIIIIZ)V -HSPLandroid/icu/impl/Trie2Writable;->getDataBlock(IZ)I -HSPLandroid/icu/impl/Trie2Writable;->getIndex2Block(IZ)I -HSPLandroid/icu/impl/Trie2Writable;->init(II)V -HSPLandroid/icu/impl/Trie2Writable;->isWritableBlock(I)Z -HSPLandroid/icu/impl/Trie2Writable;->set(II)Landroid/icu/impl/Trie2Writable; -HSPLandroid/icu/impl/Trie2Writable;->set(IZI)Landroid/icu/impl/Trie2Writable; -HSPLandroid/icu/impl/Trie2Writable;->setIndex2Entry(II)V -HSPLandroid/icu/impl/Trie2Writable;->setRange(IIIZ)Landroid/icu/impl/Trie2Writable; -HSPLandroid/icu/impl/Trie2Writable;->writeBlock(II)V -HSPLandroid/icu/impl/Trie2_16;->get(I)I -HSPLandroid/icu/impl/Trie2_32;->get(I)I -HSPLandroid/icu/impl/Trie2_32;->getFromU16SingleLead(C)I -HSPLandroid/icu/impl/UBiDiProps;->getClass(I)I -HSPLandroid/icu/impl/UBiDiProps;->getClassFromProps(I)I -HSPLandroid/icu/impl/UCaseProps;->fold(II)I -HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/lang/String;)I -HSPLandroid/icu/impl/UCaseProps;->getCaseLocale(Ljava/util/Locale;)I -HSPLandroid/icu/impl/UCaseProps;->getDelta(I)I -HSPLandroid/icu/impl/UCaseProps;->isUpperOrTitleFromProps(I)Z -HSPLandroid/icu/impl/UCaseProps;->propsHasException(I)Z -HSPLandroid/icu/impl/UCaseProps;->toUpperOrTitle(ILandroid/icu/impl/UCaseProps$ContextIterator;Ljava/lang/Appendable;IZ)I -HSPLandroid/icu/impl/UCharacterProperty$IntProperty;->getValue(I)I -HSPLandroid/icu/impl/UCharacterProperty;->digit(I)I -HSPLandroid/icu/impl/UCharacterProperty;->getIntPropertyValue(II)I -HSPLandroid/icu/impl/UCharacterProperty;->getNumericTypeValue(I)I -HSPLandroid/icu/impl/UCharacterProperty;->getProperty(I)I -HSPLandroid/icu/impl/UCharacterProperty;->getType(I)I -HSPLandroid/icu/impl/UPropertyAliases;->asciiToLowercase(I)I -HSPLandroid/icu/impl/UPropertyAliases;->containsName(Landroid/icu/util/BytesTrie;Ljava/lang/CharSequence;)Z -HSPLandroid/icu/impl/UPropertyAliases;->findProperty(I)I -HSPLandroid/icu/impl/UPropertyAliases;->getPropertyOrValueEnum(ILjava/lang/CharSequence;)I -HSPLandroid/icu/impl/UPropertyAliases;->getPropertyValueEnumNoThrow(ILjava/lang/CharSequence;)I -HSPLandroid/icu/impl/UResource$Key;-><init>()V -HSPLandroid/icu/impl/UResource$Key;->charAt(I)C -HSPLandroid/icu/impl/UResource$Key;->contentEquals(Ljava/lang/CharSequence;)Z -HSPLandroid/icu/impl/UResource$Key;->endsWith(Ljava/lang/CharSequence;)Z -HSPLandroid/icu/impl/UResource$Key;->internalSubString(II)Ljava/lang/String; -HSPLandroid/icu/impl/UResource$Key;->length()I -HSPLandroid/icu/impl/UResource$Key;->regionMatches(ILjava/lang/CharSequence;I)Z -HSPLandroid/icu/impl/UResource$Key;->setBytes([BI)Landroid/icu/impl/UResource$Key; -HSPLandroid/icu/impl/UResource$Key;->setString(Ljava/lang/String;)Landroid/icu/impl/UResource$Key; -HSPLandroid/icu/impl/UResource$Key;->toString()Ljava/lang/String; -HSPLandroid/icu/impl/UResource$Sink;-><init>()V -HSPLandroid/icu/impl/UResource$Value;-><init>()V -HSPLandroid/icu/impl/UResource$Value;->toString()Ljava/lang/String; -HSPLandroid/icu/impl/Utility;->addExact(II)I -HSPLandroid/icu/impl/Utility;->appendTo(Ljava/lang/CharSequence;Ljava/lang/Appendable;)Ljava/lang/Appendable;+]Ljava/lang/Appendable;Ljava/lang/StringBuffer; -HSPLandroid/icu/impl/Utility;->arrayEquals([BLjava/lang/Object;)Z -HSPLandroid/icu/impl/Utility;->arrayRegionMatches([BI[BII)Z -HSPLandroid/icu/impl/Utility;->sameObjects(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLandroid/icu/impl/Utility;->shouldAlwaysBeEscaped(I)Z -HSPLandroid/icu/impl/ZoneMeta$SystemTimeZoneCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/ZoneMeta$SystemTimeZoneCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/OlsonTimeZone; -HSPLandroid/icu/impl/ZoneMeta;->findCLDRCanonicalID(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ZoneMeta;->getCanonicalCLDRID(Landroid/icu/util/TimeZone;)Ljava/lang/String; -HSPLandroid/icu/impl/ZoneMeta;->getCanonicalCLDRID(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/ZoneMeta;->getSystemTimeZone(Ljava/lang/String;)Landroid/icu/impl/OlsonTimeZone; -HSPLandroid/icu/impl/ZoneMeta;->getZoneIDs()[Ljava/lang/String; -HSPLandroid/icu/impl/ZoneMeta;->getZoneIndex(Ljava/lang/String;)I -HSPLandroid/icu/impl/ZoneMeta;->openOlsonResource(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;->clone()Ljava/lang/Object; -HSPLandroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI;->removeAllElements()V -HSPLandroid/icu/impl/coll/Collation;-><clinit>()V -HSPLandroid/icu/impl/coll/Collation;->ceFromCE32(I)J -HSPLandroid/icu/impl/coll/Collation;->ceFromSimpleCE32(I)J -HSPLandroid/icu/impl/coll/Collation;->indexFromCE32(I)I -HSPLandroid/icu/impl/coll/Collation;->isSpecialCE32(I)Z -HSPLandroid/icu/impl/coll/Collation;->makeCE(J)J -HSPLandroid/icu/impl/coll/Collation;->makeCE32FromTagAndIndex(II)I -HSPLandroid/icu/impl/coll/Collation;->tagFromCE32(I)I -HSPLandroid/icu/impl/coll/CollationBuilder$BundleImporter;-><init>()V -HSPLandroid/icu/impl/coll/CollationBuilder;-><init>(Landroid/icu/impl/coll/CollationTailoring;)V -HSPLandroid/icu/impl/coll/CollationBuilder;->parseAndBuild(Ljava/lang/String;)Landroid/icu/impl/coll/CollationTailoring; -HSPLandroid/icu/impl/coll/CollationCompare;->compareUpToQuaternary(Landroid/icu/impl/coll/CollationIterator;Landroid/icu/impl/coll/CollationIterator;Landroid/icu/impl/coll/CollationSettings;)I -HSPLandroid/icu/impl/coll/CollationData;->getCE32(I)I -HSPLandroid/icu/impl/coll/CollationData;->getCE32FromContexts(I)I -HSPLandroid/icu/impl/coll/CollationData;->isUnsafeBackward(IZ)Z -HSPLandroid/icu/impl/coll/CollationDataBuilder;-><init>()V -HSPLandroid/icu/impl/coll/CollationDataBuilder;->hasMappings()Z -HSPLandroid/icu/impl/coll/CollationDataBuilder;->initForTailoring(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/impl/coll/CollationFCD;->hasTccc(I)Z -HSPLandroid/icu/impl/coll/CollationFastLatin;->compareUTF16([C[CILjava/lang/CharSequence;Ljava/lang/CharSequence;I)I -HSPLandroid/icu/impl/coll/CollationFastLatin;->getOptions(Landroid/icu/impl/coll/CollationData;Landroid/icu/impl/coll/CollationSettings;[C)I -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;-><init>()V -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->append(J)V -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->appendUnsafe(J)V -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->ensureAppendCapacity(I)V -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->get(I)J -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->incLength()V -HSPLandroid/icu/impl/coll/CollationIterator$CEBuffer;->set(IJ)J -HSPLandroid/icu/impl/coll/CollationIterator;-><clinit>()V -HSPLandroid/icu/impl/coll/CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/impl/coll/CollationIterator;->appendCEsFromCE32(Landroid/icu/impl/coll/CollationData;IIZ)V -HSPLandroid/icu/impl/coll/CollationIterator;->clearCEs()V -HSPLandroid/icu/impl/coll/CollationIterator;->clearCEsIfNoneRemaining()V -HSPLandroid/icu/impl/coll/CollationIterator;->makeCodePointAndCE32Pair(II)J -HSPLandroid/icu/impl/coll/CollationIterator;->nextCE()J -HSPLandroid/icu/impl/coll/CollationIterator;->nextCE32FromContraction(Landroid/icu/impl/coll/CollationData;ILjava/lang/CharSequence;III)I -HSPLandroid/icu/impl/coll/CollationIterator;->nextCEFromCE32(Landroid/icu/impl/coll/CollationData;II)J -HSPLandroid/icu/impl/coll/CollationIterator;->reset()V -HSPLandroid/icu/impl/coll/CollationIterator;->reset(Z)V -HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;-><init>([B)V -HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->Append(I)V -HSPLandroid/icu/impl/coll/CollationKeys$SortKeyByteSink;->NumberOfBytesAppended()I -HSPLandroid/icu/impl/coll/CollationKeys;->getSortKeyLevel(II)Landroid/icu/impl/coll/CollationKeys$SortKeyLevel; -HSPLandroid/icu/impl/coll/CollationKeys;->writeSortKeyUpToQuaternary(Landroid/icu/impl/coll/CollationIterator;[ZLandroid/icu/impl/coll/CollationSettings;Landroid/icu/impl/coll/CollationKeys$SortKeyByteSink;ILandroid/icu/impl/coll/CollationKeys$LevelCallback;Z)V -HSPLandroid/icu/impl/coll/CollationLoader;->findWithFallback(Landroid/icu/util/UResourceBundle;Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/impl/coll/CollationLoader;->loadTailoring(Landroid/icu/util/ULocale;Landroid/icu/util/Output;)Landroid/icu/impl/coll/CollationTailoring; -HSPLandroid/icu/impl/coll/CollationRoot;->getRoot()Landroid/icu/impl/coll/CollationTailoring; -HSPLandroid/icu/impl/coll/CollationRootElements;-><init>([J)V -HSPLandroid/icu/impl/coll/CollationRuleParser$Sink;-><init>()V -HSPLandroid/icu/impl/coll/CollationRuleParser;-><init>(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/impl/coll/CollationRuleParser;->getOnOffValue(Ljava/lang/String;)I -HSPLandroid/icu/impl/coll/CollationRuleParser;->isSyntaxChar(I)Z -HSPLandroid/icu/impl/coll/CollationRuleParser;->parse(Ljava/lang/String;)V -HSPLandroid/icu/impl/coll/CollationRuleParser;->parse(Ljava/lang/String;Landroid/icu/impl/coll/CollationSettings;)V -HSPLandroid/icu/impl/coll/CollationRuleParser;->parseSetting()V -HSPLandroid/icu/impl/coll/CollationRuleParser;->readWords(ILjava/lang/StringBuilder;)I -HSPLandroid/icu/impl/coll/CollationRuleParser;->setImporter(Landroid/icu/impl/coll/CollationRuleParser$Importer;)V -HSPLandroid/icu/impl/coll/CollationRuleParser;->setSink(Landroid/icu/impl/coll/CollationRuleParser$Sink;)V -HSPLandroid/icu/impl/coll/CollationRuleParser;->skipWhiteSpace(I)I -HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/CollationSettings; -HSPLandroid/icu/impl/coll/CollationSettings;->clone()Landroid/icu/impl/coll/SharedObject; -HSPLandroid/icu/impl/coll/CollationSettings;->dontCheckFCD()Z -HSPLandroid/icu/impl/coll/CollationSettings;->getFlag(I)Z -HSPLandroid/icu/impl/coll/CollationSettings;->getStrength()I -HSPLandroid/icu/impl/coll/CollationSettings;->getStrength(I)I -HSPLandroid/icu/impl/coll/CollationSettings;->getTertiaryMask(I)I -HSPLandroid/icu/impl/coll/CollationSettings;->hasReordering()Z -HSPLandroid/icu/impl/coll/CollationSettings;->isNumeric()Z -HSPLandroid/icu/impl/coll/CollationSettings;->isTertiaryWithCaseBits(I)Z -HSPLandroid/icu/impl/coll/CollationSettings;->setFlag(IZ)V -HSPLandroid/icu/impl/coll/CollationSettings;->setStrength(I)V -HSPLandroid/icu/impl/coll/CollationTailoring;-><init>(Landroid/icu/impl/coll/SharedObject$Reference;)V -HSPLandroid/icu/impl/coll/CollationTailoring;->getRules()Ljava/lang/String; -HSPLandroid/icu/impl/coll/CollationTailoring;->setRules(Ljava/lang/String;)V -HSPLandroid/icu/impl/coll/CollationTailoring;->setVersion(II)V -HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><clinit>()V -HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;->handleNextCE32()J -HSPLandroid/icu/impl/coll/FCDUTF16CollationIterator;->setText(ZLjava/lang/CharSequence;I)V -HSPLandroid/icu/impl/coll/SharedObject$Reference;->clear()V -HSPLandroid/icu/impl/coll/SharedObject$Reference;->clone()Landroid/icu/impl/coll/SharedObject$Reference; -HSPLandroid/icu/impl/coll/SharedObject$Reference;->copyOnWrite()Landroid/icu/impl/coll/SharedObject; -HSPLandroid/icu/impl/coll/SharedObject$Reference;->finalize()V -HSPLandroid/icu/impl/coll/SharedObject$Reference;->readOnly()Landroid/icu/impl/coll/SharedObject; -HSPLandroid/icu/impl/coll/SharedObject;->addRef()V -HSPLandroid/icu/impl/coll/SharedObject;->clone()Landroid/icu/impl/coll/SharedObject; -HSPLandroid/icu/impl/coll/SharedObject;->getRefCount()I -HSPLandroid/icu/impl/coll/SharedObject;->removeRef()V -HSPLandroid/icu/impl/coll/UTF16CollationIterator;-><clinit>()V -HSPLandroid/icu/impl/coll/UTF16CollationIterator;-><init>(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/impl/coll/UTF16CollationIterator;->handleNextCE32()J -HSPLandroid/icu/impl/coll/UTF16CollationIterator;->nextCodePoint()I -HSPLandroid/icu/impl/coll/UTF16CollationIterator;->setText(ZLjava/lang/CharSequence;I)V -HSPLandroid/icu/impl/coll/UVector32;-><init>()V -HSPLandroid/icu/impl/coll/UVector32;->addElement(I)V -HSPLandroid/icu/impl/coll/UVector32;->ensureAppendCapacity()V -HSPLandroid/icu/impl/coll/UVector64;-><init>()V -HSPLandroid/icu/impl/locale/AsciiUtil;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z -HSPLandroid/icu/impl/locale/AsciiUtil;->isAlpha(C)Z -HSPLandroid/icu/impl/locale/AsciiUtil;->isAlphaString(Ljava/lang/String;)Z -HSPLandroid/icu/impl/locale/AsciiUtil;->toLower(C)C -HSPLandroid/icu/impl/locale/AsciiUtil;->toLowerString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/AsciiUtil;->toTitleString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/AsciiUtil;->toUpper(C)C -HSPLandroid/icu/impl/locale/AsciiUtil;->toUpperString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale$Cache;->createObject(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale; -HSPLandroid/icu/impl/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key; -HSPLandroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_lang(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_regn(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_scrt(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale$Key;->-$$Nest$fget_vart(Landroid/icu/impl/locale/BaseLocale$Key;)Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/impl/locale/BaseLocale$Key;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/locale/BaseLocale$Key;->hashCode()I+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale$Key;->normalize(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key; -HSPLandroid/icu/impl/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/BaseLocale-IA;)V -HSPLandroid/icu/impl/locale/BaseLocale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/impl/locale/BaseLocale; -HSPLandroid/icu/impl/locale/BaseLocale;->getLanguage()Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale;->getRegion()Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale;->getScript()Ljava/lang/String; -HSPLandroid/icu/impl/locale/BaseLocale;->getVariant()Ljava/lang/String; -HSPLandroid/icu/impl/locale/InternalLocaleBuilder;-><init>()V -HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->getBaseLocale()Landroid/icu/impl/locale/BaseLocale; -HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->getLocaleExtensions()Landroid/icu/impl/locale/LocaleExtensions; -HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->setLanguage(Ljava/lang/String;)Landroid/icu/impl/locale/InternalLocaleBuilder; -HSPLandroid/icu/impl/locale/InternalLocaleBuilder;->setRegion(Ljava/lang/String;)Landroid/icu/impl/locale/InternalLocaleBuilder; -HSPLandroid/icu/impl/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z -HSPLandroid/icu/impl/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z -HSPLandroid/icu/impl/locale/LocaleExtensions;->getKeys()Ljava/util/Set; -HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLandroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object; -HSPLandroid/icu/impl/locale/LocaleObjectCache;->cleanStaleEntries()V -HSPLandroid/icu/impl/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/impl/number/AdoptingModifierStore$1;-><clinit>()V -HSPLandroid/icu/impl/number/AdoptingModifierStore;-><init>(Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/Modifier;)V -HSPLandroid/icu/impl/number/AdoptingModifierStore;->getModifierWithoutPlural(Landroid/icu/impl/number/Modifier$Signum;)Landroid/icu/impl/number/Modifier;+]Landroid/icu/impl/number/Modifier$Signum;Landroid/icu/impl/number/Modifier$Signum; -HSPLandroid/icu/impl/number/AffixUtils;->containsType(Ljava/lang/CharSequence;I)Z -HSPLandroid/icu/impl/number/AffixUtils;->escape(Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLandroid/icu/impl/number/AffixUtils;->getFieldForType(I)Landroid/icu/text/NumberFormat$Field; -HSPLandroid/icu/impl/number/AffixUtils;->getOffset(J)I -HSPLandroid/icu/impl/number/AffixUtils;->getState(J)I -HSPLandroid/icu/impl/number/AffixUtils;->getType(J)I -HSPLandroid/icu/impl/number/AffixUtils;->getTypeOrCp(J)I -HSPLandroid/icu/impl/number/AffixUtils;->hasCurrencySymbols(Ljava/lang/CharSequence;)Z -HSPLandroid/icu/impl/number/AffixUtils;->hasNext(JLjava/lang/CharSequence;)Z -HSPLandroid/icu/impl/number/AffixUtils;->iterateWithConsumer(Ljava/lang/CharSequence;Landroid/icu/impl/number/AffixUtils$TokenConsumer;)V -HSPLandroid/icu/impl/number/AffixUtils;->makeTag(IIII)J -HSPLandroid/icu/impl/number/AffixUtils;->nextToken(JLjava/lang/CharSequence;)J -HSPLandroid/icu/impl/number/AffixUtils;->unescape(Ljava/lang/CharSequence;Landroid/icu/impl/FormattedStringBuilder;ILandroid/icu/impl/number/AffixUtils$SymbolProvider;Landroid/icu/text/NumberFormat$Field;)I -HSPLandroid/icu/impl/number/AffixUtils;->unescapedCount(Ljava/lang/CharSequence;ZLandroid/icu/impl/number/AffixUtils$SymbolProvider;)I -HSPLandroid/icu/impl/number/ConstantAffixModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder; -HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;-><init>(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;ZZ)V -HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;-><init>(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;ZZLandroid/icu/impl/number/Modifier$Parameters;)V -HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder; -HSPLandroid/icu/impl/number/ConstantMultiFieldModifier;->getPrefixLength()I -HSPLandroid/icu/impl/number/CurrencySpacingEnabledModifier;->applyCurrencySpacing(Landroid/icu/impl/FormattedStringBuilder;IIIILandroid/icu/text/DecimalFormatSymbols;)I -HSPLandroid/icu/impl/number/CurrencySpacingEnabledModifier;->applyCurrencySpacingAffix(Landroid/icu/impl/FormattedStringBuilder;IBLandroid/icu/text/DecimalFormatSymbols;)I -HSPLandroid/icu/impl/number/CustomSymbolCurrency;->resolve(Landroid/icu/util/Currency;Landroid/icu/util/ULocale;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/util/Currency;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/util/Currency;Landroid/icu/util/Currency; -HSPLandroid/icu/impl/number/DecimalFormatProperties;-><init>()V -HSPLandroid/icu/impl/number/DecimalFormatProperties;->_clear()Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->_copyFrom(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->clear()Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->clone()Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->copyFrom(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCompactStyle()Landroid/icu/text/CompactDecimalFormat$CompactStyle; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrency()Landroid/icu/util/Currency; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrencyAsDecimal()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrencyPluralInfo()Landroid/icu/text/CurrencyPluralInfo; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getCurrencyUsage()Landroid/icu/util/Currency$CurrencyUsage; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getDecimalPatternMatchRequired()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getDecimalSeparatorAlwaysShown()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getExponentSignAlwaysShown()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getFormatWidth()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getGroupingSize()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getGroupingUsed()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMagnitudeMultiplier()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMathContext()Ljava/math/MathContext; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMaximumFractionDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMaximumIntegerDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMaximumSignificantDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumExponentDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumFractionDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumGroupingDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumIntegerDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMinimumSignificantDigits()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getMultiplier()Ljava/math/BigDecimal; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativePrefix()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativePrefixPattern()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativeSuffix()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getNegativeSuffixPattern()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPadPosition()Landroid/icu/impl/number/Padder$PadPosition; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPadString()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseCaseSensitive()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseIntegerOnly()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseMode()Landroid/icu/impl/number/DecimalFormatProperties$ParseMode; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseNoExponent()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getParseToBigDecimal()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPluralRules()Landroid/icu/text/PluralRules; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositivePrefix()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositivePrefixPattern()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositiveSuffix()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getPositiveSuffixPattern()Ljava/lang/String; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getRoundingIncrement()Ljava/math/BigDecimal; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getRoundingMode()Ljava/math/RoundingMode; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getSecondaryGroupingSize()I -HSPLandroid/icu/impl/number/DecimalFormatProperties;->getSignAlwaysShown()Z -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setCurrency(Landroid/icu/util/Currency;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setCurrencyAsDecimal(Z)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setDecimalSeparatorAlwaysShown(Z)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setExponentSignAlwaysShown(Z)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setFormatWidth(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setGroupingSize(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setGroupingUsed(Z)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMagnitudeMultiplier(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMathContext(Ljava/math/MathContext;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMaximumFractionDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMaximumIntegerDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMaximumSignificantDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumExponentDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumFractionDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumIntegerDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setMinimumSignificantDigits(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setNegativePrefixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setNegativeSuffixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPadPosition(Landroid/icu/impl/number/Padder$PadPosition;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPadString(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setParseIntegerOnly(Z)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setParseMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPositivePrefixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setPositiveSuffixPattern(Ljava/lang/String;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setRoundingIncrement(Ljava/math/BigDecimal;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setRoundingMode(Ljava/math/RoundingMode;)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalFormatProperties;->setSecondaryGroupingSize(I)Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;-><init>()V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigDecimal(Ljava/math/BigDecimal;)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToBigInteger(Ljava/math/BigInteger;)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToDoubleFast(D)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->_setToLong(J)V+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->adjustMagnitude(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->appendDigit(BIZ)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->applyMaxInteger(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->convertToAccurateDouble()V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->copyFrom(Landroid/icu/impl/number/DecimalQuantity;)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->fitsInLong()Z -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getDigit(I)B+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getLowerDisplayMagnitude()I -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getMagnitude()I -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getStandardPlural(Landroid/icu/text/PluralRules;)Landroid/icu/impl/StandardPlural; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->getUpperDisplayMagnitude()I -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isInfinite()Z -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isNaN()Z -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isNegative()Z -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->isZeroish()Z -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->negate()V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->populateUFieldPosition(Ljava/text/FieldPosition;)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->roundToMagnitude(ILjava/math/MathContext;)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->roundToMagnitude(ILjava/math/MathContext;Z)V+]Ljava/math/MathContext;Ljava/math/MathContext;]Ljava/math/RoundingMode;Ljava/math/RoundingMode;]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->safeSubtract(II)I -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setMinFraction(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setMinInteger(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToBigDecimal(Ljava/math/BigDecimal;)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToDouble(D)V+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToInt(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->setToLong(J)V -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->signum()Landroid/icu/impl/number/Modifier$Signum;+]Landroid/icu/impl/number/DecimalQuantity_AbstractBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/DecimalQuantity_AbstractBCD;->toLong(Z)J -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>()V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(D)V+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(J)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(Ljava/lang/Number;)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;-><init>(Ljava/math/BigDecimal;)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->compact()V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->copyBcdFrom(Landroid/icu/impl/number/DecimalQuantity;)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->createCopy()Landroid/icu/impl/number/DecimalQuantity; -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->fromExponentString(Ljava/lang/String;)Landroid/icu/impl/number/DecimalQuantity; -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->getDigitPos(I)B -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->getVisibleFractionCount(Ljava/lang/String;)I -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->readIntToBcd(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->readLongToBcd(J)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->setBcdToZero()V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->setDigitPos(IB)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->shiftLeft(I)V -HSPLandroid/icu/impl/number/DecimalQuantity_DualStorageBCD;->shiftRight(I)V -HSPLandroid/icu/impl/number/Grouper;-><init>(SSS)V -HSPLandroid/icu/impl/number/Grouper;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/Grouper; -HSPLandroid/icu/impl/number/Grouper;->getInstance(SSS)Landroid/icu/impl/number/Grouper; -HSPLandroid/icu/impl/number/Grouper;->getMinGroupingForLocale(Landroid/icu/util/ULocale;)S -HSPLandroid/icu/impl/number/Grouper;->getPrimary()S -HSPLandroid/icu/impl/number/Grouper;->getSecondary()S -HSPLandroid/icu/impl/number/Grouper;->groupAtPosition(ILandroid/icu/impl/number/DecimalQuantity;)Z -HSPLandroid/icu/impl/number/Grouper;->withLocaleData(Landroid/icu/util/ULocale;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)Landroid/icu/impl/number/Grouper; -HSPLandroid/icu/impl/number/LongNameHandler$PluralTableSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/number/LongNameHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/impl/number/LongNameHandler;->simpleFormatsToModifiers([Ljava/lang/String;Landroid/icu/text/NumberFormat$Field;)V -HSPLandroid/icu/impl/number/MacroProps;-><init>()V -HSPLandroid/icu/impl/number/MacroProps;->fallback(Landroid/icu/impl/number/MacroProps;)V -HSPLandroid/icu/impl/number/MicroProps;-><init>(Z)V -HSPLandroid/icu/impl/number/MicroProps;->clone()Ljava/lang/Object; -HSPLandroid/icu/impl/number/MicroProps;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/impl/number/Modifier$Signum;->values()[Landroid/icu/impl/number/Modifier$Signum; -HSPLandroid/icu/impl/number/MultiplierFormatHandler;-><init>(Landroid/icu/number/Scale;Landroid/icu/impl/number/MicroPropsGenerator;)V -HSPLandroid/icu/impl/number/MultiplierFormatHandler;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;-><init>(Landroid/icu/impl/number/AdoptingModifierStore;Landroid/icu/text/PluralRules;)V -HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->addToChain(Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier; -HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->applyToMicros(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;)V+]Landroid/icu/impl/number/AdoptingModifierStore;Landroid/icu/impl/number/AdoptingModifierStore;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MicroProps;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;]Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier; -HSPLandroid/icu/impl/number/MutablePatternModifier;-><init>(Z)V -HSPLandroid/icu/impl/number/MutablePatternModifier;->addToChain(Landroid/icu/impl/number/MicroPropsGenerator;)Landroid/icu/impl/number/MicroPropsGenerator; -HSPLandroid/icu/impl/number/MutablePatternModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I -HSPLandroid/icu/impl/number/MutablePatternModifier;->createConstantModifier(Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/ConstantMultiFieldModifier; -HSPLandroid/icu/impl/number/MutablePatternModifier;->createImmutable()Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier; -HSPLandroid/icu/impl/number/MutablePatternModifier;->getPrefixLength()I -HSPLandroid/icu/impl/number/MutablePatternModifier;->getSymbol(I)Ljava/lang/CharSequence; -HSPLandroid/icu/impl/number/MutablePatternModifier;->insertPrefix(Landroid/icu/impl/FormattedStringBuilder;I)I -HSPLandroid/icu/impl/number/MutablePatternModifier;->insertSuffix(Landroid/icu/impl/FormattedStringBuilder;I)I -HSPLandroid/icu/impl/number/MutablePatternModifier;->needsPlurals()Z -HSPLandroid/icu/impl/number/MutablePatternModifier;->prepareAffix(Z)V -HSPLandroid/icu/impl/number/MutablePatternModifier;->processQuantity(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/impl/number/MutablePatternModifier;->setNumberProperties(Landroid/icu/impl/number/Modifier$Signum;Landroid/icu/impl/StandardPlural;)V -HSPLandroid/icu/impl/number/MutablePatternModifier;->setPatternAttributes(Landroid/icu/number/NumberFormatter$SignDisplay;ZZ)V -HSPLandroid/icu/impl/number/MutablePatternModifier;->setPatternInfo(Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/text/NumberFormat$Field;)V -HSPLandroid/icu/impl/number/MutablePatternModifier;->setSymbols(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/util/Currency;Landroid/icu/number/NumberFormatter$UnitWidth;Landroid/icu/text/PluralRules;)V -HSPLandroid/icu/impl/number/Padder;->isValid()Z -HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;-><init>(Ljava/lang/String;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo-IA;)V -HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getEndpoints(I)J -HSPLandroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getString(I)Ljava/lang/String; -HSPLandroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;-><init>()V -HSPLandroid/icu/impl/number/PatternStringParser$ParserState;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/number/PatternStringParser$ParserState;->next()I -HSPLandroid/icu/impl/number/PatternStringParser$ParserState;->peek()I -HSPLandroid/icu/impl/number/PatternStringParser;->consumeAffix(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)J -HSPLandroid/icu/impl/number/PatternStringParser;->consumeExponent(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V -HSPLandroid/icu/impl/number/PatternStringParser;->consumeFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V -HSPLandroid/icu/impl/number/PatternStringParser;->consumeFractionFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V -HSPLandroid/icu/impl/number/PatternStringParser;->consumeIntegerFormat(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V+]Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParserState; -HSPLandroid/icu/impl/number/PatternStringParser;->consumeLiteral(Landroid/icu/impl/number/PatternStringParser$ParserState;)V -HSPLandroid/icu/impl/number/PatternStringParser;->consumePadding(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;Landroid/icu/impl/number/Padder$PadPosition;)V -HSPLandroid/icu/impl/number/PatternStringParser;->consumePattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;)V -HSPLandroid/icu/impl/number/PatternStringParser;->consumeSubpattern(Landroid/icu/impl/number/PatternStringParser$ParserState;Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo;)V -HSPLandroid/icu/impl/number/PatternStringParser;->parseToExistingProperties(Ljava/lang/String;Landroid/icu/impl/number/DecimalFormatProperties;I)V -HSPLandroid/icu/impl/number/PatternStringParser;->parseToExistingPropertiesImpl(Ljava/lang/String;Landroid/icu/impl/number/DecimalFormatProperties;I)V -HSPLandroid/icu/impl/number/PatternStringParser;->parseToPatternInfo(Ljava/lang/String;)Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo; -HSPLandroid/icu/impl/number/PatternStringParser;->patternInfoToProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;I)V -HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;-><clinit>()V -HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;-><init>(Ljava/lang/String;I)V -HSPLandroid/icu/impl/number/PatternStringUtils$PatternSignType;->values()[Landroid/icu/impl/number/PatternStringUtils$PatternSignType; -HSPLandroid/icu/impl/number/PatternStringUtils;->patternInfoToStringBuilder(Landroid/icu/impl/number/AffixPatternProvider;ZLandroid/icu/impl/number/PatternStringUtils$PatternSignType;ZLandroid/icu/impl/StandardPlural;ZLjava/lang/StringBuilder;)V -HSPLandroid/icu/impl/number/PatternStringUtils;->propertiesToPatternString(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/PatternStringUtils;->resolveSignDisplay(Landroid/icu/number/NumberFormatter$SignDisplay;Landroid/icu/impl/number/Modifier$Signum;)Landroid/icu/impl/number/PatternStringUtils$PatternSignType; -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;-><init>(Landroid/icu/impl/number/DecimalFormatProperties;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->charAt(II)C -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->containsSymbolType(I)Z -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->currencyAsDecimal()Z -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->forProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/AffixPatternProvider; -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->getString(I)Ljava/lang/String; -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->hasBody()Z -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->hasCurrencySign()Z -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->hasNegativeSubpattern()Z+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/impl/number/PropertiesAffixPatternProvider;->length(I)I -HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOr34Digits(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext; -HSPLandroid/icu/impl/number/RoundingUtils;->getMathContextOrUnlimited(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/math/MathContext; -HSPLandroid/icu/impl/number/RoundingUtils;->getRoundingDirection(ZZIILjava/lang/Object;)Z -HSPLandroid/icu/impl/number/RoundingUtils;->roundsAtMidpoint(I)Z -HSPLandroid/icu/impl/number/RoundingUtils;->scaleFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/Scale; -HSPLandroid/icu/impl/number/SimpleModifier;-><init>(Ljava/lang/String;Ljava/text/Format$Field;ZLandroid/icu/impl/number/Modifier$Parameters;)V -HSPLandroid/icu/impl/number/SimpleModifier;->apply(Landroid/icu/impl/FormattedStringBuilder;II)I -HSPLandroid/icu/impl/number/parse/AffixMatcher$1;->compare(Landroid/icu/impl/number/parse/AffixMatcher;Landroid/icu/impl/number/parse/AffixMatcher;)I -HSPLandroid/icu/impl/number/parse/AffixMatcher$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/icu/impl/number/parse/AffixMatcher;-><init>(Landroid/icu/impl/number/parse/AffixPatternMatcher;Landroid/icu/impl/number/parse/AffixPatternMatcher;I)V -HSPLandroid/icu/impl/number/parse/AffixMatcher;->createMatchers(Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/AffixTokenMatcherFactory;Landroid/icu/impl/number/parse/IgnorablesMatcher;I)V -HSPLandroid/icu/impl/number/parse/AffixMatcher;->getInstance(Landroid/icu/impl/number/parse/AffixPatternMatcher;Landroid/icu/impl/number/parse/AffixPatternMatcher;I)Landroid/icu/impl/number/parse/AffixMatcher; -HSPLandroid/icu/impl/number/parse/AffixMatcher;->isInteresting(Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/parse/IgnorablesMatcher;I)Z -HSPLandroid/icu/impl/number/parse/AffixMatcher;->length(Landroid/icu/impl/number/parse/AffixPatternMatcher;)I -HSPLandroid/icu/impl/number/parse/AffixMatcher;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)Z -HSPLandroid/icu/impl/number/parse/AffixMatcher;->matched(Landroid/icu/impl/number/parse/AffixPatternMatcher;Ljava/lang/String;)Z -HSPLandroid/icu/impl/number/parse/AffixMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/AffixMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z -HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->consumeToken(I)V -HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->fromAffixPattern(Ljava/lang/String;Landroid/icu/impl/number/parse/AffixTokenMatcherFactory;I)Landroid/icu/impl/number/parse/AffixPatternMatcher; -HSPLandroid/icu/impl/number/parse/AffixPatternMatcher;->getPattern()Ljava/lang/String; -HSPLandroid/icu/impl/number/parse/AffixTokenMatcherFactory;-><init>()V -HSPLandroid/icu/impl/number/parse/AffixTokenMatcherFactory;->minusSign()Landroid/icu/impl/number/parse/MinusSignMatcher; -HSPLandroid/icu/impl/number/parse/DecimalMatcher;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;I)V -HSPLandroid/icu/impl/number/parse/DecimalMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;I)Landroid/icu/impl/number/parse/DecimalMatcher; -HSPLandroid/icu/impl/number/parse/DecimalMatcher;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)Z -HSPLandroid/icu/impl/number/parse/DecimalMatcher;->match(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;I)Z+]Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/number/parse/ParsedNumber;Landroid/icu/impl/number/parse/ParsedNumber;]Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;]Landroid/icu/impl/StringSegment;Landroid/icu/impl/StringSegment; -HSPLandroid/icu/impl/number/parse/DecimalMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/DecimalMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z -HSPLandroid/icu/impl/number/parse/DecimalMatcher;->validateGroup(IIZ)Z -HSPLandroid/icu/impl/number/parse/IgnorablesMatcher;->getInstance(I)Landroid/icu/impl/number/parse/IgnorablesMatcher; -HSPLandroid/icu/impl/number/parse/InfinityMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/impl/number/parse/InfinityMatcher; -HSPLandroid/icu/impl/number/parse/MinusSignMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;Z)Landroid/icu/impl/number/parse/MinusSignMatcher; -HSPLandroid/icu/impl/number/parse/NanMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;I)Landroid/icu/impl/number/parse/NanMatcher; -HSPLandroid/icu/impl/number/parse/NumberParserImpl;-><init>(I)V -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->addMatcher(Landroid/icu/impl/number/parse/NumberParseMatcher;)V -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->addMatchers(Ljava/util/Collection;)V -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->createParserFromProperties(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Z)Landroid/icu/impl/number/parse/NumberParserImpl;+]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/impl/number/parse/NumberParserImpl;Landroid/icu/impl/number/parse/NumberParserImpl;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties; -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->freeze()V -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->getParseFlags()I -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->parse(Ljava/lang/String;IZLandroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/NumberParserImpl;->parseGreedy(Landroid/icu/impl/StringSegment;Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/ParsedNumber;-><init>()V -HSPLandroid/icu/impl/number/parse/ParsedNumber;->clear()V -HSPLandroid/icu/impl/number/parse/ParsedNumber;->getNumber(I)Ljava/lang/Number; -HSPLandroid/icu/impl/number/parse/ParsedNumber;->postProcess()V -HSPLandroid/icu/impl/number/parse/ParsedNumber;->seenNumber()Z -HSPLandroid/icu/impl/number/parse/ParsedNumber;->setCharsConsumed(Landroid/icu/impl/StringSegment;)V -HSPLandroid/icu/impl/number/parse/ParsedNumber;->success()Z -HSPLandroid/icu/impl/number/parse/RequireAffixValidator;-><init>()V -HSPLandroid/icu/impl/number/parse/RequireAffixValidator;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/RequireNumberValidator;-><init>()V -HSPLandroid/icu/impl/number/parse/RequireNumberValidator;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/ScientificMatcher;-><init>(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;)V -HSPLandroid/icu/impl/number/parse/ScientificMatcher;->getInstance(Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/Grouper;)Landroid/icu/impl/number/parse/ScientificMatcher; -HSPLandroid/icu/impl/number/parse/ScientificMatcher;->minusSignSet()Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/impl/number/parse/ScientificMatcher;->plusSignSet()Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/impl/number/parse/ScientificMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/ScientificMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z -HSPLandroid/icu/impl/number/parse/SeriesMatcher;-><init>()V -HSPLandroid/icu/impl/number/parse/SeriesMatcher;->addMatcher(Landroid/icu/impl/number/parse/NumberParseMatcher;)V -HSPLandroid/icu/impl/number/parse/SeriesMatcher;->freeze()V -HSPLandroid/icu/impl/number/parse/SeriesMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z -HSPLandroid/icu/impl/number/parse/SymbolMatcher;->postProcess(Landroid/icu/impl/number/parse/ParsedNumber;)V -HSPLandroid/icu/impl/number/parse/SymbolMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z -HSPLandroid/icu/impl/number/parse/ValidationMatcher;-><init>()V -HSPLandroid/icu/impl/number/parse/ValidationMatcher;->smokeTest(Landroid/icu/impl/StringSegment;)Z -HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;-><clinit>()V -HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;-><init>(Ljava/util/Map;)V -HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangesDataSink;-><init>(Landroid/icu/impl/number/range/StandardPluralRanges;)V -HSPLandroid/icu/impl/number/range/StandardPluralRanges$PluralRangesDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/impl/number/range/StandardPluralRanges;-><init>()V -HSPLandroid/icu/impl/number/range/StandardPluralRanges;->addPluralRange(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V -HSPLandroid/icu/impl/number/range/StandardPluralRanges;->forSet(Ljava/lang/String;)Landroid/icu/impl/number/range/StandardPluralRanges; -HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getLanguageToSet()Ljava/util/Map; -HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getPluralRangesData(Ljava/lang/String;Landroid/icu/impl/number/range/StandardPluralRanges;)V -HSPLandroid/icu/impl/number/range/StandardPluralRanges;->getSetForLocale(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/impl/number/range/StandardPluralRanges;->setCapacity(I)V -HSPLandroid/icu/lang/UCharacter;->codePointAt(Ljava/lang/CharSequence;I)I -HSPLandroid/icu/lang/UCharacter;->digit(I)I -HSPLandroid/icu/lang/UCharacter;->foldCase(II)I -HSPLandroid/icu/lang/UCharacter;->foldCase(IZ)I -HSPLandroid/icu/lang/UCharacter;->getPropertyValueEnumNoThrow(ILjava/lang/CharSequence;)I -HSPLandroid/icu/lang/UCharacter;->getType(I)I -HSPLandroid/icu/lang/UCharacter;->isDigit(I)Z -HSPLandroid/icu/lang/UCharacter;->isLowerCase(I)Z -HSPLandroid/icu/lang/UScript$ScriptMetadata;->getScriptProps(I)I -HSPLandroid/icu/lang/UScript;->getCodeFromName(Ljava/lang/String;)I -HSPLandroid/icu/lang/UScript;->isRightToLeft(I)Z -HSPLandroid/icu/number/CurrencyPrecision;->withCurrency(Landroid/icu/util/Currency;)Landroid/icu/number/Precision; -HSPLandroid/icu/number/FormattedNumber;->appendTo(Ljava/lang/Appendable;)Ljava/lang/Appendable; -HSPLandroid/icu/number/FractionPrecision;-><init>()V -HSPLandroid/icu/number/IntegerWidth;-><init>(II)V -HSPLandroid/icu/number/IntegerWidth;->truncateAt(I)Landroid/icu/number/IntegerWidth; -HSPLandroid/icu/number/IntegerWidth;->zeroFillTo(I)Landroid/icu/number/IntegerWidth; -HSPLandroid/icu/number/LocalizedNumberFormatter;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V -HSPLandroid/icu/number/LocalizedNumberFormatter;->computeCompiled()Z+]Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;]Landroid/icu/number/LocalizedNumberFormatter;Landroid/icu/number/LocalizedNumberFormatter;]Ljava/lang/Long;Ljava/lang/Long; -HSPLandroid/icu/number/LocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/LocalizedNumberFormatter; -HSPLandroid/icu/number/LocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/NumberFormatterSettings; -HSPLandroid/icu/number/LocalizedNumberFormatter;->format(D)Landroid/icu/number/FormattedNumber; -HSPLandroid/icu/number/LocalizedNumberFormatter;->format(J)Landroid/icu/number/FormattedNumber; -HSPLandroid/icu/number/LocalizedNumberFormatter;->format(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/number/FormattedNumber; -HSPLandroid/icu/number/LocalizedNumberFormatter;->formatImpl(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/number/NumberFormatterImpl;Landroid/icu/number/NumberFormatterImpl; -HSPLandroid/icu/number/LocalizedNumberFormatter;->getAffixImpl(ZZ)Ljava/lang/String; -HSPLandroid/icu/number/NumberFormatter;->fromDecimalFormat(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter; -HSPLandroid/icu/number/NumberFormatter;->with()Landroid/icu/number/UnlocalizedNumberFormatter; -HSPLandroid/icu/number/NumberFormatterImpl;-><init>(Landroid/icu/impl/number/MacroProps;)V -HSPLandroid/icu/number/NumberFormatterImpl;->format(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/number/NumberFormatterImpl;Landroid/icu/number/NumberFormatterImpl; -HSPLandroid/icu/number/NumberFormatterImpl;->formatStatic(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffix(BLandroid/icu/impl/StandardPlural;Landroid/icu/impl/FormattedStringBuilder;)I -HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffixImpl(Landroid/icu/impl/number/MicroPropsGenerator;BLandroid/icu/impl/FormattedStringBuilder;)I -HSPLandroid/icu/number/NumberFormatterImpl;->getPrefixSuffixStatic(Landroid/icu/impl/number/MacroProps;BLandroid/icu/impl/StandardPlural;Landroid/icu/impl/FormattedStringBuilder;)I -HSPLandroid/icu/number/NumberFormatterImpl;->macrosToMicroGenerator(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/MicroProps;Z)Landroid/icu/impl/number/MicroPropsGenerator;+]Landroid/icu/impl/number/MutablePatternModifier;Landroid/icu/impl/number/MutablePatternModifier;]Landroid/icu/text/NumberingSystem;Landroid/icu/text/NumberingSystem;]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl; -HSPLandroid/icu/number/NumberFormatterImpl;->preProcess(Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps;+]Landroid/icu/impl/number/MicroPropsGenerator;Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/number/NumberFormatterImpl;->preProcessUnsafe(Landroid/icu/impl/number/MacroProps;Landroid/icu/impl/number/DecimalQuantity;)Landroid/icu/impl/number/MicroProps; -HSPLandroid/icu/number/NumberFormatterImpl;->unitIsBaseUnit(Landroid/icu/util/MeasureUnit;)Z -HSPLandroid/icu/number/NumberFormatterImpl;->unitIsCurrency(Landroid/icu/util/MeasureUnit;)Z -HSPLandroid/icu/number/NumberFormatterImpl;->unitIsPercent(Landroid/icu/util/MeasureUnit;)Z -HSPLandroid/icu/number/NumberFormatterImpl;->unitIsPermille(Landroid/icu/util/MeasureUnit;)Z -HSPLandroid/icu/number/NumberFormatterImpl;->writeAffixes(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/FormattedStringBuilder;II)I+]Landroid/icu/impl/number/Padder;Landroid/icu/impl/number/Padder;]Landroid/icu/impl/number/Modifier;Landroid/icu/impl/number/ConstantMultiFieldModifier;,Landroid/icu/impl/number/ConstantAffixModifier; -HSPLandroid/icu/number/NumberFormatterImpl;->writeFractionDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I+]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/number/NumberFormatterImpl;->writeIntegerDigits(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I+]Landroid/icu/impl/number/Grouper;Landroid/icu/impl/number/Grouper;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/FormattedStringBuilder;Landroid/icu/impl/FormattedStringBuilder;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/number/NumberFormatterImpl;->writeNumber(Landroid/icu/impl/number/MicroProps;Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;I)I+]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/number/NumberFormatterSettings;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V -HSPLandroid/icu/number/NumberFormatterSettings;->macros(Landroid/icu/impl/number/MacroProps;)Landroid/icu/number/NumberFormatterSettings; -HSPLandroid/icu/number/NumberFormatterSettings;->perUnit(Landroid/icu/util/MeasureUnit;)Landroid/icu/number/NumberFormatterSettings; -HSPLandroid/icu/number/NumberFormatterSettings;->resolve()Landroid/icu/impl/number/MacroProps; -HSPLandroid/icu/number/NumberFormatterSettings;->unit(Landroid/icu/util/MeasureUnit;)Landroid/icu/number/NumberFormatterSettings; -HSPLandroid/icu/number/NumberFormatterSettings;->unitWidth(Landroid/icu/number/NumberFormatter$UnitWidth;)Landroid/icu/number/NumberFormatterSettings; -HSPLandroid/icu/number/NumberPropertyMapper;->create(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/number/UnlocalizedNumberFormatter; -HSPLandroid/icu/number/NumberPropertyMapper;->oldToNew(Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/impl/number/DecimalFormatProperties;)Landroid/icu/impl/number/MacroProps;+]Ljava/math/MathContext;Ljava/math/MathContext;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/number/AffixPatternProvider;Landroid/icu/impl/number/PropertiesAffixPatternProvider;]Landroid/icu/number/Precision;Landroid/icu/number/Precision$FractionRounderImpl;,Landroid/icu/number/Precision$CurrencyRounderImpl;]Landroid/icu/number/IntegerWidth;Landroid/icu/number/IntegerWidth;]Landroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/impl/number/DecimalFormatProperties;]Landroid/icu/number/CurrencyPrecision;Landroid/icu/number/Precision$CurrencyRounderImpl;]Landroid/icu/util/Currency;Landroid/icu/util/Currency; -HSPLandroid/icu/number/Precision$FractionRounderImpl;-><init>(II)V -HSPLandroid/icu/number/Precision$FractionRounderImpl;->apply(Landroid/icu/impl/number/DecimalQuantity;)V+]Landroid/icu/number/Precision$FractionRounderImpl;Landroid/icu/number/Precision$FractionRounderImpl;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/number/Precision$FractionRounderImpl;->createCopy()Landroid/icu/number/Precision$FractionRounderImpl; -HSPLandroid/icu/number/Precision$FractionRounderImpl;->createCopy()Landroid/icu/number/Precision; -HSPLandroid/icu/number/Precision;->-$$Nest$smgetDisplayMagnitudeFraction(I)I -HSPLandroid/icu/number/Precision;->-$$Nest$smgetRoundingMagnitudeFraction(I)I -HSPLandroid/icu/number/Precision;-><init>()V -HSPLandroid/icu/number/Precision;->constructCurrency(Landroid/icu/util/Currency$CurrencyUsage;)Landroid/icu/number/CurrencyPrecision; -HSPLandroid/icu/number/Precision;->constructFraction(II)Landroid/icu/number/FractionPrecision; -HSPLandroid/icu/number/Precision;->constructFromCurrency(Landroid/icu/number/CurrencyPrecision;Landroid/icu/util/Currency;)Landroid/icu/number/Precision; -HSPLandroid/icu/number/Precision;->getDisplayMagnitudeFraction(I)I -HSPLandroid/icu/number/Precision;->getRoundingMagnitudeFraction(I)I -HSPLandroid/icu/number/Precision;->setResolvedMinFraction(Landroid/icu/impl/number/DecimalQuantity;I)V+]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/number/Precision;->withLocaleData(Landroid/icu/util/Currency;)Landroid/icu/number/Precision; -HSPLandroid/icu/number/Precision;->withMode(Ljava/math/MathContext;)Landroid/icu/number/Precision; -HSPLandroid/icu/number/Scale;->applyTo(Landroid/icu/impl/number/DecimalQuantity;)V -HSPLandroid/icu/number/Scale;->powerOfTen(I)Landroid/icu/number/Scale; -HSPLandroid/icu/number/Scale;->withMathContext(Ljava/math/MathContext;)Landroid/icu/number/Scale; -HSPLandroid/icu/number/UnlocalizedNumberFormatter;-><init>(Landroid/icu/number/NumberFormatterSettings;ILjava/lang/Object;)V -HSPLandroid/icu/number/UnlocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/NumberFormatterSettings; -HSPLandroid/icu/number/UnlocalizedNumberFormatter;->create(ILjava/lang/Object;)Landroid/icu/number/UnlocalizedNumberFormatter; -HSPLandroid/icu/number/UnlocalizedNumberFormatter;->locale(Landroid/icu/util/ULocale;)Landroid/icu/number/LocalizedNumberFormatter; -HSPLandroid/icu/platform/AndroidDataFiles;->generateIcuDataPath()Ljava/lang/String; -HSPLandroid/icu/platform/AndroidDataFiles;->getI18nModuleFile(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/platform/AndroidDataFiles;->getI18nModuleIcuFile(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/platform/AndroidDataFiles;->getTimeZoneModuleFile(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/platform/AndroidDataFiles;->getTimeZoneModuleIcuFile(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/text/Bidi;-><init>(II)V -HSPLandroid/icu/text/Bidi;->DirPropFlag(B)I -HSPLandroid/icu/text/Bidi;->GetParaLevelAt(I)B -HSPLandroid/icu/text/Bidi;->directionFromFlags()B -HSPLandroid/icu/text/Bidi;->getCustomizedClass(I)I -HSPLandroid/icu/text/Bidi;->getDirProps()V -HSPLandroid/icu/text/Bidi;->getDirPropsMemory(I)V -HSPLandroid/icu/text/Bidi;->getLevelsMemory(I)V -HSPLandroid/icu/text/Bidi;->getMemory(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object; -HSPLandroid/icu/text/Bidi;->resolveExplicitLevels()B -HSPLandroid/icu/text/Bidi;->setPara([CB[B)V -HSPLandroid/icu/text/Bidi;->verifyRange(III)V -HSPLandroid/icu/text/BreakIterator$BreakIteratorCache;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/BreakIterator;)V -HSPLandroid/icu/text/BreakIterator$BreakIteratorCache;->createBreakInstance()Landroid/icu/text/BreakIterator; -HSPLandroid/icu/text/BreakIterator$BreakIteratorCache;->getLocale()Landroid/icu/util/ULocale; -HSPLandroid/icu/text/BreakIterator;-><init>()V -HSPLandroid/icu/text/BreakIterator;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/BreakIterator;->getBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator; -HSPLandroid/icu/text/BreakIterator;->getSentenceInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/BreakIterator; -HSPLandroid/icu/text/BreakIterator;->getShim()Landroid/icu/text/BreakIterator$BreakIteratorServiceShim; -HSPLandroid/icu/text/BreakIterator;->getWordInstance(Ljava/util/Locale;)Landroid/icu/text/BreakIterator; -HSPLandroid/icu/text/BreakIterator;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/BreakIterator;->setText(Ljava/lang/String;)V -HSPLandroid/icu/text/BreakIteratorFactory;->createBreakInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator; -HSPLandroid/icu/text/BreakIteratorFactory;->createBreakIterator(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator; -HSPLandroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable; -HSPLandroid/icu/text/CaseMap;->getCaseLocale(Ljava/util/Locale;)I -HSPLandroid/icu/text/CaseMap;->toUpper()Landroid/icu/text/CaseMap$Upper; -HSPLandroid/icu/text/CollationKey;-><init>(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)V -HSPLandroid/icu/text/CollationKey;->getLength()I -HSPLandroid/icu/text/CollationKey;->toByteArray()[B -HSPLandroid/icu/text/Collator$ServiceShim;-><init>()V -HSPLandroid/icu/text/Collator;-><init>()V -HSPLandroid/icu/text/Collator;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/Collator;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;+]Landroid/icu/text/Collator$ServiceShim;Landroid/icu/text/CollatorServiceShim;]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale; -HSPLandroid/icu/text/Collator;->getInstance(Ljava/util/Locale;)Landroid/icu/text/Collator; -HSPLandroid/icu/text/Collator;->getShim()Landroid/icu/text/Collator$ServiceShim; -HSPLandroid/icu/text/CollatorServiceShim$CService$1CollatorFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object; -HSPLandroid/icu/text/CollatorServiceShim$CService;->validateFallbackLocale()Ljava/lang/String; -HSPLandroid/icu/text/CollatorServiceShim;-><init>()V -HSPLandroid/icu/text/CollatorServiceShim;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator; -HSPLandroid/icu/text/CollatorServiceShim;->makeInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator; -HSPLandroid/icu/text/ConstrainedFieldPosition;-><init>()V+]Landroid/icu/text/ConstrainedFieldPosition;Landroid/icu/text/ConstrainedFieldPosition; -HSPLandroid/icu/text/ConstrainedFieldPosition;->constrainField(Ljava/text/Format$Field;)V -HSPLandroid/icu/text/ConstrainedFieldPosition;->getField()Ljava/text/Format$Field; -HSPLandroid/icu/text/ConstrainedFieldPosition;->getFieldValue()Ljava/lang/Object; -HSPLandroid/icu/text/ConstrainedFieldPosition;->getLimit()I -HSPLandroid/icu/text/ConstrainedFieldPosition;->getStart()I -HSPLandroid/icu/text/ConstrainedFieldPosition;->matchesField(Ljava/text/Format$Field;Ljava/lang/Object;)Z+]Landroid/icu/text/ConstrainedFieldPosition$ConstraintType;Landroid/icu/text/ConstrainedFieldPosition$ConstraintType; -HSPLandroid/icu/text/ConstrainedFieldPosition;->reset()V -HSPLandroid/icu/text/ConstrainedFieldPosition;->setState(Ljava/text/Format$Field;Ljava/lang/Object;II)V -HSPLandroid/icu/text/CurrencyDisplayNames;-><init>()V -HSPLandroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames; -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyDigits;-><init>(II)V -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;-><init>(Ljava/lang/String;Ljava/lang/String;JJZ)V -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter; -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->onRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter; -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDate(Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter; -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter; -HSPLandroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withTender()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter; -HSPLandroid/icu/text/CurrencyMetaInfo;->getInstance()Landroid/icu/text/CurrencyMetaInfo; -HSPLandroid/icu/text/DateFormat;-><init>()V -HSPLandroid/icu/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; -HSPLandroid/icu/text/DateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/DateFormat;->get(IILandroid/icu/util/ULocale;Landroid/icu/util/Calendar;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/text/DateFormat;->getCalendar()Landroid/icu/util/Calendar; -HSPLandroid/icu/text/DateFormat;->getContext(Landroid/icu/text/DisplayContext$Type;)Landroid/icu/text/DisplayContext; -HSPLandroid/icu/text/DateFormat;->getDateInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/text/DateFormat;->getInstanceForSkeleton(Ljava/lang/String;Ljava/util/Locale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/text/DateFormat;->getPatternInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/text/DateFormat;->getTimeInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/text/DateFormat;->setCalendar(Landroid/icu/util/Calendar;)V -HSPLandroid/icu/text/DateFormat;->setContext(Landroid/icu/text/DisplayContext;)V -HSPLandroid/icu/text/DateFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V -HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/text/DateFormatSymbols$1;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols; -HSPLandroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;->-$$Nest$fgetdfs(Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;)Landroid/icu/text/DateFormatSymbols; -HSPLandroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;-><init>()V -HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->preEnumerate(Ljava/lang/String;)V -HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->processAliasFromValue(Ljava/lang/String;Landroid/icu/impl/UResource$Value;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType; -HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->processResource(Ljava/lang/String;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/DateFormatSymbols$CalendarDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->values()[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage; -HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;)V -HSPLandroid/icu/text/DateFormatSymbols;-><init>(Ljava/lang/Class;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateFormatSymbols;-><init>(Ljava/lang/Class;Ljava/util/Locale;)V -HSPLandroid/icu/text/DateFormatSymbols;->duplicate([Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/icu/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String; -HSPLandroid/icu/text/DateFormatSymbols;->getEras()[Ljava/lang/String; -HSPLandroid/icu/text/DateFormatSymbols;->getExtendedInstance(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols; -HSPLandroid/icu/text/DateFormatSymbols;->getMonths(II)[Ljava/lang/String; -HSPLandroid/icu/text/DateFormatSymbols;->getWeekdays(II)[Ljava/lang/String; -HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/text/DateFormatSymbols;)V -HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V -HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols;)V -HSPLandroid/icu/text/DateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Ljava/lang/String;)V -HSPLandroid/icu/text/DateFormatSymbols;->loadDayPeriodStrings(Ljava/util/Map;)[Ljava/lang/String; -HSPLandroid/icu/text/DateFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateFormatSymbols;->setTimeSeparatorString(Ljava/lang/String;)V -HSPLandroid/icu/text/DateIntervalFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/text/SimpleDateFormat;)V -HSPLandroid/icu/text/DateIntervalFormat;->adjustFieldWidth(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/lang/String; -HSPLandroid/icu/text/DateIntervalFormat;->concatSingleDate2TimeInterval(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V -HSPLandroid/icu/text/DateIntervalFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/DateIntervalFormat;->formatImpl(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Landroid/icu/text/DateIntervalFormat$FormatOutput;Ljava/util/List;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/DateIntervalFormat;->genIntervalPattern(ILjava/lang/String;Ljava/lang/String;ILjava/util/Map;)Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch; -HSPLandroid/icu/text/DateIntervalFormat;->genSeparateDateTimePtn(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/icu/text/DateTimePatternGenerator;)Z -HSPLandroid/icu/text/DateIntervalFormat;->getConcatenationPattern(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/text/DateIntervalFormat;->getDateTimeSkeleton(Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)V -HSPLandroid/icu/text/DateIntervalFormat;->getInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateIntervalFormat; -HSPLandroid/icu/text/DateIntervalFormat;->initializeIntervalPattern(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/util/Map; -HSPLandroid/icu/text/DateIntervalFormat;->initializePattern(Landroid/icu/impl/ICUCache;)V -HSPLandroid/icu/text/DateIntervalFormat;->normalizeHourMetacharacters(Ljava/lang/String;Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/text/DateIntervalFormat;->setTimeZone(Landroid/icu/util/TimeZone;)V -HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->processSkeletonTable(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/DateIntervalInfo$DateIntervalSink;->validateAndProcessPatternLetter(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/icu/text/DateIntervalInfo;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/DateIntervalInfo;->cloneUnfrozenDII()Ljava/lang/Object; -HSPLandroid/icu/text/DateIntervalInfo;->freeze()Landroid/icu/text/DateIntervalInfo; -HSPLandroid/icu/text/DateIntervalInfo;->getBestSkeleton(Ljava/lang/String;)Landroid/icu/text/DateIntervalFormat$BestMatchInfo; -HSPLandroid/icu/text/DateIntervalInfo;->getDefaultOrder()Z -HSPLandroid/icu/text/DateIntervalInfo;->getIntervalPattern(Ljava/lang/String;I)Landroid/icu/text/DateIntervalInfo$PatternInfo; -HSPLandroid/icu/text/DateIntervalInfo;->initializeData(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateIntervalInfo;->parseSkeleton(Ljava/lang/String;[I)V -HSPLandroid/icu/text/DateIntervalInfo;->setFallbackIntervalPattern(Ljava/lang/String;)V -HSPLandroid/icu/text/DateIntervalInfo;->setIntervalPatternInternally(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/icu/text/DateIntervalInfo$PatternInfo; -HSPLandroid/icu/text/DateIntervalInfo;->setup(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateIntervalInfo;->splitPatternInto2Part(Ljava/lang/String;)I -HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;)V -HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;)V -HSPLandroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V -HSPLandroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;-><init>()V -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)I -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->compareTo(Ljava/lang/Object;)I -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->fieldIsNumeric(I)Z -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getBasePattern()Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getDistance(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;)I -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->getFieldMask()I -HSPLandroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/text/DateTimePatternGenerator$VariableField;Landroid/icu/text/DateTimePatternGenerator$VariableField;]Landroid/icu/text/DateTimePatternGenerator$FormatParser;Landroid/icu/text/DateTimePatternGenerator$FormatParser;]Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; -HSPLandroid/icu/text/DateTimePatternGenerator$DisplayWidth;->cldrKey()Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;-><init>()V -HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V -HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addMissing(I)V -HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->clear()V -HSPLandroid/icu/text/DateTimePatternGenerator$DistanceInfo;->setTo(Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;)V -HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;-><init>()V -HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->addVariable(Ljava/lang/StringBuffer;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->getItems()Ljava/util/List; -HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->quoteLiteral(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$FormatParser; -HSPLandroid/icu/text/DateTimePatternGenerator$FormatParser;->set(Ljava/lang/String;Z)Landroid/icu/text/DateTimePatternGenerator$FormatParser;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/List;Ljava/util/ArrayList;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Landroid/icu/impl/PatternTokenizer;Landroid/icu/impl/PatternTokenizer; -HSPLandroid/icu/text/DateTimePatternGenerator$PatternInfo;-><init>()V -HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;-><init>(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)V -HSPLandroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;-><init>(Ljava/lang/String;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><init>()V -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;Z)Ljava/lang/StringBuilder; -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendTo(Ljava/lang/StringBuilder;ZZ)Ljava/lang/StringBuilder; -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->clear()V -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->compareTo(Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;)I -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldChar(I)C -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->getFieldLength(I)I -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->isFieldEmpty(I)Z -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ICI)V -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->populate(ILjava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toString(Z)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;-><init>(Ljava/lang/String;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->getCanonicalIndex()I -HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->getType()I -HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->isNumeric()Z -HSPLandroid/icu/text/DateTimePatternGenerator$VariableField;->toString()Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;-><init>()V -HSPLandroid/icu/text/DateTimePatternGenerator;->addCLDRData(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->addCanonicalItems()V -HSPLandroid/icu/text/DateTimePatternGenerator;->addICUPatterns(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->addPattern(Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->addPatternWithSkeleton(Ljava/lang/String;Ljava/lang/String;ZLandroid/icu/text/DateTimePatternGenerator$PatternInfo;)Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->adjustFieldTypes(Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->checkFrozen()V -HSPLandroid/icu/text/DateTimePatternGenerator;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/DateTimePatternGenerator;->cloneAsThawed()Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->consumeShortTimePattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->fillInMissing()V -HSPLandroid/icu/text/DateTimePatternGenerator;->freeze()Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormats(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->getAllowedHourFormatsLangCountry(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getAppendFormatNumber(Landroid/icu/impl/UResource$Key;)I -HSPLandroid/icu/text/DateTimePatternGenerator;->getAppendItemFormat(I)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getBestAppending(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;Ljava/util/EnumSet;I)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;IZ)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;I)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getBestPattern(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;IZ)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getBestRaw(Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;ILandroid/icu/text/DateTimePatternGenerator$DistanceInfo;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher; -HSPLandroid/icu/text/DateTimePatternGenerator;->getCLDRFieldAndWidthNumber(Landroid/icu/impl/UResource$Key;)I+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Key; -HSPLandroid/icu/text/DateTimePatternGenerator;->getCalendarTypeToUse(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getCanonicalIndex(Ljava/lang/String;Z)I+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getDateTimeFormat()Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getFilteredPattern(Landroid/icu/text/DateTimePatternGenerator$FormatParser;Ljava/util/BitSet;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->getFrozenInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->getInstance(Ljava/util/Locale;)Landroid/icu/text/DateTimePatternGenerator; -HSPLandroid/icu/text/DateTimePatternGenerator;->hackTimes(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;Ljava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->initData(Landroid/icu/util/ULocale;Z)V -HSPLandroid/icu/text/DateTimePatternGenerator;->isAvailableFormatSet(Ljava/lang/String;)Z -HSPLandroid/icu/text/DateTimePatternGenerator;->isFrozen()Z -HSPLandroid/icu/text/DateTimePatternGenerator;->mapSkeletonMetacharacters(Ljava/lang/String;Ljava/util/EnumSet;)Ljava/lang/String; -HSPLandroid/icu/text/DateTimePatternGenerator;->setAppendItemFormat(ILjava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setAvailableFormat(Ljava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFormat(ILjava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFormat(Ljava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setDateTimeFromCalendar(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setDecimal(Ljava/lang/String;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setDecimalSymbols(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DateTimePatternGenerator;->setFieldDisplayName(ILandroid/icu/text/DateTimePatternGenerator$DisplayWidth;Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V -HSPLandroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V -HSPLandroid/icu/text/DecimalFormat;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/DecimalFormat;->fieldPositionHelper(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/FormattedStringBuilder;Ljava/text/FieldPosition;I)V+]Ljava/text/FieldPosition;Ljava/text/DontCareFieldPosition;]Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -HSPLandroid/icu/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;+]Landroid/icu/number/LocalizedNumberFormatter;Landroid/icu/number/LocalizedNumberFormatter;]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer; -HSPLandroid/icu/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/DecimalFormat;->getDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols; -HSPLandroid/icu/text/DecimalFormat;->getMaximumFractionDigits()I -HSPLandroid/icu/text/DecimalFormat;->getMaximumIntegerDigits()I -HSPLandroid/icu/text/DecimalFormat;->getMinimumFractionDigits()I -HSPLandroid/icu/text/DecimalFormat;->getMinimumIntegerDigits()I -HSPLandroid/icu/text/DecimalFormat;->getNegativePrefix()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormat;->getNegativeSuffix()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormat;->getParser()Landroid/icu/impl/number/parse/NumberParserImpl; -HSPLandroid/icu/text/DecimalFormat;->getPositivePrefix()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormat;->getPositiveSuffix()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormat;->isParseBigDecimal()Z -HSPLandroid/icu/text/DecimalFormat;->isParseIntegerOnly()Z -HSPLandroid/icu/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number; -HSPLandroid/icu/text/DecimalFormat;->refreshFormatter()V+]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/number/UnlocalizedNumberFormatter;Landroid/icu/number/UnlocalizedNumberFormatter;]Landroid/icu/text/DecimalFormat;Landroid/icu/text/DecimalFormat; -HSPLandroid/icu/text/DecimalFormat;->setCurrency(Landroid/icu/util/Currency;)V -HSPLandroid/icu/text/DecimalFormat;->setDecimalSeparatorAlwaysShown(Z)V -HSPLandroid/icu/text/DecimalFormat;->setGroupingUsed(Z)V -HSPLandroid/icu/text/DecimalFormat;->setMaximumFractionDigits(I)V -HSPLandroid/icu/text/DecimalFormat;->setMaximumIntegerDigits(I)V -HSPLandroid/icu/text/DecimalFormat;->setMinimumFractionDigits(I)V -HSPLandroid/icu/text/DecimalFormat;->setMinimumIntegerDigits(I)V -HSPLandroid/icu/text/DecimalFormat;->setParseIntegerOnly(Z)V -HSPLandroid/icu/text/DecimalFormat;->setParseStrictMode(Landroid/icu/impl/number/DecimalFormatProperties$ParseMode;)V -HSPLandroid/icu/text/DecimalFormat;->setPropertiesFromPattern(Ljava/lang/String;I)V -HSPLandroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter; -HSPLandroid/icu/text/DecimalFormat;->toPattern()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Landroid/icu/util/ULocale;Ljava/lang/Void;)Landroid/icu/text/DecimalFormatSymbols$CacheData; -HSPLandroid/icu/text/DecimalFormatSymbols$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/text/DecimalFormatSymbols$CacheData;-><init>(Landroid/icu/util/ULocale;[Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;-><init>([Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/DecimalFormatSymbols;->-$$Nest$sfgetSYMBOL_KEYS()[Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->-$$Nest$smloadData(Landroid/icu/util/ULocale;)Landroid/icu/text/DecimalFormatSymbols$CacheData; -HSPLandroid/icu/text/DecimalFormatSymbols;-><init>(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/DecimalFormatSymbols;->getCachedLocaleData(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Landroid/icu/text/DecimalFormatSymbols$CacheData; -HSPLandroid/icu/text/DecimalFormatSymbols;->getCodePointZero()I -HSPLandroid/icu/text/DecimalFormatSymbols;->getCurrency()Landroid/icu/util/Currency; -HSPLandroid/icu/text/DecimalFormatSymbols;->getCurrencyPattern()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getCurrencySymbol()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getDecimalSeparator()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getDecimalSeparatorString()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getDigit()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getExponentSeparator()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getGroupingSeparator()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getGroupingSeparatorString()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getInfinity()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getInstance(Ljava/util/Locale;)Landroid/icu/text/DecimalFormatSymbols; -HSPLandroid/icu/text/DecimalFormatSymbols;->getInternationalCurrencySymbol()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getLocale()Ljava/util/Locale; -HSPLandroid/icu/text/DecimalFormatSymbols;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale; -HSPLandroid/icu/text/DecimalFormatSymbols;->getLocalizedPatternSeparator(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getMinusSign()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getMinusSignString()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getMonetaryDecimalSeparator()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getMonetaryGroupingSeparator()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getNaN()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getPatternSeparator()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getPerMill()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getPerMillString()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getPercent()C -HSPLandroid/icu/text/DecimalFormatSymbols;->getPercentString()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getPlusSignString()Ljava/lang/String; -HSPLandroid/icu/text/DecimalFormatSymbols;->getULocale()Landroid/icu/util/ULocale; -HSPLandroid/icu/text/DecimalFormatSymbols;->getZeroDigit()C -HSPLandroid/icu/text/DecimalFormatSymbols;->initSpacingInfo(Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->initialize(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V+]Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider;]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/text/DecimalFormatSymbols;Landroid/icu/text/DecimalFormatSymbols;]Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo; -HSPLandroid/icu/text/DecimalFormatSymbols;->loadData(Landroid/icu/util/ULocale;)Landroid/icu/text/DecimalFormatSymbols$CacheData; -HSPLandroid/icu/text/DecimalFormatSymbols;->setApproximatelySignString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrency(Landroid/icu/util/Currency;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrencyOrNull(Landroid/icu/util/Currency;Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setDecimalSeparator(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setDecimalSeparatorString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setDigit(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setDigitStrings([Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setExponentMultiplicationSign(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setExponentSeparator(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setGroupingSeparator(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setGroupingSeparatorString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setInfinity(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setInternationalCurrencySymbol(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setMinusSign(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setMinusSignString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryDecimalSeparator(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryDecimalSeparatorString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryGroupingSeparator(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setMonetaryGroupingSeparatorString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setNaN(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPatternForCurrencySpacing(IZLjava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPatternSeparator(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPerMill(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPerMillString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPercent(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPercentString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPlusSign(C)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setPlusSignString(Ljava/lang/String;)V -HSPLandroid/icu/text/DecimalFormatSymbols;->setZeroDigit(C)V -HSPLandroid/icu/text/DisplayContext;->type()Landroid/icu/text/DisplayContext$Type; -HSPLandroid/icu/text/Edits$Iterator;->next(Z)Z -HSPLandroid/icu/text/Edits;-><init>()V -HSPLandroid/icu/text/Edits;->addReplace(II)V -HSPLandroid/icu/text/Edits;->addUnchanged(I)V -HSPLandroid/icu/text/Edits;->append(I)V -HSPLandroid/icu/text/Edits;->hasChanges()Z -HSPLandroid/icu/text/Edits;->lastUnit()I -HSPLandroid/icu/text/Edits;->reset()V -HSPLandroid/icu/text/IDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/MeasureFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;Landroid/icu/text/PluralRules;Landroid/icu/text/MeasureFormat$NumericFormatters;)V -HSPLandroid/icu/text/MeasureFormat;->getNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter; -HSPLandroid/icu/text/MeasureFormat;->getUnitFormatterFromCache(ILandroid/icu/util/MeasureUnit;Landroid/icu/util/MeasureUnit;)Landroid/icu/number/LocalizedNumberFormatter; -HSPLandroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2; -HSPLandroid/icu/text/Normalizer2;->getNFCInstance()Landroid/icu/text/Normalizer2; -HSPLandroid/icu/text/Normalizer2;->getNFDInstance()Landroid/icu/text/Normalizer2; -HSPLandroid/icu/text/Normalizer2;->getNFKDInstance()Landroid/icu/text/Normalizer2; -HSPLandroid/icu/text/Normalizer2;->normalize(Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLandroid/icu/text/Normalizer;->normalize(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;)Ljava/lang/String; -HSPLandroid/icu/text/NumberFormat;-><init>()V -HSPLandroid/icu/text/NumberFormat;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/NumberFormat;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberFormat;->getInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberFormat;->getPattern(Landroid/icu/util/ULocale;I)Ljava/lang/String; -HSPLandroid/icu/text/NumberFormat;->getPatternForStyle(Landroid/icu/util/ULocale;I)Ljava/lang/String; -HSPLandroid/icu/text/NumberFormat;->getPatternForStyleAndNumberingSystem(Landroid/icu/util/ULocale;Ljava/lang/String;I)Ljava/lang/String; -HSPLandroid/icu/text/NumberFormat;->getShim()Landroid/icu/text/NumberFormat$NumberFormatShim; -HSPLandroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory;->handleCreate(Landroid/icu/util/ULocale;ILandroid/icu/impl/ICUService;)Ljava/lang/Object; -HSPLandroid/icu/text/NumberFormatServiceShim;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/text/NumberingSystem$1;->createInstance(Ljava/lang/String;Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem; -HSPLandroid/icu/text/NumberingSystem$LocaleLookupData;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V -HSPLandroid/icu/text/NumberingSystem;->getDescription()Ljava/lang/String; -HSPLandroid/icu/text/NumberingSystem;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/NumberingSystem; -HSPLandroid/icu/text/NumberingSystem;->getInstanceByName(Ljava/lang/String;)Landroid/icu/text/NumberingSystem; -HSPLandroid/icu/text/NumberingSystem;->getName()Ljava/lang/String; -HSPLandroid/icu/text/NumberingSystem;->getRadix()I -HSPLandroid/icu/text/NumberingSystem;->isAlgorithmic()Z -HSPLandroid/icu/text/NumberingSystem;->isValidDigitString(Ljava/lang/String;)Z -HSPLandroid/icu/text/NumberingSystem;->lookupInstanceByLocale(Landroid/icu/text/NumberingSystem$LocaleLookupData;)Landroid/icu/text/NumberingSystem; -HSPLandroid/icu/text/PluralRules$1;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z -HSPLandroid/icu/text/PluralRules$AndConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V -HSPLandroid/icu/text/PluralRules$AndConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z -HSPLandroid/icu/text/PluralRules$BinaryConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V -HSPLandroid/icu/text/PluralRules$DecimalQuantitySamples;-><init>(Landroid/icu/text/PluralRules$SampleType;Ljava/util/Set;Z)V -HSPLandroid/icu/text/PluralRules$DecimalQuantitySamples;->checkDecimal(Landroid/icu/text/PluralRules$SampleType;Landroid/icu/impl/number/DecimalQuantity;)V -HSPLandroid/icu/text/PluralRules$DecimalQuantitySamples;->parse(Ljava/lang/String;)Landroid/icu/text/PluralRules$DecimalQuantitySamples; -HSPLandroid/icu/text/PluralRules$DecimalQuantitySamplesRange;-><init>(Landroid/icu/impl/number/DecimalQuantity;Landroid/icu/impl/number/DecimalQuantity;)V -HSPLandroid/icu/text/PluralRules$Factory;->getDefaultFactory()Landroid/icu/impl/PluralRulesLoader; -HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(D)V -HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DI)V -HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJ)V -HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJI)V -HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJII)V -HSPLandroid/icu/text/PluralRules$FixedDecimal;-><init>(Landroid/icu/text/PluralRules$FixedDecimal;)V -HSPLandroid/icu/text/PluralRules$FixedDecimal;->decimals(D)I -HSPLandroid/icu/text/PluralRules$FixedDecimal;->getFractionalDigits(DI)I -HSPLandroid/icu/text/PluralRules$FixedDecimal;->getOperand(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand; -HSPLandroid/icu/text/PluralRules$FixedDecimal;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D -HSPLandroid/icu/text/PluralRules$FixedDecimal;->getVisibleDecimalDigitCount()I -HSPLandroid/icu/text/PluralRules$FixedDecimal;->intValue()I -HSPLandroid/icu/text/PluralRules$FixedDecimal;->isInfinite()Z -HSPLandroid/icu/text/PluralRules$FixedDecimal;->isNaN()Z -HSPLandroid/icu/text/PluralRules$FixedDecimal;->longValue()J -HSPLandroid/icu/text/PluralRules$Operand;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand; -HSPLandroid/icu/text/PluralRules$Operand;->values()[Landroid/icu/text/PluralRules$Operand; -HSPLandroid/icu/text/PluralRules$RangeConstraint;-><init>(IZLandroid/icu/text/PluralRules$Operand;ZDD[J)V -HSPLandroid/icu/text/PluralRules$RangeConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z -HSPLandroid/icu/text/PluralRules$Rule;->appliesTo(Landroid/icu/text/PluralRules$IFixedDecimal;)Z -HSPLandroid/icu/text/PluralRules$Rule;->getKeyword()Ljava/lang/String; -HSPLandroid/icu/text/PluralRules$RuleList;-><init>()V -HSPLandroid/icu/text/PluralRules$RuleList;->addRule(Landroid/icu/text/PluralRules$Rule;)Landroid/icu/text/PluralRules$RuleList; -HSPLandroid/icu/text/PluralRules$RuleList;->finish()Landroid/icu/text/PluralRules$RuleList; -HSPLandroid/icu/text/PluralRules$RuleList;->getKeywords()Ljava/util/Set; -HSPLandroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String; -HSPLandroid/icu/text/PluralRules$RuleList;->selectRule(Landroid/icu/text/PluralRules$IFixedDecimal;)Landroid/icu/text/PluralRules$Rule; -HSPLandroid/icu/text/PluralRules$SimpleTokenizer;->split(Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/icu/text/PluralRules;-><init>(Landroid/icu/text/PluralRules$RuleList;Landroid/icu/impl/number/range/StandardPluralRanges;)V -HSPLandroid/icu/text/PluralRules;->forLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/PluralRules; -HSPLandroid/icu/text/PluralRules;->forLocale(Ljava/util/Locale;)Landroid/icu/text/PluralRules; -HSPLandroid/icu/text/PluralRules;->isValidKeyword(Ljava/lang/String;)Z -HSPLandroid/icu/text/PluralRules;->newInternal(Ljava/lang/String;Landroid/icu/impl/number/range/StandardPluralRanges;)Landroid/icu/text/PluralRules; -HSPLandroid/icu/text/PluralRules;->nextToken([Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/text/PluralRules;->parseConstraint(Ljava/lang/String;)Landroid/icu/text/PluralRules$Constraint; -HSPLandroid/icu/text/PluralRules;->parseDescription(Ljava/lang/String;)Landroid/icu/text/PluralRules; -HSPLandroid/icu/text/PluralRules;->parseRule(Ljava/lang/String;)Landroid/icu/text/PluralRules$Rule; -HSPLandroid/icu/text/PluralRules;->parseRuleChain(Ljava/lang/String;)Landroid/icu/text/PluralRules$RuleList; -HSPLandroid/icu/text/PluralRules;->select(D)Ljava/lang/String; -HSPLandroid/icu/text/PluralRules;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String; -HSPLandroid/icu/text/RawCollationKey;-><init>(I)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit; -HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache$1;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData; -HSPLandroid/icu/text/RelativeDateTimeFormatter$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData; -HSPLandroid/icu/text/RelativeDateTimeFormatter$Direction;->values()[Landroid/icu/text/RelativeDateTimeFormatter$Direction; -HSPLandroid/icu/text/RelativeDateTimeFormatter$Loader;->load()Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData; -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->orNullFromString(Ljava/lang/CharSequence;)Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit; -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelative(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelativeTime(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeDetail(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTimeUnit(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handleAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->handlePlainDirection(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->put(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;Z)V -HSPLandroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;->values()[Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit; -HSPLandroid/icu/text/RelativeDateTimeFormatter$Style;->values()[Landroid/icu/text/RelativeDateTimeFormatter$Style; -HSPLandroid/icu/text/RelativeDateTimeFormatter;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/RelativeDateTimeFormatter;->adjustForContext(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/text/RelativeDateTimeFormatter;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;)Landroid/icu/text/RelativeDateTimeFormatter; -HSPLandroid/icu/text/RelativeDateTimeFormatter;->keyToDirection(Landroid/icu/impl/UResource$Key;)Landroid/icu/text/RelativeDateTimeFormatter$Direction; -HSPLandroid/icu/text/ReplaceableString;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/text/ReplaceableString;->charAt(I)C -HSPLandroid/icu/text/ReplaceableString;->getChars(II[CI)V -HSPLandroid/icu/text/ReplaceableString;->length()I -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;)V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$BreakCache;)V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->addFollowing(IIZ)V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->addPreceding(IIZ)Z -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->current()I -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->following(I)V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->next()V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateFollowing()Z -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populateNear(I)Z -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->populatePreceding()Z -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->preceding(I)V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->previous()V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset()V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->reset(II)V -HSPLandroid/icu/text/RuleBasedBreakIterator$BreakCache;->seek(I)Z -HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;)V -HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator;Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;)V -HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->following(I)Z -HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->preceding(I)Z -HSPLandroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->reset()V -HSPLandroid/icu/text/RuleBasedBreakIterator;-><init>()V -HSPLandroid/icu/text/RuleBasedBreakIterator;->CISetIndex32(Ljava/text/CharacterIterator;I)I -HSPLandroid/icu/text/RuleBasedBreakIterator;->checkOffset(ILjava/text/CharacterIterator;)V -HSPLandroid/icu/text/RuleBasedBreakIterator;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/RuleBasedBreakIterator;->first()I -HSPLandroid/icu/text/RuleBasedBreakIterator;->following(I)I -HSPLandroid/icu/text/RuleBasedBreakIterator;->getInstanceFromCompiledRules(Ljava/nio/ByteBuffer;)Landroid/icu/text/RuleBasedBreakIterator; -HSPLandroid/icu/text/RuleBasedBreakIterator;->getText()Ljava/text/CharacterIterator; -HSPLandroid/icu/text/RuleBasedBreakIterator;->handleNext()I -HSPLandroid/icu/text/RuleBasedBreakIterator;->handleSafePrevious(I)I -HSPLandroid/icu/text/RuleBasedBreakIterator;->isBoundary(I)Z -HSPLandroid/icu/text/RuleBasedBreakIterator;->next()I -HSPLandroid/icu/text/RuleBasedBreakIterator;->preceding(I)I -HSPLandroid/icu/text/RuleBasedBreakIterator;->setText(Ljava/text/CharacterIterator;)V -HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;)V -HSPLandroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;Landroid/icu/text/RuleBasedCollator$CollationBuffer-IA;)V -HSPLandroid/icu/text/RuleBasedCollator$CollationKeyByteSink;-><init>(Landroid/icu/text/RawCollationKey;)V -HSPLandroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;-><init>()V -HSPLandroid/icu/text/RuleBasedCollator$NFDIterator;-><init>()V -HSPLandroid/icu/text/RuleBasedCollator$UTF16NFDIterator;-><init>()V -HSPLandroid/icu/text/RuleBasedCollator;-><init>(Landroid/icu/impl/coll/CollationTailoring;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/text/RuleBasedCollator;->adoptTailoring(Landroid/icu/impl/coll/CollationTailoring;)V -HSPLandroid/icu/text/RuleBasedCollator;->checkNotFrozen()V -HSPLandroid/icu/text/RuleBasedCollator;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/RuleBasedCollator;->cloneAsThawed()Landroid/icu/text/RuleBasedCollator; -HSPLandroid/icu/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/icu/text/RuleBasedCollator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I+]Landroid/icu/impl/coll/CollationData;Landroid/icu/impl/coll/CollationData;]Landroid/icu/impl/coll/SharedObject$Reference;Landroid/icu/impl/coll/SharedObject$Reference;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/icu/impl/coll/CollationSettings;Landroid/icu/impl/coll/CollationSettings; -HSPLandroid/icu/text/RuleBasedCollator;->freeze()Landroid/icu/text/Collator; -HSPLandroid/icu/text/RuleBasedCollator;->getCollationBuffer()Landroid/icu/text/RuleBasedCollator$CollationBuffer; -HSPLandroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Landroid/icu/text/CollationKey; -HSPLandroid/icu/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/CollationKey; -HSPLandroid/icu/text/RuleBasedCollator;->getOwnedSettings()Landroid/icu/impl/coll/CollationSettings; -HSPLandroid/icu/text/RuleBasedCollator;->getRawCollationKey(Ljava/lang/CharSequence;Landroid/icu/text/RawCollationKey;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)Landroid/icu/text/RawCollationKey; -HSPLandroid/icu/text/RuleBasedCollator;->getRules()Ljava/lang/String; -HSPLandroid/icu/text/RuleBasedCollator;->getStrength()I -HSPLandroid/icu/text/RuleBasedCollator;->internalBuildTailoring(Ljava/lang/String;)V -HSPLandroid/icu/text/RuleBasedCollator;->isFrozen()Z -HSPLandroid/icu/text/RuleBasedCollator;->releaseCollationBuffer(Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V -HSPLandroid/icu/text/RuleBasedCollator;->setDecomposition(I)V -HSPLandroid/icu/text/RuleBasedCollator;->setFastLatinOptions(Landroid/icu/impl/coll/CollationSettings;)V -HSPLandroid/icu/text/RuleBasedCollator;->setStrength(I)V -HSPLandroid/icu/text/RuleBasedCollator;->simpleKeyLengthEstimate(Ljava/lang/CharSequence;)I -HSPLandroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V -HSPLandroid/icu/text/SimpleDateFormat$PatternItem;-><init>(CI)V -HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DateFormatSymbols;Landroid/icu/util/Calendar;Landroid/icu/text/NumberFormat;Landroid/icu/util/ULocale;ZLjava/lang/String;)V -HSPLandroid/icu/text/SimpleDateFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/SimpleDateFormat;->fastZeroPaddingNumber(Ljava/lang/StringBuffer;III)V -HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Landroid/icu/text/DisplayContext;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/SimpleDateFormat;->format(Landroid/icu/util/Calendar;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/SimpleDateFormat;->getIndexFromChar(C)I -HSPLandroid/icu/text/SimpleDateFormat;->getInstance(Landroid/icu/util/Calendar$FormatConfiguration;)Landroid/icu/text/SimpleDateFormat; -HSPLandroid/icu/text/SimpleDateFormat;->getLocale()Landroid/icu/util/ULocale; -HSPLandroid/icu/text/SimpleDateFormat;->getNumberFormat(C)Landroid/icu/text/NumberFormat; -HSPLandroid/icu/text/SimpleDateFormat;->getPatternItems()[Ljava/lang/Object; -HSPLandroid/icu/text/SimpleDateFormat;->initLocalZeroPaddingNumberFormat()V -HSPLandroid/icu/text/SimpleDateFormat;->initialize()V -HSPLandroid/icu/text/SimpleDateFormat;->isFieldUnitIgnored(Ljava/lang/String;I)Z -HSPLandroid/icu/text/SimpleDateFormat;->isNumeric(CI)Z -HSPLandroid/icu/text/SimpleDateFormat;->isSyntaxChar(C)Z -HSPLandroid/icu/text/SimpleDateFormat;->parsePattern()V -HSPLandroid/icu/text/SimpleDateFormat;->safeAppend([Ljava/lang/String;ILjava/lang/StringBuffer;)V -HSPLandroid/icu/text/SimpleDateFormat;->safeAppendWithMonthPattern([Ljava/lang/String;ILjava/lang/StringBuffer;Ljava/lang/String;)V -HSPLandroid/icu/text/SimpleDateFormat;->setContext(Landroid/icu/text/DisplayContext;)V -HSPLandroid/icu/text/SimpleDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;CLandroid/icu/util/Calendar;)V -HSPLandroid/icu/text/SimpleDateFormat;->toPattern()Ljava/lang/String; -HSPLandroid/icu/text/SimpleDateFormat;->zeroPaddingNumber(Landroid/icu/text/NumberFormat;Ljava/lang/StringBuffer;III)V -HSPLandroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames; -HSPLandroid/icu/text/TimeZoneNames;-><init>()V -HSPLandroid/icu/text/TimeZoneNames;->getDisplayName(Ljava/lang/String;Landroid/icu/text/TimeZoneNames$NameType;J)Ljava/lang/String; -HSPLandroid/icu/text/TimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames; -HSPLandroid/icu/text/TimeZoneNames;->getInstance(Ljava/util/Locale;)Landroid/icu/text/TimeZoneNames; -HSPLandroid/icu/text/UCharacterIterator;-><init>()V -HSPLandroid/icu/text/UCharacterIterator;->getInstance(Ljava/lang/String;)Landroid/icu/text/UCharacterIterator; -HSPLandroid/icu/text/UCharacterIterator;->getText()Ljava/lang/String; -HSPLandroid/icu/text/UCharacterIterator;->getText([C)I -HSPLandroid/icu/text/UCharacterIterator;->setToStart()V -HSPLandroid/icu/text/UFormat;-><init>()V -HSPLandroid/icu/text/UFormat;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale; -HSPLandroid/icu/text/UFormat;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/text/UTF16;->append(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer; -HSPLandroid/icu/text/UTF16;->charAt(Ljava/lang/String;I)I -HSPLandroid/icu/text/UTF16;->charAt([CIII)I -HSPLandroid/icu/text/UTF16;->getCharCount(I)I -HSPLandroid/icu/text/UnicodeFilter;-><init>()V -HSPLandroid/icu/text/UnicodeSet;-><init>()V -HSPLandroid/icu/text/UnicodeSet;-><init>(Landroid/icu/text/UnicodeSet;)V -HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IIZ)Ljava/lang/Appendable; -HSPLandroid/icu/text/UnicodeSet;->_appendToPat(Ljava/lang/Appendable;IZ)Ljava/lang/Appendable; -HSPLandroid/icu/text/UnicodeSet;->add(I)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->add(II)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->add([III)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->addAll(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->add_unchecked(I)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->add_unchecked(II)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->appendCodePoint(Ljava/lang/Appendable;I)V -HSPLandroid/icu/text/UnicodeSet;->appendNewPattern(Ljava/lang/Appendable;ZZ)Ljava/lang/Appendable; -HSPLandroid/icu/text/UnicodeSet;->applyPattern(Landroid/icu/impl/RuleCharacterIterator;Landroid/icu/text/SymbolTable;Ljava/lang/Appendable;II)V -HSPLandroid/icu/text/UnicodeSet;->applyPattern(Ljava/lang/String;Ljava/text/ParsePosition;Landroid/icu/text/SymbolTable;I)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->checkFrozen()V -HSPLandroid/icu/text/UnicodeSet;->clear()Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->clone()Ljava/lang/Object; -HSPLandroid/icu/text/UnicodeSet;->compact()Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->contains(I)Z+]Landroid/icu/impl/BMPSet;Landroid/icu/impl/BMPSet; -HSPLandroid/icu/text/UnicodeSet;->contains(Ljava/lang/CharSequence;)Z -HSPLandroid/icu/text/UnicodeSet;->containsAll(Ljava/lang/String;)Z -HSPLandroid/icu/text/UnicodeSet;->findCodePoint(I)I -HSPLandroid/icu/text/UnicodeSet;->freeze()Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/text/UnicodeSet;->getRangeCount()I -HSPLandroid/icu/text/UnicodeSet;->getRangeEnd(I)I -HSPLandroid/icu/text/UnicodeSet;->getRangeStart(I)I -HSPLandroid/icu/text/UnicodeSet;->getSingleCP(Ljava/lang/CharSequence;)I -HSPLandroid/icu/text/UnicodeSet;->hasStrings()Z -HSPLandroid/icu/text/UnicodeSet;->isFrozen()Z -HSPLandroid/icu/text/UnicodeSet;->resemblesPropertyPattern(Landroid/icu/impl/RuleCharacterIterator;I)Z -HSPLandroid/icu/text/UnicodeSet;->set(Landroid/icu/text/UnicodeSet;)Landroid/icu/text/UnicodeSet; -HSPLandroid/icu/util/AnnualTimeZoneRule;-><init>(Ljava/lang/String;IILandroid/icu/util/DateTimeRule;II)V -HSPLandroid/icu/util/AnnualTimeZoneRule;->getEndYear()I -HSPLandroid/icu/util/AnnualTimeZoneRule;->getFirstStart(II)Ljava/util/Date; -HSPLandroid/icu/util/AnnualTimeZoneRule;->getNextStart(JIIZ)Ljava/util/Date; -HSPLandroid/icu/util/AnnualTimeZoneRule;->getRule()Landroid/icu/util/DateTimeRule; -HSPLandroid/icu/util/AnnualTimeZoneRule;->getStartInYear(III)Ljava/util/Date; -HSPLandroid/icu/util/AnnualTimeZoneRule;->getStartYear()I -HSPLandroid/icu/util/AnnualTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z -HSPLandroid/icu/util/BasicTimeZone;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/util/ByteArrayWrapper;-><init>()V -HSPLandroid/icu/util/ByteArrayWrapper;->releaseBytes()[B -HSPLandroid/icu/util/BytesTrie$Result;->hasNext()Z -HSPLandroid/icu/util/BytesTrie$Result;->hasValue()Z -HSPLandroid/icu/util/BytesTrie;-><init>([BI)V -HSPLandroid/icu/util/BytesTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/BytesTrie;->getValue()I -HSPLandroid/icu/util/BytesTrie;->jumpByDelta([BI)I -HSPLandroid/icu/util/BytesTrie;->next(I)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/BytesTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/BytesTrie;->readValue([BII)I -HSPLandroid/icu/util/BytesTrie;->skipDelta([BI)I -HSPLandroid/icu/util/BytesTrie;->skipValue(II)I -HSPLandroid/icu/util/BytesTrie;->skipValue([BI)I -HSPLandroid/icu/util/Calendar$FormatConfiguration;-><init>()V -HSPLandroid/icu/util/Calendar$FormatConfiguration;->getCalendar()Landroid/icu/util/Calendar; -HSPLandroid/icu/util/Calendar$FormatConfiguration;->getDateFormatSymbols()Landroid/icu/text/DateFormatSymbols; -HSPLandroid/icu/util/Calendar$FormatConfiguration;->getLocale()Landroid/icu/util/ULocale; -HSPLandroid/icu/util/Calendar$FormatConfiguration;->getOverrideString()Ljava/lang/String; -HSPLandroid/icu/util/Calendar$FormatConfiguration;->getPatternString()Ljava/lang/String; -HSPLandroid/icu/util/Calendar$PatternData;->getDateTimePattern(I)Ljava/lang/String; -HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$PatternData; -HSPLandroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData; -HSPLandroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData; -HSPLandroid/icu/util/Calendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/util/Calendar;->clone()Ljava/lang/Object; -HSPLandroid/icu/util/Calendar;->complete()V -HSPLandroid/icu/util/Calendar;->computeFields()V -HSPLandroid/icu/util/Calendar;->computeGregorianAndDOWFields(I)V -HSPLandroid/icu/util/Calendar;->computeGregorianFields(I)V -HSPLandroid/icu/util/Calendar;->computeWeekFields()V -HSPLandroid/icu/util/Calendar;->createInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar; -HSPLandroid/icu/util/Calendar;->floorDivide(II[I)I -HSPLandroid/icu/util/Calendar;->floorDivide(JI[I)I -HSPLandroid/icu/util/Calendar;->floorDivide(JJ)J -HSPLandroid/icu/util/Calendar;->formatHelper(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;II)Landroid/icu/text/DateFormat; -HSPLandroid/icu/util/Calendar;->get(I)I -HSPLandroid/icu/util/Calendar;->getCalendarTypeForLocale(Landroid/icu/util/ULocale;)Landroid/icu/impl/CalType; -HSPLandroid/icu/util/Calendar;->getDateTimeFormat(IILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/util/Calendar;->getDateTimeFormatString(Landroid/icu/util/ULocale;Ljava/lang/String;II)Ljava/lang/String; -HSPLandroid/icu/util/Calendar;->getDateTimePattern(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;I)Ljava/lang/String; -HSPLandroid/icu/util/Calendar;->getFirstDayOfWeek()I -HSPLandroid/icu/util/Calendar;->getGregorianDayOfMonth()I -HSPLandroid/icu/util/Calendar;->getGregorianDayOfYear()I -HSPLandroid/icu/util/Calendar;->getGregorianMonth()I -HSPLandroid/icu/util/Calendar;->getGregorianYear()I -HSPLandroid/icu/util/Calendar;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar; -HSPLandroid/icu/util/Calendar;->getInstance(Ljava/util/Locale;)Landroid/icu/util/Calendar; -HSPLandroid/icu/util/Calendar;->getInstanceInternal(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar; -HSPLandroid/icu/util/Calendar;->getKeywordValuesForLocale(Ljava/lang/String;Landroid/icu/util/ULocale;Z)[Ljava/lang/String; -HSPLandroid/icu/util/Calendar;->getLeastMaximum(I)I -HSPLandroid/icu/util/Calendar;->getLimit(II)I -HSPLandroid/icu/util/Calendar;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/Calendar;->getMinimalDaysInFirstWeek()I -HSPLandroid/icu/util/Calendar;->getPatternData(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData; -HSPLandroid/icu/util/Calendar;->getRegionForCalendar(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/util/Calendar;->getRepeatedWallTimeOption()I -HSPLandroid/icu/util/Calendar;->getSkippedWallTimeOption()I -HSPLandroid/icu/util/Calendar;->getTimeInMillis()J -HSPLandroid/icu/util/Calendar;->getTimeZone()Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/Calendar;->getWeekDataForRegionInternal(Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData; -HSPLandroid/icu/util/Calendar;->handleCreateFields()[I -HSPLandroid/icu/util/Calendar;->handleGetDateFormat(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; -HSPLandroid/icu/util/Calendar;->initInternal()V -HSPLandroid/icu/util/Calendar;->internalSet(II)V -HSPLandroid/icu/util/Calendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z -HSPLandroid/icu/util/Calendar;->isLenient()Z -HSPLandroid/icu/util/Calendar;->julianDayToDayOfWeek(I)I -HSPLandroid/icu/util/Calendar;->setCalendarLocale(Landroid/icu/util/ULocale;)V -HSPLandroid/icu/util/Calendar;->setFirstDayOfWeek(I)V -HSPLandroid/icu/util/Calendar;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/util/Calendar;->setMinimalDaysInFirstWeek(I)V -HSPLandroid/icu/util/Calendar;->setTime(Ljava/util/Date;)V -HSPLandroid/icu/util/Calendar;->setTimeInMillis(J)V -HSPLandroid/icu/util/Calendar;->setTimeZone(Landroid/icu/util/TimeZone;)V -HSPLandroid/icu/util/Calendar;->setWeekData(Landroid/icu/util/Calendar$WeekData;)Landroid/icu/util/Calendar; -HSPLandroid/icu/util/Calendar;->setWeekData(Ljava/lang/String;)V -HSPLandroid/icu/util/Calendar;->weekNumber(II)I -HSPLandroid/icu/util/Calendar;->weekNumber(III)I -HSPLandroid/icu/util/CharsTrie;-><init>(Ljava/lang/CharSequence;I)V -HSPLandroid/icu/util/CharsTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/CharsTrie;->first(I)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/CharsTrie;->firstForCodePoint(I)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/CharsTrie;->getValue()I -HSPLandroid/icu/util/CharsTrie;->jumpByDelta(Ljava/lang/CharSequence;I)I -HSPLandroid/icu/util/CharsTrie;->next(I)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/CharsTrie;->nextImpl(II)Landroid/icu/util/BytesTrie$Result; -HSPLandroid/icu/util/CharsTrie;->readValue(Ljava/lang/CharSequence;II)I -HSPLandroid/icu/util/CharsTrie;->skipDelta(Ljava/lang/CharSequence;I)I -HSPLandroid/icu/util/CharsTrie;->skipValue(II)I -HSPLandroid/icu/util/CharsTrie;->skipValue(Ljava/lang/CharSequence;I)I -HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fgetend(Landroid/icu/util/CodePointMap$Range;)I -HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fgetvalue(Landroid/icu/util/CodePointMap$Range;)I -HSPLandroid/icu/util/CodePointMap$Range;->-$$Nest$fputstart(Landroid/icu/util/CodePointMap$Range;I)V -HSPLandroid/icu/util/CodePointMap$Range;-><init>()V -HSPLandroid/icu/util/CodePointMap$Range;->getEnd()I -HSPLandroid/icu/util/CodePointMap$Range;->getValue()I -HSPLandroid/icu/util/CodePointMap;-><init>()V -HSPLandroid/icu/util/CodePointMap;->getRange(ILandroid/icu/util/CodePointMap$RangeOption;ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z -HSPLandroid/icu/util/CodePointTrie$Data16;->getFromIndex(I)I -HSPLandroid/icu/util/CodePointTrie$Data32;-><init>([I)V -HSPLandroid/icu/util/CodePointTrie$Data32;->getDataLength()I -HSPLandroid/icu/util/CodePointTrie$Data32;->getFromIndex(I)I -HSPLandroid/icu/util/CodePointTrie$Data8;-><init>([B)V -HSPLandroid/icu/util/CodePointTrie$Data8;->getDataLength()I -HSPLandroid/icu/util/CodePointTrie$Data8;->getFromIndex(I)I -HSPLandroid/icu/util/CodePointTrie$Data;-><init>()V -HSPLandroid/icu/util/CodePointTrie$Data;-><init>(Landroid/icu/util/CodePointTrie$Data-IA;)V -HSPLandroid/icu/util/CodePointTrie$Fast16;->bmpGet(I)I -HSPLandroid/icu/util/CodePointTrie$Fast16;->get(I)I -HSPLandroid/icu/util/CodePointTrie$Fast8;-><init>([C[BIII)V -HSPLandroid/icu/util/CodePointTrie$Fast8;->get(I)I -HSPLandroid/icu/util/CodePointTrie$Fast;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V -HSPLandroid/icu/util/CodePointTrie$Fast;->cpIndex(I)I -HSPLandroid/icu/util/CodePointTrie$Fast;->getType()Landroid/icu/util/CodePointTrie$Type; -HSPLandroid/icu/util/CodePointTrie$Small32;-><init>([C[IIII)V -HSPLandroid/icu/util/CodePointTrie$Small;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V -HSPLandroid/icu/util/CodePointTrie$Small;-><init>([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie$Small-IA;)V -HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Data;III)V -HSPLandroid/icu/util/CodePointTrie;-><init>([CLandroid/icu/util/CodePointTrie$Data;IIILandroid/icu/util/CodePointTrie-IA;)V -HSPLandroid/icu/util/CodePointTrie;->fastIndex(I)I -HSPLandroid/icu/util/CodePointTrie;->fromBinary(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;Ljava/nio/ByteBuffer;)Landroid/icu/util/CodePointTrie; -HSPLandroid/icu/util/CodePointTrie;->getRange(ILandroid/icu/util/CodePointMap$ValueFilter;Landroid/icu/util/CodePointMap$Range;)Z -HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/util/Currency$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Landroid/icu/util/Currency; -HSPLandroid/icu/util/Currency;->createCurrency(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency; -HSPLandroid/icu/util/Currency;->getAvailableCurrencyCodes(Landroid/icu/util/ULocale;Ljava/util/Date;)[Ljava/lang/String; -HSPLandroid/icu/util/Currency;->getCurrencyCode()Ljava/lang/String; -HSPLandroid/icu/util/Currency;->getDefaultFractionDigits(Landroid/icu/util/Currency$CurrencyUsage;)I -HSPLandroid/icu/util/Currency;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency; -HSPLandroid/icu/util/Currency;->getInstance(Ljava/lang/String;)Landroid/icu/util/Currency; -HSPLandroid/icu/util/Currency;->getInstance(Ljava/util/Locale;)Landroid/icu/util/Currency; -HSPLandroid/icu/util/Currency;->getName(Landroid/icu/util/ULocale;I[Z)Ljava/lang/String; -HSPLandroid/icu/util/Currency;->getRoundingIncrement(Landroid/icu/util/Currency$CurrencyUsage;)D -HSPLandroid/icu/util/Currency;->getSymbol(Landroid/icu/util/ULocale;)Ljava/lang/String; -HSPLandroid/icu/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String; -HSPLandroid/icu/util/Currency;->getTenderCurrencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List; -HSPLandroid/icu/util/Currency;->isAlpha3Code(Ljava/lang/String;)Z -HSPLandroid/icu/util/Currency;->loadCurrency(Ljava/lang/String;)Landroid/icu/util/Currency; -HSPLandroid/icu/util/DateTimeRule;-><init>(IIIZII)V -HSPLandroid/icu/util/DateTimeRule;->getDateRuleType()I -HSPLandroid/icu/util/DateTimeRule;->getRuleDayOfMonth()I -HSPLandroid/icu/util/DateTimeRule;->getRuleDayOfWeek()I -HSPLandroid/icu/util/DateTimeRule;->getRuleMillisInDay()I -HSPLandroid/icu/util/DateTimeRule;->getRuleMonth()I -HSPLandroid/icu/util/DateTimeRule;->getTimeRuleType()I -HSPLandroid/icu/util/GregorianCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V -HSPLandroid/icu/util/GregorianCalendar;->getType()Ljava/lang/String; -HSPLandroid/icu/util/GregorianCalendar;->handleComputeFields(I)V -HSPLandroid/icu/util/GregorianCalendar;->handleGetYearLength(I)I -HSPLandroid/icu/util/GregorianCalendar;->isEquivalentTo(Landroid/icu/util/Calendar;)Z -HSPLandroid/icu/util/GregorianCalendar;->isLeapYear(I)Z -HSPLandroid/icu/util/InitialTimeZoneRule;-><init>(Ljava/lang/String;II)V -HSPLandroid/icu/util/Measure;-><init>(Ljava/lang/Number;Landroid/icu/util/MeasureUnit;)V -HSPLandroid/icu/util/Measure;->getNumber()Ljava/lang/Number; -HSPLandroid/icu/util/Measure;->getUnit()Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/util/MeasureUnit$2;->create(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/util/MeasureUnit;->addUnit(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/MeasureUnit$Factory;)Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/util/MeasureUnit;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/util/MeasureUnit;->getSubtype()Ljava/lang/String; -HSPLandroid/icu/util/MeasureUnit;->getType()Ljava/lang/String; -HSPLandroid/icu/util/MeasureUnit;->internalGetInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit; -HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;-><init>()V -HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->findMostUsed()I -HSPLandroid/icu/util/MutableCodePointTrie$AllSameBlocks;->findOrAdd(III)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;-><init>()V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;-><init>(Landroid/icu/util/MutableCodePointTrie$MixedBlocks-IA;)V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->addEntry([I[CIII)V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->extend([CIII)V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->extend([IIII)V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findAllSameBlock([II)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findBlock([C[CI)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findBlock([C[II)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findBlock([I[II)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findEntry([III)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->findEntry([I[C[I[CII)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->init(II)V -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->makeHashCode(I)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->makeHashCode([CI)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->makeHashCode([II)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->modulo(II)I -HSPLandroid/icu/util/MutableCodePointTrie$MixedBlocks;->nextIndex(II)I -HSPLandroid/icu/util/MutableCodePointTrie;->-$$Nest$smallValuesSameAs([IIII)Z -HSPLandroid/icu/util/MutableCodePointTrie;->-$$Nest$smequalBlocks([II[III)Z -HSPLandroid/icu/util/MutableCodePointTrie;-><init>(II)V -HSPLandroid/icu/util/MutableCodePointTrie;->allValuesSameAs([IIII)Z -HSPLandroid/icu/util/MutableCodePointTrie;->allocDataBlock(I)I -HSPLandroid/icu/util/MutableCodePointTrie;->build(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;)Landroid/icu/util/CodePointTrie; -HSPLandroid/icu/util/MutableCodePointTrie;->buildImmutable(Landroid/icu/util/CodePointTrie$Type;Landroid/icu/util/CodePointTrie$ValueWidth;)Landroid/icu/util/CodePointTrie; -HSPLandroid/icu/util/MutableCodePointTrie;->clear()V -HSPLandroid/icu/util/MutableCodePointTrie;->compactData(I[IILandroid/icu/util/MutableCodePointTrie$MixedBlocks;)I -HSPLandroid/icu/util/MutableCodePointTrie;->compactIndex(ILandroid/icu/util/MutableCodePointTrie$MixedBlocks;)I -HSPLandroid/icu/util/MutableCodePointTrie;->compactTrie(I)I -HSPLandroid/icu/util/MutableCodePointTrie;->compactWholeDataBlocks(ILandroid/icu/util/MutableCodePointTrie$AllSameBlocks;)I -HSPLandroid/icu/util/MutableCodePointTrie;->ensureHighStart(I)V -HSPLandroid/icu/util/MutableCodePointTrie;->equalBlocks([CI[CII)Z -HSPLandroid/icu/util/MutableCodePointTrie;->equalBlocks([CI[III)Z -HSPLandroid/icu/util/MutableCodePointTrie;->equalBlocks([II[III)Z -HSPLandroid/icu/util/MutableCodePointTrie;->findHighStart()I -HSPLandroid/icu/util/MutableCodePointTrie;->findSameBlock([CII[CII)I -HSPLandroid/icu/util/MutableCodePointTrie;->get(I)I -HSPLandroid/icu/util/MutableCodePointTrie;->getAllSameOverlap([IIII)I -HSPLandroid/icu/util/MutableCodePointTrie;->getDataBlock(I)I -HSPLandroid/icu/util/MutableCodePointTrie;->getOverlap([CI[CII)I -HSPLandroid/icu/util/MutableCodePointTrie;->getOverlap([CI[III)I -HSPLandroid/icu/util/MutableCodePointTrie;->getOverlap([II[III)I -HSPLandroid/icu/util/MutableCodePointTrie;->set(II)V -HSPLandroid/icu/util/MutableCodePointTrie;->writeBlock(II)V -HSPLandroid/icu/util/Output;-><init>(Ljava/lang/Object;)V -HSPLandroid/icu/util/STZInfo;-><init>()V -HSPLandroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIIIII)V -HSPLandroid/icu/util/SimpleTimeZone;->clone()Ljava/lang/Object; -HSPLandroid/icu/util/SimpleTimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/SimpleTimeZone;->compareToRule(IIIIIIIIIIII)I -HSPLandroid/icu/util/SimpleTimeZone;->construct(IIIIIIIIIIII)V -HSPLandroid/icu/util/SimpleTimeZone;->decodeEndRule()V -HSPLandroid/icu/util/SimpleTimeZone;->decodeRules()V -HSPLandroid/icu/util/SimpleTimeZone;->decodeStartRule()V -HSPLandroid/icu/util/SimpleTimeZone;->getDSTSavings()I -HSPLandroid/icu/util/SimpleTimeZone;->getNextTransition(JZ)Landroid/icu/util/TimeZoneTransition; -HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIII)I -HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIII)I -HSPLandroid/icu/util/SimpleTimeZone;->getOffset(IIIIIIII)I -HSPLandroid/icu/util/SimpleTimeZone;->getRawOffset()I -HSPLandroid/icu/util/SimpleTimeZone;->getSTZInfo()Landroid/icu/util/STZInfo; -HSPLandroid/icu/util/SimpleTimeZone;->getTimeZoneRules()[Landroid/icu/util/TimeZoneRule; -HSPLandroid/icu/util/SimpleTimeZone;->hashCode()I -HSPLandroid/icu/util/SimpleTimeZone;->initTransitionRules()V -HSPLandroid/icu/util/SimpleTimeZone;->isFrozen()Z -HSPLandroid/icu/util/SimpleTimeZone;->setStartYear(I)V -HSPLandroid/icu/util/SimpleTimeZone;->toString()Ljava/lang/String; -HSPLandroid/icu/util/SimpleTimeZone;->useDaylightTime()Z -HSPLandroid/icu/util/TimeArrayTimeZoneRule;-><init>(Ljava/lang/String;II[JI)V -HSPLandroid/icu/util/TimeArrayTimeZoneRule;->getStartTimes()[J -HSPLandroid/icu/util/TimeArrayTimeZoneRule;->getTimeType()I -HSPLandroid/icu/util/TimeZone;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/util/TimeZone;->cloneAsThawed()Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/TimeZone;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/util/TimeZone;->forULocaleOrDefault(Landroid/icu/util/ULocale;)Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/TimeZone;->getCanonicalID(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/TimeZone;->getCanonicalID(Ljava/lang/String;[Z)Ljava/lang/String; -HSPLandroid/icu/util/TimeZone;->getDefault()Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/TimeZone;->getFrozenICUTimeZone(Ljava/lang/String;Z)Landroid/icu/util/BasicTimeZone; -HSPLandroid/icu/util/TimeZone;->getFrozenTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/TimeZone;->getID()Ljava/lang/String; -HSPLandroid/icu/util/TimeZone;->getOffset(JZ[I)V -HSPLandroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;)Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/TimeZone;->getTimeZone(Ljava/lang/String;IZ)Landroid/icu/util/TimeZone; -HSPLandroid/icu/util/TimeZone;->hashCode()I -HSPLandroid/icu/util/TimeZone;->setICUDefault(Landroid/icu/util/TimeZone;)V -HSPLandroid/icu/util/TimeZoneRule;-><init>(Ljava/lang/String;II)V -HSPLandroid/icu/util/TimeZoneRule;->getDSTSavings()I -HSPLandroid/icu/util/TimeZoneRule;->getName()Ljava/lang/String; -HSPLandroid/icu/util/TimeZoneRule;->getRawOffset()I -HSPLandroid/icu/util/TimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z -HSPLandroid/icu/util/TimeZoneTransition;-><init>(JLandroid/icu/util/TimeZoneRule;Landroid/icu/util/TimeZoneRule;)V -HSPLandroid/icu/util/TimeZoneTransition;->getFrom()Landroid/icu/util/TimeZoneRule; -HSPLandroid/icu/util/TimeZoneTransition;->getTime()J -HSPLandroid/icu/util/TimeZoneTransition;->getTo()Landroid/icu/util/TimeZoneRule; -HSPLandroid/icu/util/ULocale$1;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/util/ULocale$1;->createInstance(Ljava/lang/String;Ljava/lang/Void;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/icu/util/ULocale$2;->createInstance(Ljava/util/Locale;Ljava/lang/Void;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale$AliasReplacer;-><clinit>()V -HSPLandroid/icu/util/ULocale$AliasReplacer;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/icu/util/ULocale$AliasReplacer;->generateKey(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale$AliasReplacer;->loadAliasData()V -HSPLandroid/icu/util/ULocale$AliasReplacer;->replace()Ljava/lang/String; -HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceLanguage(ZZZ)Z -HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceRegion()Z -HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceScript()Z -HSPLandroid/icu/util/ULocale$AliasReplacer;->replaceVariant()Z -HSPLandroid/icu/util/ULocale$Builder;-><init>()V -HSPLandroid/icu/util/ULocale$Builder;->build()Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale$Builder;->setLanguage(Ljava/lang/String;)Landroid/icu/util/ULocale$Builder; -HSPLandroid/icu/util/ULocale$Builder;->setRegion(Ljava/lang/String;)Landroid/icu/util/ULocale$Builder; -HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->getDefault(Landroid/icu/util/ULocale$Category;)Ljava/util/Locale; -HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toLocale(Landroid/icu/util/ULocale;)Ljava/util/Locale; -HSPLandroid/icu/util/ULocale$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/Locale;Ljava/util/Locale;]Ljava/util/Set;Ljava/util/Collections$EmptySet; -HSPLandroid/icu/util/ULocale;->-$$Nest$smgetInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;)V -HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;)V -HSPLandroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;Landroid/icu/util/ULocale-IA;)V -HSPLandroid/icu/util/ULocale;->addLikelySubtags(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->appendTag(Ljava/lang/String;Ljava/lang/StringBuilder;)V -HSPLandroid/icu/util/ULocale;->base()Landroid/icu/impl/locale/BaseLocale;+]Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;]Landroid/icu/impl/LocaleIDParser;Landroid/icu/impl/LocaleIDParser; -HSPLandroid/icu/util/ULocale;->canonicalize(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->createCanonical(Ljava/lang/String;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->createLikelySubtagsString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->createTagString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->equals(Ljava/lang/Object;)Z -HSPLandroid/icu/util/ULocale;->forLocale(Ljava/util/Locale;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->getBaseName()Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getBaseName(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getCountry()Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getDefault()Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->getDefault(Landroid/icu/util/ULocale$Category;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->getInstance(Landroid/icu/impl/locale/BaseLocale;Landroid/icu/impl/locale/LocaleExtensions;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->getKeywordValue(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getKeywordValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getKeywords()Ljava/util/Iterator; -HSPLandroid/icu/util/ULocale;->getKeywords(Ljava/lang/String;)Ljava/util/Iterator; -HSPLandroid/icu/util/ULocale;->getLanguage()Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getName()Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getName(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/icu/impl/CacheBase;Landroid/icu/util/ULocale$1; -HSPLandroid/icu/util/ULocale;->getRegionForSupplementalData(Landroid/icu/util/ULocale;Z)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getScript()Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getScript(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getShortestSubtagLength(Ljava/lang/String;)I -HSPLandroid/icu/util/ULocale;->getVariant()Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->getVariant(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->hashCode()I -HSPLandroid/icu/util/ULocale;->isEmptyString(Ljava/lang/String;)Z -HSPLandroid/icu/util/ULocale;->isKnownCanonicalizedLocale(Ljava/lang/String;)Z -HSPLandroid/icu/util/ULocale;->isRightToLeft()Z -HSPLandroid/icu/util/ULocale;->lookupLikelySubtags(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->lscvToID(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->parseTagString(Ljava/lang/String;[Ljava/lang/String;)I -HSPLandroid/icu/util/ULocale;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/ULocale; -HSPLandroid/icu/util/ULocale;->setKeywordValue(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->stripLeadingUnd(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/icu/util/ULocale;->toLocale()Ljava/util/Locale; -HSPLandroid/icu/util/ULocale;->toString()Ljava/lang/String; -HSPLandroid/icu/util/UResourceBundle;-><init>()V -HSPLandroid/icu/util/UResourceBundle;->findTopLevel(Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->get(I)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->get(Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->getBundleInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->getIterator()Landroid/icu/util/UResourceBundleIterator; -HSPLandroid/icu/util/UResourceBundle;->getRootType(Ljava/lang/String;Ljava/lang/ClassLoader;)Landroid/icu/util/UResourceBundle$RootType; -HSPLandroid/icu/util/UResourceBundle;->handleGetObject(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/icu/util/UResourceBundle;->handleGetObjectImpl(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object; -HSPLandroid/icu/util/UResourceBundle;->instantiateBundle(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/UResourceBundle;->resolveObject(Ljava/lang/String;Landroid/icu/util/UResourceBundle;)Ljava/lang/Object; -HSPLandroid/icu/util/UResourceBundleIterator;-><init>(Landroid/icu/util/UResourceBundle;)V -HSPLandroid/icu/util/UResourceBundleIterator;->hasNext()Z -HSPLandroid/icu/util/UResourceBundleIterator;->next()Landroid/icu/util/UResourceBundle; -HSPLandroid/icu/util/VersionInfo;->getMajor()I -HSPLandroid/internal/modules/utils/build/SdkLevel;->isAtLeastPreReleaseCodename(Ljava/lang/String;)Z -HSPLandroid/internal/modules/utils/build/SdkLevel;->isAtLeastV()Z -HSPLandroid/location/Location$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLandroid/location/Location$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Location; -HSPLandroid/location/Location$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/location/Location;-><init>(Landroid/location/Location;)V -HSPLandroid/location/Location;-><init>(Ljava/lang/String;)V -HSPLandroid/location/Location;->computeDistanceAndBearing(DDDDLandroid/location/Location$BearingDistanceCache;)V -HSPLandroid/location/Location;->distanceTo(Landroid/location/Location;)F -HSPLandroid/location/Location;->getAccuracy()F -HSPLandroid/location/Location;->getAltitude()D -HSPLandroid/location/Location;->getBearing()F -HSPLandroid/location/Location;->getElapsedRealtimeMillis()J -HSPLandroid/location/Location;->getElapsedRealtimeNanos()J -HSPLandroid/location/Location;->getExtras()Landroid/os/Bundle; -HSPLandroid/location/Location;->getLatitude()D -HSPLandroid/location/Location;->getLongitude()D -HSPLandroid/location/Location;->getProvider()Ljava/lang/String; -HSPLandroid/location/Location;->getSpeed()F -HSPLandroid/location/Location;->getTime()J -HSPLandroid/location/Location;->getVerticalAccuracyMeters()F -HSPLandroid/location/Location;->hasAccuracy()Z -HSPLandroid/location/Location;->hasAltitude()Z -HSPLandroid/location/Location;->hasBearing()Z -HSPLandroid/location/Location;->hasBearingAccuracy()Z -HSPLandroid/location/Location;->hasElapsedRealtimeUncertaintyNanos()Z -HSPLandroid/location/Location;->hasSpeed()Z -HSPLandroid/location/Location;->hasSpeedAccuracy()Z -HSPLandroid/location/Location;->hasVerticalAccuracy()Z -HSPLandroid/location/Location;->isFromMockProvider()Z -HSPLandroid/location/Location;->isMock()Z -HSPLandroid/location/Location;->set(Landroid/location/Location;)V -HSPLandroid/location/Location;->setAccuracy(F)V -HSPLandroid/location/Location;->setAltitude(D)V -HSPLandroid/location/Location;->setBearing(F)V -HSPLandroid/location/Location;->setBearingAccuracyDegrees(F)V -HSPLandroid/location/Location;->setElapsedRealtimeNanos(J)V -HSPLandroid/location/Location;->setExtras(Landroid/os/Bundle;)V -HSPLandroid/location/Location;->setLatitude(D)V -HSPLandroid/location/Location;->setLongitude(D)V -HSPLandroid/location/Location;->setSpeed(F)V -HSPLandroid/location/Location;->setSpeedAccuracyMetersPerSecond(F)V -HSPLandroid/location/Location;->setTime(J)V -HSPLandroid/location/Location;->setVerticalAccuracyMeters(F)V -HSPLandroid/location/Location;->toString()Ljava/lang/String; -HSPLandroid/location/Location;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioAttributes; -HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/media/AudioAttributes$1;Landroid/media/AudioAttributes$1; -HSPLandroid/media/AudioAttributes$Builder;-><init>()V -HSPLandroid/media/AudioAttributes$Builder;-><init>(Landroid/media/AudioAttributes;)V -HSPLandroid/media/AudioAttributes$Builder;->addTag(Ljava/lang/String;)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->build()Landroid/media/AudioAttributes; -HSPLandroid/media/AudioAttributes$Builder;->replaceFlags(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setAllowedCapturePolicy(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setCapturePreset(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setContentType(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setFlags(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setInternalCapturePreset(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setInternalContentType(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setInternalLegacyStreamType(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setLegacyStreamType(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setSystemUsage(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes$Builder;->setUsage(I)Landroid/media/AudioAttributes$Builder; -HSPLandroid/media/AudioAttributes;->-$$Nest$fgetmFlags(Landroid/media/AudioAttributes;)I -HSPLandroid/media/AudioAttributes;->-$$Nest$fgetmUsage(Landroid/media/AudioAttributes;)I -HSPLandroid/media/AudioAttributes;->-$$Nest$fputmContentType(Landroid/media/AudioAttributes;I)V -HSPLandroid/media/AudioAttributes;->-$$Nest$fputmFlags(Landroid/media/AudioAttributes;I)V -HSPLandroid/media/AudioAttributes;->-$$Nest$fputmFormattedTags(Landroid/media/AudioAttributes;Ljava/lang/String;)V -HSPLandroid/media/AudioAttributes;->-$$Nest$fputmSource(Landroid/media/AudioAttributes;I)V -HSPLandroid/media/AudioAttributes;->-$$Nest$fputmTags(Landroid/media/AudioAttributes;Ljava/util/HashSet;)V -HSPLandroid/media/AudioAttributes;->-$$Nest$fputmUsage(Landroid/media/AudioAttributes;I)V -HSPLandroid/media/AudioAttributes;-><init>()V -HSPLandroid/media/AudioAttributes;-><init>(Landroid/media/AudioAttributes-IA;)V -HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z -HSPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z -HSPLandroid/media/AudioAttributes;->getAllFlags()I -HSPLandroid/media/AudioAttributes;->getContentType()I -HSPLandroid/media/AudioAttributes;->getFlags()I -HSPLandroid/media/AudioAttributes;->getUsage()I -HSPLandroid/media/AudioAttributes;->hashCode()I -HSPLandroid/media/AudioAttributes;->isSystemUsage(I)Z -HSPLandroid/media/AudioAttributes;->toVolumeStreamType(ZLandroid/media/AudioAttributes;)I -HSPLandroid/media/AudioAttributes;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/media/AudioDeviceCallback;-><init>()V -HSPLandroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V -HSPLandroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I -HSPLandroid/media/AudioDeviceInfo;->getId()I -HSPLandroid/media/AudioDeviceInfo;->getType()I -HSPLandroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;ILjava/lang/String;[I[ILjava/util/List;)V -HSPLandroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;[I[I[I[I[Landroid/media/AudioGain;ILjava/lang/String;[I[I)V -HSPLandroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioDevicePortConfig; -HSPLandroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioDevicePort;->type()I -HSPLandroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePort;IIILandroid/media/AudioGainConfig;)V -HSPLandroid/media/AudioFocusRequest$Builder;-><init>(I)V -HSPLandroid/media/AudioFocusRequest$Builder;->build()Landroid/media/AudioFocusRequest; -HSPLandroid/media/AudioFocusRequest$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/AudioFocusRequest$Builder; -HSPLandroid/media/AudioFocusRequest$Builder;->setFocusGain(I)Landroid/media/AudioFocusRequest$Builder; -HSPLandroid/media/AudioFocusRequest;->getOnAudioFocusChangeListener()Landroid/media/AudioManager$OnAudioFocusChangeListener; -HSPLandroid/media/AudioFocusRequest;->isValidFocusGain(I)Z -HSPLandroid/media/AudioFormat$Builder;-><init>()V -HSPLandroid/media/AudioFormat$Builder;->build()Landroid/media/AudioFormat; -HSPLandroid/media/AudioFormat$Builder;->setChannelMask(I)Landroid/media/AudioFormat$Builder; -HSPLandroid/media/AudioFormat$Builder;->setEncoding(I)Landroid/media/AudioFormat$Builder; -HSPLandroid/media/AudioFormat$Builder;->setSampleRate(I)Landroid/media/AudioFormat$Builder; -HSPLandroid/media/AudioFormat;-><init>(IIIII)V -HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I -HSPLandroid/media/AudioFormat;->getChannelCount()I -HSPLandroid/media/AudioFormat;->getChannelMask()I -HSPLandroid/media/AudioFormat;->getEncoding()I -HSPLandroid/media/AudioFormat;->getPropertySetMask()I -HSPLandroid/media/AudioFormat;->getSampleRate()I -HSPLandroid/media/AudioFormat;->isEncodingLinearFrames(I)Z -HSPLandroid/media/AudioFormat;->isEncodingLinearPcm(I)Z -HSPLandroid/media/AudioFormat;->isPublicEncoding(I)Z -HSPLandroid/media/AudioHandle;-><init>(I)V -HSPLandroid/media/AudioHandle;->equals(Ljava/lang/Object;)Z -HSPLandroid/media/AudioHandle;->id()I -HSPLandroid/media/AudioManager$1;-><init>(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$2;-><init>(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$3;-><init>(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$4;-><init>(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$AudioPlaybackCallback;-><init>()V -HSPLandroid/media/AudioManager$AudioPlaybackCallbackInfo;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V -HSPLandroid/media/AudioManager$AudioRecordingCallback;-><init>()V -HSPLandroid/media/AudioManager$DevRoleListeners;-><init>(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$DevRoleListeners;-><init>(Landroid/media/AudioManager;Landroid/media/AudioManager$DevRoleListeners-IA;)V -HSPLandroid/media/AudioManager$NativeEventHandlerDelegate$1;-><init>(Landroid/media/AudioManager$NativeEventHandlerDelegate;Landroid/os/Looper;Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;)V -HSPLandroid/media/AudioManager$NativeEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/AudioManager$NativeEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V -HSPLandroid/media/AudioManager$NativeEventHandlerDelegate;->getHandler()Landroid/os/Handler; -HSPLandroid/media/AudioManager$OnAmPortUpdateListener;-><init>(Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPatchListUpdate([Landroid/media/AudioPatch;)V -HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPortListUpdate([Landroid/media/AudioPort;)V -HSPLandroid/media/AudioManager$PlaybackConfigChangeCallbackData;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Ljava/util/List;)V -HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;-><init>(Landroid/media/AudioManager$ServiceEventHandlerDelegate;Landroid/os/Looper;Landroid/media/AudioManager;)V -HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;)V -HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;->getHandler()Landroid/os/Handler; -HSPLandroid/media/AudioManager;-><init>(Landroid/content/Context;)V -HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I -HSPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I -HSPLandroid/media/AudioManager;->areNavigationRepeatSoundEffectsEnabled()Z -HSPLandroid/media/AudioManager;->broadcastDeviceListChange_sync(Landroid/os/Handler;)V -HSPLandroid/media/AudioManager;->calcListDeltas(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo; -HSPLandroid/media/AudioManager;->checkFlags(Landroid/media/AudioDevicePort;I)Z -HSPLandroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z -HSPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V -HSPLandroid/media/AudioManager;->generateAudioSessionId()I -HSPLandroid/media/AudioManager;->getActiveRecordingConfigurations()Ljava/util/List; -HSPLandroid/media/AudioManager;->getContext()Landroid/content/Context; -HSPLandroid/media/AudioManager;->getDeviceForPortId(II)Landroid/media/AudioDeviceInfo; -HSPLandroid/media/AudioManager;->getDevices(I)[Landroid/media/AudioDeviceInfo; -HSPLandroid/media/AudioManager;->getDevicesForStream(I)I -HSPLandroid/media/AudioManager;->getDevicesStatic(I)[Landroid/media/AudioDeviceInfo; -HSPLandroid/media/AudioManager;->getIdForAudioFocusListener(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String; -HSPLandroid/media/AudioManager;->getMode()I -HSPLandroid/media/AudioManager;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/media/AudioManager;->getRingerMode()I -HSPLandroid/media/AudioManager;->getRingerModeInternal()I -HSPLandroid/media/AudioManager;->getService()Landroid/media/IAudioService; -HSPLandroid/media/AudioManager;->getStreamMaxVolume(I)I -HSPLandroid/media/AudioManager;->getStreamMinVolume(I)I -HSPLandroid/media/AudioManager;->getStreamMinVolumeInt(I)I -HSPLandroid/media/AudioManager;->getStreamVolume(I)I -HSPLandroid/media/AudioManager;->hasPlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z -HSPLandroid/media/AudioManager;->hasRecordCallback_sync(Landroid/media/AudioManager$AudioRecordingCallback;)Z -HSPLandroid/media/AudioManager;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo; -HSPLandroid/media/AudioManager;->isBluetoothA2dpOn()Z -HSPLandroid/media/AudioManager;->isBluetoothScoOn()Z -HSPLandroid/media/AudioManager;->isInputDevice(I)Z -HSPLandroid/media/AudioManager;->isMusicActive()Z -HSPLandroid/media/AudioManager;->isPublicStreamType(I)Z -HSPLandroid/media/AudioManager;->isSpeakerphoneOn()Z -HSPLandroid/media/AudioManager;->isStreamMute(I)Z -HSPLandroid/media/AudioManager;->isVolumeFixed()Z -HSPLandroid/media/AudioManager;->isWiredHeadsetOn()Z -HSPLandroid/media/AudioManager;->listAudioDevicePorts(Ljava/util/ArrayList;)I -HSPLandroid/media/AudioManager;->playSoundEffect(I)V -HSPLandroid/media/AudioManager;->playSoundEffect(II)V -HSPLandroid/media/AudioManager;->preDispatchKeyEvent(Landroid/view/KeyEvent;I)V -HSPLandroid/media/AudioManager;->registerAudioDeviceCallback(Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V -HSPLandroid/media/AudioManager;->registerAudioFocusRequest(Landroid/media/AudioFocusRequest;)V -HSPLandroid/media/AudioManager;->registerAudioPlaybackCallback(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V -HSPLandroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V -HSPLandroid/media/AudioManager;->registerAudioRecordingCallback(Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V -HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioFocusRequest;Landroid/media/audiopolicy/AudioPolicy;)I -HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I -HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I -HSPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;IILandroid/media/audiopolicy/AudioPolicy;)I -HSPLandroid/media/AudioManager;->resetAudioPortGeneration()I -HSPLandroid/media/AudioManager;->setContext(Landroid/content/Context;)V -HSPLandroid/media/AudioManager;->setParameters(Ljava/lang/String;)V -HSPLandroid/media/AudioManager;->unregisterAudioFocusRequest(Landroid/media/AudioManager$OnAudioFocusChangeListener;)V -HSPLandroid/media/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I -HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;)V -HSPLandroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V -HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioMixPortConfig; -HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioMixPortConfig;-><init>(Landroid/media/AudioMixPort;IIILandroid/media/AudioGainConfig;)V -HSPLandroid/media/AudioPatch;-><init>(Landroid/media/AudioHandle;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)V -HSPLandroid/media/AudioPatch;->sinks()[Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioPatch;->sources()[Landroid/media/AudioPortConfig; -HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V -HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes; -HSPLandroid/media/AudioPlaybackConfiguration;->isActive()Z -HSPLandroid/media/AudioPort$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I -HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;Ljava/util/List;[Landroid/media/AudioGain;Ljava/util/List;)V+]Ljava/util/List;Ljava/util/ArrayList;]Ljava/util/stream/Stream;Ljava/util/stream/IntPipeline$4;,Ljava/util/stream/ReferencePipeline$Head;]Ljava/util/stream/IntStream;Ljava/util/stream/IntPipeline$Head;,Ljava/util/stream/ReferencePipeline$4;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr;]Landroid/media/AudioProfile;Landroid/media/AudioProfile;]Ljava/util/Set;Ljava/util/HashSet; -HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V -HSPLandroid/media/AudioPort;->handle()Landroid/media/AudioHandle; -HSPLandroid/media/AudioPort;->id()I -HSPLandroid/media/AudioPort;->role()I -HSPLandroid/media/AudioPortConfig;-><init>(Landroid/media/AudioPort;IIILandroid/media/AudioGainConfig;)V -HSPLandroid/media/AudioPortConfig;->channelMask()I -HSPLandroid/media/AudioPortConfig;->format()I -HSPLandroid/media/AudioPortConfig;->gain()Landroid/media/AudioGainConfig; -HSPLandroid/media/AudioPortConfig;->port()Landroid/media/AudioPort; -HSPLandroid/media/AudioPortConfig;->samplingRate()I -HSPLandroid/media/AudioPortEventHandler$1;-><init>(Landroid/media/AudioPortEventHandler;Landroid/os/Looper;)V -HSPLandroid/media/AudioPortEventHandler$1;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/AudioPortEventHandler;->handler()Landroid/os/Handler; -HSPLandroid/media/AudioPortEventHandler;->init()V -HSPLandroid/media/AudioPortEventHandler;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V -HSPLandroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V -HSPLandroid/media/AudioProfile;-><init>(I[I[I[II)V -HSPLandroid/media/AudioProfile;->getChannelIndexMasks()[I -HSPLandroid/media/AudioProfile;->getChannelMasks()[I -HSPLandroid/media/AudioProfile;->getFormat()I -HSPLandroid/media/AudioProfile;->getSampleRates()[I -HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V -HSPLandroid/media/AudioRecord;->audioBuffSizeCheck(I)V -HSPLandroid/media/AudioRecord;->audioParamCheck(III)V -HSPLandroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I -HSPLandroid/media/AudioRecord;->getMinBufferSize(III)I -HSPLandroid/media/AudioRecord;->release()V -HSPLandroid/media/AudioRecord;->stop()V -HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioRoutesInfo; -HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/AudioRoutesInfo;-><init>()V -HSPLandroid/media/AudioRoutesInfo;->toString()Ljava/lang/String; -HSPLandroid/media/AudioRoutesInfo;->typeToString(I)Ljava/lang/String; -HSPLandroid/media/AudioSystem;->getOutputDeviceName(I)Ljava/lang/String; -HSPLandroid/media/AudioSystem;->getPlatformType(Landroid/content/Context;)I -HSPLandroid/media/AudioSystem;->isSingleVolume(Landroid/content/Context;)Z -HSPLandroid/media/AudioSystem;->streamToString(I)Ljava/lang/String; -HSPLandroid/media/AudioTimestamp;-><init>()V -HSPLandroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;III)V -HSPLandroid/media/AudioTrack;->audioBuffSizeCheck(I)V -HSPLandroid/media/AudioTrack;->audioParamCheck(IIIII)V -HSPLandroid/media/AudioTrack;->blockUntilOffloadDrain(I)Z -HSPLandroid/media/AudioTrack;->broadcastRoutingChange()V -HSPLandroid/media/AudioTrack;->endStreamEventHandling()V -HSPLandroid/media/AudioTrack;->finalize()V -HSPLandroid/media/AudioTrack;->flush()V -HSPLandroid/media/AudioTrack;->getMinBufferSize(III)I -HSPLandroid/media/AudioTrack;->getPlayState()I -HSPLandroid/media/AudioTrack;->getRoutedDevice()Landroid/media/AudioDeviceInfo; -HSPLandroid/media/AudioTrack;->getSampleRate()I -HSPLandroid/media/AudioTrack;->getState()I -HSPLandroid/media/AudioTrack;->play()V -HSPLandroid/media/AudioTrack;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V -HSPLandroid/media/AudioTrack;->release()V -HSPLandroid/media/AudioTrack;->shouldEnablePowerSaving(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)Z -HSPLandroid/media/AudioTrack;->startImpl()V -HSPLandroid/media/AudioTrack;->stop()V -HSPLandroid/media/AudioTrack;->testDisableNativeRoutingCallbacksLocked()V -HSPLandroid/media/AudioTrack;->tryToDisableNativeRoutingCallback()V -HSPLandroid/media/CallbackUtil$LazyListenerManager;-><init>()V -HSPLandroid/media/IAudioFocusDispatcher$Stub;-><init>()V -HSPLandroid/media/IAudioFocusDispatcher$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IAudioRoutesObserver$Stub;-><init>()V -HSPLandroid/media/IAudioRoutesObserver$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IAudioRoutesObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/media/IAudioServerStateDispatcher$Stub;-><init>()V -HSPLandroid/media/IAudioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/media/IAudioService$Stub$Proxy;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I -HSPLandroid/media/IAudioService$Stub$Proxy;->areNavigationRepeatSoundEffectsEnabled()Z -HSPLandroid/media/IAudioService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IAudioService$Stub$Proxy;->getActiveRecordingConfigurations()Ljava/util/List; -HSPLandroid/media/IAudioService$Stub$Proxy;->getMode()I -HSPLandroid/media/IAudioService$Stub$Proxy;->getRingerModeExternal()I -HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamMaxVolume(I)I -HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamMinVolume(I)I -HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamVolume(I)I -HSPLandroid/media/IAudioService$Stub$Proxy;->isBluetoothA2dpOn()Z -HSPLandroid/media/IAudioService$Stub$Proxy;->isBluetoothScoOn()Z -HSPLandroid/media/IAudioService$Stub$Proxy;->isCameraSoundForced()Z -HSPLandroid/media/IAudioService$Stub$Proxy;->isMusicActive(Z)Z -HSPLandroid/media/IAudioService$Stub$Proxy;->isStreamMute(I)Z -HSPLandroid/media/IAudioService$Stub$Proxy;->isVolumeFixed()Z -HSPLandroid/media/IAudioService$Stub$Proxy;->playSoundEffect(II)V -HSPLandroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V -HSPLandroid/media/IAudioService$Stub$Proxy;->playerEvent(III)V -HSPLandroid/media/IAudioService$Stub$Proxy;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V -HSPLandroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V -HSPLandroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I -HSPLandroid/media/IAudioService$Stub$Proxy;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo; -HSPLandroid/media/IAudioService$Stub$Proxy;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I -HSPLandroid/media/IAudioService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioService; -HSPLandroid/media/IMediaRouter2Manager$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IMediaRouter2Manager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/media/IMediaRouterClient$Stub;-><init>()V -HSPLandroid/media/IMediaRouterClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IMediaRouterClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/media/IMediaRouterService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IMediaRouterService$Stub$Proxy;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState; -HSPLandroid/media/IMediaRouterService$Stub$Proxy;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z -HSPLandroid/media/IMediaRouterService$Stub$Proxy;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V -HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V -HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V -HSPLandroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService; -HSPLandroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V -HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IPlayer$Stub;-><init>()V -HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer; -HSPLandroid/media/IRecordingConfigDispatcher$Stub;-><init>()V -HSPLandroid/media/IRecordingConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/IRemoteSessionCallback$Stub;-><init>()V -HSPLandroid/media/IRemoteVolumeObserver$Stub;-><init>()V -HSPLandroid/media/MediaCodec$BufferInfo;-><init>()V -HSPLandroid/media/MediaCodec$BufferInfo;->set(IIJI)V -HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->free()V -HSPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->setByteBuffer(Ljava/nio/ByteBuffer;)V -HSPLandroid/media/MediaCodec$BufferMap;-><init>()V -HSPLandroid/media/MediaCodec$BufferMap;-><init>(Landroid/media/MediaCodec$BufferMap-IA;)V -HSPLandroid/media/MediaCodec$BufferMap;->clear()V -HSPLandroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V+]Landroid/media/MediaCodec$BufferMap$CodecBuffer;Landroid/media/MediaCodec$BufferMap$CodecBuffer;]Ljava/util/Map;Ljava/util/HashMap; -HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V+]Landroid/media/MediaCodec$BufferMap$CodecBuffer;Landroid/media/MediaCodec$BufferMap$CodecBuffer;]Ljava/util/Map;Ljava/util/HashMap; -HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;-><init>(II)V -HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->set(II)V -HSPLandroid/media/MediaCodec$CryptoInfo;-><init>()V -HSPLandroid/media/MediaCodec$EventHandler;-><init>(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V -HSPLandroid/media/MediaCodec;-><clinit>()V -HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V -HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZII)V -HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V -HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V -HSPLandroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec; -HSPLandroid/media/MediaCodec;->dequeueInputBuffer(J)I -HSPLandroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I+]Landroid/media/MediaCodec$BufferInfo;Landroid/media/MediaCodec$BufferInfo;]Ljava/util/Map;Ljava/util/HashMap; -HSPLandroid/media/MediaCodec;->finalize()V -HSPLandroid/media/MediaCodec;->freeAllTrackedBuffers()V -HSPLandroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer;+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap; -HSPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer;+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap; -HSPLandroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat; -HSPLandroid/media/MediaCodec;->lockAndGetContext()J+]Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/locks/ReentrantLock; -HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap; -HSPLandroid/media/MediaCodec;->release()V -HSPLandroid/media/MediaCodec;->releaseOutputBuffer(IZ)V -HSPLandroid/media/MediaCodec;->releaseOutputBufferInternal(IZZJ)V+]Landroid/media/MediaCodec$BufferMap;Landroid/media/MediaCodec$BufferMap;]Ljava/util/Map;Ljava/util/HashMap; -HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V+]Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/locks/ReentrantLock; -HSPLandroid/media/MediaCodec;->start()V -HSPLandroid/media/MediaCodec;->stop()V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits([Landroid/util/Range;Landroid/util/Range;)V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->createDiscreteSampleRates()V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->getMaxInputChannelCount()I -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->initWithPlatformLimits()V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->isSampleRateSupported(I)Z -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([I)V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([Landroid/util/Range;)V -HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZLandroid/media/MediaFormat;Landroid/media/MediaFormat;)V -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZLjava/util/Map;Ljava/util/Map;)V -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->checkFeature(Ljava/lang/String;I)Z -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->dup()Landroid/media/MediaCodecInfo$CodecCapabilities; -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getAudioCapabilities()Landroid/media/MediaCodecInfo$AudioCapabilities; -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getMimeType()Ljava/lang/String; -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities; -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureRequired(Ljava/lang/String;)Z -HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureSupported(Ljava/lang/String;)Z -HSPLandroid/media/MediaCodecInfo$EncoderCapabilities;->applyLevelLimits()V -HSPLandroid/media/MediaCodecInfo$EncoderCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V -HSPLandroid/media/MediaCodecInfo$EncoderCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V -HSPLandroid/media/MediaCodecInfo$LazyHolder;->-$$Nest$sfgetSIZE_RANGE()Landroid/util/Range; -HSPLandroid/media/MediaCodecInfo$LazyHolder;-><clinit>()V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;-><init>(IIIILandroid/util/Size;)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;-><init>(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;Landroid/util/Size;)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;->covers(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)Z -HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;->getCommonBlockSize(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)Landroid/util/Size; -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyAlignment(II)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyBlockLimits(IILandroid/util/Range;Landroid/util/Range;Landroid/util/Range;)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyLevelLimits()V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyMacroBlockLimits(IIIIIJIIII)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyMacroBlockLimits(IIIJIIII)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->getMeasuredFrameRates(Ljava/util/Map;)Ljava/util/Map; -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->getPerformancePoints(Ljava/util/Map;)Ljava/util/List; -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->initWithPlatformLimits()V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->lambda$getPerformancePoints$0(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)I -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseWidthHeightRanges(Ljava/lang/Object;)Landroid/util/Pair; -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z -HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->updateLimits()V -HSPLandroid/media/MediaCodecInfo;-><init>(Ljava/lang/String;Ljava/lang/String;I[Landroid/media/MediaCodecInfo$CodecCapabilities;)V -HSPLandroid/media/MediaCodecInfo;->checkPowerOfTwo(ILjava/lang/String;)I -HSPLandroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities; -HSPLandroid/media/MediaCodecInfo;->getName()Ljava/lang/String; -HSPLandroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String; -HSPLandroid/media/MediaCodecInfo;->isEncoder()Z -HSPLandroid/media/MediaCodecInfo;->isHardwareAccelerated()Z -HSPLandroid/media/MediaCodecInfo;->isSoftwareOnly()Z -HSPLandroid/media/MediaCodecInfo;->isVendor()Z -HSPLandroid/media/MediaCodecInfo;->makeRegular()Landroid/media/MediaCodecInfo; -HSPLandroid/media/MediaCodecList;-><init>(I)V -HSPLandroid/media/MediaCodecList;->getCodecInfos()[Landroid/media/MediaCodecInfo; -HSPLandroid/media/MediaCodecList;->getGlobalSettings()Ljava/util/Map; -HSPLandroid/media/MediaCodecList;->getNewCodecInfoAt(I)Landroid/media/MediaCodecInfo; -HSPLandroid/media/MediaCodecList;->initCodecList()V -HSPLandroid/media/MediaDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaDescription; -HSPLandroid/media/MediaDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/MediaDescription;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/MediaDescription;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/graphics/Bitmap;Landroid/net/Uri;Landroid/os/Bundle;Landroid/net/Uri;)V -HSPLandroid/media/MediaDescription;->toString()Ljava/lang/String; -HSPLandroid/media/MediaFormat;-><init>()V -HSPLandroid/media/MediaFormat;-><init>(Ljava/util/Map;)V -HSPLandroid/media/MediaFormat;->containsKey(Ljava/lang/String;)Z -HSPLandroid/media/MediaFormat;->createVideoFormat(Ljava/lang/String;II)Landroid/media/MediaFormat; -HSPLandroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I -HSPLandroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/media/MediaFormat;->setFloat(Ljava/lang/String;F)V -HSPLandroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V -HSPLandroid/media/MediaFormat;->setString(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/media/MediaFrameworkPlatformInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;)Ljava/lang/Object; -HSPLandroid/media/MediaFrameworkPlatformInitializer;->getMediaServiceManager()Landroid/media/MediaServiceManager; -HSPLandroid/media/MediaFrameworkPlatformInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;)Landroid/media/session/MediaSessionManager; -HSPLandroid/media/MediaFrameworkPlatformInitializer;->setMediaServiceManager(Landroid/media/MediaServiceManager;)V -HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaMetadata; -HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;)V -HSPLandroid/media/MediaMetadata$Builder;->build()Landroid/media/MediaMetadata; -HSPLandroid/media/MediaMetadata$Builder;->setBitmapDimensionLimit(I)Landroid/media/MediaMetadata$Builder; -HSPLandroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/MediaMetadata;->containsKey(Ljava/lang/String;)Z -HSPLandroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap; -HSPLandroid/media/MediaMetadata;->getDescription()Landroid/media/MediaDescription; -HSPLandroid/media/MediaMetadata;->getLong(Ljava/lang/String;)J -HSPLandroid/media/MediaMetadata;->getString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/media/MediaMetadata;->size()I -HSPLandroid/media/MediaMetadata;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/media/MediaMetadataRetriever;-><init>()V -HSPLandroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; -HSPLandroid/media/MediaMetadataRetriever;->finalize()V -HSPLandroid/media/MediaMetadataRetriever;->setDataSource(Ljava/io/FileDescriptor;)V -HSPLandroid/media/MediaMetadataRetriever;->setDataSource(Ljava/io/FileDescriptor;JJ)V -HSPLandroid/media/MediaPlayer$2$1;->getSubtitleLooper()Landroid/os/Looper; -HSPLandroid/media/MediaPlayer$2$1;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V -HSPLandroid/media/MediaPlayer$2;->run()V -HSPLandroid/media/MediaPlayer$3;-><init>(Landroid/media/MediaPlayer;)V -HSPLandroid/media/MediaPlayer$7;-><init>(Landroid/media/MediaPlayer;)V -HSPLandroid/media/MediaPlayer$7;->onCompletion(Landroid/media/MediaPlayer;)V -HSPLandroid/media/MediaPlayer$EventHandler;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/os/Looper;)V -HSPLandroid/media/MediaPlayer$EventHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/MediaPlayer$TimeProvider$EventHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/MediaPlayer$TimeProvider;-><init>(Landroid/media/MediaPlayer;)V -HSPLandroid/media/MediaPlayer$TimeProvider;->close()V -HSPLandroid/media/MediaPlayer$TimeProvider;->finalize()V -HSPLandroid/media/MediaPlayer$TimeProvider;->getCurrentTimeUs(ZZ)J -HSPLandroid/media/MediaPlayer$TimeProvider;->notifySeek()V -HSPLandroid/media/MediaPlayer$TimeProvider;->onPaused(Z)V -HSPLandroid/media/MediaPlayer$TimeProvider;->scheduleNotification(IJ)V -HSPLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaPlayer$TrackInfo; -HSPLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Landroid/media/MediaPlayer$TrackInfo; -HSPLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/MediaPlayer$TrackInfo;->getTrackType()I -HSPLandroid/media/MediaPlayer;-><init>()V -HSPLandroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z -HSPLandroid/media/MediaPlayer;->cleanDrmObj()V -HSPLandroid/media/MediaPlayer;->finalize()V -HSPLandroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo; -HSPLandroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider; -HSPLandroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V -HSPLandroid/media/MediaPlayer;->playerSetVolume(ZFF)V -HSPLandroid/media/MediaPlayer;->populateInbandTracks()V -HSPLandroid/media/MediaPlayer;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V -HSPLandroid/media/MediaPlayer;->prepare()V -HSPLandroid/media/MediaPlayer;->release()V -HSPLandroid/media/MediaPlayer;->reset()V -HSPLandroid/media/MediaPlayer;->resetDrmState()V -HSPLandroid/media/MediaPlayer;->setAudioAttributes(Landroid/media/AudioAttributes;)V -HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)V -HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V -HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/res/AssetFileDescriptor;)V -HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;)V -HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;JJ)V -HSPLandroid/media/MediaPlayer;->setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V -HSPLandroid/media/MediaPlayer;->setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V -HSPLandroid/media/MediaPlayer;->setSubtitleAnchor()V -HSPLandroid/media/MediaPlayer;->setVolume(FF)V -HSPLandroid/media/MediaPlayer;->start()V -HSPLandroid/media/MediaPlayer;->stayAwake(Z)V -HSPLandroid/media/MediaPlayer;->tryToDisableNativeRoutingCallback()V -HSPLandroid/media/MediaPlayer;->tryToEnableNativeRoutingCallback()V -HSPLandroid/media/MediaRoute2Info$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaRoute2Info; -HSPLandroid/media/MediaRoute2Info$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/MediaRoute2Info$Builder;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;)V -HSPLandroid/media/MediaRoute2Info$Builder;->addFeature(Ljava/lang/String;)Landroid/media/MediaRoute2Info$Builder; -HSPLandroid/media/MediaRoute2Info$Builder;->build()Landroid/media/MediaRoute2Info; -HSPLandroid/media/MediaRoute2Info$Builder;->setConnectionState(I)Landroid/media/MediaRoute2Info$Builder; -HSPLandroid/media/MediaRoute2Info$Builder;->setVolume(I)Landroid/media/MediaRoute2Info$Builder; -HSPLandroid/media/MediaRoute2Info$Builder;->setVolumeHandling(I)Landroid/media/MediaRoute2Info$Builder; -HSPLandroid/media/MediaRoute2Info$Builder;->setVolumeMax(I)Landroid/media/MediaRoute2Info$Builder; -HSPLandroid/media/MediaRoute2Info;-><init>(Landroid/media/MediaRoute2Info$Builder;)V -HSPLandroid/media/MediaRoute2Info;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/MediaRoute2Info;->getId()Ljava/lang/String; -HSPLandroid/media/MediaRoute2Info;->getOriginalId()Ljava/lang/String; -HSPLandroid/media/MediaRoute2Info;->isSystemRoute()Z -HSPLandroid/media/MediaRoute2ProviderInfo$Builder;-><init>()V -HSPLandroid/media/MediaRoute2ProviderInfo$Builder;->addRoute(Landroid/media/MediaRoute2Info;)Landroid/media/MediaRoute2ProviderInfo$Builder; -HSPLandroid/media/MediaRoute2ProviderInfo$Builder;->build()Landroid/media/MediaRoute2ProviderInfo; -HSPLandroid/media/MediaRoute2ProviderInfo;-><init>(Landroid/media/MediaRoute2ProviderInfo$Builder;)V -HSPLandroid/media/MediaRouter$Callback;-><init>()V -HSPLandroid/media/MediaRouter$CallbackInfo;-><init>(Landroid/media/MediaRouter$Callback;IILandroid/media/MediaRouter;)V -HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(I)Z -HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(Landroid/media/MediaRouter$RouteInfo;)Z -HSPLandroid/media/MediaRouter$RouteCategory;-><init>(IIZ)V -HSPLandroid/media/MediaRouter$RouteCategory;-><init>(Ljava/lang/CharSequence;IZ)V -HSPLandroid/media/MediaRouter$RouteCategory;->getName()Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteCategory;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteCategory;->isGroupable()Z -HSPLandroid/media/MediaRouter$RouteCategory;->toString()Ljava/lang/String; -HSPLandroid/media/MediaRouter$RouteInfo$1;-><init>(Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter$RouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V -HSPLandroid/media/MediaRouter$RouteInfo;->choosePresentationDisplay()Landroid/view/Display; -HSPLandroid/media/MediaRouter$RouteInfo;->getAllPresentationDisplays()[Landroid/view/Display; -HSPLandroid/media/MediaRouter$RouteInfo;->getCategory()Landroid/media/MediaRouter$RouteCategory; -HSPLandroid/media/MediaRouter$RouteInfo;->getDescription()Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteInfo;->getDeviceType()I -HSPLandroid/media/MediaRouter$RouteInfo;->getName()Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteInfo;->getName(Landroid/content/Context;)Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteInfo;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteInfo;->getPlaybackStream()I -HSPLandroid/media/MediaRouter$RouteInfo;->getPlaybackType()I -HSPLandroid/media/MediaRouter$RouteInfo;->getPresentationDisplay()Landroid/view/Display; -HSPLandroid/media/MediaRouter$RouteInfo;->getStatus()Ljava/lang/CharSequence; -HSPLandroid/media/MediaRouter$RouteInfo;->getSupportedTypes()I -HSPLandroid/media/MediaRouter$RouteInfo;->getTag()Ljava/lang/Object; -HSPLandroid/media/MediaRouter$RouteInfo;->getVolume()I -HSPLandroid/media/MediaRouter$RouteInfo;->getVolumeHandling()I -HSPLandroid/media/MediaRouter$RouteInfo;->getVolumeMax()I -HSPLandroid/media/MediaRouter$RouteInfo;->isBluetooth()Z -HSPLandroid/media/MediaRouter$RouteInfo;->isConnecting()Z -HSPLandroid/media/MediaRouter$RouteInfo;->isDefault()Z -HSPLandroid/media/MediaRouter$RouteInfo;->isEnabled()Z -HSPLandroid/media/MediaRouter$RouteInfo;->isSelected()Z -HSPLandroid/media/MediaRouter$RouteInfo;->matchesTypes(I)Z -HSPLandroid/media/MediaRouter$RouteInfo;->resolveStatusCode()Z -HSPLandroid/media/MediaRouter$RouteInfo;->routeUpdated()V -HSPLandroid/media/MediaRouter$RouteInfo;->select()V -HSPLandroid/media/MediaRouter$RouteInfo;->setTag(Ljava/lang/Object;)V -HSPLandroid/media/MediaRouter$RouteInfo;->toString()Ljava/lang/String; -HSPLandroid/media/MediaRouter$RouteInfo;->updatePresentationDisplay()Z -HSPLandroid/media/MediaRouter$SimpleCallback;-><init>()V -HSPLandroid/media/MediaRouter$Static$1$1;->run()V -HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V -HSPLandroid/media/MediaRouter$Static$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V -HSPLandroid/media/MediaRouter$Static$Client$1;-><init>(Landroid/media/MediaRouter$Static$Client;)V -HSPLandroid/media/MediaRouter$Static$Client$1;->run()V -HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V -HSPLandroid/media/MediaRouter$Static$Client;->onRestoreRoute()V -HSPLandroid/media/MediaRouter$Static$Client;->onStateChanged()V -HSPLandroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V -HSPLandroid/media/MediaRouter$Static;->getAllPresentationDisplays()[Landroid/view/Display; -HSPLandroid/media/MediaRouter$Static;->getStreamVolume(I)I -HSPLandroid/media/MediaRouter$Static;->isBluetoothA2dpOn()Z -HSPLandroid/media/MediaRouter$Static;->isPlaybackActive()Z -HSPLandroid/media/MediaRouter$Static;->onDisplayChanged(I)V -HSPLandroid/media/MediaRouter$Static;->publishClientDiscoveryRequest()V -HSPLandroid/media/MediaRouter$Static;->publishClientSelectedRoute(Z)V -HSPLandroid/media/MediaRouter$Static;->rebindAsUser(I)V -HSPLandroid/media/MediaRouter$Static;->setSelectedRoute(Landroid/media/MediaRouter$RouteInfo;Z)V -HSPLandroid/media/MediaRouter$Static;->startMonitoringRoutes(Landroid/content/Context;)V -HSPLandroid/media/MediaRouter$Static;->updateAudioRoutes(Landroid/media/AudioRoutesInfo;)V -HSPLandroid/media/MediaRouter$Static;->updateClientState()V -HSPLandroid/media/MediaRouter$Static;->updateDiscoveryRequest()V -HSPLandroid/media/MediaRouter$Static;->updatePresentationDisplays(I)V -HSPLandroid/media/MediaRouter$UserRouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->configureSessionVolume()V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setDescription(Ljava/lang/CharSequence;)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setName(Ljava/lang/CharSequence;)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setPlaybackStream(I)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setPlaybackType(I)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolume(I)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeCallback(Landroid/media/MediaRouter$VolumeCallback;)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeHandling(I)V -HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeMax(I)V -HSPLandroid/media/MediaRouter$VolumeCallback;-><init>()V -HSPLandroid/media/MediaRouter$VolumeCallbackInfo;-><init>(Landroid/media/MediaRouter$VolumeCallback;Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter$VolumeChangeReceiver;-><init>()V -HSPLandroid/media/MediaRouter$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V -HSPLandroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;-><init>()V -HSPLandroid/media/MediaRouter2Manager;->getInstance(Landroid/content/Context;)Landroid/media/MediaRouter2Manager; -HSPLandroid/media/MediaRouter2Utils;->toUniqueId(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/media/MediaRouter;-><init>(Landroid/content/Context;)V -HSPLandroid/media/MediaRouter;->addCallback(ILandroid/media/MediaRouter$Callback;I)V -HSPLandroid/media/MediaRouter;->addRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->addUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V -HSPLandroid/media/MediaRouter;->createRouteCategory(Ljava/lang/CharSequence;Z)Landroid/media/MediaRouter$RouteCategory; -HSPLandroid/media/MediaRouter;->createUserRoute(Landroid/media/MediaRouter$RouteCategory;)Landroid/media/MediaRouter$UserRouteInfo; -HSPLandroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;I)V -HSPLandroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I -HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo; -HSPLandroid/media/MediaRouter;->getRouteAt(I)Landroid/media/MediaRouter$RouteInfo; -HSPLandroid/media/MediaRouter;->getRouteCount()I -HSPLandroid/media/MediaRouter;->getSelectedRoute(I)Landroid/media/MediaRouter$RouteInfo; -HSPLandroid/media/MediaRouter;->removeCallback(Landroid/media/MediaRouter$Callback;)V -HSPLandroid/media/MediaRouter;->removeRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->removeUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V -HSPLandroid/media/MediaRouter;->selectDefaultRouteStatic()V -HSPLandroid/media/MediaRouter;->selectRoute(ILandroid/media/MediaRouter$RouteInfo;)V -HSPLandroid/media/MediaRouter;->selectRouteStatic(ILandroid/media/MediaRouter$RouteInfo;Z)V -HSPLandroid/media/MediaRouter;->systemVolumeChanged(I)V -HSPLandroid/media/MediaRouter;->typesToString(I)Ljava/lang/String; -HSPLandroid/media/MediaRouter;->updateWifiDisplayStatus(Landroid/hardware/display/WifiDisplayStatus;)V -HSPLandroid/media/MediaServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V -HSPLandroid/media/MediaServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; -HSPLandroid/media/MediaServiceManager;-><init>()V -HSPLandroid/media/MediaServiceManager;->getMediaCommunicationServiceRegisterer()Landroid/media/MediaServiceManager$ServiceRegisterer; -HSPLandroid/media/MediaServiceManager;->getMediaSessionServiceRegisterer()Landroid/media/MediaServiceManager$ServiceRegisterer; -HSPLandroid/media/PlayerBase$IPlayerWrapper;-><init>(Landroid/media/PlayerBase;)V -HSPLandroid/media/PlayerBase$PlayerIdCard;-><init>(ILandroid/media/AudioAttributes;Landroid/media/IPlayer;I)V -HSPLandroid/media/PlayerBase$PlayerIdCard;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/media/PlayerBase;-><init>(Landroid/media/AudioAttributes;I)V -HSPLandroid/media/PlayerBase;->basePause()V -HSPLandroid/media/PlayerBase;->baseRegisterPlayer(I)V -HSPLandroid/media/PlayerBase;->baseRelease()V -HSPLandroid/media/PlayerBase;->baseSetVolume(FF)V -HSPLandroid/media/PlayerBase;->baseStart(I)V -HSPLandroid/media/PlayerBase;->baseStop()V -HSPLandroid/media/PlayerBase;->baseUpdateAudioAttributes(Landroid/media/AudioAttributes;)V -HSPLandroid/media/PlayerBase;->baseUpdateDeviceId(Landroid/media/AudioDeviceInfo;)V -HSPLandroid/media/PlayerBase;->deprecateStreamTypeForPlayback(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/media/PlayerBase;->getCurrentOpPackageName()Ljava/lang/String; -HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService; -HSPLandroid/media/PlayerBase;->getStartDelayMs()I -HSPLandroid/media/PlayerBase;->resolvePlaybackSessionId(Landroid/content/Context;I)I -HSPLandroid/media/PlayerBase;->updatePlayerVolume()V -HSPLandroid/media/PlayerBase;->updateState(II)V -HSPLandroid/media/RoutingSessionInfo$Builder;->build()Landroid/media/RoutingSessionInfo; -HSPLandroid/media/RoutingSessionInfo;-><init>(Landroid/media/RoutingSessionInfo$Builder;)V -HSPLandroid/media/RoutingSessionInfo;->convertToUniqueRouteIds(Ljava/util/List;)Ljava/util/List; -HSPLandroid/media/SoundPool$Builder;-><init>()V -HSPLandroid/media/SoundPool$Builder;->build()Landroid/media/SoundPool; -HSPLandroid/media/SoundPool$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/SoundPool$Builder; -HSPLandroid/media/SoundPool$Builder;->setMaxStreams(I)Landroid/media/SoundPool$Builder; -HSPLandroid/media/SoundPool$EventHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/SoundPool;-><init>(Landroid/content/Context;ILandroid/media/AudioAttributes;I)V -HSPLandroid/media/SoundPool;->postEventFromNative(IIILjava/lang/Object;)V -HSPLandroid/media/SoundPool;->setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V -HSPLandroid/media/SubtitleController$1;->handleMessage(Landroid/os/Message;)Z -HSPLandroid/media/SubtitleController;-><init>(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V -HSPLandroid/media/SubtitleController;->doSelectDefaultTrack()V -HSPLandroid/media/SubtitleController;->doSelectTrack(Landroid/media/SubtitleTrack;)V -HSPLandroid/media/SubtitleController;->finalize()V -HSPLandroid/media/SubtitleController;->getDefaultTrack()Landroid/media/SubtitleTrack; -HSPLandroid/media/SubtitleController;->hide()V -HSPLandroid/media/SubtitleController;->reset()V -HSPLandroid/media/SubtitleController;->selectDefaultTrack()V -HSPLandroid/media/SubtitleController;->selectTrack(Landroid/media/SubtitleTrack;)Z -HSPLandroid/media/SubtitleController;->setAnchor(Landroid/media/SubtitleController$Anchor;)V -HSPLandroid/media/Utils$1;-><init>()V -HSPLandroid/media/Utils$1;->compare(Landroid/util/Range;Landroid/util/Range;)I -HSPLandroid/media/Utils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/media/Utils$2;->compare(Landroid/util/Range;Landroid/util/Range;)I -HSPLandroid/media/Utils$2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/media/Utils$ListenerList;-><init>()V -HSPLandroid/media/Utils$ListenerList;-><init>(ZZZ)V -HSPLandroid/media/Utils;->alignRange(Landroid/util/Range;I)Landroid/util/Range; -HSPLandroid/media/Utils;->divUp(II)I -HSPLandroid/media/Utils;->divUp(JJ)J -HSPLandroid/media/Utils;->factorRange(Landroid/util/Range;I)Landroid/util/Range; -HSPLandroid/media/Utils;->factorRange(Landroid/util/Range;J)Landroid/util/Range; -HSPLandroid/media/Utils;->intersectSortedDistinctRanges([Landroid/util/Range;[Landroid/util/Range;)[Landroid/util/Range; -HSPLandroid/media/Utils;->parseIntRange(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range; -HSPLandroid/media/Utils;->parseIntSafely(Ljava/lang/Object;I)I -HSPLandroid/media/Utils;->parseLongRange(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range; -HSPLandroid/media/Utils;->parseRationalRange(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range; -HSPLandroid/media/Utils;->parseSize(Ljava/lang/Object;Landroid/util/Size;)Landroid/util/Size; -HSPLandroid/media/Utils;->parseSizeRange(Ljava/lang/Object;)Landroid/util/Pair; -HSPLandroid/media/Utils;->sortDistinctRanges([Landroid/util/Range;)V -HSPLandroid/media/audiofx/AudioEffect$Descriptor;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;-><init>(II[Landroid/media/AudioAttributes;)V -HSPLandroid/media/audiopolicy/AudioProductStrategy;-><init>(Ljava/lang/String;I[Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;)V -HSPLandroid/media/audiopolicy/AudioProductStrategy;->attributesMatches(Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;)Z -HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioAttributesForStrategyWithLegacyStreamType(I)Landroid/media/AudioAttributes; -HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioProductStrategies()Ljava/util/List; -HSPLandroid/media/audiopolicy/AudioProductStrategy;->getLegacyStreamTypeForStrategyWithAudioAttributes(Landroid/media/AudioAttributes;)I -HSPLandroid/media/audiopolicy/AudioProductStrategy;->initializeAudioProductStrategies()Ljava/util/List; -HSPLandroid/media/browse/MediaBrowser$1;->run()V -HSPLandroid/media/browse/MediaBrowser$2;->run()V -HSPLandroid/media/browse/MediaBrowser$6;->run()V -HSPLandroid/media/browse/MediaBrowser$ConnectionCallback;-><init>()V -HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection$1;->run()V -HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection;->isCurrent(Ljava/lang/String;)Z -HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/media/browse/MediaBrowser$MediaServiceConnection;->postOrRun(Ljava/lang/Runnable;)V -HSPLandroid/media/browse/MediaBrowser$ServiceCallbacks;->onConnect(Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V -HSPLandroid/media/browse/MediaBrowser;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Landroid/media/browse/MediaBrowser$ConnectionCallback;Landroid/os/Bundle;)V -HSPLandroid/media/browse/MediaBrowser;->connect()V -HSPLandroid/media/browse/MediaBrowser;->disconnect()V -HSPLandroid/media/browse/MediaBrowser;->forceCloseConnection()V -HSPLandroid/media/browse/MediaBrowser;->isCurrent(Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;)Z -HSPLandroid/media/browse/MediaBrowserUtils;->areSameOptions(Landroid/os/Bundle;Landroid/os/Bundle;)Z -HSPLandroid/media/metrics/Event;-><init>()V -HSPLandroid/media/metrics/IMediaMetricsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/media/metrics/IMediaMetricsManager$Stub$Proxy;->getPlaybackSessionId(I)Ljava/lang/String; -HSPLandroid/media/metrics/IMediaMetricsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/metrics/IMediaMetricsManager; -HSPLandroid/media/metrics/LogSessionId;-><init>(Ljava/lang/String;)V -HSPLandroid/media/metrics/MediaMetricsManager;-><init>(Landroid/media/metrics/IMediaMetricsManager;I)V -HSPLandroid/media/metrics/MediaMetricsManager;->createPlaybackSession()Landroid/media/metrics/PlaybackSession; -HSPLandroid/media/metrics/NetworkEvent$1;-><init>()V -HSPLandroid/media/metrics/NetworkEvent;-><clinit>()V -HSPLandroid/media/metrics/PlaybackSession;-><init>(Ljava/lang/String;Landroid/media/metrics/MediaMetricsManager;)V -HSPLandroid/media/metrics/PlaybackSession;->getSessionId()Landroid/media/metrics/LogSessionId; -HSPLandroid/media/permission/ClearCallingIdentityContext;-><init>()V -HSPLandroid/media/permission/ClearCallingIdentityContext;->close()V -HSPLandroid/media/permission/ClearCallingIdentityContext;->create()Landroid/media/permission/SafeCloseable; -HSPLandroid/media/permission/Identity;-><init>()V -HSPLandroid/media/session/IActiveSessionsListener$Stub;-><init>()V -HSPLandroid/media/session/IActiveSessionsListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/session/IActiveSessionsListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/media/session/IOnMediaKeyEventDispatchedListener$Stub;-><init>()V -HSPLandroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub;-><init>()V -HSPLandroid/media/session/ISession$Stub$Proxy;->destroySession()V -HSPLandroid/media/session/ISession$Stub$Proxy;->getController()Landroid/media/session/ISessionController; -HSPLandroid/media/session/ISession$Stub$Proxy;->setFlags(I)V -HSPLandroid/media/session/ISession$Stub$Proxy;->setMetadata(Landroid/media/MediaMetadata;JLjava/lang/String;)V -HSPLandroid/media/session/ISession$Stub$Proxy;->setPlaybackState(Landroid/media/session/PlaybackState;)V -HSPLandroid/media/session/ISessionCallback$Stub;-><init>()V -HSPLandroid/media/session/ISessionCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/session/ISessionController$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/session/ISessionController$Stub$Proxy;->getMetadata()Landroid/media/MediaMetadata; -HSPLandroid/media/session/ISessionController$Stub$Proxy;->getPackageName()Ljava/lang/String; -HSPLandroid/media/session/ISessionController$Stub$Proxy;->getPlaybackState()Landroid/media/session/PlaybackState; -HSPLandroid/media/session/ISessionController$Stub$Proxy;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo; -HSPLandroid/media/session/ISessionController$Stub$Proxy;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V -HSPLandroid/media/session/ISessionController$Stub$Proxy;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V -HSPLandroid/media/session/ISessionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionController; -HSPLandroid/media/session/ISessionControllerCallback$Stub;-><init>()V -HSPLandroid/media/session/ISessionControllerCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/session/ISessionControllerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/media/session/ISessionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/media/session/ISessionManager$Stub$Proxy;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V -HSPLandroid/media/session/ISessionManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/media/session/ISessionManager$Stub$Proxy;->createSession(Ljava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/session/ISession; -HSPLandroid/media/session/ISessionManager$Stub$Proxy;->dispatchVolumeKeyEvent(Ljava/lang/String;Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V -HSPLandroid/media/session/ISessionManager$Stub$Proxy;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List; -HSPLandroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager; -HSPLandroid/media/session/MediaController$Callback;-><init>()V -HSPLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V -HSPLandroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V -HSPLandroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V -HSPLandroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V -HSPLandroid/media/session/MediaController$MessageHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaController$PlaybackInfo; -HSPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/session/MediaController$PlaybackInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V -HSPLandroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/MediaSession$Token;)V -HSPLandroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V -HSPLandroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler; -HSPLandroid/media/session/MediaController;->getMetadata()Landroid/media/MediaMetadata; -HSPLandroid/media/session/MediaController;->getPackageName()Ljava/lang/String; -HSPLandroid/media/session/MediaController;->getPlaybackInfo()Landroid/media/session/MediaController$PlaybackInfo; -HSPLandroid/media/session/MediaController;->getPlaybackState()Landroid/media/session/PlaybackState; -HSPLandroid/media/session/MediaController;->getSessionToken()Landroid/media/session/MediaSession$Token; -HSPLandroid/media/session/MediaController;->postMessage(ILjava/lang/Object;Landroid/os/Bundle;)V -HSPLandroid/media/session/MediaController;->registerCallback(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V -HSPLandroid/media/session/MediaController;->removeCallbackLocked(Landroid/media/session/MediaController$Callback;)Z -HSPLandroid/media/session/MediaController;->unregisterCallback(Landroid/media/session/MediaController$Callback;)V -HSPLandroid/media/session/MediaSession$Callback;-><init>()V -HSPLandroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/media/session/MediaSession;Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V -HSPLandroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V -HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$Token; -HSPLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/session/MediaSession$Token;-><init>(ILandroid/media/session/ISessionController;)V -HSPLandroid/media/session/MediaSession$Token;->equals(Ljava/lang/Object;)Z -HSPLandroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController; -HSPLandroid/media/session/MediaSession$Token;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;)V -HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/media/session/MediaSession;->getSessionToken()Landroid/media/session/MediaSession$Token; -HSPLandroid/media/session/MediaSession;->hasCustomParcelable(Landroid/os/Bundle;)Z -HSPLandroid/media/session/MediaSession;->isActive()Z -HSPLandroid/media/session/MediaSession;->release()V -HSPLandroid/media/session/MediaSession;->setActive(Z)V -HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;)V -HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;Landroid/os/Handler;)V -HSPLandroid/media/session/MediaSession;->setFlags(I)V -HSPLandroid/media/session/MediaSession;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V -HSPLandroid/media/session/MediaSession;->setMetadata(Landroid/media/MediaMetadata;)V -HSPLandroid/media/session/MediaSession;->setPlaybackState(Landroid/media/session/PlaybackState;)V -HSPLandroid/media/session/MediaSession;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V -HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;)V -HSPLandroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub;-><init>(Landroid/media/session/MediaSessionManager;)V -HSPLandroid/media/session/MediaSessionManager$RemoteSessionCallbackStub;-><init>(Landroid/media/session/MediaSessionManager;)V -HSPLandroid/media/session/MediaSessionManager$RemoteUserInfo;-><init>(Ljava/lang/String;II)V -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0;->run()V -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;-><init>(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)V -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;->onActiveSessionsChanged(Ljava/util/List;)V -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->-$$Nest$fgetmStub(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;)Landroid/media/session/IActiveSessionsListener$Stub; -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->-$$Nest$mcallOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;Ljava/util/List;)V -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;-><init>(Landroid/content/Context;Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper;->callOnActiveSessionsChangedListener(Ljava/util/List;)V -HSPLandroid/media/session/MediaSessionManager;-><init>(Landroid/content/Context;)V -HSPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;ILjava/util/concurrent/Executor;)V -HSPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;Landroid/os/Handler;)V -HSPLandroid/media/session/MediaSessionManager;->createSession(Landroid/media/session/MediaSession$CallbackStub;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/ISession; -HSPLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventInternal(Landroid/view/KeyEvent;IZZ)V -HSPLandroid/media/session/MediaSessionManager;->getActiveSessions(Landroid/content/ComponentName;)Ljava/util/List; -HSPLandroid/media/session/MediaSessionManager;->getActiveSessionsForUser(Landroid/content/ComponentName;I)Ljava/util/List; -HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState; -HSPLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/session/PlaybackState$Builder;-><init>()V -HSPLandroid/media/session/PlaybackState$Builder;->build()Landroid/media/session/PlaybackState; -HSPLandroid/media/session/PlaybackState$Builder;->setActions(J)Landroid/media/session/PlaybackState$Builder; -HSPLandroid/media/session/PlaybackState$Builder;->setActiveQueueItemId(J)Landroid/media/session/PlaybackState$Builder; -HSPLandroid/media/session/PlaybackState$Builder;->setBufferedPosition(J)Landroid/media/session/PlaybackState$Builder; -HSPLandroid/media/session/PlaybackState$Builder;->setErrorMessage(Ljava/lang/CharSequence;)Landroid/media/session/PlaybackState$Builder; -HSPLandroid/media/session/PlaybackState$Builder;->setExtras(Landroid/os/Bundle;)Landroid/media/session/PlaybackState$Builder; -HSPLandroid/media/session/PlaybackState$Builder;->setState(IJFJ)Landroid/media/session/PlaybackState$Builder; -HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState$CustomAction; -HSPLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V -HSPLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/media/session/PlaybackState;->getPosition()J -HSPLandroid/media/session/PlaybackState;->getState()I -HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/metrics/LogMaker;-><init>(I)V -HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker; -HSPLandroid/metrics/LogMaker;->getEntries()Landroid/util/SparseArray; -HSPLandroid/metrics/LogMaker;->getType()I -HSPLandroid/metrics/LogMaker;->isValidValue(Ljava/lang/Object;)Z -HSPLandroid/metrics/LogMaker;->serialize()[Ljava/lang/Object; -HSPLandroid/metrics/LogMaker;->setCategory(I)Landroid/metrics/LogMaker; -HSPLandroid/metrics/LogMaker;->setComponentName(Landroid/content/ComponentName;)Landroid/metrics/LogMaker; -HSPLandroid/metrics/LogMaker;->setSubtype(I)Landroid/metrics/LogMaker; -HSPLandroid/metrics/LogMaker;->setType(I)Landroid/metrics/LogMaker; -HSPLandroid/multiuser/FeatureFlagsImpl;-><init>()V -HSPLandroid/multiuser/FeatureFlagsImpl;->enableSystemUserOnlyForServicesAndProviders()Z -HSPLandroid/multiuser/Flags;-><clinit>()V -HSPLandroid/multiuser/Flags;->enableSystemUserOnlyForServicesAndProviders()Z+]Landroid/multiuser/FeatureFlags;Landroid/multiuser/FeatureFlagsImpl; -HSPLandroid/net/Credentials;-><init>(III)V -HSPLandroid/net/Credentials;->getPid()I -HSPLandroid/net/Credentials;->getUid()I -HSPLandroid/net/INetworkPolicyListener$Stub;-><init>()V -HSPLandroid/net/INetworkPolicyListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/net/INetworkPolicyListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackground()Z -HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackgroundByCaller()I -HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->registerListener(Landroid/net/INetworkPolicyListener;)V -HSPLandroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager; -HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V -HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService; -HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V -HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket; -HSPLandroid/net/LocalServerSocket;->close()V -HSPLandroid/net/LocalServerSocket;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLandroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V -HSPLandroid/net/LocalSocket;->checkConnected()V -HSPLandroid/net/LocalSocket;->close()V -HSPLandroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket; -HSPLandroid/net/LocalSocket;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLandroid/net/LocalSocket;->getInputStream()Ljava/io/InputStream; -HSPLandroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream; -HSPLandroid/net/LocalSocket;->getPeerCredentials()Landroid/net/Credentials; -HSPLandroid/net/LocalSocket;->implCreateIfNeeded()V -HSPLandroid/net/LocalSocket;->setSoTimeout(I)V -HSPLandroid/net/LocalSocketAddress$Namespace;->getId()I -HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;)V -HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V -HSPLandroid/net/LocalSocketAddress;->getName()Ljava/lang/String; -HSPLandroid/net/LocalSocketAddress;->getNamespace()Landroid/net/LocalSocketAddress$Namespace; -HSPLandroid/net/LocalSocketImpl$SocketInputStream;-><init>(Landroid/net/LocalSocketImpl;)V -HSPLandroid/net/LocalSocketImpl$SocketInputStream;->available()I -HSPLandroid/net/LocalSocketImpl$SocketInputStream;->read([BII)I -HSPLandroid/net/LocalSocketImpl$SocketOutputStream;-><init>(Landroid/net/LocalSocketImpl;)V -HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write(I)V -HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write([BII)V -HSPLandroid/net/LocalSocketImpl;->-$$Nest$fgetfd(Landroid/net/LocalSocketImpl;)Ljava/io/FileDescriptor; -HSPLandroid/net/LocalSocketImpl;->-$$Nest$fgetwriteMonitor(Landroid/net/LocalSocketImpl;)Ljava/lang/Object; -HSPLandroid/net/LocalSocketImpl;->-$$Nest$mwrite_native(Landroid/net/LocalSocketImpl;ILjava/io/FileDescriptor;)V -HSPLandroid/net/LocalSocketImpl;->-$$Nest$mwriteba_native(Landroid/net/LocalSocketImpl;[BIILjava/io/FileDescriptor;)V -HSPLandroid/net/LocalSocketImpl;-><init>()V -HSPLandroid/net/LocalSocketImpl;-><init>(Ljava/io/FileDescriptor;)V -HSPLandroid/net/LocalSocketImpl;->accept(Landroid/net/LocalSocketImpl;)V -HSPLandroid/net/LocalSocketImpl;->bind(Landroid/net/LocalSocketAddress;)V -HSPLandroid/net/LocalSocketImpl;->close()V -HSPLandroid/net/LocalSocketImpl;->create(I)V -HSPLandroid/net/LocalSocketImpl;->finalize()V -HSPLandroid/net/LocalSocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLandroid/net/LocalSocketImpl;->getInputStream()Ljava/io/InputStream; -HSPLandroid/net/LocalSocketImpl;->getOutputStream()Ljava/io/OutputStream; -HSPLandroid/net/LocalSocketImpl;->getPeerCredentials()Landroid/net/Credentials; -HSPLandroid/net/LocalSocketImpl;->getSockAddress()Landroid/net/LocalSocketAddress; -HSPLandroid/net/LocalSocketImpl;->listen(I)V -HSPLandroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V -HSPLandroid/net/MatchAllNetworkSpecifier;-><init>()V -HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkKey; -HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/net/NetworkKey$1;->newArray(I)[Landroid/net/NetworkKey; -HSPLandroid/net/NetworkKey$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/net/NetworkKey;-><init>(Landroid/net/WifiKey;)V -HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;)V -HSPLandroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Landroid/net/NetworkKey; -HSPLandroid/net/NetworkKey;->equals(Ljava/lang/Object;)Z -HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V -HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V -HSPLandroid/net/NetworkPolicyManager$Listener;->onSubscriptionPlansChanged(I[Landroid/telephony/SubscriptionPlan;)V -HSPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V -HSPLandroid/net/NetworkPolicyManager;-><init>(Landroid/content/Context;Landroid/net/INetworkPolicyManager;)V -HSPLandroid/net/NetworkPolicyManager;->getRestrictBackground()Z -HSPLandroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V -HSPLandroid/net/NetworkScoreManager;-><init>(Landroid/content/Context;)V -HSPLandroid/net/NetworkScoreManager;->getActiveScorerPackage()Ljava/lang/String; -HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V -HSPLandroid/net/NetworkSpecifier;-><init>()V -HSPLandroid/net/Proxy;->setHttpProxyConfiguration(Landroid/net/ProxyInfo;)V -HSPLandroid/net/Proxy;->setHttpProxyConfiguration(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V -HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V -HSPLandroid/net/SSLCertificateSocketFactory;-><init>(ILandroid/net/SSLSessionCache;Z)V -HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TelephonyNetworkSpecifier; -HSPLandroid/net/TelephonyNetworkSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/net/TelephonyNetworkSpecifier$Builder;-><init>()V -HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->build()Landroid/net/TelephonyNetworkSpecifier; -HSPLandroid/net/TelephonyNetworkSpecifier$Builder;->setSubscriptionId(I)Landroid/net/TelephonyNetworkSpecifier$Builder; -HSPLandroid/net/TelephonyNetworkSpecifier;-><init>(I)V -HSPLandroid/net/TelephonyNetworkSpecifier;->equals(Ljava/lang/Object;)Z -HSPLandroid/net/TelephonyNetworkSpecifier;->hashCode()I -HSPLandroid/net/TelephonyNetworkSpecifier;->toString()Ljava/lang/String; -HSPLandroid/net/TelephonyNetworkSpecifier;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/Uri;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/net/Uri$1;Landroid/net/Uri$1; -HSPLandroid/net/Uri$1;->newArray(I)[Landroid/net/Uri; -HSPLandroid/net/Uri$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/net/Uri$AbstractHierarchicalUri;-><init>()V -HSPLandroid/net/Uri$AbstractHierarchicalUri;-><init>(Landroid/net/Uri$AbstractHierarchicalUri-IA;)V -HSPLandroid/net/Uri$AbstractHierarchicalUri;->findPortSeparator(Ljava/lang/String;)I -HSPLandroid/net/Uri$AbstractHierarchicalUri;->getHost()Ljava/lang/String; -HSPLandroid/net/Uri$AbstractHierarchicalUri;->getLastPathSegment()Ljava/lang/String; -HSPLandroid/net/Uri$AbstractHierarchicalUri;->getPort()I -HSPLandroid/net/Uri$AbstractHierarchicalUri;->getUserInfo()Ljava/lang/String; -HSPLandroid/net/Uri$AbstractHierarchicalUri;->getUserInfoPart()Landroid/net/Uri$Part; -HSPLandroid/net/Uri$AbstractHierarchicalUri;->parseHost()Ljava/lang/String; -HSPLandroid/net/Uri$AbstractHierarchicalUri;->parsePort()I -HSPLandroid/net/Uri$AbstractHierarchicalUri;->parseUserInfo()Ljava/lang/String; -HSPLandroid/net/Uri$AbstractPart;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/net/Uri$AbstractPart;->getDecoded()Ljava/lang/String; -HSPLandroid/net/Uri$Builder;-><init>()V -HSPLandroid/net/Uri$Builder;->appendEncodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->authority(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->authority(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->build()Landroid/net/Uri; -HSPLandroid/net/Uri$Builder;->clearQuery()Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->encodedAuthority(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->encodedQuery(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->fragment(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->fragment(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->hasSchemeOrAuthority()Z -HSPLandroid/net/Uri$Builder;->path(Landroid/net/Uri$PathPart;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->path(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->query(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$Builder;->toString()Ljava/lang/String;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri;Landroid/net/Uri$HierarchicalUri; -HSPLandroid/net/Uri$HierarchicalUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$PathPart;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V -HSPLandroid/net/Uri$HierarchicalUri;->appendSspTo(Ljava/lang/StringBuilder;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$Part;Landroid/net/Uri$Part;,Landroid/net/Uri$Part$EmptyPart;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$HierarchicalUri;->buildUpon()Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder; -HSPLandroid/net/Uri$HierarchicalUri;->generatePath(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;+]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart;,Landroid/net/Uri$Part;]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getAuthority()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getEncodedAuthority()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getEncodedFragment()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getEncodedPath()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getEncodedQuery()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getFragment()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getPath()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getPathSegments()Ljava/util/List; -HSPLandroid/net/Uri$HierarchicalUri;->getQuery()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getScheme()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->getSchemeSpecificPart()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->isHierarchical()Z -HSPLandroid/net/Uri$HierarchicalUri;->makeUriString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$Part;Landroid/net/Uri$Part$EmptyPart; -HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri; -HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V -HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;Landroid/net/Uri$OpaqueUri-IA;)V -HSPLandroid/net/Uri$OpaqueUri;->getEncodedSchemeSpecificPart()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getScheme()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->getSchemeSpecificPart()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$OpaqueUri;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/net/Uri$Part$EmptyPart;->isEmpty()Z -HSPLandroid/net/Uri$Part;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/net/Uri$Part;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Part; -HSPLandroid/net/Uri$Part;->fromDecoded(Ljava/lang/String;)Landroid/net/Uri$Part; -HSPLandroid/net/Uri$Part;->fromEncoded(Ljava/lang/String;)Landroid/net/Uri$Part; -HSPLandroid/net/Uri$Part;->getEncoded()Ljava/lang/String; -HSPLandroid/net/Uri$Part;->isEmpty()Z -HSPLandroid/net/Uri$Part;->nonNull(Landroid/net/Uri$Part;)Landroid/net/Uri$Part; -HSPLandroid/net/Uri$PathPart;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/net/Uri$PathPart;->appendDecodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$PathPart;->appendEncodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$PathPart;->fromDecoded(Ljava/lang/String;)Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$PathPart;->fromEncoded(Ljava/lang/String;)Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$PathPart;->getEncoded()Ljava/lang/String; -HSPLandroid/net/Uri$PathPart;->getPathSegments()Landroid/net/Uri$PathSegments;+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri$PathSegmentsBuilder;Landroid/net/Uri$PathSegmentsBuilder;]Landroid/net/Uri$PathPart;Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$PathSegments;-><init>([Ljava/lang/String;I)V -HSPLandroid/net/Uri$PathSegments;->get(I)Ljava/lang/Object; -HSPLandroid/net/Uri$PathSegments;->get(I)Ljava/lang/String; -HSPLandroid/net/Uri$PathSegments;->size()I -HSPLandroid/net/Uri$PathSegmentsBuilder;->add(Ljava/lang/String;)V -HSPLandroid/net/Uri$PathSegmentsBuilder;->build()Landroid/net/Uri$PathSegments; -HSPLandroid/net/Uri$StringUri;-><init>(Ljava/lang/String;)V -HSPLandroid/net/Uri$StringUri;-><init>(Ljava/lang/String;Landroid/net/Uri$StringUri-IA;)V -HSPLandroid/net/Uri$StringUri;->buildUpon()Landroid/net/Uri$Builder;+]Landroid/net/Uri$Builder;Landroid/net/Uri$Builder;]Landroid/net/Uri$StringUri;Landroid/net/Uri$StringUri; -HSPLandroid/net/Uri$StringUri;->findFragmentSeparator()I+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->findSchemeSeparator()I+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getAuthority()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getAuthorityPart()Landroid/net/Uri$Part; -HSPLandroid/net/Uri$StringUri;->getEncodedAuthority()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getEncodedFragment()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getEncodedPath()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getEncodedQuery()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getFragment()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getFragmentPart()Landroid/net/Uri$Part; -HSPLandroid/net/Uri$StringUri;->getPath()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getPathPart()Landroid/net/Uri$PathPart; -HSPLandroid/net/Uri$StringUri;->getPathSegments()Ljava/util/List; -HSPLandroid/net/Uri$StringUri;->getQuery()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getQueryPart()Landroid/net/Uri$Part; -HSPLandroid/net/Uri$StringUri;->getScheme()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->getSchemeSpecificPart()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->isHierarchical()Z -HSPLandroid/net/Uri$StringUri;->isRelative()Z -HSPLandroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseFragment()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parsePath()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->toString()Ljava/lang/String; -HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/net/Uri;-><init>()V -HSPLandroid/net/Uri;-><init>(Landroid/net/Uri-IA;)V -HSPLandroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V -HSPLandroid/net/Uri;->checkFileUriExposed(Ljava/lang/String;)V -HSPLandroid/net/Uri;->compareTo(Landroid/net/Uri;)I -HSPLandroid/net/Uri;->compareTo(Ljava/lang/Object;)I -HSPLandroid/net/Uri;->decode(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/net/Uri;->encode(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/net/Uri;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/net/Uri;->equals(Ljava/lang/Object;)Z -HSPLandroid/net/Uri;->fromFile(Ljava/io/File;)Landroid/net/Uri; -HSPLandroid/net/Uri;->fromParts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/net/Uri;->getBooleanQueryParameter(Ljava/lang/String;Z)Z -HSPLandroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/net/Uri;Landroid/net/Uri$StringUri; -HSPLandroid/net/Uri;->getQueryParameterNames()Ljava/util/Set;+]Ljava/lang/String;Ljava/lang/String;]Ljava/util/Set;Ljava/util/LinkedHashSet;]Landroid/net/Uri;Landroid/net/Uri$StringUri; -HSPLandroid/net/Uri;->hashCode()I -HSPLandroid/net/Uri;->isAbsolute()Z -HSPLandroid/net/Uri;->isAllowed(CLjava/lang/String;)Z+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/net/Uri;->isOpaque()Z -HSPLandroid/net/Uri;->normalizeScheme()Landroid/net/Uri; -HSPLandroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/net/Uri;->toSafeString()Ljava/lang/String; -HSPLandroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/net/Uri;->writeToParcel(Landroid/os/Parcel;Landroid/net/Uri;)V -HSPLandroid/net/UriCodec;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/nio/charset/Charset;Lcom/android/icu/charset/CharsetICU;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU;]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; -HSPLandroid/net/UriCodec;->decode(Ljava/lang/String;ZLjava/nio/charset/Charset;Z)Ljava/lang/String; -HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/nio/charset/CharsetDecoder;Lcom/android/icu/charset/CharsetDecoderICU; -HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C -HSPLandroid/net/UriCodec;->hexCharToValue(C)I -HSPLandroid/net/WebAddress;-><init>(Ljava/lang/String;)V -HSPLandroid/net/WebAddress;->toString()Ljava/lang/String; -HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/WifiKey; -HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/net/WifiKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/net/WifiKey;->equals(Ljava/lang/Object;)Z -HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/net/http/X509TrustManagerExtensions;-><init>(Ljavax/net/ssl/X509TrustManager;)V -HSPLandroid/net/http/X509TrustManagerExtensions;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/net/metrics/IpConnectivityLog;-><init>()V -HSPLandroid/net/vcn/VcnTransportInfo$1;-><init>()V -HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/vcn/VcnTransportInfo; -HSPLandroid/net/vcn/VcnTransportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/net/vcn/VcnTransportInfo;-><clinit>()V -HSPLandroid/nfc/NfcFrameworkInitializer;->setNfcServiceManager(Landroid/nfc/NfcServiceManager;)V -HSPLandroid/nfc/NfcServiceManager;-><init>()V -HSPLandroid/nfc/cardemulation/AidGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/nfc/cardemulation/AidGroup; -HSPLandroid/nfc/cardemulation/AidGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/nfc/cardemulation/AidGroup;-><init>(Ljava/util/List;Ljava/lang/String;)V -HSPLandroid/nfc/cardemulation/AidGroup;->isValidCategory(Ljava/lang/String;)Z -HSPLandroid/opengl/EGL14;->eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface; -HSPLandroid/opengl/EGLConfig;-><init>(J)V -HSPLandroid/opengl/EGLContext;-><init>(J)V -HSPLandroid/opengl/EGLDisplay;-><init>(J)V -HSPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J -HSPLandroid/opengl/EGLSurface;-><init>(J)V -HSPLandroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V -HSPLandroid/opengl/Matrix;->setIdentityM([FI)V -HSPLandroid/os/AsyncTask$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -HSPLandroid/os/AsyncTask$3;-><init>(Landroid/os/AsyncTask;)V -HSPLandroid/os/AsyncTask$3;->call()Ljava/lang/Object; -HSPLandroid/os/AsyncTask$4;-><init>(Landroid/os/AsyncTask;Ljava/util/concurrent/Callable;)V -HSPLandroid/os/AsyncTask$4;->done()V -HSPLandroid/os/AsyncTask$AsyncTaskResult;-><init>(Landroid/os/AsyncTask;[Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask$InternalHandler;-><init>(Landroid/os/Looper;)V -HSPLandroid/os/AsyncTask$InternalHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/os/AsyncTask$SerialExecutor$1;-><init>(Landroid/os/AsyncTask$SerialExecutor;Ljava/lang/Runnable;)V -HSPLandroid/os/AsyncTask$SerialExecutor$1;->run()V -HSPLandroid/os/AsyncTask$SerialExecutor;->execute(Ljava/lang/Runnable;)V -HSPLandroid/os/AsyncTask$SerialExecutor;->scheduleNext()V -HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>()V -HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>(Landroid/os/AsyncTask$WorkerRunnable-IA;)V -HSPLandroid/os/AsyncTask;->-$$Nest$fgetmTaskInvoked(Landroid/os/AsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean; -HSPLandroid/os/AsyncTask;->-$$Nest$mfinish(Landroid/os/AsyncTask;Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;->-$$Nest$mpostResult(Landroid/os/AsyncTask;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/AsyncTask;->-$$Nest$mpostResultIfNotInvoked(Landroid/os/AsyncTask;Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;-><init>()V -HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Looper;)V -HSPLandroid/os/AsyncTask;->cancel(Z)Z -HSPLandroid/os/AsyncTask;->execute(Ljava/lang/Runnable;)V -HSPLandroid/os/AsyncTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; -HSPLandroid/os/AsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask; -HSPLandroid/os/AsyncTask;->finish(Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;->getHandler()Landroid/os/Handler; -HSPLandroid/os/AsyncTask;->getMainHandler()Landroid/os/Handler; -HSPLandroid/os/AsyncTask;->getStatus()Landroid/os/AsyncTask$Status; -HSPLandroid/os/AsyncTask;->isCancelled()Z -HSPLandroid/os/AsyncTask;->onCancelled()V -HSPLandroid/os/AsyncTask;->onCancelled(Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;->onPostExecute(Ljava/lang/Object;)V -HSPLandroid/os/AsyncTask;->onPreExecute()V -HSPLandroid/os/AsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/AsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V -HSPLandroid/os/BaseBundle;-><init>()V -HSPLandroid/os/BaseBundle;-><init>(I)V -HSPLandroid/os/BaseBundle;-><init>(Landroid/os/BaseBundle;)V -HSPLandroid/os/BaseBundle;-><init>(Landroid/os/BaseBundle;Z)V+]Landroid/os/BaseBundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/BaseBundle;-><init>(Landroid/os/Parcel;I)V -HSPLandroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;I)V+]Ljava/lang/Object;Landroid/os/Bundle;,Landroid/os/PersistableBundle;]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/os/BaseBundle;->clear()V -HSPLandroid/os/BaseBundle;->containsKey(Ljava/lang/String;)Z -HSPLandroid/os/BaseBundle;->deepCopyValue(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/BaseBundle;->getArrayList(Ljava/lang/String;Ljava/lang/Class;)Ljava/util/ArrayList; -HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;)Z -HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;Z)Z -HSPLandroid/os/BaseBundle;->getBooleanArray(Ljava/lang/String;)[Z -HSPLandroid/os/BaseBundle;->getByteArray(Ljava/lang/String;)[B -HSPLandroid/os/BaseBundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence; -HSPLandroid/os/BaseBundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence; -HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Float;Ljava/lang/Float;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;)I -HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;I)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Integer;Ljava/lang/Integer;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->getIntArray(Ljava/lang/String;)[I -HSPLandroid/os/BaseBundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J -HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;J)J -HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J -HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/Serializable; -HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/BaseBundle;->getStringArray(Ljava/lang/String;)[Ljava/lang/String;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;)Ljava/lang/Object;+]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->getValue(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->getValueAt(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/os/BaseBundle;->initializeFromParcelLocked(Landroid/os/Parcel;ZZ)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/BaseBundle;->isEmpty()Z+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->isEmptyParcel()Z -HSPLandroid/os/BaseBundle;->isEmptyParcel(Landroid/os/Parcel;)Z -HSPLandroid/os/BaseBundle;->isParcelled()Z -HSPLandroid/os/BaseBundle;->keySet()Ljava/util/Set;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->putAll(Landroid/os/PersistableBundle;)V -HSPLandroid/os/BaseBundle;->putAll(Landroid/util/ArrayMap;)V -HSPLandroid/os/BaseBundle;->putBoolean(Ljava/lang/String;Z)V -HSPLandroid/os/BaseBundle;->putBooleanArray(Ljava/lang/String;[Z)V -HSPLandroid/os/BaseBundle;->putByteArray(Ljava/lang/String;[B)V -HSPLandroid/os/BaseBundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V -HSPLandroid/os/BaseBundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V -HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V -HSPLandroid/os/BaseBundle;->putFloat(Ljava/lang/String;F)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V -HSPLandroid/os/BaseBundle;->putIntArray(Ljava/lang/String;[I)V -HSPLandroid/os/BaseBundle;->putLong(Ljava/lang/String;J)V -HSPLandroid/os/BaseBundle;->putLongArray(Ljava/lang/String;[J)V -HSPLandroid/os/BaseBundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V -HSPLandroid/os/BaseBundle;->putString(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/BaseBundle;->putStringArray(Ljava/lang/String;[Ljava/lang/String;)V -HSPLandroid/os/BaseBundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V -HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;)V -HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/BaseBundle;->recycleParcel(Landroid/os/Parcel;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/BaseBundle;->remove(Ljava/lang/String;)V -HSPLandroid/os/BaseBundle;->setClassLoader(Ljava/lang/ClassLoader;)V -HSPLandroid/os/BaseBundle;->setShouldDefuse(Z)V -HSPLandroid/os/BaseBundle;->size()I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/BaseBundle;Landroid/os/Bundle; -HSPLandroid/os/BaseBundle;->unparcel()V+]Landroid/os/BaseBundle;Landroid/os/Bundle;,Landroid/os/PersistableBundle; -HSPLandroid/os/BaseBundle;->unparcel(Z)V -HSPLandroid/os/BaseBundle;->unwrapLazyValueFromMapLocked(ILjava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/function/BiFunction;Landroid/os/Parcel$LazyValue;]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/BatteryManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Landroid/os/IBatteryPropertiesRegistrar;)V -HSPLandroid/os/BatteryManager;->getIntProperty(I)I -HSPLandroid/os/BatteryManager;->getLongProperty(I)J -HSPLandroid/os/BatteryManager;->isCharging()Z -HSPLandroid/os/BatteryManager;->queryProperty(I)J -HSPLandroid/os/BatteryProperty;-><init>()V -HSPLandroid/os/BatteryProperty;->getLong()J -HSPLandroid/os/BatteryProperty;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/os/BatterySaverPolicyConfig;->getAdjustBrightnessFactor()F -HSPLandroid/os/BatterySaverPolicyConfig;->getAdvertiseIsEnabled()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDeferFullBackup()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDeferKeyValueBackup()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDeviceSpecificSettings()Ljava/util/Map; -HSPLandroid/os/BatterySaverPolicyConfig;->getDisableAnimation()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDisableAod()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDisableLaunchBoost()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDisableOptionalSensors()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getDisableVibration()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getEnableAdjustBrightness()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getEnableDataSaver()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getEnableFirewall()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getEnableQuickDoze()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getForceAllAppsStandby()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getForceBackgroundCheck()Z -HSPLandroid/os/BatterySaverPolicyConfig;->getLocationMode()I -HSPLandroid/os/BatteryStats$Counter;-><init>()V -HSPLandroid/os/BatteryStats$LongCounter;-><init>()V -HSPLandroid/os/BatteryStats$Timer;-><init>()V -HSPLandroid/os/BatteryStats$Uid$Pkg$Serv;-><init>()V -HSPLandroid/os/BatteryStats$Uid$Wakelock;-><init>()V -HSPLandroid/os/BatteryStatsManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V -HSPLandroid/os/Binder$$ExternalSyntheticLambda1;->resolveWorkSourceUid(I)I -HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljava/lang/Object;)V -HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactStarted(Landroid/os/IBinder;I)Ljava/lang/Object; -HSPLandroid/os/Binder$ProxyTransactListener;->onTransactStarted(Landroid/os/IBinder;II)Ljava/lang/Object;+]Landroid/os/Binder$ProxyTransactListener;Landroid/os/Binder$PropagateWorkSourceTransactListener; -HSPLandroid/os/Binder;-><init>()V -HSPLandroid/os/Binder;-><init>(Ljava/lang/String;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; -HSPLandroid/os/Binder;->allowBlocking(Landroid/os/IBinder;)Landroid/os/IBinder; -HSPLandroid/os/Binder;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V -HSPLandroid/os/Binder;->checkParcel(Landroid/os/IBinder;ILandroid/os/Parcel;Ljava/lang/String;)V -HSPLandroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinder;)V -HSPLandroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder; -HSPLandroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V -HSPLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V -HSPLandroid/os/Binder;->execTransact(IJJI)Z+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Binder;->execTransactInternal(ILandroid/os/Parcel;Landroid/os/Parcel;II)Z+]Landroid/os/Binder;missing_types -HSPLandroid/os/Binder;->getCallingUserHandle()Landroid/os/UserHandle; -HSPLandroid/os/Binder;->getInterfaceDescriptor()Ljava/lang/String; -HSPLandroid/os/Binder;->getMaxTransactionId()I -HSPLandroid/os/Binder;->getSimpleDescriptor()Ljava/lang/String; -HSPLandroid/os/Binder;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/os/Binder;->getTransactionTraceName(I)Ljava/lang/String;+]Landroid/os/Binder;megamorphic_types]Ljava/lang/StringBuffer;Ljava/lang/StringBuffer;]Ljava/util/concurrent/atomic/AtomicReferenceArray;Ljava/util/concurrent/atomic/AtomicReferenceArray; -HSPLandroid/os/Binder;->isBinderAlive()Z -HSPLandroid/os/Binder;->isDirectlyHandlingTransaction()Z -HSPLandroid/os/Binder;->isProxy(Landroid/os/IInterface;)Z -HSPLandroid/os/Binder;->isStackTrackingEnabled()Z -HSPLandroid/os/Binder;->lambda$static$1(I)I -HSPLandroid/os/Binder;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V -HSPLandroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/os/Binder;->pingBinder()Z -HSPLandroid/os/Binder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface; -HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransactListener;)V -HSPLandroid/os/Binder;->setTransactionCallback(Landroid/os/IBinderCallback;)V -HSPLandroid/os/Binder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/os/Binder;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z -HSPLandroid/os/Binder;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V -HSPLandroid/os/BinderProxy$ProxyMap;->get(J)Landroid/os/BinderProxy; -HSPLandroid/os/BinderProxy$ProxyMap;->hash(J)I -HSPLandroid/os/BinderProxy$ProxyMap;->remove(II)V -HSPLandroid/os/BinderProxy$ProxyMap;->set(JLandroid/os/BinderProxy;)V -HSPLandroid/os/BinderProxy;-><init>(J)V -HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy; -HSPLandroid/os/BinderProxy;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V+]Ljava/util/List;Ljava/util/Collections$SynchronizedRandomAccessList; -HSPLandroid/os/BinderProxy;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface; -HSPLandroid/os/BinderProxy;->sendDeathNotice(Landroid/os/IBinder$DeathRecipient;Landroid/os/IBinder;)V -HSPLandroid/os/BinderProxy;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z+]Landroid/os/BinderProxy;Landroid/os/BinderProxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/BinderProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z+]Ljava/util/List;Ljava/util/Collections$SynchronizedRandomAccessList; -HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V -HSPLandroid/os/BluetoothServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; -HSPLandroid/os/BluetoothServiceManager;-><init>()V -HSPLandroid/os/BluetoothServiceManager;->getBluetoothManagerServiceRegisterer()Landroid/os/BluetoothServiceManager$ServiceRegisterer; -HSPLandroid/os/Build$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/Build;->getRadioVersion()Ljava/lang/String; -HSPLandroid/os/Build;->getSerial()Ljava/lang/String; -HSPLandroid/os/Build;->isDebuggable()Z -HSPLandroid/os/Build;->joinListOrElse(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/Build;->lambda$joinListOrElse$0(Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Bundle; -HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/Bundle$1;->newArray(I)[Landroid/os/Bundle; -HSPLandroid/os/Bundle$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/os/Bundle;-><init>()V -HSPLandroid/os/Bundle;-><init>(I)V -HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;)V -HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;Z)V -HSPLandroid/os/Bundle;-><init>(Landroid/os/Parcel;I)V -HSPLandroid/os/Bundle;-><init>(Landroid/os/PersistableBundle;)V -HSPLandroid/os/Bundle;->clear()V -HSPLandroid/os/Bundle;->clone()Ljava/lang/Object; -HSPLandroid/os/Bundle;->deepCopy()Landroid/os/Bundle; -HSPLandroid/os/Bundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/os/Bundle;->getBinder(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/Bundle;->getBundle(Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/os/Bundle;->getByteArray(Ljava/lang/String;)[B -HSPLandroid/os/Bundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence; -HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;)F -HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;F)F -HSPLandroid/os/Bundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable; -HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;+]Landroid/os/Bundle;Landroid/os/Bundle; -HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;Ljava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable; -HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/Serializable; -HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray; -HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList; -HSPLandroid/os/Bundle;->hasFileDescriptors()Z -HSPLandroid/os/Bundle;->maybePrefillHasFds()V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V -HSPLandroid/os/Bundle;->putBinder(Ljava/lang/String;Landroid/os/IBinder;)V -HSPLandroid/os/Bundle;->putBundle(Ljava/lang/String;Landroid/os/Bundle;)V -HSPLandroid/os/Bundle;->putByteArray(Ljava/lang/String;[B)V -HSPLandroid/os/Bundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V -HSPLandroid/os/Bundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V -HSPLandroid/os/Bundle;->putFloat(Ljava/lang/String;F)V -HSPLandroid/os/Bundle;->putIntegerArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V -HSPLandroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V -HSPLandroid/os/Bundle;->putParcelableArray(Ljava/lang/String;[Landroid/os/Parcelable;)V -HSPLandroid/os/Bundle;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V -HSPLandroid/os/Bundle;->putParcelableList(Ljava/lang/String;Ljava/util/List;)V -HSPLandroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V -HSPLandroid/os/Bundle;->putSparseParcelableArray(Ljava/lang/String;Landroid/util/SparseArray;)V -HSPLandroid/os/Bundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V -HSPLandroid/os/Bundle;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/os/Bundle;->remove(Ljava/lang/String;)V -HSPLandroid/os/Bundle;->setAllowFds(Z)Z -HSPLandroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V -HSPLandroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle; -HSPLandroid/os/Bundle;->setDefusable(Z)V -HSPLandroid/os/Bundle;->toString()Ljava/lang/String; -HSPLandroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/CancellationSignal$Transport;-><init>()V -HSPLandroid/os/CancellationSignal$Transport;->cancel()V -HSPLandroid/os/CancellationSignal;-><init>()V -HSPLandroid/os/CancellationSignal;->cancel()V -HSPLandroid/os/CancellationSignal;->createTransport()Landroid/os/ICancellationSignal; -HSPLandroid/os/CancellationSignal;->fromTransport(Landroid/os/ICancellationSignal;)Landroid/os/CancellationSignal; -HSPLandroid/os/CancellationSignal;->isCanceled()Z -HSPLandroid/os/CancellationSignal;->setOnCancelListener(Landroid/os/CancellationSignal$OnCancelListener;)V -HSPLandroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V -HSPLandroid/os/CancellationSignal;->throwIfCanceled()V -HSPLandroid/os/CancellationSignal;->waitForCancelFinishedLocked()V -HSPLandroid/os/CombinedVibration$Mono$1;-><init>()V -HSPLandroid/os/CombinedVibration$Mono;-><clinit>()V -HSPLandroid/os/CombinedVibration$Mono;-><init>(Landroid/os/VibrationEffect;)V -HSPLandroid/os/CombinedVibration$Mono;->validate()V -HSPLandroid/os/CombinedVibration;-><init>()V -HSPLandroid/os/ConditionVariable;-><init>()V -HSPLandroid/os/ConditionVariable;-><init>(Z)V -HSPLandroid/os/ConditionVariable;->block()V -HSPLandroid/os/ConditionVariable;->block(J)Z -HSPLandroid/os/ConditionVariable;->close()V -HSPLandroid/os/ConditionVariable;->open()V -HSPLandroid/os/DdmSyncStageUpdater;-><clinit>()V -HSPLandroid/os/DdmSyncStageUpdater;-><init>()V -HSPLandroid/os/DdmSyncStageUpdater;->next(Landroid/os/DdmSyncState$Stage;)V -HSPLandroid/os/DdmSyncState$Stage;->$values()[Landroid/os/DdmSyncState$Stage; -HSPLandroid/os/DdmSyncState$Stage;-><clinit>()V -HSPLandroid/os/DdmSyncState$Stage;-><init>(Ljava/lang/String;ILjava/lang/String;)V -HSPLandroid/os/DdmSyncState$Stage;->toInt()I -HSPLandroid/os/DdmSyncState$Stage;->values()[Landroid/os/DdmSyncState$Stage; -HSPLandroid/os/DdmSyncState;-><clinit>()V -HSPLandroid/os/DdmSyncState;->next(Landroid/os/DdmSyncState$Stage;)V -HSPLandroid/os/DeadObjectException;-><init>()V -HSPLandroid/os/DeadObjectException;-><init>(Ljava/lang/String;)V -HSPLandroid/os/Debug$MemoryInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Debug$MemoryInfo; -HSPLandroid/os/Debug$MemoryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/Debug$MemoryInfo$1;->newArray(I)[Landroid/os/Debug$MemoryInfo; -HSPLandroid/os/Debug$MemoryInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/os/Debug$MemoryInfo;-><init>()V -HSPLandroid/os/Debug$MemoryInfo;->getMemoryStat(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/Debug$MemoryInfo;->getMemoryStats()Ljava/util/Map; -HSPLandroid/os/Debug$MemoryInfo;->getOtherLabel(I)Ljava/lang/String; -HSPLandroid/os/Debug$MemoryInfo;->getOtherPrivate(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherPrivateClean(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherPrivateDirty(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherPss(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherRss(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherSharedClean(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherSharedDirty(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherSwappablePss(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherSwappedOut(I)I -HSPLandroid/os/Debug$MemoryInfo;->getOtherSwappedOutPss(I)I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryCode()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryCodeRss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryGraphics()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryGraphicsRss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryJavaHeap()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryJavaHeapRss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryNativeHeap()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryNativeHeapRss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryPrivateOther()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryStack()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryStackRss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummarySystem()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalPss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalSwap()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalSwapPss()I -HSPLandroid/os/Debug$MemoryInfo;->getSummaryUnknownRss()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalPrivateClean()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalPrivateDirty()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalPss()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalRss()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalSharedClean()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalSharedDirty()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappablePss()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOut()I -HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOutPss()I -HSPLandroid/os/Debug$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/os/Debug;->getCaller([Ljava/lang/StackTraceElement;I)Ljava/lang/String; -HSPLandroid/os/Debug;->getCallers(ILjava/lang/String;)Ljava/lang/String; -HSPLandroid/os/Debug;->isDebuggerConnected()Z -HSPLandroid/os/Debug;->threadCpuTimeNanos()J -HSPLandroid/os/Debug;->waitingForDebugger()Z -HSPLandroid/os/DeviceIdleManager;-><init>(Landroid/content/Context;Landroid/os/IDeviceIdleController;)V -HSPLandroid/os/DeviceIdleManager;->getService()Landroid/os/IDeviceIdleController; -HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/DropBoxManager$Entry; -HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLandroid/os/ParcelFileDescriptor;I)V -HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLjava/io/File;I)V -HSPLandroid/os/DropBoxManager$Entry;->close()V -HSPLandroid/os/DropBoxManager$Entry;->getFlags()I -HSPLandroid/os/DropBoxManager$Entry;->getInputStream()Ljava/io/InputStream; -HSPLandroid/os/DropBoxManager$Entry;->getTag()Ljava/lang/String; -HSPLandroid/os/DropBoxManager$Entry;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/DropBoxManager;-><init>(Landroid/content/Context;Lcom/android/internal/os/IDropBoxManagerService;)V -HSPLandroid/os/DropBoxManager;->addFile(Ljava/lang/String;Ljava/io/File;I)V -HSPLandroid/os/DropBoxManager;->addText(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/Environment$UserEnvironment;-><init>(I)V -HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment$UserEnvironment;->buildExternalStoragePublicDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment$UserEnvironment;->getExternalDirs()[Ljava/io/File; -HSPLandroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->buildPaths([Ljava/io/File;[Ljava/lang/String;)[Ljava/io/File; -HSPLandroid/os/Environment;->getDataDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getDataDirectory(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDataDirectoryPath()Ljava/lang/String; -HSPLandroid/os/Environment;->getDataDirectoryPath(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/Environment;->getDataPreloadsDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getDataProfilesDeDirectory(I)Ljava/io/File; -HSPLandroid/os/Environment;->getDataProfilesDePackageDirectory(ILjava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDataRefProfilesDePackageDirectory(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;I)Ljava/io/File; -HSPLandroid/os/Environment;->getDataUserCePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;I)Ljava/io/File; -HSPLandroid/os/Environment;->getDataUserDePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getDownloadCacheDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/Environment;->getExternalStorageState()Ljava/lang/String; -HSPLandroid/os/Environment;->getExternalStorageState(Ljava/io/File;)Ljava/lang/String; -HSPLandroid/os/Environment;->getOemDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getProductDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getRootDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getSystemExtDirectory()Ljava/io/File; -HSPLandroid/os/Environment;->getUserConfigDirectory(I)Ljava/io/File; -HSPLandroid/os/Environment;->initForCurrentUser()V -HSPLandroid/os/Environment;->isExternalStorageEmulated()Z -HSPLandroid/os/Environment;->isExternalStorageEmulated(Ljava/io/File;)Z -HSPLandroid/os/Environment;->isExternalStorageRemovable(Ljava/io/File;)Z -HSPLandroid/os/Environment;->throwIfUserRequired()V -HSPLandroid/os/FactoryTest;->getMode()I -HSPLandroid/os/FileObserver$ObserverThread;-><init>()V -HSPLandroid/os/FileObserver$ObserverThread;->onEvent(IILjava/lang/String;)V -HSPLandroid/os/FileObserver$ObserverThread;->run()V -HSPLandroid/os/FileObserver$ObserverThread;->startWatching(Ljava/util/List;ILandroid/os/FileObserver;)[I -HSPLandroid/os/FileObserver;-><clinit>()V -HSPLandroid/os/FileObserver;-><init>(Ljava/io/File;I)V -HSPLandroid/os/FileObserver;-><init>(Ljava/lang/String;I)V -HSPLandroid/os/FileObserver;-><init>(Ljava/util/List;I)V -HSPLandroid/os/FileObserver;->startWatching()V -HSPLandroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/Object;Ljava/lang/String; -HSPLandroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)V -HSPLandroid/os/FileUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V -HSPLandroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z -HSPLandroid/os/FileUtils;->contains(Ljava/lang/String;Ljava/lang/String;)Z -HSPLandroid/os/FileUtils;->convertToModernFd(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J -HSPLandroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J -HSPLandroid/os/FileUtils;->copyInternalUserspace(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J -HSPLandroid/os/FileUtils;->getMediaProviderAppId(Landroid/content/Context;)I -HSPLandroid/os/FileUtils;->isValidExtFilename(Ljava/lang/String;)Z -HSPLandroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;Ljava/io/FilenameFilter;)[Ljava/io/File; -HSPLandroid/os/FileUtils;->listOrEmpty(Ljava/io/File;)[Ljava/lang/String; -HSPLandroid/os/FileUtils;->newFileOrNull(Ljava/lang/String;)Ljava/io/File; -HSPLandroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I -HSPLandroid/os/FileUtils;->sync(Ljava/io/FileOutputStream;)Z -HSPLandroid/os/FileUtils;->translateModePfdToPosix(I)I -HSPLandroid/os/FileUtils;->translateModePosixToPfd(I)I -HSPLandroid/os/FileUtils;->translateModeStringToPosix(Ljava/lang/String;)I -HSPLandroid/os/FileUtils;->trimFilename(Ljava/lang/StringBuilder;I)V -HSPLandroid/os/GraphicsEnvironment;->chooseDriver(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Z -HSPLandroid/os/GraphicsEnvironment;->chooseDriverInternal(Landroid/os/Bundle;Landroid/content/pm/ApplicationInfo;)Ljava/lang/String; -HSPLandroid/os/GraphicsEnvironment;->debugLayerEnabled(Landroid/os/Bundle;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Z -HSPLandroid/os/GraphicsEnvironment;->getAppInfoWithMetadata(Landroid/content/Context;Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/os/GraphicsEnvironment;->getGlobalSettingsString(Landroid/content/ContentResolver;Landroid/os/Bundle;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/os/GraphicsEnvironment;->getInstance()Landroid/os/GraphicsEnvironment; -HSPLandroid/os/GraphicsEnvironment;->getPackageIndex(Ljava/lang/String;Ljava/util/List;)I -HSPLandroid/os/GraphicsEnvironment;->getVulkanVersion(Landroid/content/pm/PackageManager;)I -HSPLandroid/os/GraphicsEnvironment;->queryAngleChoiceInternal(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/GraphicsEnvironment;->setLayerPaths(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/GraphicsEnvironment;->setup(Landroid/content/Context;Landroid/os/Bundle;)V -HSPLandroid/os/GraphicsEnvironment;->setupAngle(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;)Z -HSPLandroid/os/GraphicsEnvironment;->setupGpuLayers(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/os/GraphicsEnvironment;->shouldShowAngleInUseDialogBox(Landroid/content/Context;)Z -HSPLandroid/os/GraphicsEnvironment;->showAngleInUseDialogBox(Landroid/content/Context;)V -HSPLandroid/os/Handler$BlockingRunnable;-><init>(Ljava/lang/Runnable;)V -HSPLandroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z -HSPLandroid/os/Handler$BlockingRunnable;->run()V -HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;)V -HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;Landroid/os/Handler$MessengerImpl-IA;)V -HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V -HSPLandroid/os/Handler;-><init>()V -HSPLandroid/os/Handler;-><init>(Landroid/os/Handler$Callback;)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Handler$Callback;Z)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V -HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;ZZ)V -HSPLandroid/os/Handler;-><init>(Z)V -HSPLandroid/os/Handler;->createAsync(Landroid/os/Looper;)Landroid/os/Handler; -HSPLandroid/os/Handler;->disallowNullArgumentIfShared(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V+]Landroid/os/Handler;missing_types -HSPLandroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z+]Landroid/os/Message;Landroid/os/Message;]Landroid/os/MessageQueue;Landroid/os/MessageQueue; -HSPLandroid/os/Handler;->executeOrSendMessage(Landroid/os/Message;)Z -HSPLandroid/os/Handler;->getIMessenger()Landroid/os/IMessenger; -HSPLandroid/os/Handler;->getLooper()Landroid/os/Looper; -HSPLandroid/os/Handler;->getMain()Landroid/os/Handler; -HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;)Landroid/os/Message; -HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message; -HSPLandroid/os/Handler;->getTraceName(Landroid/os/Message;)Ljava/lang/String; -HSPLandroid/os/Handler;->handleCallback(Landroid/os/Message;)V+]Ljava/lang/Runnable;missing_types -HSPLandroid/os/Handler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z -HSPLandroid/os/Handler;->hasMessages(I)Z -HSPLandroid/os/Handler;->hasMessages(ILjava/lang/Object;)Z -HSPLandroid/os/Handler;->obtainMessage()Landroid/os/Message; -HSPLandroid/os/Handler;->obtainMessage(I)Landroid/os/Message; -HSPLandroid/os/Handler;->obtainMessage(III)Landroid/os/Message; -HSPLandroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message; -HSPLandroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; -HSPLandroid/os/Handler;->post(Ljava/lang/Runnable;)Z+]Landroid/os/Handler;missing_types -HSPLandroid/os/Handler;->postAtFrontOfQueue(Ljava/lang/Runnable;)Z -HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler; -HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;Ljava/lang/Object;J)Z -HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;IJ)Z -HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z -HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;Ljava/lang/Object;J)Z -HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V -HSPLandroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V -HSPLandroid/os/Handler;->removeMessages(I)V -HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V -HSPLandroid/os/Handler;->runWithScissors(Ljava/lang/Runnable;J)Z -HSPLandroid/os/Handler;->sendEmptyMessage(I)Z -HSPLandroid/os/Handler;->sendEmptyMessageAtTime(IJ)Z -HSPLandroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z -HSPLandroid/os/Handler;->sendMessage(Landroid/os/Message;)Z+]Landroid/os/Handler;missing_types -HSPLandroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z -HSPLandroid/os/Handler;->sendMessageAtTime(Landroid/os/Message;J)Z -HSPLandroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z+]Landroid/os/Handler;missing_types -HSPLandroid/os/Handler;->toString()Ljava/lang/String; -HSPLandroid/os/HandlerExecutor;-><init>(Landroid/os/Handler;)V -HSPLandroid/os/HandlerExecutor;->execute(Ljava/lang/Runnable;)V -HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;)V -HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;I)V -HSPLandroid/os/HandlerThread;->getLooper()Landroid/os/Looper; -HSPLandroid/os/HandlerThread;->getThreadHandler()Landroid/os/Handler; -HSPLandroid/os/HandlerThread;->getThreadId()I -HSPLandroid/os/HandlerThread;->onCreated()V -HSPLandroid/os/HandlerThread;->onLooperPrepared()V -HSPLandroid/os/HandlerThread;->quit()Z -HSPLandroid/os/HandlerThread;->quitSafely()Z -HSPLandroid/os/HandlerThread;->run()V -HSPLandroid/os/HwBinder;-><init>()V -HSPLandroid/os/HwBinder;->getService(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IHwBinder; -HSPLandroid/os/HwBlob;-><init>(I)V -HSPLandroid/os/HwBlob;->wrapArray([B)[Ljava/lang/Byte; -HSPLandroid/os/HwParcel;-><init>()V -HSPLandroid/os/HwParcel;-><init>(Z)V -HSPLandroid/os/HwParcel;->readInt8Vector()Ljava/util/ArrayList; -HSPLandroid/os/HwParcel;->readStringVector()Ljava/util/ArrayList; -HSPLandroid/os/HwParcel;->writeInt8Vector(Ljava/util/ArrayList;)V -HSPLandroid/os/HwParcel;->writeStringVector(Ljava/util/ArrayList;)V -HSPLandroid/os/HwRemoteBinder;-><init>()V -HSPLandroid/os/HwRemoteBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IHwInterface; -HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I -HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar; -HSPLandroid/os/IBinder$DeathRecipient;->binderDied(Landroid/os/IBinder;)V+]Landroid/os/IBinder$DeathRecipient;Landroid/os/RemoteCallbackList$Callback; -HSPLandroid/os/IBinder;->getSuggestedMaxIpcSizeBytes()I -HSPLandroid/os/ICancellationSignal$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/ICancellationSignal$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/ICancellationSignal$Stub$Proxy;->cancel()V -HSPLandroid/os/ICancellationSignal$Stub;-><init>()V -HSPLandroid/os/ICancellationSignal$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/ICancellationSignal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ICancellationSignal; -HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->getSerialForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService; -HSPLandroid/os/IDeviceIdleController$Stub$Proxy;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z -HSPLandroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController; -HSPLandroid/os/IHintManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IHintManager$Stub$Proxy;->createHintSession(Landroid/os/IBinder;[IJ)Landroid/os/IHintSession; -HSPLandroid/os/IHintManager$Stub$Proxy;->getHintSessionPreferredRate()J -HSPLandroid/os/IHintManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IHintManager; -HSPLandroid/os/IHintSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IHintSession; -HSPLandroid/os/IMessenger$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IMessenger$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IMessenger$Stub$Proxy;->send(Landroid/os/Message;)V -HSPLandroid/os/IMessenger$Stub;-><init>()V -HSPLandroid/os/IMessenger$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IMessenger$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IMessenger; -HSPLandroid/os/IMessenger$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/os/IMessenger$Stub;->getMaxTransactionId()I -HSPLandroid/os/IMessenger$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/os/IMessenger$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/INetworkManagementService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/INetworkManagementService$Stub$Proxy;->setUidCleartextNetworkPolicy(II)V -HSPLandroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService; -HSPLandroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IPowerManager$Stub$Proxy;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;ILandroid/os/IWakeLockCallback;)V -HSPLandroid/os/IPowerManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IPowerManager$Stub$Proxy;->getPowerSaveState(I)Landroid/os/PowerSaveState; -HSPLandroid/os/IPowerManager$Stub$Proxy;->isDeviceIdleMode()Z -HSPLandroid/os/IPowerManager$Stub$Proxy;->isInteractive()Z -HSPLandroid/os/IPowerManager$Stub$Proxy;->isLightDeviceIdleMode()Z -HSPLandroid/os/IPowerManager$Stub$Proxy;->isPowerSaveMode()Z -HSPLandroid/os/IPowerManager$Stub$Proxy;->releaseWakeLock(Landroid/os/IBinder;I)V -HSPLandroid/os/IPowerManager$Stub$Proxy;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V -HSPLandroid/os/IPowerManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPowerManager; -HSPLandroid/os/IPowerManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/os/IRemoteCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IRemoteCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IRemoteCallback$Stub$Proxy;->sendResult(Landroid/os/Bundle;)V -HSPLandroid/os/IRemoteCallback$Stub;-><init>()V -HSPLandroid/os/IRemoteCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRemoteCallback; -HSPLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V -HSPLandroid/os/IServiceManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/IServiceManager$Stub$Proxy;->isDeclared(Ljava/lang/String;)Z -HSPLandroid/os/ISystemConfig$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemConfig; -HSPLandroid/os/IThermalEventListener$Stub;-><init>()V -HSPLandroid/os/IThermalEventListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IThermalService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IThermalService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IThermalService$Stub$Proxy;->getCurrentThermalStatus()I -HSPLandroid/os/IThermalService$Stub$Proxy;->registerThermalStatusListener(Landroid/os/IThermalStatusListener;)Z -HSPLandroid/os/IThermalService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalService; -HSPLandroid/os/IThermalStatusListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IThermalStatusListener$Stub;->getMaxTransactionId()I -HSPLandroid/os/IThermalStatusListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IUserManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictionsForUser(Ljava/lang/String;I)Landroid/os/Bundle; -HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileIds(IZ)[I -HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileParent(I)Landroid/content/pm/UserInfo; -HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileType(I)Ljava/lang/String; -HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List; -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeColorResId(I)I -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo; -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List; -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictions(I)Landroid/os/Bundle; -HSPLandroid/os/IUserManager$Stub$Proxy;->getUserSerialNumber(I)I -HSPLandroid/os/IUserManager$Stub$Proxy;->getUsers(ZZZ)Ljava/util/List; -HSPLandroid/os/IUserManager$Stub$Proxy;->hasBadge(I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->hasBaseUserRestriction(Ljava/lang/String;I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->hasUserRestriction(Ljava/lang/String;I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->isDemoUser(I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->isQuietModeEnabled(I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->isUserRunning(I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlocked(I)Z -HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlockingOrUnlocked(I)Z -HSPLandroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager; -HSPLandroid/os/IVibratorManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/IVibratorManagerService$Stub$Proxy;->getVibratorIds()[I -HSPLandroid/os/IVibratorManagerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorManagerService; -HSPLandroid/os/IpcDataCache$Config;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/IpcDataCache$Config;-><init>(Landroid/os/IpcDataCache$Config;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/IpcDataCache$Config;->api()Ljava/lang/String; -HSPLandroid/os/IpcDataCache$Config;->child(Ljava/lang/String;)Landroid/os/IpcDataCache$Config; -HSPLandroid/os/IpcDataCache$Config;->maxEntries()I -HSPLandroid/os/IpcDataCache$Config;->module()Ljava/lang/String; -HSPLandroid/os/IpcDataCache$Config;->name()Ljava/lang/String; -HSPLandroid/os/IpcDataCache$Config;->registerChild(Ljava/lang/String;)V -HSPLandroid/os/IpcDataCache$QueryHandler;-><init>()V -HSPLandroid/os/IpcDataCache$QueryHandler;->shouldBypassCache(Ljava/lang/Object;)Z -HSPLandroid/os/IpcDataCache$SystemServerCallHandler;-><init>(Landroid/os/IpcDataCache$RemoteCall;)V -HSPLandroid/os/IpcDataCache$SystemServerCallHandler;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/IpcDataCache;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/IpcDataCache$QueryHandler;)V -HSPLandroid/os/IpcDataCache;-><init>(Landroid/os/IpcDataCache$Config;Landroid/os/IpcDataCache$QueryHandler;)V -HSPLandroid/os/IpcDataCache;-><init>(Landroid/os/IpcDataCache$Config;Landroid/os/IpcDataCache$RemoteCall;)V -HSPLandroid/os/IpcDataCache;->query(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/LocaleList; -HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/LocaleList;-><init>([Ljava/util/Locale;)V -HSPLandroid/os/LocaleList;->computeFirstMatch(Ljava/util/Collection;Z)Ljava/util/Locale; -HSPLandroid/os/LocaleList;->computeFirstMatchIndex(Ljava/util/Collection;Z)I -HSPLandroid/os/LocaleList;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/util/Locale; -HSPLandroid/os/LocaleList;->findFirstMatchIndex(Ljava/util/Locale;)I -HSPLandroid/os/LocaleList;->forLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList; -HSPLandroid/os/LocaleList;->get(I)Ljava/util/Locale; -HSPLandroid/os/LocaleList;->getAdjustedDefault()Landroid/os/LocaleList; -HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList;+]Ljava/lang/Object;Ljava/util/Locale; -HSPLandroid/os/LocaleList;->getEmptyLocaleList()Landroid/os/LocaleList; -HSPLandroid/os/LocaleList;->getFirstMatchWithEnglishSupported([Ljava/lang/String;)Ljava/util/Locale; -HSPLandroid/os/LocaleList;->getLikelyScript(Ljava/util/Locale;)Ljava/lang/String; -HSPLandroid/os/LocaleList;->hashCode()I -HSPLandroid/os/LocaleList;->isEmpty()Z -HSPLandroid/os/LocaleList;->isPseudoLocale(Ljava/util/Locale;)Z -HSPLandroid/os/LocaleList;->isPseudoLocalesOnly([Ljava/lang/String;)Z -HSPLandroid/os/LocaleList;->matchesLanguageAndScript(Ljava/util/Locale;Ljava/util/Locale;)Z -HSPLandroid/os/LocaleList;->setDefault(Landroid/os/LocaleList;)V -HSPLandroid/os/LocaleList;->setDefault(Landroid/os/LocaleList;I)V -HSPLandroid/os/LocaleList;->size()I -HSPLandroid/os/LocaleList;->toLanguageTags()Ljava/lang/String; -HSPLandroid/os/LocaleList;->toString()Ljava/lang/String; -HSPLandroid/os/LocaleList;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/Looper;-><init>(Z)V -HSPLandroid/os/Looper;->getMainLooper()Landroid/os/Looper; -HSPLandroid/os/Looper;->getQueue()Landroid/os/MessageQueue; -HSPLandroid/os/Looper;->getThread()Ljava/lang/Thread; -HSPLandroid/os/Looper;->getThresholdOverride()I+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Thread;missing_types -HSPLandroid/os/Looper;->isCurrentThread()Z -HSPLandroid/os/Looper;->loop()V -HSPLandroid/os/Looper;->loopOnce(Landroid/os/Looper;JI)Z+]Landroid/os/Handler;megamorphic_types]Landroid/os/Message;Landroid/os/Message;]Landroid/os/MessageQueue;Landroid/os/MessageQueue; -HSPLandroid/os/Looper;->myLooper()Landroid/os/Looper;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; -HSPLandroid/os/Looper;->myQueue()Landroid/os/MessageQueue; -HSPLandroid/os/Looper;->prepare()V -HSPLandroid/os/Looper;->prepare(Z)V -HSPLandroid/os/Looper;->prepareMainLooper()V -HSPLandroid/os/Looper;->quit()V -HSPLandroid/os/Looper;->quitSafely()V -HSPLandroid/os/Looper;->setSlowLogThresholdMs(JJ)V -HSPLandroid/os/Looper;->setTraceTag(J)V -HSPLandroid/os/Looper;->showSlowLog(JJJLjava/lang/String;Landroid/os/Message;)Z -HSPLandroid/os/Looper;->toString()Ljava/lang/String; -HSPLandroid/os/Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Message; -HSPLandroid/os/Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/Message;-><init>()V -HSPLandroid/os/Message;->copyFrom(Landroid/os/Message;)V -HSPLandroid/os/Message;->getCallback()Ljava/lang/Runnable; -HSPLandroid/os/Message;->getData()Landroid/os/Bundle; -HSPLandroid/os/Message;->getTarget()Landroid/os/Handler; -HSPLandroid/os/Message;->getWhen()J -HSPLandroid/os/Message;->isInUse()Z -HSPLandroid/os/Message;->markInUse()V -HSPLandroid/os/Message;->obtain()Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Handler;)Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Handler;III)Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/os/Message; -HSPLandroid/os/Message;->obtain(Landroid/os/Message;)Landroid/os/Message; -HSPLandroid/os/Message;->peekData()Landroid/os/Bundle; -HSPLandroid/os/Message;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/os/Message;->recycle()V -HSPLandroid/os/Message;->recycleUnchecked()V -HSPLandroid/os/Message;->sendToTarget()V+]Landroid/os/Handler;megamorphic_types -HSPLandroid/os/Message;->setAsynchronous(Z)V -HSPLandroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message; -HSPLandroid/os/Message;->setData(Landroid/os/Bundle;)V -HSPLandroid/os/Message;->setTarget(Landroid/os/Handler;)V -HSPLandroid/os/Message;->setWhat(I)Landroid/os/Message; -HSPLandroid/os/Message;->toString()Ljava/lang/String; -HSPLandroid/os/Message;->toString(J)Ljava/lang/String; -HSPLandroid/os/Message;->updateCheckRecycle(I)V -HSPLandroid/os/Message;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/MessageQueue;-><init>(Z)V -HSPLandroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V -HSPLandroid/os/MessageQueue;->addOnFileDescriptorEventListener(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V -HSPLandroid/os/MessageQueue;->dispatchEvents(II)I -HSPLandroid/os/MessageQueue;->dispose()V -HSPLandroid/os/MessageQueue;->enqueueMessage(Landroid/os/Message;J)Z+]Landroid/os/Message;Landroid/os/Message; -HSPLandroid/os/MessageQueue;->finalize()V -HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;ILjava/lang/Object;)Z -HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)Z -HSPLandroid/os/MessageQueue;->next()Landroid/os/Message;+]Landroid/os/MessageQueue$IdleHandler;missing_types]Landroid/os/Message;Landroid/os/Message;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/os/MessageQueue;->postSyncBarrier()I -HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I+]Landroid/os/Message;Landroid/os/Message; -HSPLandroid/os/MessageQueue;->quit(Z)V -HSPLandroid/os/MessageQueue;->removeAllFutureMessagesLocked()V -HSPLandroid/os/MessageQueue;->removeAllMessagesLocked()V -HSPLandroid/os/MessageQueue;->removeCallbacksAndMessages(Landroid/os/Handler;Ljava/lang/Object;)V -HSPLandroid/os/MessageQueue;->removeIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V -HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;ILjava/lang/Object;)V+]Landroid/os/Message;Landroid/os/Message; -HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V+]Landroid/os/Message;Landroid/os/Message; -HSPLandroid/os/MessageQueue;->removeOnFileDescriptorEventListener(Ljava/io/FileDescriptor;)V -HSPLandroid/os/MessageQueue;->removeSyncBarrier(I)V+]Landroid/os/Message;Landroid/os/Message; -HSPLandroid/os/MessageQueue;->updateOnFileDescriptorEventListenerLocked(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V -HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger; -HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/Messenger;-><init>(Landroid/os/Handler;)V -HSPLandroid/os/Messenger;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/Messenger;->getBinder()Landroid/os/IBinder; -HSPLandroid/os/Messenger;->hashCode()I -HSPLandroid/os/Messenger;->readMessengerOrNullFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger; -HSPLandroid/os/Messenger;->send(Landroid/os/Message;)V -HSPLandroid/os/Messenger;->writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V -HSPLandroid/os/Messenger;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/Parcel$2;-><init>(Landroid/os/Parcel;Ljava/io/InputStream;Ljava/lang/ClassLoader;)V -HSPLandroid/os/Parcel$2;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;+]Ljava/io/ObjectStreamClass;Ljava/io/ObjectStreamClass; -HSPLandroid/os/Parcel$LazyValue;-><init>(Landroid/os/Parcel;IIILjava/lang/ClassLoader;)V -HSPLandroid/os/Parcel$LazyValue;->apply(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel$LazyValue;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/os/Parcel$LazyValue;Landroid/os/Parcel$LazyValue; -HSPLandroid/os/Parcel$LazyValue;->writeToParcel(Landroid/os/Parcel;)V -HSPLandroid/os/Parcel$ReadWriteHelper;->readString16(Landroid/os/Parcel;)Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel$ReadWriteHelper;->readString8(Landroid/os/Parcel;)Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel$ReadWriteHelper;->writeString16(Landroid/os/Parcel;Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel$ReadWriteHelper;->writeString8(Landroid/os/Parcel;Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->-$$Nest$mreadValue(Landroid/os/Parcel;Ljava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/Parcel;-><init>(J)V -HSPLandroid/os/Parcel;->adoptClassCookies(Landroid/os/Parcel;)V -HSPLandroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V -HSPLandroid/os/Parcel;->checkArrayTypeToUnparcel(Ljava/lang/Class;Ljava/lang/Class;)V -HSPLandroid/os/Parcel;->checkTypeToUnparcel(Ljava/lang/Class;Ljava/lang/Class;)V -HSPLandroid/os/Parcel;->copyClassCookies()Ljava/util/Map; -HSPLandroid/os/Parcel;->createBinderArrayList()Ljava/util/ArrayList; -HSPLandroid/os/Parcel;->createBooleanArray()[Z -HSPLandroid/os/Parcel;->createByteArray()[B -HSPLandroid/os/Parcel;->createException(ILjava/lang/String;)Ljava/lang/Exception; -HSPLandroid/os/Parcel;->createExceptionOrNull(ILjava/lang/String;)Ljava/lang/Exception; -HSPLandroid/os/Parcel;->createFloatArray()[F -HSPLandroid/os/Parcel;->createIntArray()[I+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->createLongArray()[J+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->createString16Array()[Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->createString8Array()[Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->createStringArray()[Ljava/lang/String; -HSPLandroid/os/Parcel;->createStringArrayList()Ljava/util/ArrayList;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->createTypedArray(Landroid/os/Parcelable$Creator;)[Ljava/lang/Object;+]Landroid/os/Parcelable$Creator;missing_types]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->dataAvail()I -HSPLandroid/os/Parcel;->dataPosition()I -HSPLandroid/os/Parcel;->dataSize()I -HSPLandroid/os/Parcel;->destroy()V -HSPLandroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->enforceNoDataAvail()V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->ensureReadSquashableParcelables()V -HSPLandroid/os/Parcel;->ensureWithinMemoryLimit(II)V -HSPLandroid/os/Parcel;->finalize()V -HSPLandroid/os/Parcel;->freeBuffer()V -HSPLandroid/os/Parcel;->getClassCookie(Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/Parcel;->getExceptionCode(Ljava/lang/Throwable;)I -HSPLandroid/os/Parcel;->getValueType(Ljava/lang/Object;)I -HSPLandroid/os/Parcel;->hasFileDescriptors()Z -HSPLandroid/os/Parcel;->hasReadWriteHelper()Z -HSPLandroid/os/Parcel;->init(J)V -HSPLandroid/os/Parcel;->isLengthPrefixed(I)Z -HSPLandroid/os/Parcel;->markForBinder(Landroid/os/IBinder;)V -HSPLandroid/os/Parcel;->markSensitive()V -HSPLandroid/os/Parcel;->marshall()[B -HSPLandroid/os/Parcel;->maybeWriteSquashed(Landroid/os/Parcelable;)Z -HSPLandroid/os/Parcel;->obtain()Landroid/os/Parcel; -HSPLandroid/os/Parcel;->obtain(J)Landroid/os/Parcel; -HSPLandroid/os/Parcel;->obtain(Landroid/os/IBinder;)Landroid/os/Parcel; -HSPLandroid/os/Parcel;->pushAllowFds(Z)Z -HSPLandroid/os/Parcel;->readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList; -HSPLandroid/os/Parcel;->readArrayList(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/ArrayList; -HSPLandroid/os/Parcel;->readArrayListInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/ArrayList;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;IZZLjava/lang/ClassLoader;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V -HSPLandroid/os/Parcel;->readArrayMapInternal(Landroid/util/ArrayMap;ILjava/lang/ClassLoader;)V -HSPLandroid/os/Parcel;->readArraySet(Ljava/lang/ClassLoader;)Landroid/util/ArraySet; -HSPLandroid/os/Parcel;->readBinderList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->readBlob()[B -HSPLandroid/os/Parcel;->readBoolean()Z+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readBooleanArray([Z)V -HSPLandroid/os/Parcel;->readBundle()Landroid/os/Bundle;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readByte()B+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readByteArray([B)V -HSPLandroid/os/Parcel;->readCallingWorkSourceUid()I -HSPLandroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence;+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1; -HSPLandroid/os/Parcel;->readCharSequenceArray()[Ljava/lang/CharSequence; -HSPLandroid/os/Parcel;->readDouble()D -HSPLandroid/os/Parcel;->readException()V -HSPLandroid/os/Parcel;->readException(ILjava/lang/String;)V -HSPLandroid/os/Parcel;->readExceptionCode()I -HSPLandroid/os/Parcel;->readFloat()F -HSPLandroid/os/Parcel;->readFloatArray([F)V -HSPLandroid/os/Parcel;->readHashMap(Ljava/lang/ClassLoader;)Ljava/util/HashMap; -HSPLandroid/os/Parcel;->readHashMapInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/HashMap; -HSPLandroid/os/Parcel;->readInt()I -HSPLandroid/os/Parcel;->readIntArray([I)V -HSPLandroid/os/Parcel;->readLazyValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V -HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)V -HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;)V -HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;Ljava/lang/Class;)V -HSPLandroid/os/Parcel;->readLong()J -HSPLandroid/os/Parcel;->readLongArray([J)V -HSPLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V -HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;)V -HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/Class;)V -HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable; -HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable; -HSPLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/os/Parcel;->readParcelableArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readParcelableCreator(Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator; -HSPLandroid/os/Parcel;->readParcelableCreatorInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/os/Parcelable$Creator;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Object;Landroid/os/Parcel;]Ljava/lang/reflect/Field;Ljava/lang/reflect/Field;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readParcelableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Parcelable$Creator;megamorphic_types]Landroid/os/Parcelable$ClassLoaderCreator;Landroid/content/pm/ParceledListSlice$1; -HSPLandroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List; -HSPLandroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/List; -HSPLandroid/os/Parcel;->readParcelableListInternal(Ljava/util/List;Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/util/List;+]Ljava/util/List;Ljava/util/ArrayList;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle; -HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle; -HSPLandroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor; -HSPLandroid/os/Parcel;->readSerializable()Ljava/io/Serializable; -HSPLandroid/os/Parcel;->readSerializableInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object;+]Ljava/io/ObjectInputStream;Landroid/os/Parcel$2;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readSize()Landroid/util/Size; -HSPLandroid/os/Parcel;->readSparseArray(Ljava/lang/ClassLoader;)Landroid/util/SparseArray; -HSPLandroid/os/Parcel;->readSparseArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/util/SparseArray; -HSPLandroid/os/Parcel;->readSparseArrayInternal(Ljava/lang/ClassLoader;Ljava/lang/Class;)Landroid/util/SparseArray; -HSPLandroid/os/Parcel;->readSparseIntArray()Landroid/util/SparseIntArray; -HSPLandroid/os/Parcel;->readSparseIntArrayInternal(Landroid/util/SparseIntArray;I)V -HSPLandroid/os/Parcel;->readSquashed(Landroid/os/Parcel$SquashReadHelper;)Landroid/os/Parcelable;+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/os/Parcel$SquashReadHelper;Landroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readString()Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readString16()Ljava/lang/String;+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper; -HSPLandroid/os/Parcel;->readString16Array([Ljava/lang/String;)V -HSPLandroid/os/Parcel;->readString16NoHelper()Ljava/lang/String; -HSPLandroid/os/Parcel;->readString8()Ljava/lang/String;+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper; -HSPLandroid/os/Parcel;->readString8NoHelper()Ljava/lang/String; -HSPLandroid/os/Parcel;->readStringArray()[Ljava/lang/String;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readStringArray([Ljava/lang/String;)V -HSPLandroid/os/Parcel;->readStringList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder; -HSPLandroid/os/Parcel;->readTypedArray([Ljava/lang/Object;Landroid/os/Parcelable$Creator;)V -HSPLandroid/os/Parcel;->readTypedList(Ljava/util/List;Landroid/os/Parcelable$Creator;)V -HSPLandroid/os/Parcel;->readTypedObject(Landroid/os/Parcelable$Creator;)Ljava/lang/Object;+]Landroid/os/Parcelable$Creator;megamorphic_types]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readValue(ILjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/os/Parcel;->readValue(ILjava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object; -HSPLandroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/Object;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->recycle()V -HSPLandroid/os/Parcel;->resetSqaushingState()V -HSPLandroid/os/Parcel;->restoreAllowFds(Z)V -HSPLandroid/os/Parcel;->setClassCookie(Ljava/lang/Class;Ljava/lang/Object;)V -HSPLandroid/os/Parcel;->setDataPosition(I)V -HSPLandroid/os/Parcel;->setDataSize(I)V -HSPLandroid/os/Parcel;->setReadWriteHelper(Landroid/os/Parcel$ReadWriteHelper;)V -HSPLandroid/os/Parcel;->unmarshall([BII)V -HSPLandroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V -HSPLandroid/os/Parcel;->writeArrayMapInternal(Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)V -HSPLandroid/os/Parcel;->writeBinderList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->writeBlob([B)V -HSPLandroid/os/Parcel;->writeBoolean(Z)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeBooleanArray([Z)V -HSPLandroid/os/Parcel;->writeBundle(Landroid/os/Bundle;)V+]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeByte(B)V -HSPLandroid/os/Parcel;->writeByteArray([B)V -HSPLandroid/os/Parcel;->writeByteArray([BII)V -HSPLandroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V -HSPLandroid/os/Parcel;->writeDouble(D)V -HSPLandroid/os/Parcel;->writeException(Ljava/lang/Exception;)V -HSPLandroid/os/Parcel;->writeFileDescriptor(Ljava/io/FileDescriptor;)V -HSPLandroid/os/Parcel;->writeFloat(F)V -HSPLandroid/os/Parcel;->writeFloatArray([F)V -HSPLandroid/os/Parcel;->writeInt(I)V -HSPLandroid/os/Parcel;->writeIntArray([I)V -HSPLandroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->writeLong(J)V -HSPLandroid/os/Parcel;->writeLongArray([J)V -HSPLandroid/os/Parcel;->writeMap(Ljava/util/Map;)V -HSPLandroid/os/Parcel;->writeMapInternal(Ljava/util/Map;)V -HSPLandroid/os/Parcel;->writeNoException()V -HSPLandroid/os/Parcel;->writeParcelable(Landroid/os/Parcelable;I)V+]Landroid/os/Parcelable;missing_types]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeParcelableArray([Landroid/os/Parcelable;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)V+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V -HSPLandroid/os/Parcel;->writePersistableBundle(Landroid/os/PersistableBundle;)V -HSPLandroid/os/Parcel;->writeSerializable(Ljava/io/Serializable;)V -HSPLandroid/os/Parcel;->writeSparseArray(Landroid/util/SparseArray;)V -HSPLandroid/os/Parcel;->writeSparseBooleanArray(Landroid/util/SparseBooleanArray;)V -HSPLandroid/os/Parcel;->writeSparseIntArray(Landroid/util/SparseIntArray;)V -HSPLandroid/os/Parcel;->writeString(Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeString16(Ljava/lang/String;)V+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper; -HSPLandroid/os/Parcel;->writeString16Array([Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeString16NoHelper(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeString8(Ljava/lang/String;)V+]Landroid/os/Parcel$ReadWriteHelper;Landroid/os/Parcel$ReadWriteHelper; -HSPLandroid/os/Parcel;->writeString8Array([Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeString8NoHelper(Ljava/lang/String;)V -HSPLandroid/os/Parcel;->writeStringArray([Ljava/lang/String;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeStringList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V -HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V+]Landroid/os/IInterface;Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;,Landroid/app/ActivityThread$ApplicationThread;,Landroid/view/ViewRootImpl$W;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeTypedArrayMap(Landroid/util/ArrayMap;I)V -HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;)V -HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V -HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V+]Landroid/os/Parcelable;Landroid/view/WindowManager$LayoutParams;,Landroid/content/Intent;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeValue(ILjava/lang/Object;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/lang/Long;Ljava/lang/Long;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/Parcel;->writeValue(Ljava/lang/Object;)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->close()V -HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([B)I -HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([BII)I -HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;->close()V -HSPLandroid/os/ParcelFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;)V -HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;)V -HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V -HSPLandroid/os/ParcelFileDescriptor;->adoptFd(I)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->canDetectErrors()Z -HSPLandroid/os/ParcelFileDescriptor;->close()V -HSPLandroid/os/ParcelFileDescriptor;->closeWithStatus(ILjava/lang/String;)V -HSPLandroid/os/ParcelFileDescriptor;->createPipe()[Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->detachFd()I -HSPLandroid/os/ParcelFileDescriptor;->dup()Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->dup(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->finalize()V -HSPLandroid/os/ParcelFileDescriptor;->fromFd(I)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->fromSocket(Ljava/net/Socket;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->getFd()I -HSPLandroid/os/ParcelFileDescriptor;->getFile(Ljava/io/FileDescriptor;)Ljava/io/File; -HSPLandroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->getStatSize()J -HSPLandroid/os/ParcelFileDescriptor;->ifAtLeastQ(I)I -HSPLandroid/os/ParcelFileDescriptor;->isAtLeastQ()Z -HSPLandroid/os/ParcelFileDescriptor;->open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->openInternal(Ljava/io/File;I)Ljava/io/FileDescriptor; -HSPLandroid/os/ParcelFileDescriptor;->parseMode(Ljava/lang/String;)I -HSPLandroid/os/ParcelFileDescriptor;->releaseResources()V -HSPLandroid/os/ParcelFileDescriptor;->writeCommStatusAndClose(ILjava/lang/String;)V -HSPLandroid/os/ParcelFileDescriptor;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelUuid; -HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/ParcelUuid$1;->newArray(I)[Landroid/os/ParcelUuid; -HSPLandroid/os/ParcelUuid$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/os/ParcelUuid;-><init>(Ljava/util/UUID;)V -HSPLandroid/os/ParcelUuid;->equals(Ljava/lang/Object;)Z -HSPLandroid/os/ParcelUuid;->fromString(Ljava/lang/String;)Landroid/os/ParcelUuid; -HSPLandroid/os/ParcelUuid;->getUuid()Ljava/util/UUID; -HSPLandroid/os/ParcelUuid;->hashCode()I -HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String; -HSPLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V -HSPLandroid/os/ParcelableParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelableParcel; -HSPLandroid/os/ParcelableParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/ParcelableParcel;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V -HSPLandroid/os/ParcelableParcel;->getClassLoader()Ljava/lang/ClassLoader; -HSPLandroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel; -HSPLandroid/os/ParcelableParcel;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PatternMatcher; -HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/PatternMatcher$1;->newArray(I)[Landroid/os/PatternMatcher; -HSPLandroid/os/PatternMatcher$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/os/PatternMatcher;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/PatternMatcher;-><init>(Ljava/lang/String;I)V -HSPLandroid/os/PatternMatcher;->match(Ljava/lang/String;)Z -HSPLandroid/os/PatternMatcher;->matchPattern(Ljava/lang/String;Ljava/lang/String;[II)Z -HSPLandroid/os/PatternMatcher;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/PerformanceHintManager;->createHintSession([IJ)Landroid/os/PerformanceHintManager$Session; -HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PersistableBundle; -HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/PersistableBundle$MyReadMapCallback;-><init>()V -HSPLandroid/os/PersistableBundle;-><init>()V -HSPLandroid/os/PersistableBundle;-><init>(I)V -HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V -HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V -HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;Z)V -HSPLandroid/os/PersistableBundle;-><init>(Landroid/util/ArrayMap;Z)V -HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle; -HSPLandroid/os/PersistableBundle;->getPersistableBundle(Ljava/lang/String;)Landroid/os/PersistableBundle; -HSPLandroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z -HSPLandroid/os/PersistableBundle;->putPersistableBundle(Ljava/lang/String;Landroid/os/PersistableBundle;)V -HSPLandroid/os/PersistableBundle;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/PooledStringReader;->readString()Ljava/lang/String; -HSPLandroid/os/PooledStringWriter;->writeString(Ljava/lang/String;)V -HSPLandroid/os/PowerExemptionManager;-><init>(Landroid/content/Context;)V -HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;ILjava/lang/String;)V -HSPLandroid/os/PowerManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/PowerManager$1;->recompute(Ljava/lang/Void;)Ljava/lang/Boolean; -HSPLandroid/os/PowerManager$2;-><init>(Landroid/os/PowerManager;ILjava/lang/String;)V -HSPLandroid/os/PowerManager$2;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean; -HSPLandroid/os/PowerManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/PowerManager$3$$ExternalSyntheticLambda0;->run()V -HSPLandroid/os/PowerManager$3;->lambda$onStatusChange$0(Landroid/os/PowerManager$OnThermalStatusChangedListener;I)V -HSPLandroid/os/PowerManager$3;->onStatusChange(I)V -HSPLandroid/os/PowerManager$WakeLock$$ExternalSyntheticLambda0;-><init>(Landroid/os/PowerManager$WakeLock;)V -HSPLandroid/os/PowerManager$WakeLock$$ExternalSyntheticLambda0;->run()V -HSPLandroid/os/PowerManager$WakeLock;-><init>(Landroid/os/PowerManager;ILjava/lang/String;Ljava/lang/String;I)V -HSPLandroid/os/PowerManager$WakeLock;->acquire()V -HSPLandroid/os/PowerManager$WakeLock;->acquire(J)V -HSPLandroid/os/PowerManager$WakeLock;->acquireLocked()V -HSPLandroid/os/PowerManager$WakeLock;->finalize()V -HSPLandroid/os/PowerManager$WakeLock;->isHeld()Z -HSPLandroid/os/PowerManager$WakeLock;->release()V -HSPLandroid/os/PowerManager$WakeLock;->release(I)V -HSPLandroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V -HSPLandroid/os/PowerManager$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V -HSPLandroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/IThermalService;Landroid/os/Handler;)V -HSPLandroid/os/PowerManager;->addThermalStatusListener(Landroid/os/PowerManager$OnThermalStatusChangedListener;)V -HSPLandroid/os/PowerManager;->addThermalStatusListener(Ljava/util/concurrent/Executor;Landroid/os/PowerManager$OnThermalStatusChangedListener;)V -HSPLandroid/os/PowerManager;->getBrightnessConstraint(I)F -HSPLandroid/os/PowerManager;->getCurrentThermalStatus()I -HSPLandroid/os/PowerManager;->getPowerSaveState(I)Landroid/os/PowerSaveState; -HSPLandroid/os/PowerManager;->isDeviceIdleMode()Z -HSPLandroid/os/PowerManager;->isDeviceLightIdleMode()Z -HSPLandroid/os/PowerManager;->isIgnoringBatteryOptimizations(Ljava/lang/String;)Z -HSPLandroid/os/PowerManager;->isInteractive()Z -HSPLandroid/os/PowerManager;->isLightDeviceIdleMode()Z -HSPLandroid/os/PowerManager;->isPowerSaveMode()Z -HSPLandroid/os/PowerManager;->isScreenOn()Z -HSPLandroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock; -HSPLandroid/os/PowerManager;->userActivity(JII)V -HSPLandroid/os/PowerManager;->userActivity(JZ)V -HSPLandroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V -HSPLandroid/os/PowerManager;->wakeUp(JILjava/lang/String;)V -HSPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PowerSaveState; -HSPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/PowerSaveState$Builder;-><init>()V -HSPLandroid/os/PowerSaveState$Builder;->build()Landroid/os/PowerSaveState; -HSPLandroid/os/PowerSaveState$Builder;->setBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder; -HSPLandroid/os/PowerSaveState$Builder;->setBrightnessFactor(F)Landroid/os/PowerSaveState$Builder; -HSPLandroid/os/PowerSaveState$Builder;->setGlobalBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder; -HSPLandroid/os/PowerSaveState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/PowerSaveState;-><init>(Landroid/os/PowerSaveState$Builder;)V -HSPLandroid/os/PowerWhitelistManager;-><init>(Landroid/content/Context;)V -HSPLandroid/os/PowerWhitelistManager;->isWhitelisted(Ljava/lang/String;Z)Z -HSPLandroid/os/Process;->getStartElapsedRealtime()J -HSPLandroid/os/Process;->getStartUptimeMillis()J -HSPLandroid/os/Process;->is64Bit()Z -HSPLandroid/os/Process;->isApplicationUid(I)Z -HSPLandroid/os/Process;->isIsolated()Z -HSPLandroid/os/Process;->isIsolated(I)Z -HSPLandroid/os/Process;->isSdkSandbox()Z -HSPLandroid/os/Process;->isSdkSandboxUid(I)Z -HSPLandroid/os/Process;->myPid()I -HSPLandroid/os/Process;->myProcessName()Ljava/lang/String; -HSPLandroid/os/Process;->myTid()I -HSPLandroid/os/Process;->myUid()I -HSPLandroid/os/Process;->myUserHandle()Landroid/os/UserHandle; -HSPLandroid/os/Process;->setArgV0(Ljava/lang/String;)V -HSPLandroid/os/Process;->setStartTimes(JJJJ)V -HSPLandroid/os/RemoteCallback$1;-><init>(Landroid/os/RemoteCallback;)V -HSPLandroid/os/RemoteCallback$1;->sendResult(Landroid/os/Bundle;)V -HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Landroid/os/RemoteCallback; -HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;)V -HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;Landroid/os/Handler;)V -HSPLandroid/os/RemoteCallback;->sendResult(Landroid/os/Bundle;)V -HSPLandroid/os/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/RemoteCallbackList$Callback;-><init>(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V -HSPLandroid/os/RemoteCallbackList$Callback;->binderDied()V -HSPLandroid/os/RemoteCallbackList;-><init>()V -HSPLandroid/os/RemoteCallbackList;->beginBroadcast()I -HSPLandroid/os/RemoteCallbackList;->finishBroadcast()V -HSPLandroid/os/RemoteCallbackList;->getBroadcastCookie(I)Ljava/lang/Object; -HSPLandroid/os/RemoteCallbackList;->getBroadcastItem(I)Landroid/os/IInterface; -HSPLandroid/os/RemoteCallbackList;->kill()V -HSPLandroid/os/RemoteCallbackList;->logExcessiveCallbacks()V -HSPLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;)V -HSPLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V -HSPLandroid/os/RemoteCallbackList;->register(Landroid/os/IInterface;)Z -HSPLandroid/os/RemoteCallbackList;->register(Landroid/os/IInterface;Ljava/lang/Object;)Z -HSPLandroid/os/RemoteCallbackList;->unregister(Landroid/os/IInterface;)Z -HSPLandroid/os/RemoteException;-><init>()V -HSPLandroid/os/RemoteException;-><init>(Ljava/lang/String;)V -HSPLandroid/os/RemoteException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V -HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ResultReceiver; -HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/ResultReceiver$MyResultReceiver;-><init>(Landroid/os/ResultReceiver;)V -HSPLandroid/os/ResultReceiver$MyResultReceiver;->send(ILandroid/os/Bundle;)V -HSPLandroid/os/ResultReceiver$MyRunnable;->run()V -HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Handler;)V -HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/ResultReceiver;->send(ILandroid/os/Bundle;)V -HSPLandroid/os/ResultReceiver;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/ServiceManager$ServiceNotFoundException;-><init>(Ljava/lang/String;)V -HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V -HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V -HSPLandroid/os/ServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->getIServiceManager()Landroid/os/IServiceManager; -HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V -HSPLandroid/os/ServiceManager;->isDeclared(Ljava/lang/String;)Z -HSPLandroid/os/ServiceManager;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder;+]Lcom/android/internal/util/StatLogger;Lcom/android/internal/util/StatLogger;]Landroid/os/IServiceManager;Landroid/os/ServiceManagerProxy; -HSPLandroid/os/ServiceManager;->waitForDeclaredService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManagerProxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V -HSPLandroid/os/ServiceManagerProxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManagerProxy;->getService(Ljava/lang/String;)Landroid/os/IBinder; -HSPLandroid/os/ServiceManagerProxy;->isDeclared(Ljava/lang/String;)Z -HSPLandroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V -HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/SharedMemory; -HSPLandroid/os/SharedMemory$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/SharedMemory$Closer;-><init>(ILandroid/os/SharedMemory$MemoryRegistration;)V -HSPLandroid/os/SharedMemory$Closer;-><init>(ILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$Closer-IA;)V -HSPLandroid/os/SharedMemory$MemoryRegistration;-><init>(I)V -HSPLandroid/os/SharedMemory$MemoryRegistration;-><init>(ILandroid/os/SharedMemory$MemoryRegistration-IA;)V -HSPLandroid/os/SharedMemory$MemoryRegistration;->acquire()Landroid/os/SharedMemory$MemoryRegistration; -HSPLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;)V -HSPLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$Unmapper-IA;)V -HSPLandroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;)V -HSPLandroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory-IA;)V -HSPLandroid/os/SharedMemory;->checkOpen()V -HSPLandroid/os/SharedMemory;->map(III)Ljava/nio/ByteBuffer; -HSPLandroid/os/SharedMemory;->mapReadOnly()Ljava/nio/ByteBuffer; -HSPLandroid/os/SharedMemory;->validateProt(I)V -HSPLandroid/os/SimpleClock;-><init>(Ljava/time/ZoneId;)V -HSPLandroid/os/StatFs;-><init>(Ljava/lang/String;)V -HSPLandroid/os/StatFs;->doStat(Ljava/lang/String;)Landroid/system/StructStatVfs; -HSPLandroid/os/StatFs;->getAvailableBlocks()I -HSPLandroid/os/StatFs;->getAvailableBlocksLong()J -HSPLandroid/os/StatFs;->getAvailableBytes()J -HSPLandroid/os/StatFs;->getBlockCount()I -HSPLandroid/os/StatFs;->getBlockCountLong()J -HSPLandroid/os/StatFs;->getBlockSize()I -HSPLandroid/os/StatFs;->getBlockSizeLong()J -HSPLandroid/os/StatFs;->getTotalBytes()J -HSPLandroid/os/StatFs;->restat(Ljava/lang/String;)V -HSPLandroid/os/StatsServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V -HSPLandroid/os/StatsServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; -HSPLandroid/os/StatsServiceManager;-><init>()V -HSPLandroid/os/StatsServiceManager;->getStatsManagerServiceRegisterer()Landroid/os/StatsServiceManager$ServiceRegisterer; -HSPLandroid/os/StrictMode$$ExternalSyntheticLambda0;->run()V -HSPLandroid/os/StrictMode$$ExternalSyntheticLambda1;->log(Landroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode$1;->initialValue()Ljava/lang/Object; -HSPLandroid/os/StrictMode$1;->initialValue()Ljava/util/ArrayList; -HSPLandroid/os/StrictMode$2;->initialValue()Ljava/lang/Object; -HSPLandroid/os/StrictMode$2;->initialValue()Ljava/util/ArrayList; -HSPLandroid/os/StrictMode$3;->initialValue()Landroid/os/Handler; -HSPLandroid/os/StrictMode$3;->initialValue()Ljava/lang/Object; -HSPLandroid/os/StrictMode$4;->initialValue()Landroid/os/StrictMode$AndroidBlockGuardPolicy; -HSPLandroid/os/StrictMode$4;->initialValue()Ljava/lang/Object; -HSPLandroid/os/StrictMode$5;->onPathAccess(Ljava/lang/String;)V -HSPLandroid/os/StrictMode$8;->initialValue()Landroid/os/StrictMode$ThreadSpanState; -HSPLandroid/os/StrictMode$8;->initialValue()Ljava/lang/Object; -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda0;->run()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda1;->run()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;-><init>(I)V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->getThreadPolicyMask()I -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->handleViolationWithTimingAttempt(Landroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->lambda$handleViolationWithTimingAttempt$0(Landroid/view/IWindowManager;Ljava/util/ArrayList;)V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V+]Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/os/StrictMode$AndroidBlockGuardPolicy; -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onUnbufferedIO()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onWriteToDisk()V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->setThreadPolicyMask(I)V -HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->startHandlingViolationException(Landroid/os/strictmode/Violation;)V -HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;-><init>()V -HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;-><init>(Landroid/os/StrictMode$AndroidCloseGuardReporter-IA;)V -HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;->report(Ljava/lang/String;)V -HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;->report(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLandroid/os/StrictMode$InstanceTracker;-><init>(Ljava/lang/Object;)V -HSPLandroid/os/StrictMode$InstanceTracker;->finalize()V -HSPLandroid/os/StrictMode$Span;->finish()V -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;-><init>()V -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;-><init>(Landroid/os/StrictMode$ThreadPolicy;)V -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->build()Landroid/os/StrictMode$ThreadPolicy; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectAll()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectExplicitGc()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectResourceMismatches()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectUnbufferedIo()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->disable(I)Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->enable(I)Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDeath()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDeathOnNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDropBox()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyLog()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitUnbufferedIo()Landroid/os/StrictMode$ThreadPolicy$Builder; -HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$ThreadPolicy-IA;)V -HSPLandroid/os/StrictMode$ThreadSpanState;-><init>()V -HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$ThreadSpanState-IA;)V -HSPLandroid/os/StrictMode$UnsafeIntentStrictModeCallback;-><init>()V -HSPLandroid/os/StrictMode$UnsafeIntentStrictModeCallback;-><init>(Landroid/os/StrictMode$UnsafeIntentStrictModeCallback-IA;)V -HSPLandroid/os/StrictMode$ViolationInfo;->-$$Nest$fgetmViolation(Landroid/os/StrictMode$ViolationInfo;)Landroid/os/strictmode/Violation; -HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/Parcel;Z)V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/strictmode/Violation;I)V -HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()Ljava/lang/String; -HSPLandroid/os/StrictMode$ViolationInfo;->hashCode()I -HSPLandroid/os/StrictMode$ViolationInfo;->penaltyEnabled(I)Z -HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/StrictMode$VmPolicy$Builder;-><init>()V -HSPLandroid/os/StrictMode$VmPolicy$Builder;-><init>(Landroid/os/StrictMode$VmPolicy;)V -HSPLandroid/os/StrictMode$VmPolicy$Builder;->build()Landroid/os/StrictMode$VmPolicy; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectAll()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectContentUriWithoutPermission()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectCredentialProtectedWhileLocked()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectFileUriExposure()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectIncorrectContextUse()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectLeakedClosableObjects()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectLeakedRegistrationObjects()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectLeakedSqlLiteObjects()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectUnsafeIntentLaunch()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectUntaggedSockets()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->disable(I)Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->enable(I)Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyDeathOnFileUriExposure()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyDropBox()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->penaltyLog()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->permitActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy$Builder;->permitUnsafeIntentLaunch()Landroid/os/StrictMode$VmPolicy$Builder; -HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$VmPolicy-IA;)V -HSPLandroid/os/StrictMode;->-$$Nest$sfgetEMPTY_CLASS_LIMIT_MAP()Ljava/util/HashMap; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetLOGCAT_LOGGER()Landroid/os/StrictMode$ViolationLogger; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetLOG_V()Z -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsExpectedActivityInstanceCount()Ljava/util/HashMap; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsLogger()Landroid/os/StrictMode$ViolationLogger; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThisThreadSpanState()Ljava/lang/ThreadLocal; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThreadViolationExecutor()Ljava/lang/ThreadLocal; -HSPLandroid/os/StrictMode;->-$$Nest$sfgetsThreadViolationListener()Ljava/lang/ThreadLocal; -HSPLandroid/os/StrictMode;->-$$Nest$smclampViolationTimeMap(Landroid/util/SparseLongArray;J)V -HSPLandroid/os/StrictMode;->-$$Nest$smtooManyViolationsThisLoop()Z -HSPLandroid/os/StrictMode;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy; -HSPLandroid/os/StrictMode;->allowThreadDiskReadsMask()I -HSPLandroid/os/StrictMode;->allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy; -HSPLandroid/os/StrictMode;->allowThreadDiskWritesMask()I -HSPLandroid/os/StrictMode;->allowVmViolations()Landroid/os/StrictMode$VmPolicy; -HSPLandroid/os/StrictMode;->assertConfigurationContext(Landroid/content/Context;Ljava/lang/String;)V -HSPLandroid/os/StrictMode;->clampViolationTimeMap(Landroid/util/SparseLongArray;J)V -HSPLandroid/os/StrictMode;->clearGatheredViolations()V+]Ljava/lang/ThreadLocal;Landroid/os/StrictMode$1; -HSPLandroid/os/StrictMode;->decrementExpectedActivityCount(Ljava/lang/Class;)V -HSPLandroid/os/StrictMode;->dropboxViolationAsync(ILandroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode;->enterCriticalSpan(Ljava/lang/String;)Landroid/os/StrictMode$Span; -HSPLandroid/os/StrictMode;->getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy; -HSPLandroid/os/StrictMode;->getThreadPolicyMask()I -HSPLandroid/os/StrictMode;->getVmPolicy()Landroid/os/StrictMode$VmPolicy; -HSPLandroid/os/StrictMode;->handleApplicationStrictModeViolation(ILandroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode;->hasGatheredViolations()Z -HSPLandroid/os/StrictMode;->incrementExpectedActivityCount(Ljava/lang/Class;)V -HSPLandroid/os/StrictMode;->initThreadDefaults(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/os/StrictMode;->initVmDefaults(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/os/StrictMode;->isBundledSystemApp(Landroid/content/pm/ApplicationInfo;)Z -HSPLandroid/os/StrictMode;->lambda$dropboxViolationAsync$2(ILandroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode;->lambda$static$0(Landroid/os/StrictMode$ViolationInfo;)V -HSPLandroid/os/StrictMode;->noteSlowCall(Ljava/lang/String;)V -HSPLandroid/os/StrictMode;->noteUntaggedSocket()V -HSPLandroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V -HSPLandroid/os/StrictMode;->onCredentialProtectedPathAccess(Ljava/lang/String;I)V -HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;)V -HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V -HSPLandroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V -HSPLandroid/os/StrictMode;->registerIntentMatchingRestrictionCallback()V -HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V -HSPLandroid/os/StrictMode;->setBlockGuardVmPolicy(I)V -HSPLandroid/os/StrictMode;->setCloseGuardEnabled(Z)V -HSPLandroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V -HSPLandroid/os/StrictMode;->setThreadPolicyMask(I)V -HSPLandroid/os/StrictMode;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V -HSPLandroid/os/StrictMode;->tooManyViolationsThisLoop()Z -HSPLandroid/os/StrictMode;->trackActivity(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/StrictMode;->vmClosableObjectLeaksEnabled()Z -HSPLandroid/os/StrictMode;->vmContentUriWithoutPermissionEnabled()Z -HSPLandroid/os/StrictMode;->vmFileUriExposureEnabled()Z -HSPLandroid/os/StrictMode;->vmImplicitDirectBootEnabled()Z -HSPLandroid/os/StrictMode;->vmIncorrectContextUseEnabled()Z -HSPLandroid/os/StrictMode;->vmRegistrationLeaksEnabled()Z -HSPLandroid/os/StrictMode;->vmSqliteObjectLeaksEnabled()Z -HSPLandroid/os/StrictMode;->vmUnsafeIntentLaunchEnabled()Z -HSPLandroid/os/StrictMode;->vmUntaggedSocketEnabled()Z -HSPLandroid/os/StrictMode;->writeGatheredViolationsToParcel(Landroid/os/Parcel;)V -HSPLandroid/os/SystemClock$2;->millis()J -HSPLandroid/os/SystemClock;->sleep(J)V -HSPLandroid/os/SystemConfigManager;-><init>()V -HSPLandroid/os/SystemConfigManager;->getDisabledUntilUsedPreinstalledCarrierApps()Ljava/util/Set; -HSPLandroid/os/SystemConfigManager;->getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries()Ljava/util/Map; -HSPLandroid/os/SystemProperties$Handle;-><init>(J)V -HSPLandroid/os/SystemProperties$Handle;-><init>(JLandroid/os/SystemProperties$Handle-IA;)V -HSPLandroid/os/SystemProperties$Handle;->getLong(J)J -HSPLandroid/os/SystemProperties;->-$$Nest$smnative_get_long(JJ)J -HSPLandroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V -HSPLandroid/os/SystemProperties;->find(Ljava/lang/String;)Landroid/os/SystemProperties$Handle; -HSPLandroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z -HSPLandroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I -HSPLandroid/os/SystemProperties;->getLong(Ljava/lang/String;J)J -HSPLandroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V -HSPLandroid/os/SystemVibrator;->hasVibrator()Z -HSPLandroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Ljava/lang/String;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/SystemVibratorManager;-><init>(Landroid/content/Context;)V -HSPLandroid/os/SystemVibratorManager;->getVibratorIds()[I -HSPLandroid/os/SystemVibratorManager;->vibrate(ILjava/lang/String;Landroid/os/CombinedVibration;Ljava/lang/String;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Ljava/lang/String;)V -HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder; -HSPLandroid/os/TelephonyServiceManager;-><init>()V -HSPLandroid/os/TelephonyServiceManager;->getCarrierConfigServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer; -HSPLandroid/os/TelephonyServiceManager;->getEuiccControllerService()Landroid/os/TelephonyServiceManager$ServiceRegisterer; -HSPLandroid/os/TelephonyServiceManager;->getPhoneSubServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer; -HSPLandroid/os/TelephonyServiceManager;->getSmsServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer; -HSPLandroid/os/TelephonyServiceManager;->getSubscriptionServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer; -HSPLandroid/os/TelephonyServiceManager;->getTelephonyServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer; -HSPLandroid/os/Temperature;-><init>(FILjava/lang/String;I)V -HSPLandroid/os/Temperature;->getStatus()I -HSPLandroid/os/Temperature;->isValidStatus(I)Z -HSPLandroid/os/ThreadLocalWorkSource$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLandroid/os/ThreadLocalWorkSource;->getToken()J+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; -HSPLandroid/os/ThreadLocalWorkSource;->getUid()I+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; -HSPLandroid/os/ThreadLocalWorkSource;->lambda$static$0()[I -HSPLandroid/os/ThreadLocalWorkSource;->parseUidFromToken(J)I -HSPLandroid/os/ThreadLocalWorkSource;->restore(J)V+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; -HSPLandroid/os/ThreadLocalWorkSource;->setUid(I)J+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal; -HSPLandroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V -HSPLandroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V -HSPLandroid/os/Trace;->asyncTraceForTrackBegin(JLjava/lang/String;Ljava/lang/String;I)V -HSPLandroid/os/Trace;->asyncTraceForTrackEnd(JLjava/lang/String;I)V -HSPLandroid/os/Trace;->beginAsyncSection(Ljava/lang/String;I)V -HSPLandroid/os/Trace;->beginSection(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V -HSPLandroid/os/Trace;->endSection()V -HSPLandroid/os/Trace;->instant(JLjava/lang/String;)V -HSPLandroid/os/Trace;->instantForTrack(JLjava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/Trace;->isEnabled()Z -HSPLandroid/os/Trace;->isTagEnabled(J)Z -HSPLandroid/os/Trace;->setAppTracingAllowed(Z)V -HSPLandroid/os/Trace;->setCounter(Ljava/lang/String;J)V -HSPLandroid/os/Trace;->traceBegin(JLjava/lang/String;)V -HSPLandroid/os/Trace;->traceCounter(JLjava/lang/String;I)V -HSPLandroid/os/Trace;->traceEnd(J)V -HSPLandroid/os/UserHandle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle; -HSPLandroid/os/UserHandle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/UserHandle;-><init>(I)V -HSPLandroid/os/UserHandle;->equals(Ljava/lang/Object;)Z -HSPLandroid/os/UserHandle;->formatUid(I)Ljava/lang/String; -HSPLandroid/os/UserHandle;->formatUid(Ljava/lang/StringBuilder;I)V -HSPLandroid/os/UserHandle;->getAppId(I)I -HSPLandroid/os/UserHandle;->getCacheAppGid(I)I -HSPLandroid/os/UserHandle;->getCacheAppGid(II)I -HSPLandroid/os/UserHandle;->getCallingUserId()I -HSPLandroid/os/UserHandle;->getIdentifier()I -HSPLandroid/os/UserHandle;->getUid(II)I -HSPLandroid/os/UserHandle;->getUserHandleForUid(I)Landroid/os/UserHandle; -HSPLandroid/os/UserHandle;->getUserId(I)I -HSPLandroid/os/UserHandle;->hashCode()I -HSPLandroid/os/UserHandle;->isApp(I)Z -HSPLandroid/os/UserHandle;->isCore(I)Z -HSPLandroid/os/UserHandle;->isIsolated(I)Z -HSPLandroid/os/UserHandle;->isOwner()Z -HSPLandroid/os/UserHandle;->isSameApp(II)Z -HSPLandroid/os/UserHandle;->isSystem()Z -HSPLandroid/os/UserHandle;->myUserId()I -HSPLandroid/os/UserHandle;->of(I)Landroid/os/UserHandle; -HSPLandroid/os/UserHandle;->readFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle; -HSPLandroid/os/UserHandle;->toString()Ljava/lang/String; -HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/UserHandle;Landroid/os/Parcel;)V -HSPLandroid/os/UserManager$1;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V -HSPLandroid/os/UserManager$1;->bypass(Ljava/lang/Integer;)Z -HSPLandroid/os/UserManager$1;->bypass(Ljava/lang/Object;)Z -HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean; -HSPLandroid/os/UserManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/UserManager$2;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V -HSPLandroid/os/UserManager$2;->bypass(Ljava/lang/Integer;)Z -HSPLandroid/os/UserManager$2;->bypass(Ljava/lang/Object;)Z -HSPLandroid/os/UserManager$2;->recompute(Ljava/lang/Integer;)Ljava/lang/Boolean; -HSPLandroid/os/UserManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/UserManager$3;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V -HSPLandroid/os/UserManager$3;->bypass(Ljava/lang/Integer;)Z -HSPLandroid/os/UserManager$3;->bypass(Ljava/lang/Object;)Z -HSPLandroid/os/UserManager$3;->recompute(Ljava/lang/Integer;)Ljava/lang/String; -HSPLandroid/os/UserManager$3;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/os/UserManager$4;-><init>(Landroid/os/UserManager;ILjava/lang/String;)V -HSPLandroid/os/UserManager;->-$$Nest$fgetmService(Landroid/os/UserManager;)Landroid/os/IUserManager; -HSPLandroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V -HSPLandroid/os/UserManager;->convertUserIdsToUserHandles([I)Ljava/util/List; -HSPLandroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager; -HSPLandroid/os/UserManager;->getAliveUsers()Ljava/util/List; -HSPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle; -HSPLandroid/os/UserManager;->getContextUserIfAppropriate()I -HSPLandroid/os/UserManager;->getEnabledProfileIds(I)[I -HSPLandroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List; -HSPLandroid/os/UserManager;->getMaxSupportedUsers()I -HSPLandroid/os/UserManager;->getPrimaryUser()Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getProfileIds(IZ)[I -HSPLandroid/os/UserManager;->getProfileIdsWithDisabled(I)[I -HSPLandroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getProfileType(I)Ljava/lang/String; -HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List; -HSPLandroid/os/UserManager;->getProfiles(Z)Ljava/util/List; -HSPLandroid/os/UserManager;->getSerialNumberForUser(Landroid/os/UserHandle;)J -HSPLandroid/os/UserManager;->getUserBadgeColor(I)I -HSPLandroid/os/UserManager;->getUserCount()I -HSPLandroid/os/UserManager;->getUserForSerialNumber(J)Landroid/os/UserHandle; -HSPLandroid/os/UserManager;->getUserHandle()I -HSPLandroid/os/UserManager;->getUserHandle(I)I -HSPLandroid/os/UserManager;->getUserHandles(Z)Ljava/util/List; -HSPLandroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo; -HSPLandroid/os/UserManager;->getUserProfiles()Ljava/util/List; -HSPLandroid/os/UserManager;->getUserRestrictionSources(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List; -HSPLandroid/os/UserManager;->getUserRestrictions()Landroid/os/Bundle; -HSPLandroid/os/UserManager;->getUserRestrictions(Landroid/os/UserHandle;)Landroid/os/Bundle; -HSPLandroid/os/UserManager;->getUserSerialNumber(I)I -HSPLandroid/os/UserManager;->getUsers()Ljava/util/List; -HSPLandroid/os/UserManager;->getUsers(ZZZ)Ljava/util/List; -HSPLandroid/os/UserManager;->hasBadge(I)Z -HSPLandroid/os/UserManager;->hasBaseUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;)Z -HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;I)Z -HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->isDemoUser()Z -HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z -HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z -HSPLandroid/os/UserManager;->isManagedProfile()Z -HSPLandroid/os/UserManager;->isManagedProfile(I)Z -HSPLandroid/os/UserManager;->isProfile(I)Z -HSPLandroid/os/UserManager;->isQuietModeEnabled(Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->isSystemUser()Z -HSPLandroid/os/UserManager;->isUserAdmin(I)Z -HSPLandroid/os/UserManager;->isUserRunning(I)Z -HSPLandroid/os/UserManager;->isUserRunning(Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->isUserSwitcherEnabled()Z -HSPLandroid/os/UserManager;->isUserSwitcherEnabled(Z)Z -HSPLandroid/os/UserManager;->isUserTypeManagedProfile(Ljava/lang/String;)Z -HSPLandroid/os/UserManager;->isUserTypeRestricted(Ljava/lang/String;)Z -HSPLandroid/os/UserManager;->isUserUnlocked()Z -HSPLandroid/os/UserManager;->isUserUnlocked(I)Z -HSPLandroid/os/UserManager;->isUserUnlocked(Landroid/os/UserHandle;)Z -HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z -HSPLandroid/os/UserManager;->supportsMultipleUsers()Z -HSPLandroid/os/VibrationAttributes$Builder;-><init>()V -HSPLandroid/os/VibrationAttributes$Builder;->build()Landroid/os/VibrationAttributes; -HSPLandroid/os/VibrationAttributes$Builder;->setUsage(Landroid/media/AudioAttributes;)V -HSPLandroid/os/VibrationEffect$Composed;->validate()V -HSPLandroid/os/VibrationEffect;-><init>()V -HSPLandroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect; -HSPLandroid/os/VibrationEffect;->createWaveform([JI)Landroid/os/VibrationEffect; -HSPLandroid/os/VibrationEffect;->createWaveform([J[II)Landroid/os/VibrationEffect; -HSPLandroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect; -HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V -HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V -HSPLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/os/VibrationAttributes;)V -HSPLandroid/os/VibratorManager;-><init>(Landroid/content/Context;)V -HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource; -HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/WorkSource;-><init>()V -HSPLandroid/os/WorkSource;-><init>(ILjava/lang/String;)V -HSPLandroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/WorkSource;-><init>(Landroid/os/WorkSource;)V -HSPLandroid/os/WorkSource;->add(ILjava/lang/String;)Z -HSPLandroid/os/WorkSource;->add(Landroid/os/WorkSource;)Z -HSPLandroid/os/WorkSource;->diff(Landroid/os/WorkSource;)Z -HSPLandroid/os/WorkSource;->equals(Ljava/lang/Object;)Z -HSPLandroid/os/WorkSource;->getPackageName(I)Ljava/lang/String; -HSPLandroid/os/WorkSource;->getUid(I)I -HSPLandroid/os/WorkSource;->getWorkChains()Ljava/util/List; -HSPLandroid/os/WorkSource;->insert(IILjava/lang/String;)V -HSPLandroid/os/WorkSource;->isEmpty()Z -HSPLandroid/os/WorkSource;->remove(Landroid/os/WorkSource;)Z -HSPLandroid/os/WorkSource;->removeUidsAndNames(Landroid/os/WorkSource;)Z -HSPLandroid/os/WorkSource;->set(Landroid/os/WorkSource;)V -HSPLandroid/os/WorkSource;->size()I -HSPLandroid/os/WorkSource;->toString()Ljava/lang/String; -HSPLandroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z -HSPLandroid/os/WorkSource;->updateUidsAndNamesLocked(Landroid/os/WorkSource;ZZ)Z -HSPLandroid/os/WorkSource;->updateUidsLocked(Landroid/os/WorkSource;ZZ)Z -HSPLandroid/os/WorkSource;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/os/connectivity/CellularBatteryStats;-><init>(JJJJJJJJJLjava/lang/Long;[J[J[JJ)V -HSPLandroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/health/HealthStats;->getMeasurement(I)J -HSPLandroid/os/health/HealthStats;->getMeasurements(I)Ljava/util/Map; -HSPLandroid/os/health/HealthStats;->getStats(I)Ljava/util/Map; -HSPLandroid/os/health/HealthStats;->getTimer(I)Landroid/os/health/TimerStat; -HSPLandroid/os/health/HealthStats;->getTimers(I)Ljava/util/Map; -HSPLandroid/os/health/HealthStats;->hasMeasurement(I)Z -HSPLandroid/os/health/HealthStats;->hasMeasurements(I)Z -HSPLandroid/os/health/HealthStats;->hasStats(I)Z -HSPLandroid/os/health/HealthStats;->hasTimer(I)Z -HSPLandroid/os/health/HealthStats;->hasTimers(I)Z -HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/HealthStatsParceler; -HSPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats; -HSPLandroid/os/health/SystemHealthManager;->takeMyUidSnapshot()Landroid/os/health/HealthStats; -HSPLandroid/os/health/SystemHealthManager;->takeUidSnapshot(I)Landroid/os/health/HealthStats; -HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/TimerStat; -HSPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/health/TimerStat;->getCount()I -HSPLandroid/os/health/TimerStat;->getTime()J -HSPLandroid/os/storage/IObbActionListener$Stub;-><init>()V -HSPLandroid/os/storage/IStorageEventListener$Stub;-><init>()V -HSPLandroid/os/storage/IStorageEventListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V -HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J -HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumes(I)[Landroid/os/storage/VolumeInfo; -HSPLandroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager; -HSPLandroid/os/storage/StorageEventListener;-><init>()V -HSPLandroid/os/storage/StorageEventListener;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;)V -HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;Landroid/os/storage/StorageManager$ObbActionListener-IA;)V -HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;-><init>(Landroid/os/storage/StorageManager;Ljava/util/concurrent/Executor;Landroid/os/storage/StorageEventListener;Landroid/os/storage/StorageManager$StorageVolumeCallback;)V -HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V -HSPLandroid/os/storage/StorageManager$StorageVolumeCallback;-><init>()V -HSPLandroid/os/storage/StorageManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V -HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/io/FileDescriptor;JI)V -HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/util/UUID;JI)V -HSPLandroid/os/storage/StorageManager;->convert(Ljava/lang/String;)Ljava/util/UUID; -HSPLandroid/os/storage/StorageManager;->convert(Ljava/util/UUID;)Ljava/lang/String;+]Ljava/lang/Object;Ljava/util/UUID; -HSPLandroid/os/storage/StorageManager;->getAllocatableBytes(Ljava/util/UUID;I)J -HSPLandroid/os/storage/StorageManager;->getStorageVolume(Ljava/io/File;I)Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/StorageManager;->getStorageVolume([Landroid/os/storage/StorageVolume;Ljava/io/File;)Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/StorageManager;->getStorageVolumes()Ljava/util/List; -HSPLandroid/os/storage/StorageManager;->getUuidForPath(Ljava/io/File;)Ljava/util/UUID; -HSPLandroid/os/storage/StorageManager;->getVolumeList()[Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/StorageManager;->getVolumeList(II)[Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/StorageManager;->getVolumes()Ljava/util/List; -HSPLandroid/os/storage/StorageManager;->isEncrypted()Z -HSPLandroid/os/storage/StorageManager;->registerListener(Landroid/os/storage/StorageEventListener;)V -HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Landroid/os/storage/StorageVolume; -HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;Landroid/os/storage/StorageVolume-IA;)V -HSPLandroid/os/storage/StorageVolume;->getId()Ljava/lang/String; -HSPLandroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle; -HSPLandroid/os/storage/StorageVolume;->getPath()Ljava/lang/String; -HSPLandroid/os/storage/StorageVolume;->getPathFile()Ljava/io/File; -HSPLandroid/os/storage/StorageVolume;->getState()Ljava/lang/String; -HSPLandroid/os/storage/StorageVolume;->getUuid()Ljava/lang/String; -HSPLandroid/os/storage/StorageVolume;->isEmulated()Z -HSPLandroid/os/storage/StorageVolume;->isPrimary()Z -HSPLandroid/os/storage/StorageVolume;->isRemovable()Z -HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/VolumeInfo; -HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/os/storage/VolumeInfo$2;->newArray(I)[Landroid/os/storage/VolumeInfo; -HSPLandroid/os/storage/VolumeInfo$2;->newArray(I)[Ljava/lang/Object; -HSPLandroid/os/storage/VolumeInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/os/storage/VolumeInfo;->getPathForUser(I)Ljava/io/File; -HSPLandroid/os/storage/VolumeInfo;->getType()I -HSPLandroid/os/strictmode/CredentialProtectedWhileLockedViolation;-><init>(Ljava/lang/String;)V -HSPLandroid/os/strictmode/DiskReadViolation;-><init>()V -HSPLandroid/os/strictmode/LeakedClosableViolation;-><init>(Ljava/lang/String;)V -HSPLandroid/os/strictmode/Violation;-><init>(Ljava/lang/String;)V -HSPLandroid/os/strictmode/Violation;->calcStackTraceHashCode([Ljava/lang/StackTraceElement;)I -HSPLandroid/os/strictmode/Violation;->fillInStackTrace()Ljava/lang/Throwable; -HSPLandroid/os/strictmode/Violation;->hashCode()I -HSPLandroid/os/strictmode/Violation;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; -HSPLandroid/os/vibrator/PrebakedSegment;->getDuration()J -HSPLandroid/os/vibrator/PrebakedSegment;->isValidEffectStrength(I)Z -HSPLandroid/os/vibrator/PrebakedSegment;->validate()V -HSPLandroid/os/vibrator/StepSegment;->getDuration()J -HSPLandroid/os/vibrator/StepSegment;->validate()V -HSPLandroid/os/vibrator/VibrationEffectSegment;-><init>()V -HSPLandroid/os/vibrator/VibrationEffectSegment;->checkDurationArgument(JLjava/lang/String;)V -HSPLandroid/os/vibrator/VibrationEffectSegment;->checkFrequencyArgument(FLjava/lang/String;)V -HSPLandroid/permission/ILegacyPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/permission/ILegacyPermissionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/ILegacyPermissionManager; -HSPLandroid/permission/IOnPermissionsChangeListener$Stub;-><init>()V -HSPLandroid/permission/IOnPermissionsChangeListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/permission/IPermissionChecker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/permission/IPermissionChecker$Stub$Proxy;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSourceState;Ljava/lang/String;ZZZI)I -HSPLandroid/permission/IPermissionChecker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionChecker; -HSPLandroid/permission/IPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/permission/IPermissionManager$Stub$Proxy;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V -HSPLandroid/permission/IPermissionManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo; -HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getSplitPermissions()Ljava/util/List; -HSPLandroid/permission/IPermissionManager$Stub$Proxy;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V -HSPLandroid/permission/IPermissionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionManager; -HSPLandroid/permission/LegacyPermissionManager;-><init>()V -HSPLandroid/permission/LegacyPermissionManager;-><init>(Landroid/permission/ILegacyPermissionManager;)V -HSPLandroid/permission/LegacyPermissionManager;->checkDeviceIdentifierAccess(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)I -HSPLandroid/permission/PermissionCheckerManager;-><init>(Landroid/content/Context;)V -HSPLandroid/permission/PermissionCheckerManager;->checkPermission(Ljava/lang/String;Landroid/content/AttributionSourceState;Ljava/lang/String;ZZZI)I -HSPLandroid/permission/PermissionManager$1;-><init>(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/permission/PermissionManager$1;->recompute(Landroid/permission/PermissionManager$PermissionQuery;)Ljava/lang/Integer; -HSPLandroid/permission/PermissionManager$1;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/permission/PermissionManager$2;-><init>(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/permission/PermissionManager$2;->bypass(Landroid/permission/PermissionManager$PackageNamePermissionQuery;)Z -HSPLandroid/permission/PermissionManager$2;->bypass(Ljava/lang/Object;)Z -HSPLandroid/permission/PermissionManager$2;->recompute(Landroid/permission/PermissionManager$PackageNamePermissionQuery;)Ljava/lang/Integer; -HSPLandroid/permission/PermissionManager$2;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/permission/PermissionManager$OnPermissionsChangeListenerDelegate;-><init>(Landroid/permission/PermissionManager;Landroid/content/pm/PackageManager$OnPermissionsChangedListener;Landroid/os/Looper;)V -HSPLandroid/permission/PermissionManager$OnPermissionsChangeListenerDelegate;->handleMessage(Landroid/os/Message;)Z -HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;->equals(Ljava/lang/Object;)Z -HSPLandroid/permission/PermissionManager$PackageNamePermissionQuery;->hashCode()I -HSPLandroid/permission/PermissionManager$PermissionQuery;->equals(Ljava/lang/Object;)Z -HSPLandroid/permission/PermissionManager$PermissionQuery;->hashCode()I -HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Landroid/content/pm/permission/SplitPermissionInfoParcelable;)V -HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getNewPermissions()Ljava/util/List; -HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getSplitPermission()Ljava/lang/String; -HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getTargetSdk()I -HSPLandroid/permission/PermissionManager;-><clinit>()V -HSPLandroid/permission/PermissionManager;-><init>(Landroid/content/Context;)V -HSPLandroid/permission/PermissionManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V -HSPLandroid/permission/PermissionManager;->checkPermissionUncached(Ljava/lang/String;III)I+]Landroid/app/IActivityManager;Landroid/app/IActivityManager$Stub$Proxy;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/permission/PermissionManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I -HSPLandroid/permission/PermissionManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo; -HSPLandroid/permission/PermissionManager;->getPersistentDeviceId(I)Ljava/lang/String; -HSPLandroid/permission/PermissionManager;->getSplitPermissions()Ljava/util/List; -HSPLandroid/permission/PermissionManager;->removeOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V -HSPLandroid/permission/PermissionManager;->splitPermissionInfoListToNonParcelableList(Ljava/util/List;)Ljava/util/List; -HSPLandroid/permission/PermissionManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IILandroid/os/UserHandle;)V -HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences; -HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferencesMode()I -HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String; -HSPLandroid/provider/CallLog$Calls;->shouldHaveSharedCallLogEntries(Landroid/content/Context;Landroid/os/UserManager;I)Z -HSPLandroid/provider/ContactsContract$CommonDataKinds$Email;->getTypeLabelResource(I)I -HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabelResource(I)I -HSPLandroid/provider/ContactsContract$Contacts;->getLookupUri(JLjava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/DeviceConfigInitializer;-><clinit>()V -HSPLandroid/provider/DeviceConfigInitializer;->setDeviceConfigServiceManager(Landroid/provider/DeviceConfigServiceManager;)V -HSPLandroid/provider/DeviceConfigServiceManager;-><init>()V -HSPLandroid/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V -HSPLandroid/provider/FontsContract$1;->run()V -HSPLandroid/provider/FontsContract$FontFamilyResult;->getFonts()[Landroid/provider/FontsContract$FontInfo; -HSPLandroid/provider/FontsContract$FontFamilyResult;->getStatusCode()I -HSPLandroid/provider/FontsContract$FontInfo;->getAxes()[Landroid/graphics/fonts/FontVariationAxis; -HSPLandroid/provider/FontsContract$FontInfo;->getResultCode()I -HSPLandroid/provider/FontsContract$FontInfo;->getTtcIndex()I -HSPLandroid/provider/FontsContract$FontInfo;->getUri()Landroid/net/Uri; -HSPLandroid/provider/FontsContract$FontInfo;->getWeight()I -HSPLandroid/provider/FontsContract$FontInfo;->isItalic()Z -HSPLandroid/provider/FontsContract;->buildTypeface(Landroid/content/Context;Landroid/os/CancellationSignal;[Landroid/provider/FontsContract$FontInfo;)Landroid/graphics/Typeface; -HSPLandroid/provider/FontsContract;->fetchFonts(Landroid/content/Context;Landroid/os/CancellationSignal;Landroid/provider/FontRequest;)Landroid/provider/FontsContract$FontFamilyResult; -HSPLandroid/provider/FontsContract;->getFontFromProvider(Landroid/content/Context;Landroid/provider/FontRequest;Ljava/lang/String;Landroid/os/CancellationSignal;)[Landroid/provider/FontsContract$FontInfo; -HSPLandroid/provider/FontsContract;->getFontSync(Landroid/provider/FontRequest;)Landroid/graphics/Typeface; -HSPLandroid/provider/FontsContract;->getProvider(Landroid/content/pm/PackageManager;Landroid/provider/FontRequest;)Landroid/content/pm/ProviderInfo; -HSPLandroid/provider/FontsContract;->lambda$getFontSync$0(Landroid/provider/FontRequest;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/locks/Condition;)V -HSPLandroid/provider/FontsContract;->prepareFontData(Landroid/content/Context;[Landroid/provider/FontsContract$FontInfo;Landroid/os/CancellationSignal;)Ljava/util/Map; -HSPLandroid/provider/FontsContract;->setApplicationContextForResources(Landroid/content/Context;)V -HSPLandroid/provider/SearchIndexablesProvider;-><init>()V -HSPLandroid/provider/SearchIndexablesProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V -HSPLandroid/provider/SearchIndexablesProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/provider/SearchIndexablesProvider;->queryDynamicRawData([Ljava/lang/String;)Landroid/database/Cursor; -HSPLandroid/provider/SearchIndexablesProvider;->querySiteMapPairs()Landroid/database/Cursor; -HSPLandroid/provider/SearchIndexablesProvider;->querySliceUriPairs()Landroid/database/Cursor; -HSPLandroid/provider/Settings$Config;->checkCallingOrSelfPermission(Ljava/lang/String;)I -HSPLandroid/provider/Settings$Config;->createCompositeName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/provider/Settings$Config;->createNamespaceUri(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/Settings$Config;->createPrefix(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/provider/Settings$Config;->getContentResolver()Landroid/content/ContentResolver; -HSPLandroid/provider/Settings$Config;->getStrings(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map; -HSPLandroid/provider/Settings$Config;->getStrings(Ljava/lang/String;Ljava/util/List;)Ljava/util/Map; -HSPLandroid/provider/Settings$Config;->registerContentObserver(Ljava/lang/String;ZLandroid/database/ContentObserver;)V -HSPLandroid/provider/Settings$ContentProviderHolder;->-$$Nest$fgetmUri(Landroid/provider/Settings$ContentProviderHolder;)Landroid/net/Uri; -HSPLandroid/provider/Settings$ContentProviderHolder;->getProvider(Landroid/content/ContentResolver;)Landroid/content/IContentProvider; -HSPLandroid/provider/Settings$GenerationTracker;-><init>(Ljava/lang/String;Landroid/util/MemoryIntArray;IILjava/util/function/Consumer;)V -HSPLandroid/provider/Settings$GenerationTracker;->destroy()V -HSPLandroid/provider/Settings$GenerationTracker;->getCurrentGeneration()I -HSPLandroid/provider/Settings$GenerationTracker;->isGenerationChanged()Z -HSPLandroid/provider/Settings$GenerationTracker;->readCurrentGeneration()I -HSPLandroid/provider/Settings$Global;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F -HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I -HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I -HSPLandroid/provider/Settings$Global;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J -HSPLandroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;+]Landroid/provider/Settings$NameValueCache;Landroid/provider/Settings$NameValueCache;]Ljava/util/HashSet;Ljava/util/HashSet; -HSPLandroid/provider/Settings$Global;->getUriFor(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z -HSPLandroid/provider/Settings$Global;->putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z -HSPLandroid/provider/Settings$Global;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z -HSPLandroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z -HSPLandroid/provider/Settings$NameValueCache$$ExternalSyntheticLambda0;-><init>(Landroid/provider/Settings$NameValueCache;)V -HSPLandroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;]Landroid/provider/Settings$GenerationTracker;Landroid/provider/Settings$GenerationTracker;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/provider/Settings$ContentProviderHolder;Landroid/provider/Settings$ContentProviderHolder;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Landroid/net/Uri;Landroid/net/Uri$StringUri; -HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefixStripPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/Map$Entry;Ljava/util/HashMap$Node;]Landroid/provider/Settings$GenerationTracker;Landroid/provider/Settings$GenerationTracker;]Landroid/os/Bundle;Landroid/os/Bundle;]Landroid/provider/Settings$ContentProviderHolder;Landroid/provider/Settings$ContentProviderHolder;]Ljava/util/Set;Ljava/util/HashMap$EntrySet;]Ljava/lang/String;Ljava/lang/String;]Landroid/content/IContentProvider;Landroid/content/ContentProviderProxy;,Landroid/content/ContentProvider$Transport;]Ljava/util/List;Ljava/util/Arrays$ArrayList;]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver;]Ljava/util/Iterator;Ljava/util/HashMap$EntryIterator;,Ljava/util/Arrays$ArrayItr;]Landroid/net/Uri;Landroid/net/Uri$StringUri; -HSPLandroid/provider/Settings$NameValueCache;->isCallerExemptFromReadableRestriction()Z -HSPLandroid/provider/Settings$NameValueCache;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z -HSPLandroid/provider/Settings$NameValueTable;->getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/Settings$Secure;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F -HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I -HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I -HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I -HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I -HSPLandroid/provider/Settings$Secure;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J -HSPLandroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J -HSPLandroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;+]Landroid/content/ContentResolver;Landroid/app/ContextImpl$ApplicationContentResolver; -HSPLandroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String; -HSPLandroid/provider/Settings$Secure;->getUriFor(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z -HSPLandroid/provider/Settings$Secure;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z -HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z -HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZIZ)Z -HSPLandroid/provider/Settings$SettingNotFoundException;-><init>(Ljava/lang/String;)V -HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F -HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F -HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F -HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I -HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I -HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I -HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I -HSPLandroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;+]Landroid/provider/Settings$NameValueCache;Landroid/provider/Settings$NameValueCache;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/util/HashSet;Ljava/util/HashSet; -HSPLandroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri; -HSPLandroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z -HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z -HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z -HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;IZ)Z -HSPLandroid/provider/Settings;->-$$Nest$smparseIntSetting(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/provider/Settings;->-$$Nest$smparseIntSettingWithDefault(Ljava/lang/String;I)I -HSPLandroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z -HSPLandroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z -HSPLandroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;ZI[Ljava/lang/String;Z)Z -HSPLandroid/provider/Settings;->isInSystemServer()Z -HSPLandroid/provider/Settings;->parseFloatSettingWithDefault(Ljava/lang/String;F)F -HSPLandroid/provider/Settings;->parseIntSetting(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/provider/Settings;->parseIntSettingWithDefault(Ljava/lang/String;I)I -HSPLandroid/provider/Settings;->parseLongSettingWithDefault(Ljava/lang/String;J)J -HSPLandroid/provider/Telephony$Sms;->getDefaultSmsPackage(Landroid/content/Context;)Ljava/lang/String; -HSPLandroid/renderscript/RenderScriptCacheDir;->setupDiskCache(Ljava/io/File;)V -HSPLandroid/se/omapi/SeServiceManager;-><init>()V -HSPLandroid/security/FeatureFlagsImpl;-><init>()V -HSPLandroid/security/Flags;-><clinit>()V -HSPLandroid/security/KeyChain$1;-><init>(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;)V -HSPLandroid/security/KeyChain$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/security/KeyChain$KeyChainConnection;-><init>(Landroid/content/Context;Landroid/content/ServiceConnection;Landroid/security/IKeyChainService;)V -HSPLandroid/security/KeyChain$KeyChainConnection;->close()V -HSPLandroid/security/KeyChain$KeyChainConnection;->getService()Landroid/security/IKeyChainService; -HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/Handler;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection; -HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection; -HSPLandroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V -HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda3;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; -HSPLandroid/security/KeyStore2$$ExternalSyntheticLambda4;->execute(Landroid/system/keystore2/IKeystoreService;)Ljava/lang/Object; -HSPLandroid/security/KeyStore2;-><init>()V -HSPLandroid/security/KeyStore2;->getInstance()Landroid/security/KeyStore2; -HSPLandroid/security/KeyStore2;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/security/KeyStore2;->getKeyStoreException(ILjava/lang/String;)Landroid/security/KeyStoreException; -HSPLandroid/security/KeyStore2;->getService(Z)Landroid/system/keystore2/IKeystoreService; -HSPLandroid/security/KeyStore2;->handleRemoteExceptionWithRetry(Landroid/security/KeyStore2$CheckedRemoteRequest;)Ljava/lang/Object; -HSPLandroid/security/KeyStore;->getInstance()Landroid/security/KeyStore; -HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;)V -HSPLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;Ljava/lang/String;)V -HSPLandroid/security/KeyStoreException;->getErrorCode()I -HSPLandroid/security/KeyStoreException;->initializeRkpStatusForRegularErrors(I)I -HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda0;->execute()Ljava/lang/Object; -HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda1;->execute()Ljava/lang/Object; -HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda2;->execute()Ljava/lang/Object; -HSPLandroid/security/KeyStoreOperation$$ExternalSyntheticLambda3;->execute()Ljava/lang/Object; -HSPLandroid/security/KeyStoreOperation;-><init>(Landroid/system/keystore2/IKeystoreOperation;Ljava/lang/Long;[Landroid/hardware/security/keymint/KeyParameter;)V -HSPLandroid/security/KeyStoreOperation;->abort()V -HSPLandroid/security/KeyStoreOperation;->finish([B[B)[B -HSPLandroid/security/KeyStoreOperation;->getChallenge()Ljava/lang/Long; -HSPLandroid/security/KeyStoreOperation;->getParameters()[Landroid/hardware/security/keymint/KeyParameter; -HSPLandroid/security/KeyStoreOperation;->handleExceptions(Landroid/security/CheckedRemoteRequest;)Ljava/lang/Object; -HSPLandroid/security/KeyStoreOperation;->update([B)[B -HSPLandroid/security/KeyStoreSecurityLevel;-><init>(Landroid/system/keystore2/IKeystoreSecurityLevel;)V -HSPLandroid/security/KeyStoreSecurityLevel;->createOperation(Landroid/system/keystore2/KeyDescriptor;Ljava/util/Collection;)Landroid/security/KeyStoreOperation; -HSPLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy; -HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z -HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/ExportResult; -HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/security/keymaster/ExportResult;-><init>(Landroid/os/Parcel;)V -HSPLandroid/security/keymaster/KeyCharacteristics$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeyCharacteristics; -HSPLandroid/security/keymaster/KeyCharacteristics$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/security/keymaster/KeyCharacteristics;-><init>()V -HSPLandroid/security/keymaster/KeyCharacteristics;->getEnum(I)Ljava/lang/Integer; -HSPLandroid/security/keymaster/KeyCharacteristics;->getEnums(I)Ljava/util/List; -HSPLandroid/security/keymaster/KeyCharacteristics;->getUnsignedInt(IJ)J -HSPLandroid/security/keymaster/KeyCharacteristics;->shallowCopyFrom(Landroid/security/keymaster/KeyCharacteristics;)V -HSPLandroid/security/keymaster/KeymasterArgument$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeymasterArgument; -HSPLandroid/security/keymaster/KeymasterArgument$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/security/keymaster/KeymasterArgument;-><init>(I)V -HSPLandroid/security/keymaster/KeymasterArgument;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/security/keymaster/KeymasterArguments$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeymasterArguments; -HSPLandroid/security/keymaster/KeymasterArguments$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/security/keymaster/KeymasterArguments;-><init>()V -HSPLandroid/security/keymaster/KeymasterArguments;->addBoolean(I)V -HSPLandroid/security/keymaster/KeymasterArguments;->addBytes(I[B)V -HSPLandroid/security/keymaster/KeymasterArguments;->addDateIfNotNull(ILjava/util/Date;)V -HSPLandroid/security/keymaster/KeymasterArguments;->addEnum(II)V -HSPLandroid/security/keymaster/KeymasterArguments;->addEnums(I[I)V -HSPLandroid/security/keymaster/KeymasterArguments;->addLongTag(ILjava/math/BigInteger;)V -HSPLandroid/security/keymaster/KeymasterArguments;->addUnsignedInt(IJ)V -HSPLandroid/security/keymaster/KeymasterArguments;->addUnsignedLong(ILjava/math/BigInteger;)V -HSPLandroid/security/keymaster/KeymasterArguments;->containsTag(I)Z -HSPLandroid/security/keymaster/KeymasterArguments;->getArgumentByTag(I)Landroid/security/keymaster/KeymasterArgument; -HSPLandroid/security/keymaster/KeymasterArguments;->getBytes(I[B)[B -HSPLandroid/security/keymaster/KeymasterArguments;->getEnum(II)I -HSPLandroid/security/keymaster/KeymasterArguments;->getEnums(I)Ljava/util/List; -HSPLandroid/security/keymaster/KeymasterArguments;->getUnsignedInt(IJ)J -HSPLandroid/security/keymaster/KeymasterArguments;->toUint64(J)Ljava/math/BigInteger; -HSPLandroid/security/keymaster/KeymasterArguments;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/security/keymaster/KeymasterBlob;-><init>([B)V -HSPLandroid/security/keymaster/KeymasterBlob;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/security/keymaster/KeymasterBlobArgument;-><init>(I[B)V -HSPLandroid/security/keymaster/KeymasterBlobArgument;->writeValue(Landroid/os/Parcel;)V -HSPLandroid/security/keymaster/KeymasterBooleanArgument;-><init>(I)V -HSPLandroid/security/keymaster/KeymasterBooleanArgument;->writeValue(Landroid/os/Parcel;)V -HSPLandroid/security/keymaster/KeymasterDefs;->getErrorMessage(I)Ljava/lang/String; -HSPLandroid/security/keymaster/KeymasterDefs;->getTagType(I)I -HSPLandroid/security/keymaster/KeymasterIntArgument;-><init>(II)V -HSPLandroid/security/keymaster/KeymasterIntArgument;->writeValue(Landroid/os/Parcel;)V -HSPLandroid/security/keymaster/KeymasterLongArgument;-><init>(IJ)V -HSPLandroid/security/keymaster/KeymasterLongArgument;->writeValue(Landroid/os/Parcel;)V -HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/OperationResult; -HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/security/keymaster/OperationResult;-><init>(Landroid/os/Parcel;)V -HSPLandroid/security/keystore/AndroidKeyStoreProvider;-><init>(Ljava/lang/String;)V -HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getKeyStoreForUid(I)Ljava/security/KeyStore; -HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([B)[B -HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/security/keystore/ArrayUtils;->concat([BII[BII)[B -HSPLandroid/security/keystore/ArrayUtils;->concat([B[B)[B -HSPLandroid/security/keystore/ArrayUtils;->nullToEmpty([Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/security/keystore/ArrayUtils;->subarray([BII)[B -HSPLandroid/security/keystore/DelegatingX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V -HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;-><init>(Ljava/lang/String;I)V -HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->build()Landroid/security/keystore/KeyGenParameterSpec; -HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setBlockModes([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder; -HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setEncryptionPaddings([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder; -HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setKeySize(I)Landroid/security/keystore/KeyGenParameterSpec$Builder; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getBlockModes()[Ljava/lang/String; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getEncryptionPaddings()[Ljava/lang/String; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeySize()I -HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityForConsumptionEnd()Ljava/util/Date; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityForOriginationEnd()Ljava/util/Date; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeyValidityStart()Ljava/util/Date; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeystoreAlias()Ljava/lang/String; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getPurposes()I -HSPLandroid/security/keystore/KeyGenParameterSpec;->getSignaturePaddings()[Ljava/lang/String; -HSPLandroid/security/keystore/KeyGenParameterSpec;->getUid()I -HSPLandroid/security/keystore/KeyGenParameterSpec;->isCriticalToDeviceEncryption()Z -HSPLandroid/security/keystore/KeyGenParameterSpec;->isDigestsSpecified()Z -HSPLandroid/security/keystore/KeyGenParameterSpec;->isStrongBoxBacked()Z -HSPLandroid/security/keystore/KeyGenParameterSpec;->isUnlockedDeviceRequired()Z -HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserAuthenticationRequired()Z -HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserConfirmationRequired()Z -HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserPresenceRequired()Z -HSPLandroid/security/keystore/KeyProperties$BlockMode;->allToKeymaster([Ljava/lang/String;)[I -HSPLandroid/security/keystore/KeyProperties$Digest;->toKeymaster(Ljava/lang/String;)I -HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->allToKeymaster([Ljava/lang/String;)[I -HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterAsymmetricKeyAlgorithm(I)Ljava/lang/String; -HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterSecretKeyAlgorithm(II)Ljava/lang/String; -HSPLandroid/security/keystore/KeyProperties$Purpose;->allToKeymaster(I)[I -HSPLandroid/security/keystore/KeyProperties$Purpose;->toKeymaster(I)I -HSPLandroid/security/keystore/KeystoreResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/KeystoreResponse; -HSPLandroid/security/keystore/KeystoreResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/security/keystore/KeystoreResponse;->getErrorCode()I -HSPLandroid/security/keystore/Utils;->cloneIfNotNull(Ljava/util/Date;)Ljava/util/Date; -HSPLandroid/security/keystore/Utils;->cloneIfNotNull([B)[B -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStoreOperation;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStoreOperation;Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->finish([B[B)[B -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationStreamer;Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer-IA;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->doFinal([BII[B)[B -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;-><init>()V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;->finalize()V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;-><init>(I)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->addAlgorithmSpecificParametersToBegin(Ljava/util/List;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createMainDataStreamer(Landroid/security/KeyStoreOperation;)Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters()V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetAll()V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetWhilePreservingInitState()V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;-><init>(II)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Ljava/util/List;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->engineGetIV()[B -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult([Landroid/hardware/security/keymint/KeyParameter;)V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->resetAll()V -HSPLandroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi;->setIv([B)V -HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;-><init>()V -HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putAsymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putMacImpl(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSignatureImpl(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider;->putSymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;-><init>()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->abortOperation()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII)[B -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII[BI)I -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->finalize()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->flushAAD()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->isEncrypting()Z -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->resetAll()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->resetWhilePreservingInitState()V -HSPLandroid/security/keystore2/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore2/AndroidKeyStoreKey;)V -HSPLandroid/security/keystore2/AndroidKeyStoreKey;-><init>(Landroid/system/keystore2/KeyDescriptor;J[Landroid/system/keystore2/Authorization;Ljava/lang/String;Landroid/security/KeyStoreSecurityLevel;)V -HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getAlgorithm()Ljava/lang/String; -HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getFormat()Ljava/lang/String; -HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getKeyIdDescriptor()Landroid/system/keystore2/KeyDescriptor; -HSPLandroid/security/keystore2/AndroidKeyStoreKey;->getSecurityLevel()Landroid/security/KeyStoreSecurityLevel; -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;-><init>()V -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->install()V -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore2;Landroid/system/keystore2/KeyDescriptor;)Landroid/security/keystore2/AndroidKeyStoreKey; -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore2;Ljava/lang/String;I)Landroid/security/keystore2/AndroidKeyStoreKey; -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->makeAndroidKeyStoreSecretKeyFromKeyEntryResponse(Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/KeyEntryResponse;II)Landroid/security/keystore2/AndroidKeyStoreSecretKey; -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->putKeyFactoryImpl(Ljava/lang/String;)V -HSPLandroid/security/keystore2/AndroidKeyStoreProvider;->putSecretKeyFactoryImpl(Ljava/lang/String;)V -HSPLandroid/security/keystore2/AndroidKeyStoreSecretKey;-><init>(Landroid/system/keystore2/KeyDescriptor;Landroid/system/keystore2/KeyMetadata;Ljava/lang/String;Landroid/security/KeyStoreSecurityLevel;)V -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;-><init>()V -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineContainsAlias(Ljava/lang/String;)Z -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineGetKey(Ljava/lang/String;[C)Ljava/security/Key; -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineIsKeyEntry(Ljava/lang/String;)Z -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getKeyMetadata(Ljava/lang/String;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->getTargetDomain()I -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z -HSPLandroid/security/keystore2/AndroidKeyStoreSpi;->makeKeyDescriptor(Ljava/lang/String;)Landroid/system/keystore2/KeyDescriptor; -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeBytes(I[B)Landroid/hardware/security/keymint/KeyParameter; -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeEnum(II)Landroid/hardware/security/keymint/KeyParameter; -HSPLandroid/security/keystore2/KeyStore2ParameterUtils;->makeInt(II)Landroid/hardware/security/keymint/KeyParameter; -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;-><init>(Landroid/security/KeyStoreOperation;)V -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->finish([B[B)[B -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->update([B)[B -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$Stream;I)V -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$Stream;II)V -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;->doFinal([BII[B)[B -HSPLandroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer;->update([BII)[B -HSPLandroid/security/keystore2/KeyStoreCryptoOperationUtils;->abortOperation(Landroid/security/KeyStoreOperation;)V -HSPLandroid/security/keystore2/KeyStoreCryptoOperationUtils;->getOrMakeOperationChallenge(Landroid/security/KeyStoreOperation;Landroid/security/keystore2/AndroidKeyStoreKey;)J -HSPLandroid/security/keystore2/KeyStoreCryptoOperationUtils;->getRandomBytesToMixIntoKeystoreRng(Ljava/security/SecureRandom;I)[B -HSPLandroid/security/net/config/ApplicationConfig;-><init>(Landroid/security/net/config/ConfigSource;)V -HSPLandroid/security/net/config/ApplicationConfig;->ensureInitialized()V -HSPLandroid/security/net/config/ApplicationConfig;->getConfigForHostname(Ljava/lang/String;)Landroid/security/net/config/NetworkSecurityConfig; -HSPLandroid/security/net/config/ApplicationConfig;->getDefaultInstance()Landroid/security/net/config/ApplicationConfig; -HSPLandroid/security/net/config/ApplicationConfig;->getTrustManager()Ljavax/net/ssl/X509TrustManager; -HSPLandroid/security/net/config/ApplicationConfig;->hasPerDomainConfigs()Z -HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted()Z -HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted(Ljava/lang/String;)Z -HSPLandroid/security/net/config/ApplicationConfig;->setDefaultInstance(Landroid/security/net/config/ApplicationConfig;)V -HSPLandroid/security/net/config/CertificatesEntryRef;-><init>(Landroid/security/net/config/CertificateSource;Z)V -HSPLandroid/security/net/config/CertificatesEntryRef;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/CertificatesEntryRef;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor; -HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;-><init>(Landroid/security/net/config/ApplicationConfig;)V -HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCertificateTransparencyVerificationRequired(Ljava/lang/String;)Z -HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z -HSPLandroid/security/net/config/DirectoryCertificateSource$1;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V -HSPLandroid/security/net/config/DirectoryCertificateSource$3;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V -HSPLandroid/security/net/config/DirectoryCertificateSource$3;->match(Ljava/security/cert/X509Certificate;)Z -HSPLandroid/security/net/config/DirectoryCertificateSource;-><init>(Ljava/io/File;)V -HSPLandroid/security/net/config/DirectoryCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/DirectoryCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/DirectoryCertificateSource;->findCert(Ljavax/security/auth/x500/X500Principal;Landroid/security/net/config/DirectoryCertificateSource$CertSelector;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/DirectoryCertificateSource;->findCerts(Ljavax/security/auth/x500/X500Principal;Landroid/security/net/config/DirectoryCertificateSource$CertSelector;)Ljava/util/Set; -HSPLandroid/security/net/config/DirectoryCertificateSource;->getHash(Ljavax/security/auth/x500/X500Principal;)Ljava/lang/String; -HSPLandroid/security/net/config/DirectoryCertificateSource;->hashName(Ljavax/security/auth/x500/X500Principal;)I -HSPLandroid/security/net/config/DirectoryCertificateSource;->intToHexString(II)Ljava/lang/String; -HSPLandroid/security/net/config/DirectoryCertificateSource;->readCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/Domain;->hashCode()I -HSPLandroid/security/net/config/KeyStoreCertificateSource;-><init>(Ljava/security/KeyStore;)V -HSPLandroid/security/net/config/KeyStoreCertificateSource;->ensureInitialized()V -HSPLandroid/security/net/config/KeyStoreCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/KeyStoreCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/KeyStoreConfigSource;-><init>(Ljava/security/KeyStore;)V -HSPLandroid/security/net/config/KeyStoreConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig; -HSPLandroid/security/net/config/KeyStoreConfigSource;->getPerDomainConfigs()Ljava/util/Set; -HSPLandroid/security/net/config/ManifestConfigSource$DefaultConfigSource;-><init>(ZLandroid/content/pm/ApplicationInfo;)V -HSPLandroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig; -HSPLandroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->getPerDomainConfigs()Ljava/util/Set; -HSPLandroid/security/net/config/ManifestConfigSource;-><init>(Landroid/content/Context;)V -HSPLandroid/security/net/config/ManifestConfigSource;->getConfigSource()Landroid/security/net/config/ConfigSource; -HSPLandroid/security/net/config/ManifestConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig; -HSPLandroid/security/net/config/ManifestConfigSource;->getPerDomainConfigs()Ljava/util/Set; -HSPLandroid/security/net/config/NetworkSecurityConfig$1;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V -HSPLandroid/security/net/config/NetworkSecurityConfig$1;->compare(Landroid/security/net/config/CertificatesEntryRef;Landroid/security/net/config/CertificatesEntryRef;)I -HSPLandroid/security/net/config/NetworkSecurityConfig$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;-><init>()V -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRef(Landroid/security/net/config/CertificatesEntryRef;)Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRefs(Ljava/util/Collection;)Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->build()Landroid/security/net/config/NetworkSecurityConfig; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveCertificatesEntryRefs()Ljava/util/List; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveCleartextTrafficPermitted()Z -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveHstsEnforced()Z -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectivePinSet()Landroid/security/net/config/PinSet; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getParent()Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->setCleartextTrafficPermitted(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->setHstsEnforced(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->setParent(Landroid/security/net/config/NetworkSecurityConfig$Builder;)Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig;-><init>(ZZZLandroid/security/net/config/PinSet;Ljava/util/List;)V -HSPLandroid/security/net/config/NetworkSecurityConfig;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/NetworkSecurityConfig;->findTrustAnchorBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor; -HSPLandroid/security/net/config/NetworkSecurityConfig;->getDefaultBuilder(Landroid/content/pm/ApplicationInfo;)Landroid/security/net/config/NetworkSecurityConfig$Builder; -HSPLandroid/security/net/config/NetworkSecurityConfig;->getPins()Landroid/security/net/config/PinSet; -HSPLandroid/security/net/config/NetworkSecurityConfig;->getTrustManager()Landroid/security/net/config/NetworkSecurityTrustManager; -HSPLandroid/security/net/config/NetworkSecurityConfig;->isCleartextTrafficPermitted()Z -HSPLandroid/security/net/config/NetworkSecurityConfigProvider;-><init>()V -HSPLandroid/security/net/config/NetworkSecurityConfigProvider;->handleNewApplication(Landroid/content/Context;)V -HSPLandroid/security/net/config/NetworkSecurityConfigProvider;->install(Landroid/content/Context;)V -HSPLandroid/security/net/config/NetworkSecurityTrustManager;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V -HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkPins(Ljava/util/List;)V -HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V -HSPLandroid/security/net/config/RootTrustManager;-><init>(Landroid/security/net/config/ApplicationConfig;)V -HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V -HSPLandroid/security/net/config/RootTrustManagerFactorySpi;-><init>()V -HSPLandroid/security/net/config/RootTrustManagerFactorySpi;->engineGetTrustManagers()[Ljavax/net/ssl/TrustManager; -HSPLandroid/security/net/config/RootTrustManagerFactorySpi;->engineInit(Ljava/security/KeyStore;)V -HSPLandroid/security/net/config/SystemCertificateSource$NoPreloadHolder;->-$$Nest$sfgetINSTANCE()Landroid/security/net/config/SystemCertificateSource; -HSPLandroid/security/net/config/SystemCertificateSource$NoPreloadHolder;-><clinit>()V -HSPLandroid/security/net/config/SystemCertificateSource;-><init>()V -HSPLandroid/security/net/config/SystemCertificateSource;-><init>(Landroid/security/net/config/SystemCertificateSource-IA;)V -HSPLandroid/security/net/config/SystemCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/SystemCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/SystemCertificateSource;->getDirectory()Ljava/io/File; -HSPLandroid/security/net/config/SystemCertificateSource;->getInstance()Landroid/security/net/config/SystemCertificateSource; -HSPLandroid/security/net/config/SystemCertificateSource;->isCertMarkedAsRemoved(Ljava/lang/String;)Z -HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V -HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;->findAllIssuers(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;->getTrustAnchor(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/UserCertificateSource$NoPreloadHolder;-><clinit>()V -HSPLandroid/security/net/config/UserCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set; -HSPLandroid/security/net/config/UserCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate; -HSPLandroid/security/net/config/XmlConfigSource;-><init>(Landroid/content/Context;ILandroid/content/pm/ApplicationInfo;)V -HSPLandroid/security/net/config/XmlConfigSource;->addDebugAnchorsIfNeeded(Landroid/security/net/config/NetworkSecurityConfig$Builder;Landroid/security/net/config/NetworkSecurityConfig$Builder;)V -HSPLandroid/security/net/config/XmlConfigSource;->ensureInitialized()V -HSPLandroid/security/net/config/XmlConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig; -HSPLandroid/security/net/config/XmlConfigSource;->getPerDomainConfigs()Ljava/util/Set; -HSPLandroid/security/net/config/XmlConfigSource;->parseCertificatesEntry(Landroid/content/res/XmlResourceParser;Z)Landroid/security/net/config/CertificatesEntryRef; -HSPLandroid/security/net/config/XmlConfigSource;->parseConfigEntry(Landroid/content/res/XmlResourceParser;Ljava/util/Set;Landroid/security/net/config/NetworkSecurityConfig$Builder;I)Ljava/util/List; -HSPLandroid/security/net/config/XmlConfigSource;->parseDomain(Landroid/content/res/XmlResourceParser;Ljava/util/Set;)Landroid/security/net/config/Domain; -HSPLandroid/security/net/config/XmlConfigSource;->parseNetworkSecurityConfig(Landroid/content/res/XmlResourceParser;)V -HSPLandroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection; -HSPLandroid/server/FeatureFlagsImpl;->telemetryApisService()Z -HSPLandroid/service/appprediction/IPredictionService$Stub;-><init>()V -HSPLandroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager; -HSPLandroid/service/media/IMediaBrowserService$Stub;-><init>()V -HSPLandroid/service/media/IMediaBrowserService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserServiceCallbacks; -HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->connect(Ljava/lang/String;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V -HSPLandroid/service/media/MediaBrowserService;->-$$Nest$fgetmHandler(Landroid/service/media/MediaBrowserService;)Landroid/os/Handler; -HSPLandroid/service/media/MediaBrowserService;-><init>()V -HSPLandroid/service/media/MediaBrowserService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder; -HSPLandroid/service/media/MediaBrowserService;->onCreate()V -HSPLandroid/service/media/MediaBrowserService;->setSessionToken(Landroid/media/session/MediaSession$Token;)V -HSPLandroid/service/notification/Condition$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/Condition; -HSPLandroid/service/notification/Condition$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/Condition;-><init>(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;III)V -HSPLandroid/service/notification/Condition;-><init>(Landroid/os/Parcel;)V -HSPLandroid/service/notification/Condition;->equals(Ljava/lang/Object;)Z -HSPLandroid/service/notification/Condition;->isValidState(I)Z -HSPLandroid/service/notification/ConditionProviderService$H;-><init>(Landroid/service/notification/ConditionProviderService;)V -HSPLandroid/service/notification/ConditionProviderService$H;->handleMessage(Landroid/os/Message;)V -HSPLandroid/service/notification/ConditionProviderService$Provider;-><init>(Landroid/service/notification/ConditionProviderService;)V -HSPLandroid/service/notification/ConditionProviderService$Provider;->onConnected()V -HSPLandroid/service/notification/ConditionProviderService;-><init>()V -HSPLandroid/service/notification/ConditionProviderService;->getNotificationInterface()Landroid/app/INotificationManager; -HSPLandroid/service/notification/ConditionProviderService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder; -HSPLandroid/service/notification/IConditionProvider$Stub;-><init>()V -HSPLandroid/service/notification/IConditionProvider$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/service/notification/INotificationListener$Stub;-><init>()V -HSPLandroid/service/notification/INotificationListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/service/notification/INotificationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification; -HSPLandroid/service/notification/NotificationListenerService$MyHandler;-><init>(Landroid/service/notification/NotificationListenerService;Landroid/os/Looper;)V -HSPLandroid/service/notification/NotificationListenerService$MyHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;-><init>(Landroid/service/notification/NotificationListenerService;)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onInterruptionFilterChanged(I)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelGroupModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationChannelModification(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V+]Landroid/os/Handler;Landroid/service/notification/NotificationListenerService$MyHandler;]Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;]Landroid/service/notification/StatusBarNotification;Landroid/service/notification/StatusBarNotification;]Landroid/os/Message;Landroid/os/Message; -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V -HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V -HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>()V -HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Object;Landroid/service/notification/NotificationListenerService$Ranking;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/service/notification/NotificationListenerService$Ranking;->getChannel()Landroid/app/NotificationChannel; -HSPLandroid/service/notification/NotificationListenerService$Ranking;->getKey()Ljava/lang/String; -HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Landroid/service/notification/NotificationListenerService$Ranking;)V+]Landroid/service/notification/NotificationListenerService$Ranking;Landroid/service/notification/NotificationListenerService$Ranking; -HSPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Ljava/lang/String;IZIIILjava/lang/CharSequence;Ljava/lang/String;Landroid/app/NotificationChannel;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIZJZLjava/util/ArrayList;Ljava/util/ArrayList;ZZZLandroid/content/pm/ShortcutInfo;IZIZ)V -HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationListenerService$RankingMap; -HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/os/Parcel;)V+]Landroid/service/notification/NotificationListenerService$Ranking;Landroid/service/notification/NotificationListenerService$Ranking;]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;Landroid/service/notification/NotificationListenerService$RankingMap;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/service/notification/NotificationListenerService$RankingMap;->getOrderedKeys()[Ljava/lang/String; -HSPLandroid/service/notification/NotificationListenerService$RankingMap;->getRanking(Ljava/lang/String;Landroid/service/notification/NotificationListenerService$Ranking;)Z -HSPLandroid/service/notification/NotificationListenerService;-><init>()V -HSPLandroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V -HSPLandroid/service/notification/NotificationListenerService;->attachBaseContext(Landroid/content/Context;)V -HSPLandroid/service/notification/NotificationListenerService;->cleanUpNotificationList(Landroid/content/pm/ParceledListSlice;)[Landroid/service/notification/StatusBarNotification; -HSPLandroid/service/notification/NotificationListenerService;->createLegacyIconExtras(Landroid/app/Notification;)V -HSPLandroid/service/notification/NotificationListenerService;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification; -HSPLandroid/service/notification/NotificationListenerService;->getActiveNotifications([Ljava/lang/String;I)[Landroid/service/notification/StatusBarNotification; -HSPLandroid/service/notification/NotificationListenerService;->getContext()Landroid/content/Context; -HSPLandroid/service/notification/NotificationListenerService;->getCurrentRanking()Landroid/service/notification/NotificationListenerService$RankingMap; -HSPLandroid/service/notification/NotificationListenerService;->getNotificationInterface()Landroid/app/INotificationManager; -HSPLandroid/service/notification/NotificationListenerService;->isBound()Z -HSPLandroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V -HSPLandroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V -HSPLandroid/service/notification/NotificationListenerService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder; -HSPLandroid/service/notification/NotificationListenerService;->onInterruptionFilterChanged(I)V -HSPLandroid/service/notification/NotificationListenerService;->onListenerConnected()V -HSPLandroid/service/notification/NotificationListenerService;->onNotificationChannelGroupModified(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V -HSPLandroid/service/notification/NotificationListenerService;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V -HSPLandroid/service/notification/NotificationListenerService;->onNotificationRankingUpdate(Landroid/service/notification/NotificationListenerService$RankingMap;)V -HSPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;Landroid/service/notification/NotificationStats;I)V -HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationRankingUpdate; -HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/Parcel;)V -HSPLandroid/service/notification/NotificationRankingUpdate;->getRankingMap()Landroid/service/notification/NotificationListenerService$RankingMap; -HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification; -HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V+]Landroid/os/Parcelable$Creator;Lcom/android/internal/logging/InstanceId$1;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/service/notification/StatusBarNotification;->getGroupKey()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->getId()I -HSPLandroid/service/notification/StatusBarNotification;->getInstanceId()Lcom/android/internal/logging/InstanceId; -HSPLandroid/service/notification/StatusBarNotification;->getKey()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->getNotification()Landroid/app/Notification; -HSPLandroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->getOverrideGroupKey()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->getPackageContext(Landroid/content/Context;)Landroid/content/Context; -HSPLandroid/service/notification/StatusBarNotification;->getPackageName()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->getPostTime()J -HSPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->getUid()I -HSPLandroid/service/notification/StatusBarNotification;->getUser()Landroid/os/UserHandle; -HSPLandroid/service/notification/StatusBarNotification;->getUserId()I -HSPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String; -HSPLandroid/service/notification/StatusBarNotification;->isAppGroup()Z -HSPLandroid/service/notification/StatusBarNotification;->isGroup()Z -HSPLandroid/service/notification/StatusBarNotification;->isOngoing()Z -HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/UserHandle;Landroid/os/UserHandle; -HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/ZenModeConfig$ZenRule; -HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/service/notification/ZenModeConfig$ZenRule;-><init>(Landroid/os/Parcel;)V -HSPLandroid/service/notification/ZenModeConfig$ZenRule;->equals(Ljava/lang/Object;)Z -HSPLandroid/service/notification/ZenModeConfig;-><init>(Landroid/os/Parcel;)V -HSPLandroid/service/notification/ZenModeConfig;->areAllPriorityOnlyRingerSoundsMuted(Landroid/app/NotificationManager$Policy;)Z -HSPLandroid/service/notification/ZenModeConfig;->equals(Ljava/lang/Object;)Z -HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;->onSuccess(Landroid/os/Bundle;)V -HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;-><init>()V -HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub;-><init>()V -HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService; -HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/service/textclassifier/TextClassifierService;->getResponse(Landroid/os/Bundle;)Landroid/os/Parcelable; -HSPLandroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ServiceInfo;)V -HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getParseError()Ljava/lang/String; -HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getRecognitionService()Ljava/lang/String; -HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo; -HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager; -HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V -HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;-><init>()V -HSPLandroid/speech/tts/ITextToSpeechCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getClientDefaultLanguage()[Ljava/lang/String; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/speech/tts/ITextToSpeechService$Stub$Proxy;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V -HSPLandroid/speech/tts/TextToSpeech$Connection$1;-><init>(Landroid/speech/tts/TextToSpeech$Connection;)V -HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Integer; -HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Integer;)V -HSPLandroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Object;)V -HSPLandroid/speech/tts/TextToSpeech$Connection;-><init>(Landroid/speech/tts/TextToSpeech;)V -HSPLandroid/speech/tts/TextToSpeech$Connection;->getCallerIdentity()Landroid/os/IBinder; -HSPLandroid/speech/tts/TextToSpeech$Connection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V -HSPLandroid/speech/tts/TextToSpeech$EngineInfo;-><init>()V -HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V -HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V -HSPLandroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;Z)V -HSPLandroid/speech/tts/TextToSpeech;->connectToEngine(Ljava/lang/String;)Z -HSPLandroid/speech/tts/TextToSpeech;->dispatchOnInit(I)V -HSPLandroid/speech/tts/TextToSpeech;->getDefaultEngine()Ljava/lang/String; -HSPLandroid/speech/tts/TextToSpeech;->initTts()I -HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/speech/tts/TextToSpeech;->runAction(Landroid/speech/tts/TextToSpeech$Action;Ljava/lang/Object;Ljava/lang/String;ZZ)Ljava/lang/Object; -HSPLandroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V -HSPLandroid/speech/tts/TtsEngines;->getDefaultEngine()Ljava/lang/String; -HSPLandroid/speech/tts/TtsEngines;->getEngineInfo(Landroid/content/pm/ResolveInfo;Landroid/content/pm/PackageManager;)Landroid/speech/tts/TextToSpeech$EngineInfo; -HSPLandroid/speech/tts/TtsEngines;->getEngines()Ljava/util/List; -HSPLandroid/speech/tts/TtsEngines;->isEngineInstalled(Ljava/lang/String;)Z -HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z -HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional; -HSPLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional; -HSPLandroid/sysprop/DisplayProperties;->debug_vri_package()Ljava/util/Optional; -HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean; -HSPLandroid/sysprop/DisplayProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/InputProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda10;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda4;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda5;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda6;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7;-><init>()V -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda8;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9;-><init>()V -HSPLandroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/sysprop/TelephonyProperties;->baseband_version()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->current_active_phone()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->icc_operator_alpha()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->icc_operator_iso_country()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->icc_operator_numeric()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->lambda$baseband_version$0(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_alpha$8(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_iso_country$9(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties;->lambda$icc_operator_numeric$7(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_alpha$1(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_is_roaming$3(Ljava/lang/String;)Ljava/lang/Boolean; -HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_numeric$2(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/TelephonyProperties;->max_active_modems()Ljava/util/Optional; -HSPLandroid/sysprop/TelephonyProperties;->multi_sim_config()Ljava/util/Optional; -HSPLandroid/sysprop/TelephonyProperties;->operator_alpha()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->operator_is_roaming()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->operator_numeric()Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean; -HSPLandroid/sysprop/TelephonyProperties;->tryParseInteger(Ljava/lang/String;)Ljava/lang/Integer; -HSPLandroid/sysprop/TelephonyProperties;->tryParseList(Ljava/util/function/Function;Ljava/lang/String;)Ljava/util/List; -HSPLandroid/sysprop/TelephonyProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/sysprop/VndkProperties;->product_vndk_version()Ljava/util/Optional; -HSPLandroid/sysprop/VndkProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/system/ErrnoException;-><init>(Ljava/lang/String;I)V -HSPLandroid/system/ErrnoException;->getMessage()Ljava/lang/String; -HSPLandroid/system/ErrnoException;->rethrowAsIOException()Ljava/io/IOException; -HSPLandroid/system/GaiException;-><init>(Ljava/lang/String;I)V -HSPLandroid/system/GaiException;->getMessage()Ljava/lang/String; -HSPLandroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException; -HSPLandroid/system/Int32Ref;-><init>(I)V -HSPLandroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)Ljava/io/FileDescriptor; -HSPLandroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor; -HSPLandroid/system/Os;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V -HSPLandroid/system/Os;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData; -HSPLandroid/system/Os;->chmod(Ljava/lang/String;I)V -HSPLandroid/system/Os;->close(Ljava/io/FileDescriptor;)V -HSPLandroid/system/Os;->fcntlInt(Ljava/io/FileDescriptor;II)I -HSPLandroid/system/Os;->fdatasync(Ljava/io/FileDescriptor;)V -HSPLandroid/system/Os;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat; -HSPLandroid/system/Os;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress; -HSPLandroid/system/Os;->getpgid(I)I -HSPLandroid/system/Os;->getpid()I -HSPLandroid/system/Os;->gettid()I -HSPLandroid/system/Os;->getuid()I -HSPLandroid/system/Os;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B -HSPLandroid/system/Os;->ioctlInt(Ljava/io/FileDescriptor;I)I -HSPLandroid/system/Os;->listen(Ljava/io/FileDescriptor;I)V -HSPLandroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J -HSPLandroid/system/Os;->lstat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLandroid/system/Os;->mkdir(Ljava/lang/String;I)V -HSPLandroid/system/Os;->mmap(JJIILjava/io/FileDescriptor;J)J -HSPLandroid/system/Os;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor; -HSPLandroid/system/Os;->poll([Landroid/system/StructPollfd;I)I -HSPLandroid/system/Os;->read(Ljava/io/FileDescriptor;[BII)I -HSPLandroid/system/Os;->rename(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/system/Os;->setenv(Ljava/lang/String;Ljava/lang/String;Z)V -HSPLandroid/system/Os;->setpgid(II)V -HSPLandroid/system/Os;->setregid(II)V -HSPLandroid/system/Os;->setreuid(II)V -HSPLandroid/system/Os;->setsockoptInt(Ljava/io/FileDescriptor;III)V -HSPLandroid/system/Os;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V -HSPLandroid/system/Os;->socket(III)Ljava/io/FileDescriptor; -HSPLandroid/system/Os;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V -HSPLandroid/system/Os;->stat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLandroid/system/Os;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs; -HSPLandroid/system/Os;->sysconf(I)J -HSPLandroid/system/Os;->write(Ljava/io/FileDescriptor;[BII)I -HSPLandroid/system/OsConstants;->S_ISDIR(I)Z -HSPLandroid/system/OsConstants;->errnoName(I)Ljava/lang/String; -HSPLandroid/system/OsConstants;->gaiName(I)Ljava/lang/String; -HSPLandroid/system/StructAddrinfo;-><init>()V -HSPLandroid/system/StructCapUserData;-><init>(III)V -HSPLandroid/system/StructCapUserHeader;-><init>(II)V -HSPLandroid/system/StructIfaddrs;-><init>(Ljava/lang/String;ILjava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;[B)V -HSPLandroid/system/StructLinger;-><init>(II)V -HSPLandroid/system/StructLinger;->isOn()Z -HSPLandroid/system/StructPollfd;-><init>()V -HSPLandroid/system/StructStat;-><init>(JJIJIIJJLandroid/system/StructTimespec;Landroid/system/StructTimespec;Landroid/system/StructTimespec;JJ)V -HSPLandroid/system/StructStatVfs;-><init>(JJJJJJJJJJJ)V -HSPLandroid/system/StructTimespec;-><init>(JJ)V -HSPLandroid/system/StructTimespec;->equals(Ljava/lang/Object;)Z -HSPLandroid/system/StructTimeval;-><init>(JJ)V -HSPLandroid/system/StructTimeval;->fromMillis(J)Landroid/system/StructTimeval; -HSPLandroid/system/UnixSocketAddress;-><init>([B)V -HSPLandroid/system/keystore2/Authorization$1;-><init>()V -HSPLandroid/system/keystore2/Authorization$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/Authorization; -HSPLandroid/system/keystore2/Authorization$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/system/keystore2/Authorization$1;->newArray(I)[Landroid/system/keystore2/Authorization; -HSPLandroid/system/keystore2/Authorization$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/system/keystore2/Authorization;-><clinit>()V -HSPLandroid/system/keystore2/Authorization;-><init>()V -HSPLandroid/system/keystore2/Authorization;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/system/keystore2/CreateOperationResponse$1;-><init>()V -HSPLandroid/system/keystore2/CreateOperationResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/CreateOperationResponse; -HSPLandroid/system/keystore2/CreateOperationResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/system/keystore2/CreateOperationResponse;-><clinit>()V -HSPLandroid/system/keystore2/CreateOperationResponse;-><init>()V -HSPLandroid/system/keystore2/CreateOperationResponse;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->abort()V -HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->finish([B[B)[B -HSPLandroid/system/keystore2/IKeystoreOperation$Stub$Proxy;->update([B)[B -HSPLandroid/system/keystore2/IKeystoreOperation$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreOperation; -HSPLandroid/system/keystore2/IKeystoreOperation;-><clinit>()V -HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy;->createOperation(Landroid/system/keystore2/KeyDescriptor;[Landroid/hardware/security/keymint/KeyParameter;Z)Landroid/system/keystore2/CreateOperationResponse; -HSPLandroid/system/keystore2/IKeystoreSecurityLevel$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreSecurityLevel; -HSPLandroid/system/keystore2/IKeystoreSecurityLevel;-><clinit>()V -HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/system/keystore2/IKeystoreService$Stub$Proxy;->getKeyEntry(Landroid/system/keystore2/KeyDescriptor;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/system/keystore2/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/keystore2/IKeystoreService; -HSPLandroid/system/keystore2/IKeystoreService;-><clinit>()V -HSPLandroid/system/keystore2/KeyDescriptor$1;-><init>()V -HSPLandroid/system/keystore2/KeyDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyDescriptor; -HSPLandroid/system/keystore2/KeyDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/system/keystore2/KeyDescriptor;-><clinit>()V -HSPLandroid/system/keystore2/KeyDescriptor;-><init>()V -HSPLandroid/system/keystore2/KeyDescriptor;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/system/keystore2/KeyDescriptor;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/system/keystore2/KeyEntryResponse$1;-><init>()V -HSPLandroid/system/keystore2/KeyEntryResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyEntryResponse; -HSPLandroid/system/keystore2/KeyEntryResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/system/keystore2/KeyEntryResponse;-><clinit>()V -HSPLandroid/system/keystore2/KeyEntryResponse;-><init>()V -HSPLandroid/system/keystore2/KeyEntryResponse;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/system/keystore2/KeyMetadata$1;-><init>()V -HSPLandroid/system/keystore2/KeyMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyMetadata; -HSPLandroid/system/keystore2/KeyMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/system/keystore2/KeyMetadata;-><clinit>()V -HSPLandroid/system/keystore2/KeyMetadata;-><init>()V -HSPLandroid/system/keystore2/KeyMetadata;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/system/keystore2/KeyParameters$1;-><init>()V -HSPLandroid/system/keystore2/KeyParameters$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/keystore2/KeyParameters; -HSPLandroid/system/keystore2/KeyParameters$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/system/keystore2/KeyParameters;-><clinit>()V -HSPLandroid/system/keystore2/KeyParameters;-><init>()V -HSPLandroid/system/keystore2/KeyParameters;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/system/keystore2/OperationChallenge$1;-><init>()V -HSPLandroid/system/keystore2/OperationChallenge;-><clinit>()V -HSPLandroid/telecom/AudioState;-><init>(Landroid/telecom/CallAudioState;)V -HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/CallAudioState; -HSPLandroid/telecom/CallAudioState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telecom/CallAudioState;-><init>(ZIILandroid/bluetooth/BluetoothDevice;Ljava/util/Collection;)V -HSPLandroid/telecom/CallAudioState;->audioRouteToString(I)Ljava/lang/String; -HSPLandroid/telecom/CallAudioState;->getRoute()I -HSPLandroid/telecom/CallAudioState;->getSupportedRouteMask()I -HSPLandroid/telecom/CallAudioState;->isMuted()Z -HSPLandroid/telecom/CallAudioState;->toString()Ljava/lang/String; -HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/DisconnectCause; -HSPLandroid/telecom/DisconnectCause$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telecom/DisconnectCause;->getCode()I -HSPLandroid/telecom/DisconnectCause;->getReason()Ljava/lang/String; -HSPLandroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V -HSPLandroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session; -HSPLandroid/telecom/Log;->d(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/telecom/Log;->d(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/telecom/Log;->endSession()V -HSPLandroid/telecom/Log;->getSessionId()Ljava/lang/String; -HSPLandroid/telecom/Log;->getSessionManager()Landroid/telecom/Logging/SessionManager; -HSPLandroid/telecom/Log;->i(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/telecom/Log;->obfuscatePhoneNumber(Ljava/lang/StringBuilder;Ljava/lang/String;)V -HSPLandroid/telecom/Log;->pii(Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/telecom/Log;->piiHandle(Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/telecom/Log;->v(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V -HSPLandroid/telecom/Logging/Session;-><init>(Ljava/lang/String;Ljava/lang/String;JZLjava/lang/String;)V -HSPLandroid/telecom/Logging/Session;->addChild(Landroid/telecom/Logging/Session;)V -HSPLandroid/telecom/Logging/Session;->equals(Ljava/lang/Object;)Z -HSPLandroid/telecom/Logging/Session;->getChildSessions()Ljava/util/ArrayList; -HSPLandroid/telecom/Logging/Session;->getExecutionStartTimeMilliseconds()J -HSPLandroid/telecom/Logging/Session;->getFullMethodPath(Ljava/lang/StringBuilder;ZI)V -HSPLandroid/telecom/Logging/Session;->getFullMethodPath(Z)Ljava/lang/String; -HSPLandroid/telecom/Logging/Session;->getFullSessionId(I)Ljava/lang/String; -HSPLandroid/telecom/Logging/Session;->getLocalExecutionTime()J -HSPLandroid/telecom/Logging/Session;->getNextChildId()Ljava/lang/String; -HSPLandroid/telecom/Logging/Session;->getOwnerInfo()Ljava/lang/String; -HSPLandroid/telecom/Logging/Session;->getParentSession()Landroid/telecom/Logging/Session; -HSPLandroid/telecom/Logging/Session;->getShortMethodName()Ljava/lang/String; -HSPLandroid/telecom/Logging/Session;->isExternal()Z -HSPLandroid/telecom/Logging/Session;->isSessionCompleted()Z -HSPLandroid/telecom/Logging/Session;->isStartedFromActiveSession()Z -HSPLandroid/telecom/Logging/Session;->markSessionCompleted(J)V -HSPLandroid/telecom/Logging/Session;->removeChild(Landroid/telecom/Logging/Session;)V -HSPLandroid/telecom/Logging/Session;->setExecutionStartTimeMs(J)V -HSPLandroid/telecom/Logging/Session;->setParentSession(Landroid/telecom/Logging/Session;)V -HSPLandroid/telecom/Logging/Session;->setSessionId(Ljava/lang/String;)V -HSPLandroid/telecom/Logging/Session;->setShortMethodName(Ljava/lang/String;)V -HSPLandroid/telecom/Logging/Session;->toString()Ljava/lang/String; -HSPLandroid/telecom/Logging/SessionManager;-><init>()V -HSPLandroid/telecom/Logging/SessionManager;->cleanupStaleSessions(J)V -HSPLandroid/telecom/Logging/SessionManager;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V -HSPLandroid/telecom/Logging/SessionManager;->createSubsession()Landroid/telecom/Logging/Session; -HSPLandroid/telecom/Logging/SessionManager;->createSubsession(Z)Landroid/telecom/Logging/Session; -HSPLandroid/telecom/Logging/SessionManager;->endParentSessions(Landroid/telecom/Logging/Session;)V -HSPLandroid/telecom/Logging/SessionManager;->endSession()V -HSPLandroid/telecom/Logging/SessionManager;->getSessionId()Ljava/lang/String; -HSPLandroid/telecom/Logging/SessionManager;->resetStaleSessionTimer()V -HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccount; -HSPLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)V -HSPLandroid/telecom/PhoneAccount$Builder;->addSupportedUriScheme(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->build()Landroid/telecom/PhoneAccount; -HSPLandroid/telecom/PhoneAccount$Builder;->setAddress(Landroid/net/Uri;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setCapabilities(I)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setExtras(Landroid/os/Bundle;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setHighlightColor(I)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setShortDescription(Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setSubscriptionAddress(Landroid/net/Uri;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount$Builder;->setSupportedUriSchemes(Ljava/util/List;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telecom/PhoneAccount;->audioRoutesToString()Ljava/lang/String; -HSPLandroid/telecom/PhoneAccount;->builder(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder; -HSPLandroid/telecom/PhoneAccount;->capabilitiesToString()Ljava/lang/String; -HSPLandroid/telecom/PhoneAccount;->equals(Ljava/lang/Object;)Z -HSPLandroid/telecom/PhoneAccount;->getAccountHandle()Landroid/telecom/PhoneAccountHandle; -HSPLandroid/telecom/PhoneAccount;->hasAudioRoutes(I)Z -HSPLandroid/telecom/PhoneAccount;->hasCapabilities(I)Z -HSPLandroid/telecom/PhoneAccount;->toString()Ljava/lang/String; -HSPLandroid/telecom/PhoneAccount;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telecom/PhoneAccountHandle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccountHandle; -HSPLandroid/telecom/PhoneAccountHandle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/content/ComponentName;Ljava/lang/String;)V -HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/UserHandle;)V -HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telecom/PhoneAccountHandle;->checkParameters(Landroid/content/ComponentName;Landroid/os/UserHandle;)V -HSPLandroid/telecom/PhoneAccountHandle;->equals(Ljava/lang/Object;)Z -HSPLandroid/telecom/PhoneAccountHandle;->getComponentName()Landroid/content/ComponentName; -HSPLandroid/telecom/PhoneAccountHandle;->getId()Ljava/lang/String; -HSPLandroid/telecom/PhoneAccountHandle;->getUserHandle()Landroid/os/UserHandle; -HSPLandroid/telecom/PhoneAccountHandle;->hashCode()I -HSPLandroid/telecom/PhoneAccountHandle;->toString()Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/content/ComponentName;Landroid/content/ComponentName; -HSPLandroid/telecom/PhoneAccountHandle;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;)V -HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;Lcom/android/internal/telecom/ITelecomService;)V -HSPLandroid/telecom/TelecomManager;->getCallCapablePhoneAccounts()Ljava/util/List; -HSPLandroid/telecom/TelecomManager;->getCallCapablePhoneAccounts(Z)Ljava/util/List; -HSPLandroid/telecom/TelecomManager;->getCallState()I -HSPLandroid/telecom/TelecomManager;->getCurrentTtyMode()I -HSPLandroid/telecom/TelecomManager;->getDefaultDialerPackage()Ljava/lang/String; -HSPLandroid/telecom/TelecomManager;->getDefaultDialerPackage(Landroid/os/UserHandle;)Ljava/lang/String; -HSPLandroid/telecom/TelecomManager;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount; -HSPLandroid/telecom/TelecomManager;->getSystemDialerPackage()Ljava/lang/String; -HSPLandroid/telecom/TelecomManager;->getTelecomService()Lcom/android/internal/telecom/ITelecomService; -HSPLandroid/telecom/TelecomManager;->isInCall()Z -HSPLandroid/telephony/AccessNetworkConstants;->transportTypeToString(I)Ljava/lang/String; -HSPLandroid/telephony/AccessNetworkUtils;->getDuplexModeForEutranBand(I)I -HSPLandroid/telephony/AccessNetworkUtils;->getOperatingBandForEarfcn(I)I -HSPLandroid/telephony/BinderCacheManager$BinderDeathTracker;-><init>(Landroid/telephony/BinderCacheManager;Landroid/os/IInterface;)V -HSPLandroid/telephony/BinderCacheManager$BinderDeathTracker;->getConnection()Landroid/os/IInterface; -HSPLandroid/telephony/BinderCacheManager$BinderDeathTracker;->isAlive()Z -HSPLandroid/telephony/BinderCacheManager;->getBinder()Landroid/os/IInterface; -HSPLandroid/telephony/BinderCacheManager;->getTracker()Landroid/telephony/BinderCacheManager$BinderDeathTracker; -HSPLandroid/telephony/CarrierConfigManager;-><init>(Landroid/content/Context;)V -HSPLandroid/telephony/CarrierConfigManager;->getConfig()Landroid/os/PersistableBundle; -HSPLandroid/telephony/CarrierConfigManager;->getConfigForSubId(I)Landroid/os/PersistableBundle; -HSPLandroid/telephony/CarrierConfigManager;->getDefaultCarrierServicePackageName()Ljava/lang/String; -HSPLandroid/telephony/CarrierConfigManager;->getDefaultConfig()Landroid/os/PersistableBundle; -HSPLandroid/telephony/CarrierConfigManager;->getICarrierConfigLoader()Lcom/android/internal/telephony/ICarrierConfigLoader; -HSPLandroid/telephony/CarrierConfigManager;->isConfigForIdentifiedCarrier(Landroid/os/PersistableBundle;)Z -HSPLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellConfigLte; -HSPLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellIdentity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentity; -HSPLandroid/telephony/CellIdentity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILandroid/os/Parcel;)V -HSPLandroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/telephony/CellIdentity;->getPlmn()Ljava/lang/String; -HSPLandroid/telephony/CellIdentity;->isMcc(Ljava/lang/String;)Z -HSPLandroid/telephony/CellIdentity;->isMnc(Ljava/lang/String;)Z -HSPLandroid/telephony/CellIdentity;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellIdentityGsm;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellIdentityGsm;->updateGlobalCellId()V -HSPLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte; -HSPLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte; -HSPLandroid/telephony/CellIdentityLte;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellIdentityLte;->getCi()I -HSPLandroid/telephony/CellIdentityLte;->toString()Ljava/lang/String; -HSPLandroid/telephony/CellIdentityLte;->updateGlobalCellId()V -HSPLandroid/telephony/CellIdentityLte;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma; -HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellIdentityWcdma;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellIdentityWcdma;->toString()Ljava/lang/String; -HSPLandroid/telephony/CellIdentityWcdma;->updateGlobalCellId()V -HSPLandroid/telephony/CellIdentityWcdma;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellInfo; -HSPLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellInfo;->isRegistered()Z -HSPLandroid/telephony/CellInfoLte;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellInfoLte;->getCellIdentity()Landroid/telephony/CellIdentityLte; -HSPLandroid/telephony/CellSignalStrength;-><init>()V -HSPLandroid/telephony/CellSignalStrength;->getNumSignalStrengthLevels()I -HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthCdma; -HSPLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellSignalStrengthCdma;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthCdma;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthGsm; -HSPLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellSignalStrengthGsm;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthGsm;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthLte; -HSPLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellSignalStrengthLte;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthLte;->getDbm()I -HSPLandroid/telephony/CellSignalStrengthLte;->getLevel()I -HSPLandroid/telephony/CellSignalStrengthLte;->isValid()Z -HSPLandroid/telephony/CellSignalStrengthLte;->toString()Ljava/lang/String; -HSPLandroid/telephony/CellSignalStrengthLte;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthNr; -HSPLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellSignalStrengthNr;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthNr;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthTdscdma; -HSPLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellSignalStrengthTdscdma;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthTdscdma;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthWcdma; -HSPLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/CellSignalStrengthWcdma;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/CellSignalStrengthWcdma;->getLevel()I -HSPLandroid/telephony/CellSignalStrengthWcdma;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/DataFailCause;->toString(I)Ljava/lang/String; -HSPLandroid/telephony/DataSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/DataSpecificRegistrationInfo; -HSPLandroid/telephony/DataSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/telephony/DataSpecificRegistrationInfo;)V -HSPLandroid/telephony/DataSpecificRegistrationInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/DataSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;-><init>()V -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->build()Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingFeatureId(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingPackage(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingPid(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingUid(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setLogAsInfo(Z)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMethod(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForCoarse(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForEnforcement(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForFine(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -HSPLandroid/telephony/LocationAccessPolicy;->checkAppLocationPermissionHelper(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult; -HSPLandroid/telephony/LocationAccessPolicy;->checkLocationPermission(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult; -HSPLandroid/telephony/LocationAccessPolicy;->getAppOpsString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/LocationAccessPolicy;->isAppAtLeastSdkVersion(Landroid/content/Context;Ljava/lang/String;I)Z -HSPLandroid/telephony/LocationAccessPolicy;->isCurrentProfile(Landroid/content/Context;I)Z -HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/LteVopsSupportInfo; -HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/LteVopsSupportInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/LteVopsSupportInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/ModemActivityInfo;-><init>(JII[II)V -HSPLandroid/telephony/ModemActivityInfo;-><init>(JJJ[IJ)V -HSPLandroid/telephony/ModemActivityInfo;->getIdleTimeMillis()J -HSPLandroid/telephony/ModemActivityInfo;->getNumTxPowerLevels()I -HSPLandroid/telephony/ModemActivityInfo;->getReceiveTimeMillis()J -HSPLandroid/telephony/ModemActivityInfo;->getSleepTimeMillis()J -HSPLandroid/telephony/ModemActivityInfo;->getTimestampMillis()J -HSPLandroid/telephony/ModemActivityInfo;->isEmpty()Z -HSPLandroid/telephony/ModemActivityInfo;->isValid()Z -HSPLandroid/telephony/ModemActivityInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo; -HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/telephony/NetworkRegistrationInfo;)V -HSPLandroid/telephony/NetworkRegistrationInfo;->domainToString(I)Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo;->getAccessNetworkTechnology()I -HSPLandroid/telephony/NetworkRegistrationInfo;->getDomain()I -HSPLandroid/telephony/NetworkRegistrationInfo;->getNrState()I -HSPLandroid/telephony/NetworkRegistrationInfo;->getRegistrationState()I -HSPLandroid/telephony/NetworkRegistrationInfo;->getRoamingType()I -HSPLandroid/telephony/NetworkRegistrationInfo;->getTransportType()I -HSPLandroid/telephony/NetworkRegistrationInfo;->isInService()Z -HSPLandroid/telephony/NetworkRegistrationInfo;->isUsingCarrierAggregation()Z -HSPLandroid/telephony/NetworkRegistrationInfo;->lambda$toString$0(Ljava/lang/Integer;)Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo;->nrStateToString(I)Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo;->registrationStateToString(I)Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo;->serviceTypeToString(I)Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/NetworkRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/PhoneNumberUtils;->convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/PhoneNumberUtils;->formatNumberInternal(Ljava/lang/String;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String; -HSPLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/PhoneNumberUtils;->getMinMatch()I -HSPLandroid/telephony/PhoneNumberUtils;->isDialable(C)Z -HSPLandroid/telephony/PhoneNumberUtils;->isNonSeparator(C)Z -HSPLandroid/telephony/PhoneNumberUtils;->normalizeNumber(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/telephony/PhoneNumberUtils;->stripSeparators(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda10;->runOrThrow()V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda19;->runOrThrow()V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda27;->run()V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda51;->run()V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;-><init>(Landroid/telephony/PhoneStateListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$56(Landroid/telephony/PhoneStateListener;I)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataActivity$16(Landroid/telephony/PhoneStateListener;I)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDataConnectionStateChanged$14(Landroid/telephony/PhoneStateListener;II)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$38(Landroid/telephony/PhoneStateListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onDisplayInfoChanged$39(Landroid/telephony/PhoneStateListener;Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onLegacyCallStateChanged$10(Landroid/telephony/PhoneStateListener;ILjava/lang/String;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onServiceStateChanged$0(Landroid/telephony/PhoneStateListener;Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onSignalStrengthsChanged$18(Landroid/telephony/PhoneStateListener;Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onActiveDataSubIdChanged(I)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataActivity(I)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDataConnectionStateChanged(II)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onDisplayInfoChanged(Landroid/telephony/TelephonyDisplayInfo;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onLegacyCallStateChanged(ILjava/lang/String;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onServiceStateChanged(Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V -HSPLandroid/telephony/PhoneStateListener;-><init>()V -HSPLandroid/telephony/PhoneStateListener;-><init>(Landroid/os/Looper;)V -HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os/Looper;)V -HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/PhoneStateListener;->onDataConnectionStateChanged(I)V -HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState; -HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/ServiceState;-><init>()V -HSPLandroid/telephony/ServiceState;-><init>(Landroid/os/Parcel;)V+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/ServiceState;-><init>(Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/ServiceState;->copyFrom(Landroid/telephony/ServiceState;)V -HSPLandroid/telephony/ServiceState;->createLocationInfoSanitizedCopy(Z)Landroid/telephony/ServiceState; -HSPLandroid/telephony/ServiceState;->getCellBandwidths()[I -HSPLandroid/telephony/ServiceState;->getDataNetworkType()I -HSPLandroid/telephony/ServiceState;->getDataRegState()I -HSPLandroid/telephony/ServiceState;->getDataRegistrationState()I -HSPLandroid/telephony/ServiceState;->getDataRoaming()Z -HSPLandroid/telephony/ServiceState;->getDataRoamingFromRegistration()Z -HSPLandroid/telephony/ServiceState;->getDataRoamingType()I -HSPLandroid/telephony/ServiceState;->getDuplexMode()I -HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfo(II)Landroid/telephony/NetworkRegistrationInfo; -HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfoList()Ljava/util/List; -HSPLandroid/telephony/ServiceState;->getNrState()I -HSPLandroid/telephony/ServiceState;->getRilDataRadioTechnology()I -HSPLandroid/telephony/ServiceState;->getRilVoiceRadioTechnology()I -HSPLandroid/telephony/ServiceState;->getRoaming()Z -HSPLandroid/telephony/ServiceState;->getState()I -HSPLandroid/telephony/ServiceState;->getVoiceRegState()I -HSPLandroid/telephony/ServiceState;->getVoiceRoaming()Z -HSPLandroid/telephony/ServiceState;->getVoiceRoamingType()I -HSPLandroid/telephony/ServiceState;->isEmergencyOnly()Z -HSPLandroid/telephony/ServiceState;->isPsOnlyTech(I)Z -HSPLandroid/telephony/ServiceState;->isUsingCarrierAggregation()Z -HSPLandroid/telephony/ServiceState;->networkTypeToRilRadioTechnology(I)I -HSPLandroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState; -HSPLandroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String; -HSPLandroid/telephony/ServiceState;->rilServiceStateToString(I)Ljava/lang/String; -HSPLandroid/telephony/ServiceState;->roamingTypeToString(I)Ljava/lang/String; -HSPLandroid/telephony/ServiceState;->toString()Ljava/lang/String; -HSPLandroid/telephony/ServiceState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SignalStrength; -HSPLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths()Ljava/util/List; -HSPLandroid/telephony/SignalStrength;->getCellSignalStrengths(Ljava/lang/Class;)Ljava/util/List; -HSPLandroid/telephony/SignalStrength;->getLevel()I -HSPLandroid/telephony/SignalStrength;->getPrimary()Landroid/telephony/CellSignalStrength; -HSPLandroid/telephony/SignalStrength;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/SubscriptionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SubscriptionInfo;+]Landroid/os/Parcelable$Creator;Landroid/text/TextUtils$1;]Landroid/telephony/SubscriptionInfo$Builder;Landroid/telephony/SubscriptionInfo$Builder;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/telephony/SubscriptionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmAreUiccApplicationsEnabled(Landroid/telephony/SubscriptionInfo$Builder;)Z -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCardId(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCardString(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCarrierConfigAccessRules(Landroid/telephony/SubscriptionInfo$Builder;)[Landroid/telephony/UiccAccessRule; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCarrierId(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCarrierName(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/CharSequence; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmCountryIso(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmDataRoaming(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmDisplayName(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/CharSequence; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmDisplayNameSource(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmEhplmns(Landroid/telephony/SubscriptionInfo$Builder;)[Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmGroupOwner(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmGroupUuid(Landroid/telephony/SubscriptionInfo$Builder;)Landroid/os/ParcelUuid; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmHplmns(Landroid/telephony/SubscriptionInfo$Builder;)[Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIccId(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIconBitmap(Landroid/telephony/SubscriptionInfo$Builder;)Landroid/graphics/Bitmap; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIconTint(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmId(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIsEmbedded(Landroid/telephony/SubscriptionInfo$Builder;)Z -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIsGroupDisabled(Landroid/telephony/SubscriptionInfo$Builder;)Z -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmIsOpportunistic(Landroid/telephony/SubscriptionInfo$Builder;)Z -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmMcc(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmMnc(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmNativeAccessRules(Landroid/telephony/SubscriptionInfo$Builder;)[Landroid/telephony/UiccAccessRule; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmNumber(Landroid/telephony/SubscriptionInfo$Builder;)Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmPortIndex(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmProfileClass(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmSimSlotIndex(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmType(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;->-$$Nest$fgetmUsageSetting(Landroid/telephony/SubscriptionInfo$Builder;)I -HSPLandroid/telephony/SubscriptionInfo$Builder;-><init>()V -HSPLandroid/telephony/SubscriptionInfo$Builder;->build()Landroid/telephony/SubscriptionInfo; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setCardId(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setCardString(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setCarrierConfigAccessRules([Landroid/telephony/UiccAccessRule;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setCarrierId(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setCarrierName(Ljava/lang/CharSequence;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setCountryIso(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setDataRoaming(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setDisplayName(Ljava/lang/CharSequence;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setDisplayNameSource(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setEhplmns([Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setEmbedded(Z)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setGroupDisabled(Z)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setGroupOwner(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setGroupUuid(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setHplmns([Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setIccId(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setIconTint(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setId(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setMcc(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setMnc(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setNativeAccessRules([Landroid/telephony/UiccAccessRule;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setNumber(Ljava/lang/String;)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setOpportunistic(Z)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setPortIndex(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setProfileClass(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setSimSlotIndex(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setType(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setUiccApplicationsEnabled(Z)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo$Builder;->setUsageSetting(I)Landroid/telephony/SubscriptionInfo$Builder; -HSPLandroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[Landroid/telephony/UiccAccessRule;Ljava/lang/String;IZLjava/lang/String;ZIIILjava/lang/String;[Landroid/telephony/UiccAccessRule;Z)V -HSPLandroid/telephony/SubscriptionInfo;-><init>(ILjava/lang/String;ILjava/lang/CharSequence;Ljava/lang/CharSequence;IILjava/lang/String;ILandroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[Landroid/telephony/UiccAccessRule;Ljava/lang/String;IZLjava/lang/String;ZIIILjava/lang/String;[Landroid/telephony/UiccAccessRule;ZII)V -HSPLandroid/telephony/SubscriptionInfo;-><init>(Landroid/telephony/SubscriptionInfo$Builder;)V -HSPLandroid/telephony/SubscriptionInfo;-><init>(Landroid/telephony/SubscriptionInfo$Builder;Landroid/telephony/SubscriptionInfo-IA;)V -HSPLandroid/telephony/SubscriptionInfo;->getCarrierId()I -HSPLandroid/telephony/SubscriptionInfo;->getCarrierName()Ljava/lang/CharSequence; -HSPLandroid/telephony/SubscriptionInfo;->getCountryIso()Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo;->getDisplayName()Ljava/lang/CharSequence; -HSPLandroid/telephony/SubscriptionInfo;->getGroupUuid()Landroid/os/ParcelUuid; -HSPLandroid/telephony/SubscriptionInfo;->getIccId()Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo;->getMcc()I -HSPLandroid/telephony/SubscriptionInfo;->getMccString()Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo;->getMnc()I -HSPLandroid/telephony/SubscriptionInfo;->getMncString()Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo;->getNumber()Ljava/lang/String; -HSPLandroid/telephony/SubscriptionInfo;->getSimSlotIndex()I -HSPLandroid/telephony/SubscriptionInfo;->getSubscriptionId()I -HSPLandroid/telephony/SubscriptionInfo;->isEmbedded()Z -HSPLandroid/telephony/SubscriptionInfo;->isOpportunistic()Z -HSPLandroid/telephony/SubscriptionInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/SubscriptionManager$$ExternalSyntheticLambda10;->applyOrThrow(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$$ExternalSyntheticLambda15;->applyOrThrow(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$$ExternalSyntheticLambda9;->applyOrThrow(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;->query(Ljava/lang/Integer;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;->recompute(Ljava/lang/Integer;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>()V -HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>(Landroid/os/Looper;)V -HSPLandroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;->query(Ljava/lang/Void;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;->recompute(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache;->recompute(Ljava/lang/Void;)Ljava/lang/Object; -HSPLandroid/telephony/SubscriptionManager;-><init>(Landroid/content/Context;)V -HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V -HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V -HSPLandroid/telephony/SubscriptionManager;->from(Landroid/content/Context;)Landroid/telephony/SubscriptionManager; -HSPLandroid/telephony/SubscriptionManager;->getActiveDataSubscriptionId()I -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList()[I -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList(Z)[I -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfo(I)Landroid/telephony/SubscriptionInfo; -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoCount()I -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoCountMax()I -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoForSimSlotIndex(I)Landroid/telephony/SubscriptionInfo; -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoList()Ljava/util/List; -HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoList(Z)Ljava/util/List; -HSPLandroid/telephony/SubscriptionManager;->getAvailableSubscriptionInfoList()Ljava/util/List; -HSPLandroid/telephony/SubscriptionManager;->getCompleteActiveSubscriptionIdList()[I -HSPLandroid/telephony/SubscriptionManager;->getCompleteActiveSubscriptionInfoList()Ljava/util/List; -HSPLandroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionId()I -HSPLandroid/telephony/SubscriptionManager;->getDefaultSmsSubscriptionId()I -HSPLandroid/telephony/SubscriptionManager;->getDefaultSubscriptionId()I -HSPLandroid/telephony/SubscriptionManager;->getDefaultVoiceSubscriptionId()I -HSPLandroid/telephony/SubscriptionManager;->getPhoneId(I)I -HSPLandroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;I)Landroid/content/res/Resources; -HSPLandroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;IZ)Landroid/content/res/Resources; -HSPLandroid/telephony/SubscriptionManager;->getSlotIndex(I)I -HSPLandroid/telephony/SubscriptionManager;->getSubId(I)[I -HSPLandroid/telephony/SubscriptionManager;->getSubscriptionIds(I)[I -HSPLandroid/telephony/SubscriptionManager;->isSubscriptionVisible(Landroid/telephony/SubscriptionInfo;)Z -HSPLandroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z -HSPLandroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z -HSPLandroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z -HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Landroid/telephony/SubscriptionPlan; -HSPLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/telephony/TelephonyCallback$IPhoneStateListenerStub;-><init>(Landroid/telephony/TelephonyCallback;Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/TelephonyCallback;-><init>()V -HSPLandroid/telephony/TelephonyCallback;->init(Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/TelephonyDisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/TelephonyDisplayInfo; -HSPLandroid/telephony/TelephonyDisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyDisplayInfo;-><init>(II)V -HSPLandroid/telephony/TelephonyDisplayInfo;->getNetworkType()I -HSPLandroid/telephony/TelephonyDisplayInfo;->getOverrideNetworkType()I -HSPLandroid/telephony/TelephonyDisplayInfo;->overrideNetworkTypeToString(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyDisplayInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/TelephonyDisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda0;->createService(Landroid/content/Context;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda1;->createService(Landroid/content/Context;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda2;->createService(Landroid/content/Context;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyFrameworkInitializer;->getTelephonyServiceManager()Landroid/os/TelephonyServiceManager; -HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;)Landroid/telephony/TelephonyManager; -HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;)Landroid/telephony/SubscriptionManager; -HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$2(Landroid/content/Context;)Landroid/telephony/CarrierConfigManager; -HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$3(Landroid/content/Context;)Landroid/telephony/euicc/EuiccManager; -HSPLandroid/telephony/TelephonyFrameworkInitializer;->setTelephonyServiceManager(Landroid/os/TelephonyServiceManager;)V -HSPLandroid/telephony/TelephonyManager$1;-><init>(Landroid/telephony/TelephonyManager;ILjava/lang/String;)V -HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V -HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;I)V -HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I -HSPLandroid/telephony/TelephonyManager;->createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager; -HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager; -HSPLandroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager; -HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I -HSPLandroid/telephony/TelephonyManager;->getAttributionTag()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getCallState()I -HSPLandroid/telephony/TelephonyManager;->getCardIdForDefaultEuicc()I -HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegeStatus(I)I -HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType()I -HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType(I)I -HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneTypeForSlot(I)I -HSPLandroid/telephony/TelephonyManager;->getDataEnabled()Z -HSPLandroid/telephony/TelephonyManager;->getDataEnabled(I)Z -HSPLandroid/telephony/TelephonyManager;->getDataNetworkType()I -HSPLandroid/telephony/TelephonyManager;->getDataNetworkType(I)I -HSPLandroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager; -HSPLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getGroupIdLevel1()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony; -HSPLandroid/telephony/TelephonyManager;->getImei()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getImei(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getLocationData()I -HSPLandroid/telephony/TelephonyManager;->getMeid()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getMeid(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants; -HSPLandroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getNetworkCountryIso(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorForPhone(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getNetworkType()I -HSPLandroid/telephony/TelephonyManager;->getNetworkType(I)I -HSPLandroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getOpPackageName()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getPhoneCount()I -HSPLandroid/telephony/TelephonyManager;->getPhoneId()I -HSPLandroid/telephony/TelephonyManager;->getPhoneType()I -HSPLandroid/telephony/TelephonyManager;->getPhoneType(I)I -HSPLandroid/telephony/TelephonyManager;->getRenouncedPermissions()Ljava/util/Set; -HSPLandroid/telephony/TelephonyManager;->getServiceState()Landroid/telephony/ServiceState; -HSPLandroid/telephony/TelephonyManager;->getServiceState(I)Landroid/telephony/ServiceState; -HSPLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState; -HSPLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(IZZ)Landroid/telephony/ServiceState; -HSPLandroid/telephony/TelephonyManager;->getSignalStrength()Landroid/telephony/SignalStrength; -HSPLandroid/telephony/TelephonyManager;->getSimCarrierId()I -HSPLandroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimCountryIsoForPhone(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimOperatorNameForPhone(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumeric()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSimSpecificCarrierId()I -HSPLandroid/telephony/TelephonyManager;->getSimState()I -HSPLandroid/telephony/TelephonyManager;->getSimState(I)I -HSPLandroid/telephony/TelephonyManager;->getSimStateForSlotIndex(I)I -HSPLandroid/telephony/TelephonyManager;->getSimStateIncludingLoaded()I -HSPLandroid/telephony/TelephonyManager;->getSlotIndex()I -HSPLandroid/telephony/TelephonyManager;->getSmsService()Lcom/android/internal/telephony/ISms; -HSPLandroid/telephony/TelephonyManager;->getSubId()I -HSPLandroid/telephony/TelephonyManager;->getSubId(I)I -HSPLandroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String; -HSPLandroid/telephony/TelephonyManager;->getSubscriberInfoService()Lcom/android/internal/telephony/IPhoneSubInfo; -HSPLandroid/telephony/TelephonyManager;->getSubscriptionId(Landroid/telecom/PhoneAccountHandle;)I -HSPLandroid/telephony/TelephonyManager;->getSubscriptionService()Lcom/android/internal/telephony/ISub; -HSPLandroid/telephony/TelephonyManager;->getSupportedModemCount()I -HSPLandroid/telephony/TelephonyManager;->getTelephonyProperty(ILjava/util/List;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/telephony/TelephonyManager;->getVoiceNetworkType()I -HSPLandroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I -HSPLandroid/telephony/TelephonyManager;->hasCarrierPrivileges(I)Z -HSPLandroid/telephony/TelephonyManager;->isDataCapable()Z -HSPLandroid/telephony/TelephonyManager;->isDataConnectionAllowed()Z -HSPLandroid/telephony/TelephonyManager;->isDataEnabled()Z -HSPLandroid/telephony/TelephonyManager;->isDataEnabledForReason(I)Z -HSPLandroid/telephony/TelephonyManager;->isDataEnabledForReason(II)Z -HSPLandroid/telephony/TelephonyManager;->isEmergencyNumber(Ljava/lang/String;)Z -HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming()Z -HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z -HSPLandroid/telephony/TelephonyManager;->isSmsCapable()Z -HSPLandroid/telephony/TelephonyManager;->isVoiceCapable()Z -HSPLandroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V -HSPLandroid/telephony/TelephonyManager;->mergeAttributionAndRenouncedPermissions(Landroid/content/Context;Landroid/content/Context;)Landroid/content/Context; -HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(ILjava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V -HSPLandroid/telephony/TelephonyManager;->registerTelephonyCallback(Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyCallback;)V -HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0;->applyAsInt(Ljava/lang/Object;)I -HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1;->applyAsInt(Ljava/lang/Object;)I -HSPLandroid/telephony/TelephonyRegistryManager$1$$ExternalSyntheticLambda0;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V -HSPLandroid/telephony/TelephonyRegistryManager$1$$ExternalSyntheticLambda0;->run()V -HSPLandroid/telephony/TelephonyRegistryManager$1;-><init>(Landroid/telephony/TelephonyRegistryManager;Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V -HSPLandroid/telephony/TelephonyRegistryManager$1;->lambda$onSubscriptionsChanged$0(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V -HSPLandroid/telephony/TelephonyRegistryManager$1;->onSubscriptionsChanged()V -HSPLandroid/telephony/TelephonyRegistryManager;-><init>(Landroid/content/Context;)V -HSPLandroid/telephony/TelephonyRegistryManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/TelephonyRegistryManager;->getEventsFromBitmask(I)Ljava/util/Set; -HSPLandroid/telephony/TelephonyRegistryManager;->getEventsFromCallback(Landroid/telephony/TelephonyCallback;)Ljava/util/Set; -HSPLandroid/telephony/TelephonyRegistryManager;->lambda$listenFromListener$0(Ljava/lang/Integer;)I -HSPLandroid/telephony/TelephonyRegistryManager;->listenFromCallback(ZZILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;[IZ)V -HSPLandroid/telephony/TelephonyRegistryManager;->listenFromListener(IZZLjava/lang/String;Ljava/lang/String;Landroid/telephony/PhoneStateListener;IZ)V -HSPLandroid/telephony/TelephonyRegistryManager;->registerTelephonyCallback(ZZLjava/util/concurrent/Executor;ILjava/lang/String;Ljava/lang/String;Landroid/telephony/TelephonyCallback;Z)V -HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccAccessRule; -HSPLandroid/telephony/UiccAccessRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Landroid/telephony/UiccAccessRule; -HSPLandroid/telephony/UiccAccessRule$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/telephony/VoiceSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/VoiceSpecificRegistrationInfo; -HSPLandroid/telephony/VoiceSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/telephony/VoiceSpecificRegistrationInfo;)V -HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/telephony/data/ApnSetting$Builder;-><init>()V -HSPLandroid/telephony/data/ApnSetting$Builder;->buildWithoutCheck()Landroid/telephony/data/ApnSetting; -HSPLandroid/telephony/data/ApnSetting$Builder;->setAlwaysOn(Z)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setApnName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setApnSetId(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setApnTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setAuthType(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setCarrierEnabled(Z)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setCarrierId(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setEntryName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setId(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setLingeringNetworkTypeBitmask(J)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMaxConns(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMaxConnsTime(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsProxyPort(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMmsc(Landroid/net/Uri;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setModemCognitive(Z)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMtuV4(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMtuV6(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMvnoMatchData(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setMvnoType(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setNetworkTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setOperatorNumeric(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setPassword(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setProfileId(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setProtocol(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setProxyAddress(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setProxyPort(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setRoamingProtocol(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setSkip464Xlat(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setUser(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting$Builder;->setWaitTime(I)Landroid/telephony/data/ApnSetting$Builder; -HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V -HSPLandroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String; -HSPLandroid/telephony/data/ApnSetting;->equals(Ljava/lang/Object;)Z -HSPLandroid/telephony/data/ApnSetting;->getApnName()Ljava/lang/String; -HSPLandroid/telephony/data/ApnSetting;->getApnTypeBitmask()I -HSPLandroid/telephony/data/ApnSetting;->getApnTypesStringFromBitmask(I)Ljava/lang/String; -HSPLandroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String; -HSPLandroid/telephony/data/ApnSetting;->toString()Ljava/lang/String; -HSPLandroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController; -HSPLandroid/telephony/euicc/EuiccManager;->isEnabled()Z -HSPLandroid/telephony/ims/ImsMmTelManager;->createForSubscriptionId(I)Landroid/telephony/ims/ImsMmTelManager; -HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephony()Lcom/android/internal/telephony/ITelephony; -HSPLandroid/telephony/ims/ImsMmTelManager;->getITelephonyInterface()Lcom/android/internal/telephony/ITelephony; -HSPLandroid/telephony/ims/ImsMmTelManager;->isAvailable(II)Z -HSPLandroid/telephony/ims/ImsReasonInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ims/ImsReasonInfo; -HSPLandroid/telephony/ims/ImsReasonInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/telephony/ims/ImsReasonInfo;->toString()Ljava/lang/String; -HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;-><init>(Landroid/telephony/ims/RegistrationManager$RegistrationCallback;)V -HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;-><init>()V -HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;->getBinder()Landroid/telephony/ims/aidl/IImsRegistrationCallback; -HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;->setExecutor(Ljava/util/concurrent/Executor;)V -HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;-><init>()V -HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/text/AndroidBidi;->bidi(I[C[B)I -HSPLandroid/text/AndroidBidi;->directions(I[BI[CII)Landroid/text/Layout$Directions; -HSPLandroid/text/AutoGrowArray$ByteArray;-><init>()V -HSPLandroid/text/AutoGrowArray$ByteArray;-><init>(I)V -HSPLandroid/text/AutoGrowArray$ByteArray;->clear()V -HSPLandroid/text/AutoGrowArray$ByteArray;->clearWithReleasingLargeArray()V -HSPLandroid/text/AutoGrowArray$ByteArray;->get(I)B -HSPLandroid/text/AutoGrowArray$ByteArray;->getRawArray()[B -HSPLandroid/text/AutoGrowArray$ByteArray;->resize(I)V -HSPLandroid/text/AutoGrowArray$FloatArray;-><init>()V -HSPLandroid/text/AutoGrowArray$FloatArray;-><init>(I)V -HSPLandroid/text/AutoGrowArray$FloatArray;->clear()V -HSPLandroid/text/AutoGrowArray$FloatArray;->clearWithReleasingLargeArray()V -HSPLandroid/text/AutoGrowArray$FloatArray;->ensureCapacity(I)V -HSPLandroid/text/AutoGrowArray$FloatArray;->getRawArray()[F -HSPLandroid/text/AutoGrowArray$FloatArray;->resize(I)V -HSPLandroid/text/AutoGrowArray$IntArray;-><init>(I)V -HSPLandroid/text/AutoGrowArray$IntArray;->append(I)V -HSPLandroid/text/AutoGrowArray$IntArray;->clear()V -HSPLandroid/text/AutoGrowArray$IntArray;->clearWithReleasingLargeArray()V -HSPLandroid/text/AutoGrowArray$IntArray;->ensureCapacity(I)V -HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[I -HSPLandroid/text/AutoGrowArray;->computeNewCapacity(II)I -HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeBackward()B -HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeForward()B -HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getEntryDir()I -HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getExitDir()I -HSPLandroid/text/BidiFormatter;->getInstance()Landroid/text/BidiFormatter; -HSPLandroid/text/BidiFormatter;->markAfter(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String; -HSPLandroid/text/BidiFormatter;->markBefore(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String; -HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/CharSequence; -HSPLandroid/text/BoringLayout$Metrics;->-$$Nest$mreset(Landroid/text/BoringLayout$Metrics;)V -HSPLandroid/text/BoringLayout$Metrics;-><init>()V -HSPLandroid/text/BoringLayout$Metrics;->reset()V -HSPLandroid/text/BoringLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)V -HSPLandroid/text/BoringLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)V -HSPLandroid/text/BoringLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;IZ)V -HSPLandroid/text/BoringLayout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V -HSPLandroid/text/BoringLayout;->ellipsized(II)V -HSPLandroid/text/BoringLayout;->getEllipsisCount(I)I -HSPLandroid/text/BoringLayout;->getEllipsisStart(I)I -HSPLandroid/text/BoringLayout;->getEllipsizedWidth()I -HSPLandroid/text/BoringLayout;->getHeight()I -HSPLandroid/text/BoringLayout;->getLineContainsTab(I)Z -HSPLandroid/text/BoringLayout;->getLineCount()I -HSPLandroid/text/BoringLayout;->getLineDescent(I)I -HSPLandroid/text/BoringLayout;->getLineDirections(I)Landroid/text/Layout$Directions; -HSPLandroid/text/BoringLayout;->getLineMax(I)F -HSPLandroid/text/BoringLayout;->getLineStart(I)I -HSPLandroid/text/BoringLayout;->getLineTop(I)I -HSPLandroid/text/BoringLayout;->getLineWidth(I)F -HSPLandroid/text/BoringLayout;->getParagraphDirection(I)I -HSPLandroid/text/BoringLayout;->hasAnyInterestingChars(Ljava/lang/CharSequence;I)Z -HSPLandroid/text/BoringLayout;->init(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZZZ)V+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics; -HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;ZLandroid/graphics/Paint$FontMetrics;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;+]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Spanned;megamorphic_types]Ljava/lang/CharSequence;megamorphic_types]Landroid/text/TextDirectionHeuristic;Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;,Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal; -HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;ZLandroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics; -HSPLandroid/text/BoringLayout;->isFallbackLineSpacingEnabled()Z -HSPLandroid/text/BoringLayout;->make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout; -HSPLandroid/text/BoringLayout;->make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout; -HSPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout; -HSPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout; -HSPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;IZ)Landroid/text/BoringLayout; -HSPLandroid/text/CharSequenceCharacterIterator;->current()C -HSPLandroid/text/CharSequenceCharacterIterator;->first()C -HSPLandroid/text/CharSequenceCharacterIterator;->getBeginIndex()I -HSPLandroid/text/CharSequenceCharacterIterator;->getEndIndex()I -HSPLandroid/text/CharSequenceCharacterIterator;->getIndex()I -HSPLandroid/text/CharSequenceCharacterIterator;->next()C -HSPLandroid/text/CharSequenceCharacterIterator;->setIndex(I)C -HSPLandroid/text/ClientFlags;->icuBidiMigration()Z -HSPLandroid/text/DynamicLayout$Builder;->obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder;+]Landroid/util/Pools$SynchronizedPool;Landroid/util/Pools$SynchronizedPool; -HSPLandroid/text/DynamicLayout$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V -HSPLandroid/text/DynamicLayout$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V -HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/text/DynamicLayout$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V -HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V+]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout; -HSPLandroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z+]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;]Landroid/graphics/Paint;Landroid/text/TextPaint;]Landroid/text/Spanned;Landroid/text/SpannableString; -HSPLandroid/text/DynamicLayout;->createBlocks()V -HSPLandroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V+]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Ljava/lang/CharSequence;Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;,Landroid/text/SpannableStringBuilder;]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/DynamicLayout;->getBlockEndLines()[I -HSPLandroid/text/DynamicLayout;->getBlockIndices()[I -HSPLandroid/text/DynamicLayout;->getBlocksAlwaysNeedToBeRedrawn()Landroid/util/ArraySet; -HSPLandroid/text/DynamicLayout;->getEllipsisCount(I)I -HSPLandroid/text/DynamicLayout;->getEllipsisStart(I)I -HSPLandroid/text/DynamicLayout;->getEllipsizedWidth()I -HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getIndexFirstChangedBlock()I -HSPLandroid/text/DynamicLayout;->getLineContainsTab(I)Z+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getLineCount()I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getLineDescent(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions;+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector; -HSPLandroid/text/DynamicLayout;->getLineExtra(I)I -HSPLandroid/text/DynamicLayout;->getLineStart(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getLineTop(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getNumberOfBlocks()I -HSPLandroid/text/DynamicLayout;->getParagraphDirection(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->getStartHyphenEdit(I)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector;]Landroid/text/DynamicLayout;Landroid/text/DynamicLayout;]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector;]Landroid/text/StaticLayout;Landroid/text/StaticLayout;]Landroid/text/Spanned;Landroid/text/SpannableString;]Ljava/lang/CharSequence;Landroid/text/SpannableString;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder; -HSPLandroid/text/DynamicLayout;->setIndexFirstChangedBlock(I)V -HSPLandroid/text/DynamicLayout;->updateAlwaysNeedsToBeRedrawn(I)V -HSPLandroid/text/DynamicLayout;->updateBlocks(III)V -HSPLandroid/text/Editable$Factory;-><init>()V -HSPLandroid/text/Editable$Factory;->getInstance()Landroid/text/Editable$Factory; -HSPLandroid/text/Editable$Factory;->newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable; -HSPLandroid/text/FontConfig$Font;->getAxes()[Landroid/graphics/fonts/FontVariationAxis; -HSPLandroid/text/FontConfig$Font;->getTtcIndex()I -HSPLandroid/text/FontConfig$Font;->getWeight()I -HSPLandroid/text/FontConfig$Font;->isItalic()Z -HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;)Landroid/text/Spanned; -HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;I)Landroid/text/Spanned; -HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;ILandroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned; -HSPLandroid/text/HtmlToSpannedConverter;-><init>(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;Lorg/ccil/cowan/tagsoup/Parser;I)V -HSPLandroid/text/HtmlToSpannedConverter;->characters([CII)V -HSPLandroid/text/HtmlToSpannedConverter;->convert()Landroid/text/Spanned; -HSPLandroid/text/HtmlToSpannedConverter;->end(Landroid/text/Editable;Ljava/lang/Class;Ljava/lang/Object;)V -HSPLandroid/text/HtmlToSpannedConverter;->endA(Landroid/text/Editable;)V -HSPLandroid/text/HtmlToSpannedConverter;->endDocument()V -HSPLandroid/text/HtmlToSpannedConverter;->endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/text/HtmlToSpannedConverter;->endPrefixMapping(Ljava/lang/String;)V -HSPLandroid/text/HtmlToSpannedConverter;->getLast(Landroid/text/Spanned;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/text/HtmlToSpannedConverter;->handleBr(Landroid/text/Editable;)V -HSPLandroid/text/HtmlToSpannedConverter;->handleEndTag(Ljava/lang/String;)V -HSPLandroid/text/HtmlToSpannedConverter;->handleStartTag(Ljava/lang/String;Lorg/xml/sax/Attributes;)V -HSPLandroid/text/HtmlToSpannedConverter;->setDocumentLocator(Lorg/xml/sax/Locator;)V -HSPLandroid/text/HtmlToSpannedConverter;->setSpanFromMark(Landroid/text/Spannable;Ljava/lang/Object;[Ljava/lang/Object;)V -HSPLandroid/text/HtmlToSpannedConverter;->start(Landroid/text/Editable;Ljava/lang/Object;)V -HSPLandroid/text/HtmlToSpannedConverter;->startDocument()V -HSPLandroid/text/HtmlToSpannedConverter;->startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V -HSPLandroid/text/HtmlToSpannedConverter;->startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/text/Hyphenator;->init()V -HSPLandroid/text/InputFilter$LengthFilter;-><init>(I)V -HSPLandroid/text/InputFilter$LengthFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; -HSPLandroid/text/InputFilter$LengthFilter;->getMax()I -HSPLandroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment; -HSPLandroid/text/Layout$Directions;->getRunCount()I -HSPLandroid/text/Layout$Directions;->getRunLength(I)I -HSPLandroid/text/Layout$Directions;->getRunStart(I)I -HSPLandroid/text/Layout$Directions;->isRunRtl(I)Z -HSPLandroid/text/Layout$Ellipsizer;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/text/Layout$Ellipsizer;->charAt(I)C -HSPLandroid/text/Layout$Ellipsizer;->getChars(II[CI)V -HSPLandroid/text/Layout$Ellipsizer;->length()I -HSPLandroid/text/Layout$HorizontalMeasurementProvider;->init()V -HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanEnd(Ljava/lang/Object;)I -HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/Layout$SpannedEllipsizer;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/Layout$SpannedEllipsizer;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/text/Layout$SpannedEllipsizer;->nextSpanTransition(IILjava/lang/Class;)I -HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V -HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FFZZILandroid/text/TextUtils$TruncateAt;III[I[IILandroid/graphics/text/LineBreakConfig;ZZLandroid/graphics/Paint$FontMetrics;)V -HSPLandroid/text/Layout;->addSelection(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V -HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V -HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout; -HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;II)V -HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Spanned;Landroid/text/SpannableString;]Ljava/lang/CharSequence;Landroid/text/SpannableString; -HSPLandroid/text/Layout;->drawWithoutText(Landroid/graphics/Canvas;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;III)V -HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V -HSPLandroid/text/Layout;->getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V -HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F -HSPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F -HSPLandroid/text/Layout;->getEndHyphenEdit(I)I -HSPLandroid/text/Layout;->getHeight()I -HSPLandroid/text/Layout;->getHeight(Z)I -HSPLandroid/text/Layout;->getHorizontal(IZ)F -HSPLandroid/text/Layout;->getHorizontal(IZIZ)F -HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I -HSPLandroid/text/Layout;->getLineBaseline(I)I -HSPLandroid/text/Layout;->getLineBottom(I)I -HSPLandroid/text/Layout;->getLineBottom(IZ)I -HSPLandroid/text/Layout;->getLineEnd(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout; -HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F -HSPLandroid/text/Layout;->getLineExtent(IZ)F -HSPLandroid/text/Layout;->getLineForOffset(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout; -HSPLandroid/text/Layout;->getLineForVertical(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; -HSPLandroid/text/Layout;->getLineLeft(I)F -HSPLandroid/text/Layout;->getLineMax(I)F -HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/text/Layout;->getLineRight(I)F -HSPLandroid/text/Layout;->getLineStartPos(III)I -HSPLandroid/text/Layout;->getLineVisibleEnd(I)I -HSPLandroid/text/Layout;->getLineWidth(I)F -HSPLandroid/text/Layout;->getOffsetAtStartOf(I)I -HSPLandroid/text/Layout;->getOffsetForHorizontal(IF)I -HSPLandroid/text/Layout;->getOffsetForHorizontal(IFZ)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/text/TextLine;Landroid/text/TextLine;]Landroid/text/Layout$HorizontalMeasurementProvider;Landroid/text/Layout$HorizontalMeasurementProvider; -HSPLandroid/text/Layout;->getPaint()Landroid/text/TextPaint; -HSPLandroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;+]Landroid/text/Layout;Landroid/text/DynamicLayout; -HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I+]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/text/Spanned;missing_types -HSPLandroid/text/Layout;->getParagraphLeft(I)I -HSPLandroid/text/Layout;->getParagraphRight(I)I -HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;+]Landroid/text/Spanned;Landroid/text/SpannableString; -HSPLandroid/text/Layout;->getPrimaryHorizontal(I)F -HSPLandroid/text/Layout;->getPrimaryHorizontal(IZ)F -HSPLandroid/text/Layout;->getSelection(IILandroid/text/Layout$SelectionRectangleConsumer;)V -HSPLandroid/text/Layout;->getSelectionPath(IILandroid/graphics/Path;)V -HSPLandroid/text/Layout;->getSpacingAdd()F -HSPLandroid/text/Layout;->getSpacingMultiplier()F -HSPLandroid/text/Layout;->getStartHyphenEdit(I)I -HSPLandroid/text/Layout;->getText()Ljava/lang/CharSequence; -HSPLandroid/text/Layout;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; -HSPLandroid/text/Layout;->getWidth()I -HSPLandroid/text/Layout;->increaseWidthTo(I)V -HSPLandroid/text/Layout;->isFallbackLineSpacingEnabled()Z -HSPLandroid/text/Layout;->isJustificationRequired(I)Z -HSPLandroid/text/Layout;->isRtlCharAt(I)Z -HSPLandroid/text/Layout;->primaryIsTrailingPrevious(I)Z -HSPLandroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V -HSPLandroid/text/Layout;->shouldClampCursor(I)Z -HSPLandroid/text/MeasuredParagraph;-><init>()V -HSPLandroid/text/MeasuredParagraph;->applyMetricsAffectingSpan(Landroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;[Landroid/text/style/MetricAffectingSpan;[Landroid/text/style/LineBreakConfigSpan;IILandroid/graphics/text/MeasuredText$Builder;Landroid/text/MeasuredParagraph$StyleRunCallback;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/text/LineBreakConfig$Builder;Landroid/graphics/text/LineBreakConfig$Builder;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray;]Landroid/text/style/MetricAffectingSpan;missing_types -HSPLandroid/text/MeasuredParagraph;->applyStyleRun(IILandroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;Landroid/graphics/text/MeasuredText$Builder;Landroid/text/MeasuredParagraph$StyleRunCallback;)V+]Landroid/text/AutoGrowArray$FloatArray;Landroid/text/AutoGrowArray$FloatArray;]Landroid/graphics/text/MeasuredText$Builder;Landroid/graphics/text/MeasuredText$Builder;]Landroid/text/AutoGrowArray$ByteArray;Landroid/text/AutoGrowArray$ByteArray;]Landroid/text/TextPaint;Landroid/text/TextPaint; -HSPLandroid/text/MeasuredParagraph;->breakText(IZF)I -HSPLandroid/text/MeasuredParagraph;->buildForBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph; -HSPLandroid/text/MeasuredParagraph;->buildForMeasurement(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph; -HSPLandroid/text/MeasuredParagraph;->getCharWidthAt(I)F -HSPLandroid/text/MeasuredParagraph;->getChars()[C -HSPLandroid/text/MeasuredParagraph;->getDirections(II)Landroid/text/Layout$Directions; -HSPLandroid/text/MeasuredParagraph;->getFontMetrics()Landroid/text/AutoGrowArray$IntArray; -HSPLandroid/text/MeasuredParagraph;->getMeasuredText()Landroid/graphics/text/MeasuredText; -HSPLandroid/text/MeasuredParagraph;->getParagraphDir()I -HSPLandroid/text/MeasuredParagraph;->getSpanEndCache()Landroid/text/AutoGrowArray$IntArray; -HSPLandroid/text/MeasuredParagraph;->getWholeWidth()F -HSPLandroid/text/MeasuredParagraph;->obtain()Landroid/text/MeasuredParagraph; -HSPLandroid/text/MeasuredParagraph;->recycle()V -HSPLandroid/text/MeasuredParagraph;->release()V -HSPLandroid/text/MeasuredParagraph;->reset()V -HSPLandroid/text/MeasuredParagraph;->resetAndAnalyzeBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)V -HSPLandroid/text/PackedIntVector;->adjustValuesBelow(III)V -HSPLandroid/text/PackedIntVector;->deleteAt(II)V -HSPLandroid/text/PackedIntVector;->getValue(II)I+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/PackedIntVector;->growBuffer()V -HSPLandroid/text/PackedIntVector;->insertAt(I[I)V+]Landroid/text/PackedIntVector;Landroid/text/PackedIntVector; -HSPLandroid/text/PackedIntVector;->moveRowGapTo(I)V -HSPLandroid/text/PackedIntVector;->moveValueGapTo(II)V -HSPLandroid/text/PackedIntVector;->size()I -HSPLandroid/text/PackedIntVector;->width()I -HSPLandroid/text/PackedObjectVector;->deleteAt(II)V -HSPLandroid/text/PackedObjectVector;->getValue(II)Ljava/lang/Object; -HSPLandroid/text/PackedObjectVector;->growBuffer()V -HSPLandroid/text/PackedObjectVector;->insertAt(I[Ljava/lang/Object;)V+]Landroid/text/PackedObjectVector;Landroid/text/PackedObjectVector; -HSPLandroid/text/PackedObjectVector;->moveRowGapTo(I)V -HSPLandroid/text/PackedObjectVector;->setValue(IILjava/lang/Object;)V -HSPLandroid/text/PackedObjectVector;->size()I -HSPLandroid/text/PrecomputedText$ParagraphInfo;-><init>(ILandroid/text/MeasuredParagraph;)V -HSPLandroid/text/PrecomputedText$Params;-><init>(Landroid/text/TextPaint;Landroid/graphics/text/LineBreakConfig;Landroid/text/TextDirectionHeuristic;II)V -HSPLandroid/text/PrecomputedText$Params;->getBreakStrategy()I -HSPLandroid/text/PrecomputedText$Params;->getHyphenationFrequency()I -HSPLandroid/text/PrecomputedText$Params;->getTextDirection()Landroid/text/TextDirectionHeuristic; -HSPLandroid/text/PrecomputedText$Params;->getTextPaint()Landroid/text/TextPaint; -HSPLandroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I -HSPLandroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I+]Landroid/text/Spanned;missing_types -HSPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V -HSPLandroid/text/Selection;->removeSelection(Landroid/text/Spannable;)V -HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V -HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V -HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;III)V -HSPLandroid/text/Selection;->updateMemory(Landroid/text/Spannable;I)V -HSPLandroid/text/SpanSet;-><init>(Ljava/lang/Class;)V -HSPLandroid/text/SpanSet;->getNextTransition(II)I -HSPLandroid/text/SpanSet;->hasSpansIntersecting(II)Z -HSPLandroid/text/SpanSet;->init(Landroid/text/Spanned;II)V+]Landroid/text/Spanned;Landroid/text/SpannableString; -HSPLandroid/text/SpanSet;->recycle()V -HSPLandroid/text/Spannable$Factory;->getInstance()Landroid/text/Spannable$Factory; -HSPLandroid/text/Spannable$Factory;->newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable; -HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;Z)V -HSPLandroid/text/SpannableString;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannableString;->getSpanEnd(Ljava/lang/Object;)I -HSPLandroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/SpannableString;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/SpannableString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/text/SpannableString;->nextSpanTransition(IILjava/lang/Class;)I -HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;)V -HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;I)V -HSPLandroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V -HSPLandroid/text/SpannableString;->subSequence(II)Ljava/lang/CharSequence; -HSPLandroid/text/SpannableString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableString; -HSPLandroid/text/SpannableStringBuilder;-><init>()V -HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V+]Ljava/lang/CharSequence;missing_types -HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;II)V -HSPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/Editable; -HSPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/Editable; -HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->calcMax(I)I -HSPLandroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V+]Landroid/text/Spanned;Landroid/text/SpannedString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->charAt(I)C -HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringBuilder;missing_types -HSPLandroid/text/SpannableStringBuilder;->checkSortBuffer([II)[I -HSPLandroid/text/SpannableStringBuilder;->clear()V -HSPLandroid/text/SpannableStringBuilder;->compareSpans(II[I[I)I -HSPLandroid/text/SpannableStringBuilder;->countSpans(IILjava/lang/Class;I)I+]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/Editable; -HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V -HSPLandroid/text/SpannableStringBuilder;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannableStringBuilder;->getChars(II[CI)V -HSPLandroid/text/SpannableStringBuilder;->getSpanEnd(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap; -HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap; -HSPLandroid/text/SpannableStringBuilder;->getSpanStart(Ljava/lang/Object;)I+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap; -HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;+]Landroid/text/SpannableStringBuilder;missing_types -HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/lang/Object; -HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I+]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I -HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z -HSPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->invalidateIndex(I)V -HSPLandroid/text/SpannableStringBuilder;->isInvalidParagraph(II)Z -HSPLandroid/text/SpannableStringBuilder;->leftChild(I)I -HSPLandroid/text/SpannableStringBuilder;->length()I -HSPLandroid/text/SpannableStringBuilder;->moveGapTo(I)V -HSPLandroid/text/SpannableStringBuilder;->nextSpanTransition(IILjava/lang/Class;)I -HSPLandroid/text/SpannableStringBuilder;->nextSpanTransitionRec(IILjava/lang/Class;I)I -HSPLandroid/text/SpannableStringBuilder;->obtain(I)[I -HSPLandroid/text/SpannableStringBuilder;->recycle([I)V -HSPLandroid/text/SpannableStringBuilder;->removeSpan(II)V -HSPLandroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;)V -HSPLandroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;I)V -HSPLandroid/text/SpannableStringBuilder;->removeSpansForChange(IIZI)Z -HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/Editable; -HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->resizeFor(I)V -HSPLandroid/text/SpannableStringBuilder;->resolveGap(I)I -HSPLandroid/text/SpannableStringBuilder;->restoreInvariants()V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap; -HSPLandroid/text/SpannableStringBuilder;->rightChild(I)I -HSPLandroid/text/SpannableStringBuilder;->sendAfterTextChanged([Landroid/text/TextWatcher;)V -HSPLandroid/text/SpannableStringBuilder;->sendBeforeTextChanged([Landroid/text/TextWatcher;III)V -HSPLandroid/text/SpannableStringBuilder;->sendSpanAdded(Ljava/lang/Object;II)V+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->sendSpanChanged(Ljava/lang/Object;IIII)V -HSPLandroid/text/SpannableStringBuilder;->sendSpanRemoved(Ljava/lang/Object;II)V -HSPLandroid/text/SpannableStringBuilder;->sendTextChanged([Landroid/text/TextWatcher;III)V -HSPLandroid/text/SpannableStringBuilder;->sendToSpanWatchers(III)V -HSPLandroid/text/SpannableStringBuilder;->setFilters([Landroid/text/InputFilter;)V -HSPLandroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V -HSPLandroid/text/SpannableStringBuilder;->setSpan(ZLjava/lang/Object;IIIZ)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap; -HSPLandroid/text/SpannableStringBuilder;->siftDown(I[Ljava/lang/Object;I[I[I)V -HSPLandroid/text/SpannableStringBuilder;->sort([Ljava/lang/Object;[I[I)V -HSPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence; -HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String;+]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringBuilder;->treeRoot()I -HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I -HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannedString;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; -HSPLandroid/text/SpannableStringInternal;->charAt(I)C+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V+]Landroid/text/SpannableStringInternal;Landroid/text/SpannedString;,Landroid/text/SpannableString; -HSPLandroid/text/SpannableStringInternal;->copySpansFromInternal(Landroid/text/SpannableStringInternal;IIZ)V+]Landroid/text/SpannableStringInternal;Landroid/text/SpannedString;,Landroid/text/SpannableString; -HSPLandroid/text/SpannableStringInternal;->copySpansFromSpanned(Landroid/text/Spanned;IIZ)V+]Landroid/text/Spanned;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/text/SpannableStringInternal;->getSpanEnd(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringInternal;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringInternal;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/SpannableStringInternal;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Class;Ljava/lang/Class;]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString; -HSPLandroid/text/SpannableStringInternal;->length()I+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I -HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V -HSPLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V+]Landroid/text/SpanWatcher;Landroid/text/DynamicLayout$ChangeWatcher;,Landroid/widget/Editor$SpanController;,Landroid/widget/TextView$ChangeWatcher;]Landroid/text/SpannableStringInternal;Landroid/text/SpannableString; -HSPLandroid/text/SpannableStringInternal;->sendSpanChanged(Ljava/lang/Object;IIII)V -HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;III)V -HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;IIIZ)V -HSPLandroid/text/SpannableStringInternal;->toString()Ljava/lang/String; -HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;)V -HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;Z)V+]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder; -HSPLandroid/text/SpannedString;->equals(Ljava/lang/Object;)Z -HSPLandroid/text/SpannedString;->getSpanEnd(Ljava/lang/Object;)I -HSPLandroid/text/SpannedString;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/SpannedString;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/SpannedString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/text/SpannedString;->nextSpanTransition(IILjava/lang/Class;)I -HSPLandroid/text/SpannedString;->subSequence(II)Ljava/lang/CharSequence; -HSPLandroid/text/SpannedString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannedString; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmAddLastLineLineSpacing(Landroid/text/StaticLayout$Builder;)Z -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmBreakStrategy(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmEllipsize(Landroid/text/StaticLayout$Builder;)Landroid/text/TextUtils$TruncateAt; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmEllipsizedWidth(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmEnd(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmFallbackLineSpacing(Landroid/text/StaticLayout$Builder;)Z -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmFontMetricsInt(Landroid/text/StaticLayout$Builder;)Landroid/graphics/Paint$FontMetricsInt; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmHyphenationFrequency(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmIncludePad(Landroid/text/StaticLayout$Builder;)Z -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmJustificationMode(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmLineBreakConfig(Landroid/text/StaticLayout$Builder;)Landroid/graphics/text/LineBreakConfig; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmPaint(Landroid/text/StaticLayout$Builder;)Landroid/text/TextPaint; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmSpacingAdd(Landroid/text/StaticLayout$Builder;)F -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmSpacingMult(Landroid/text/StaticLayout$Builder;)F -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmStart(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmText(Landroid/text/StaticLayout$Builder;)Ljava/lang/CharSequence; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmTextDir(Landroid/text/StaticLayout$Builder;)Landroid/text/TextDirectionHeuristic; -HSPLandroid/text/StaticLayout$Builder;->-$$Nest$fgetmWidth(Landroid/text/StaticLayout$Builder;)I -HSPLandroid/text/StaticLayout$Builder;-><init>()V -HSPLandroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout; -HSPLandroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->recycle(Landroid/text/StaticLayout$Builder;)V -HSPLandroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setIndents([I[I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setJustificationMode(I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setTextDirection(Landroid/text/TextDirectionHeuristic;)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout$Builder;->setUseLineSpacingFromFallbacks(Z)Landroid/text/StaticLayout$Builder; -HSPLandroid/text/StaticLayout;-><init>(Landroid/text/StaticLayout$Builder;ZI)V+]Landroid/text/StaticLayout;Landroid/text/StaticLayout; -HSPLandroid/text/StaticLayout;->calculateEllipsis(IILandroid/text/MeasuredParagraph;IFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;Z)V -HSPLandroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Landroid/graphics/text/LineBreaker$Builder;Landroid/graphics/text/LineBreaker$Builder;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/text/LineBreaker;Landroid/graphics/text/LineBreaker;]Ljava/lang/CharSequence;Landroid/text/SpannableString;]Landroid/graphics/text/LineBreaker$ParagraphConstraints;Landroid/graphics/text/LineBreaker$ParagraphConstraints;]Landroid/graphics/text/LineBreaker$Result;Landroid/graphics/text/LineBreaker$Result;]Landroid/text/AutoGrowArray$IntArray;Landroid/text/AutoGrowArray$IntArray; -HSPLandroid/text/StaticLayout;->getBottomPadding()I -HSPLandroid/text/StaticLayout;->getEllipsisCount(I)I -HSPLandroid/text/StaticLayout;->getEllipsisStart(I)I -HSPLandroid/text/StaticLayout;->getEndHyphenEdit(I)I -HSPLandroid/text/StaticLayout;->getHeight(Z)I -HSPLandroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I -HSPLandroid/text/StaticLayout;->getLineContainsTab(I)Z -HSPLandroid/text/StaticLayout;->getLineCount()I -HSPLandroid/text/StaticLayout;->getLineDescent(I)I -HSPLandroid/text/StaticLayout;->getLineDirections(I)Landroid/text/Layout$Directions;+]Landroid/text/StaticLayout;Landroid/text/StaticLayout; -HSPLandroid/text/StaticLayout;->getLineExtra(I)I -HSPLandroid/text/StaticLayout;->getLineForVertical(I)I -HSPLandroid/text/StaticLayout;->getLineStart(I)I -HSPLandroid/text/StaticLayout;->getLineTop(I)I -HSPLandroid/text/StaticLayout;->getParagraphDirection(I)I -HSPLandroid/text/StaticLayout;->getStartHyphenEdit(I)I -HSPLandroid/text/StaticLayout;->getTopPadding()I -HSPLandroid/text/StaticLayout;->getTotalInsets(I)F -HSPLandroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZIZLandroid/text/MeasuredParagraph;IZZZ[CILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;Z)I+]Landroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;]Ljava/lang/CharSequence;Landroid/text/SpannableString; -HSPLandroid/text/StaticLayout;->packHyphenEdit(II)I -HSPLandroid/text/StaticLayout;->unpackEndHyphenEdit(I)I -HSPLandroid/text/StaticLayout;->unpackStartHyphenEdit(I)I -HSPLandroid/text/TextDirectionHeuristics$FirstStrong;->checkRtl(Ljava/lang/CharSequence;II)I -HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->doCheck(Ljava/lang/CharSequence;II)Z -HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl(Ljava/lang/CharSequence;II)Z -HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII)Z -HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z -HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z -HSPLandroid/text/TextDirectionHeuristics;->isRtlCodePoint(I)I -HSPLandroid/text/TextFlags;->getKeyForFlag(Ljava/lang/String;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLandroid/text/TextFlags;->isFeatureEnabled(Ljava/lang/String;)Z -HSPLandroid/text/TextLine$DecorationInfo;-><init>()V -HSPLandroid/text/TextLine$DecorationInfo;->copyInfo()Landroid/text/TextLine$DecorationInfo; -HSPLandroid/text/TextLine$DecorationInfo;->hasDecoration()Z -HSPLandroid/text/TextLine;-><init>()V -HSPLandroid/text/TextLine;->adjustEndHyphenEdit(II)I -HSPLandroid/text/TextLine;->adjustStartHyphenEdit(II)I -HSPLandroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions; -HSPLandroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V -HSPLandroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z -HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V -HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/text/TextPaint;IIIIZLandroid/graphics/Paint$FontMetricsInt;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; -HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; -HSPLandroid/text/TextLine;->getOffsetBeforeAfter(IIIZIZ)I+]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/text/Spanned;Landroid/text/SpannableString; -HSPLandroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I -HSPLandroid/text/TextLine;->getRunAdvance(Landroid/text/TextPaint;IIIIZI[FILandroid/graphics/RectF;Landroid/text/TextLine$LineInfo;)F+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/text/PrecomputedText;Landroid/text/PrecomputedText;]Landroid/text/TextPaint;Landroid/text/TextPaint; -HSPLandroid/text/TextLine;->handleReplacement(Landroid/text/style/ReplacementSpan;Landroid/text/TextPaint;IIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F -HSPLandroid/text/TextLine;->handleRun(IIIZLandroid/graphics/Canvas;Landroid/text/TextShaper$GlyphsConsumer;FIIILandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;Z[FILandroid/text/TextLine$LineInfo;I)F+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/text/style/MetricAffectingSpan;megamorphic_types]Landroid/text/style/CharacterStyle;megamorphic_types]Landroid/text/TextPaint;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/text/TextLine$DecorationInfo;Landroid/text/TextLine$DecorationInfo;]Landroid/text/SpanSet;Landroid/text/SpanSet; -HSPLandroid/text/TextLine;->handleText(Landroid/text/TextPaint;IIIIZLandroid/graphics/Canvas;Landroid/text/TextShaper$GlyphsConsumer;FIIILandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;ZILjava/util/ArrayList;[FILandroid/text/TextLine$LineInfo;I)F+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;,Landroid/graphics/Canvas;,Landroid/view/Surface$CompatibleCanvas; -HSPLandroid/text/TextLine;->isLineEndSpace(C)Z -HSPLandroid/text/TextLine;->measure(IZLandroid/graphics/Paint$FontMetricsInt;Landroid/graphics/RectF;Landroid/text/TextLine$LineInfo;)F+]Landroid/text/Layout$Directions;Landroid/text/Layout$Directions;]Landroid/text/TextLine;Landroid/text/TextLine; -HSPLandroid/text/TextLine;->obtain()Landroid/text/TextLine; -HSPLandroid/text/TextLine;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine;+]Landroid/text/SpanSet;Landroid/text/SpanSet; -HSPLandroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;IIZ)V+]Landroid/text/SpanSet;Landroid/text/SpanSet; -HSPLandroid/text/TextLine;->updateMetrics(Landroid/graphics/Paint$FontMetricsInt;IIIII)V -HSPLandroid/text/TextPaint;-><init>()V -HSPLandroid/text/TextPaint;-><init>(I)V -HSPLandroid/text/TextPaint;-><init>(Landroid/graphics/Paint;)V -HSPLandroid/text/TextPaint;->getUnderlineThickness()F -HSPLandroid/text/TextPaint;->set(Landroid/text/TextPaint;)V -HSPLandroid/text/TextPaint;->setUnderlineText(IF)V -HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/CharSequence;+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;+]Landroid/text/TextUtils$1;Landroid/text/TextUtils$1; -HSPLandroid/text/TextUtils$SimpleStringSplitter;-><init>(C)V -HSPLandroid/text/TextUtils$SimpleStringSplitter;->hasNext()Z -HSPLandroid/text/TextUtils$SimpleStringSplitter;->iterator()Ljava/util/Iterator; -HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/Object; -HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/String; -HSPLandroid/text/TextUtils$SimpleStringSplitter;->setString(Ljava/lang/String;)V -HSPLandroid/text/TextUtils$StringWithRemovedChars;->toString()Ljava/lang/String; -HSPLandroid/text/TextUtils;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/text/SpannableStringBuilder;Landroid/text/SpannableStringBuilder; -HSPLandroid/text/TextUtils;->copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V -HSPLandroid/text/TextUtils;->couldAffectRtl(C)Z -HSPLandroid/text/TextUtils;->doesNotNeedBidi([CII)Z -HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z+]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/text/TextUtils;->expandTemplate(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->formatSimple(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Boolean;Ljava/lang/Boolean; -HSPLandroid/text/TextUtils;->getCapsMode(Ljava/lang/CharSequence;II)I -HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V+]Ljava/lang/Object;Landroid/text/SpannableString;]Landroid/text/GetChars;Landroid/text/SpannableString; -HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I -HSPLandroid/text/TextUtils;->getTrimmedLength(Ljava/lang/CharSequence;)I -HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;C)I -HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CI)I -HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I+]Ljava/lang/Object;Landroid/text/SpannableString; -HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I -HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)I -HSPLandroid/text/TextUtils;->isDigitsOnly(Ljava/lang/CharSequence;)Z -HSPLandroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z+]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLandroid/text/TextUtils;->isGraphic(Ljava/lang/CharSequence;)Z -HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Ljava/lang/Iterable;missing_types]Ljava/util/Iterator;missing_types -HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CI)I -HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CII)I -HSPLandroid/text/TextUtils;->makeSafeForPresentation(Ljava/lang/String;IFI)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->nullIfEmpty(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->obtain(I)[C -HSPLandroid/text/TextUtils;->packRangeInLong(II)J -HSPLandroid/text/TextUtils;->recycle([C)V -HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/Spanned;Ljava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/text/TextUtils;->safeIntern(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String; -HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String; -HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->trimNoCopySpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->trimToParcelableSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->trimToSize(Ljava/lang/CharSequence;I)Ljava/lang/CharSequence; -HSPLandroid/text/TextUtils;->unpackRangeEndFromLong(J)I -HSPLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I -HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V+]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence; -HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence; -HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence; -HSPLandroid/text/format/DateFormat;->getBestDateTimePattern(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/text/format/DateFormat;->getIcuDateFormatSymbols(Ljava/util/Locale;)Landroid/icu/text/DateFormatSymbols; -HSPLandroid/text/format/DateFormat;->getMonthString(Landroid/icu/text/DateFormatSymbols;III)Ljava/lang/String; -HSPLandroid/text/format/DateFormat;->getTimeFormat(Landroid/content/Context;)Ljava/text/DateFormat; -HSPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;I)Ljava/lang/String; -HSPLandroid/text/format/DateFormat;->getYearString(II)Ljava/lang/String; -HSPLandroid/text/format/DateFormat;->hasDesignator(Ljava/lang/CharSequence;C)Z -HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;)Z -HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z -HSPLandroid/text/format/DateFormat;->is24HourLocale(Ljava/util/Locale;)Z -HSPLandroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String; -HSPLandroid/text/format/DateIntervalFormat;-><clinit>()V -HSPLandroid/text/format/DateIntervalFormat;->formatDateRange(JJILjava/lang/String;)Ljava/lang/String; -HSPLandroid/text/format/DateIntervalFormat;->formatDateRange(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJI)Ljava/lang/String; -HSPLandroid/text/format/DateIntervalFormat;->getFormatter(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;)Landroid/icu/text/DateIntervalFormat; -HSPLandroid/text/format/DateIntervalFormat;->isExactlyMidnight(Landroid/icu/util/Calendar;)Z -HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String; -HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter; -HSPLandroid/text/format/DateUtils;->formatDateTime(Landroid/content/Context;JI)Ljava/lang/String; -HSPLandroid/text/format/DateUtils;->formatElapsedTime(J)Ljava/lang/String; -HSPLandroid/text/format/DateUtils;->formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String; -HSPLandroid/text/format/DateUtils;->getRelativeTimeSpanString(JJJI)Ljava/lang/CharSequence; -HSPLandroid/text/format/DateUtils;->initFormatStrings()V -HSPLandroid/text/format/DateUtils;->initFormatStringsLocked()V -HSPLandroid/text/format/DateUtils;->isSameDate(JJ)Z -HSPLandroid/text/format/DateUtils;->isToday(J)Z -HSPLandroid/text/format/DateUtilsBridge;->createIcuCalendar(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;J)Landroid/icu/util/Calendar; -HSPLandroid/text/format/DateUtilsBridge;->fallInSameMonth(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z -HSPLandroid/text/format/DateUtilsBridge;->fallInSameYear(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z -HSPLandroid/text/format/DateUtilsBridge;->fallOnDifferentDates(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z -HSPLandroid/text/format/DateUtilsBridge;->icuTimeZone(Ljava/util/TimeZone;)Landroid/icu/util/TimeZone; -HSPLandroid/text/format/DateUtilsBridge;->isThisYear(Landroid/icu/util/Calendar;)Z -HSPLandroid/text/format/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;I)Ljava/lang/String; -HSPLandroid/text/format/Formatter;->formatBytes(Landroid/content/res/Resources;JI)Landroid/text/format/Formatter$BytesResult; -HSPLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;J)Ljava/lang/String; -HSPLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;JI)Ljava/lang/String; -HSPLandroid/text/format/RelativeDateTimeFormatter;->getFormatter(Landroid/icu/util/ULocale;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;)Landroid/icu/text/RelativeDateTimeFormatter; -HSPLandroid/text/format/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJJILandroid/icu/text/DisplayContext;)Ljava/lang/String; -HSPLandroid/text/format/RelativeDateTimeFormatter;->getRelativeTimeSpanString(Ljava/util/Locale;Ljava/util/TimeZone;JJJILandroid/icu/text/DisplayContext;)Ljava/lang/String; -HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsFromTime(Landroid/text/format/Time;)V -HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V -HSPLandroid/text/format/Time$TimeCalculator;->lookupZoneInfoData(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData; -HSPLandroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V -HSPLandroid/text/format/Time$TimeCalculator;->updateZoneInfoFromTimeZone()V -HSPLandroid/text/format/Time;-><init>()V -HSPLandroid/text/format/Time;->getJulianDay(JJ)I -HSPLandroid/text/format/Time;->initialize(Ljava/lang/String;)V -HSPLandroid/text/format/Time;->set(J)V -HSPLandroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V -HSPLandroid/text/method/AllCapsTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence; -HSPLandroid/text/method/AllCapsTransformationMethod;->setLengthChangesAllowed(Z)V -HSPLandroid/text/method/ArrowKeyMovementMethod;->canSelectArbitrarily()Z -HSPLandroid/text/method/ArrowKeyMovementMethod;->getInstance()Landroid/text/method/MovementMethod; -HSPLandroid/text/method/ArrowKeyMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/ArrowKeyMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V -HSPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V -HSPLandroid/text/method/ArrowKeyMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z -HSPLandroid/text/method/BaseKeyListener;-><init>()V -HSPLandroid/text/method/BaseKeyListener;->makeTextContentType(Landroid/text/method/TextKeyListener$Capitalize;Z)I -HSPLandroid/text/method/BaseMovementMethod;-><init>()V -HSPLandroid/text/method/BaseMovementMethod;->getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I -HSPLandroid/text/method/BaseMovementMethod;->handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/BaseMovementMethod;->onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/BaseMovementMethod;->onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/LinkMovementMethod;-><init>()V -HSPLandroid/text/method/LinkMovementMethod;->getInstance()Landroid/text/method/MovementMethod; -HSPLandroid/text/method/LinkMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V -HSPLandroid/text/method/MetaKeyKeyListener;-><init>()V -HSPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I -HSPLandroid/text/method/MetaKeyKeyListener;->isMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z -HSPLandroid/text/method/MetaKeyKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/MetaKeyKeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/QwertyKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->charAt(I)C -HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->getChars(II[CI)V -HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->length()I -HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanEnd(Ljava/lang/Object;)I -HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanFlags(Ljava/lang/Object;)I -HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanStart(Ljava/lang/Object;)I -HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; -HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->nextSpanTransition(IILjava/lang/Class;)I -HSPLandroid/text/method/ReplacementTransformationMethod;-><init>()V -HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence; -HSPLandroid/text/method/ReplacementTransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V -HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V -HSPLandroid/text/method/SingleLineTransformationMethod;-><init>()V -HSPLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod; -HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C -HSPLandroid/text/method/SingleLineTransformationMethod;->getReplacement()[C -HSPLandroid/text/method/TextKeyListener$SettingsObserver;->onChange(Z)V -HSPLandroid/text/method/TextKeyListener;-><init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V -HSPLandroid/text/method/TextKeyListener;->getInputType()I -HSPLandroid/text/method/TextKeyListener;->getInstance()Landroid/text/method/TextKeyListener; -HSPLandroid/text/method/TextKeyListener;->getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/TextKeyListener; -HSPLandroid/text/method/TextKeyListener;->getKeyListener(Landroid/view/KeyEvent;)Landroid/text/method/KeyListener; -HSPLandroid/text/method/TextKeyListener;->getPrefs(Landroid/content/Context;)I -HSPLandroid/text/method/TextKeyListener;->initPrefs(Landroid/content/Context;)V -HSPLandroid/text/method/TextKeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/TextKeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z -HSPLandroid/text/method/TextKeyListener;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/text/method/TextKeyListener;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V -HSPLandroid/text/method/TextKeyListener;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/text/method/TextKeyListener;->updatePrefs(Landroid/content/ContentResolver;)V -HSPLandroid/text/method/Touch;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z+]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/text/Spannable;Landroid/text/SpannableString;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/text/method/WordIterator;-><init>(Ljava/util/Locale;)V -HSPLandroid/text/method/WordIterator;->checkOffsetIsValid(I)V -HSPLandroid/text/method/WordIterator;->following(I)I -HSPLandroid/text/method/WordIterator;->getBeginning(I)I -HSPLandroid/text/method/WordIterator;->getBeginning(IZ)I -HSPLandroid/text/method/WordIterator;->getEnd(I)I -HSPLandroid/text/method/WordIterator;->getEnd(IZ)I -HSPLandroid/text/method/WordIterator;->preceding(I)I -HSPLandroid/text/method/WordIterator;->setCharSequence(Ljava/lang/CharSequence;II)V -HSPLandroid/text/style/AbsoluteSizeSpan;-><init>(IZ)V -HSPLandroid/text/style/AbsoluteSizeSpan;->updateDrawState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/CharacterStyle;-><init>()V -HSPLandroid/text/style/CharacterStyle;->getUnderlying()Landroid/text/style/CharacterStyle; -HSPLandroid/text/style/ClickableSpan;-><init>()V -HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/DynamicDrawableSpan;-><init>(I)V -HSPLandroid/text/style/ForegroundColorSpan;-><init>(I)V -HSPLandroid/text/style/ForegroundColorSpan;->getSpanTypeIdInternal()I -HSPLandroid/text/style/ForegroundColorSpan;->updateDrawState(Landroid/text/TextPaint;)V+]Landroid/text/TextPaint;Landroid/text/TextPaint; -HSPLandroid/text/style/ForegroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V -HSPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;I)V -HSPLandroid/text/style/ImageSpan;->getDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/text/style/MetricAffectingSpan;-><init>()V -HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/CharacterStyle; -HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/MetricAffectingSpan; -HSPLandroid/text/style/RelativeSizeSpan;-><init>(F)V -HSPLandroid/text/style/ReplacementSpan;-><init>()V -HSPLandroid/text/style/SpellCheckSpan;->getSpanTypeIdInternal()I -HSPLandroid/text/style/SpellCheckSpan;->isSpellCheckInProgress()Z -HSPLandroid/text/style/SpellCheckSpan;->setSpellCheckInProgress(Z)V -HSPLandroid/text/style/SpellCheckSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V -HSPLandroid/text/style/StyleSpan;-><init>(I)V -HSPLandroid/text/style/StyleSpan;-><init>(II)V -HSPLandroid/text/style/StyleSpan;->apply(Landroid/graphics/Paint;II)V -HSPLandroid/text/style/StyleSpan;->getSpanTypeIdInternal()I -HSPLandroid/text/style/StyleSpan;->updateDrawState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/StyleSpan;->updateMeasureState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/StyleSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V -HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;I)V -HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;II)V -HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/os/Parcel;)V -HSPLandroid/text/style/TextAppearanceSpan;-><init>(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V -HSPLandroid/text/style/TextAppearanceSpan;->getFamily()Ljava/lang/String; -HSPLandroid/text/style/TextAppearanceSpan;->getLinkTextColor()Landroid/content/res/ColorStateList; -HSPLandroid/text/style/TextAppearanceSpan;->getSpanTypeIdInternal()I -HSPLandroid/text/style/TextAppearanceSpan;->getTextColor()Landroid/content/res/ColorStateList; -HSPLandroid/text/style/TextAppearanceSpan;->getTextStyle()I -HSPLandroid/text/style/TextAppearanceSpan;->updateDrawState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/TextAppearanceSpan;->updateMeasureState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/TextAppearanceSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V -HSPLandroid/text/style/TtsSpan$Builder;->build()Landroid/text/style/TtsSpan; -HSPLandroid/text/style/TtsSpan$Builder;->setStringArgument(Ljava/lang/String;Ljava/lang/String;)Landroid/text/style/TtsSpan$Builder; -HSPLandroid/text/style/TtsSpan$SemioticClassBuilder;-><init>(Ljava/lang/String;)V -HSPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;)V -HSPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;Landroid/graphics/Typeface;)V -HSPLandroid/text/style/URLSpan;-><init>(Ljava/lang/String;)V -HSPLandroid/text/style/URLSpan;->getURL()Ljava/lang/String; -HSPLandroid/text/style/UnderlineSpan;-><init>()V -HSPLandroid/text/style/UnderlineSpan;->getSpanTypeIdInternal()I -HSPLandroid/text/style/UnderlineSpan;->updateDrawState(Landroid/text/TextPaint;)V -HSPLandroid/text/style/UnderlineSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V -HSPLandroid/text/util/Linkify$4;-><init>()V -HSPLandroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;ILandroid/content/Context;Ljava/util/function/Function;)Z -HSPLandroid/text/util/Linkify;->containsUnsupportedCharacters(Ljava/lang/String;)Z -HSPLandroid/text/util/Linkify;->gatherLinks(Ljava/util/ArrayList;Landroid/text/Spannable;Ljava/util/regex/Pattern;[Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V -HSPLandroid/text/util/Linkify;->pruneOverlaps(Ljava/util/ArrayList;)V -HSPLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/ChangeBounds;->setResizeClip(Z)V -HSPLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/ChangeImageTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/ChangeTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/Fade$1;->onTransitionEnd(Landroid/transition/Transition;)V -HSPLandroid/transition/Fade$FadeAnimatorListener;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/transition/Fade$FadeAnimatorListener;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/transition/Fade;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/Fade;->captureStartValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Fade;->createAnimation(Landroid/view/View;FF)Landroid/animation/Animator; -HSPLandroid/transition/Fade;->onAppear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; -HSPLandroid/transition/Fade;->onDisappear(Landroid/view/ViewGroup;Landroid/view/View;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; -HSPLandroid/transition/Scene;->enter()V -HSPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/transition/Transition;-><init>()V -HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Ljava/lang/Object;megamorphic_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/transition/Transition;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; -HSPLandroid/transition/Transition;->addTarget(Landroid/view/View;)Landroid/transition/Transition; -HSPLandroid/transition/Transition;->addUnmatched(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V -HSPLandroid/transition/Transition;->addViewValues(Landroid/transition/TransitionValuesMaps;Landroid/view/View;Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Transition;->animate(Landroid/animation/Animator;)V -HSPLandroid/transition/Transition;->captureHierarchy(Landroid/view/View;Z)V -HSPLandroid/transition/Transition;->capturePropagationValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Transition;->captureValues(Landroid/view/ViewGroup;Z)V -HSPLandroid/transition/Transition;->clearValues(Z)V -HSPLandroid/transition/Transition;->clone()Landroid/transition/Transition; -HSPLandroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V -HSPLandroid/transition/Transition;->end()V -HSPLandroid/transition/Transition;->getDuration()J -HSPLandroid/transition/Transition;->getInterpolator()Landroid/animation/TimeInterpolator; -HSPLandroid/transition/Transition;->getName()Ljava/lang/String; -HSPLandroid/transition/Transition;->getStartDelay()J -HSPLandroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z -HSPLandroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V -HSPLandroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V -HSPLandroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V -HSPLandroid/transition/Transition;->matchNames(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V -HSPLandroid/transition/Transition;->matchStartAndEnd(Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;)V -HSPLandroid/transition/Transition;->playTransition(Landroid/view/ViewGroup;)V -HSPLandroid/transition/Transition;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; -HSPLandroid/transition/Transition;->runAnimators()V -HSPLandroid/transition/Transition;->setDuration(J)Landroid/transition/Transition; -HSPLandroid/transition/Transition;->setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V -HSPLandroid/transition/Transition;->start()V -HSPLandroid/transition/TransitionInflater;-><init>(Landroid/content/Context;)V -HSPLandroid/transition/TransitionInflater;->createCustom(Landroid/util/AttributeSet;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/transition/TransitionInflater;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition; -HSPLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater; -HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition; -HSPLandroid/transition/TransitionListenerAdapter;-><init>()V -HSPLandroid/transition/TransitionListenerAdapter;->onTransitionStart(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionManager$MultiListener$1;->onTransitionEnd(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionManager$MultiListener;->onPreDraw()Z -HSPLandroid/transition/TransitionManager;-><init>()V -HSPLandroid/transition/TransitionManager;->beginDelayedTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionManager;->endTransitions(Landroid/view/ViewGroup;)V -HSPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap; -HSPLandroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionEnd(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionStart(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; -HSPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->addTarget(Landroid/view/View;)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V -HSPLandroid/transition/TransitionSet;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/TransitionSet;->capturePropagationValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/TransitionSet;->captureStartValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/TransitionSet;->clone()Landroid/transition/Transition; -HSPLandroid/transition/TransitionSet;->clone()Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V -HSPLandroid/transition/TransitionSet;->getTransitionCount()I -HSPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition; -HSPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->runAnimators()V -HSPLandroid/transition/TransitionSet;->setEpicenterCallback(Landroid/transition/Transition$EpicenterCallback;)V -HSPLandroid/transition/TransitionSet;->setOrdering(I)Landroid/transition/TransitionSet; -HSPLandroid/transition/TransitionSet;->setupStartEndListeners()V -HSPLandroid/transition/TransitionValuesMaps;-><init>()V -HSPLandroid/transition/Visibility$DisappearListener;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/transition/Visibility$DisappearListener;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/transition/Visibility$DisappearListener;->onTransitionEnd(Landroid/transition/Transition;)V -HSPLandroid/transition/Visibility;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/transition/Visibility;->captureEndValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V -HSPLandroid/transition/Visibility;->createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator; -HSPLandroid/transition/Visibility;->getMode()I -HSPLandroid/transition/Visibility;->getTransitionProperties()[Ljava/lang/String; -HSPLandroid/transition/Visibility;->getVisibilityChangeInfo(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/transition/Visibility$VisibilityInfo; -HSPLandroid/transition/Visibility;->isTransitionRequired(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Z -HSPLandroid/transition/Visibility;->onAppear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator; -HSPLandroid/transition/Visibility;->onDisappear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator; -HSPLandroid/transition/Visibility;->setMode(I)V -HSPLandroid/util/AndroidException;-><init>()V -HSPLandroid/util/AndroidException;-><init>(Ljava/lang/String;)V -HSPLandroid/util/AndroidException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V -HSPLandroid/util/AndroidRuntimeException;-><init>(Ljava/lang/String;)V -HSPLandroid/util/ArrayMap$1;-><init>(Landroid/util/ArrayMap;)V -HSPLandroid/util/ArrayMap$1;->colGetEntry(II)Ljava/lang/Object; -HSPLandroid/util/ArrayMap$1;->colGetMap()Ljava/util/Map; -HSPLandroid/util/ArrayMap$1;->colGetSize()I -HSPLandroid/util/ArrayMap$1;->colIndexOfKey(Ljava/lang/Object;)I -HSPLandroid/util/ArrayMap$1;->colRemoveAt(I)V -HSPLandroid/util/ArrayMap;-><init>()V -HSPLandroid/util/ArrayMap;-><init>(I)V -HSPLandroid/util/ArrayMap;-><init>(IZ)V -HSPLandroid/util/ArrayMap;-><init>(Landroid/util/ArrayMap;)V -HSPLandroid/util/ArrayMap;->allocArrays(I)V -HSPLandroid/util/ArrayMap;->append(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/lang/Object;Ljava/lang/String; -HSPLandroid/util/ArrayMap;->binarySearchHashes([III)I -HSPLandroid/util/ArrayMap;->clear()V -HSPLandroid/util/ArrayMap;->containsKey(Ljava/lang/Object;)Z -HSPLandroid/util/ArrayMap;->containsValue(Ljava/lang/Object;)Z -HSPLandroid/util/ArrayMap;->ensureCapacity(I)V -HSPLandroid/util/ArrayMap;->entrySet()Ljava/util/Set; -HSPLandroid/util/ArrayMap;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V -HSPLandroid/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections; -HSPLandroid/util/ArrayMap;->hashCode()I -HSPLandroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I+]Ljava/lang/Object;megamorphic_types -HSPLandroid/util/ArrayMap;->indexOfKey(Ljava/lang/Object;)I+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;megamorphic_types -HSPLandroid/util/ArrayMap;->indexOfNull()I -HSPLandroid/util/ArrayMap;->indexOfValue(Ljava/lang/Object;)I -HSPLandroid/util/ArrayMap;->isEmpty()Z -HSPLandroid/util/ArrayMap;->keyAt(I)Ljava/lang/Object; -HSPLandroid/util/ArrayMap;->keySet()Ljava/util/Set;+]Landroid/util/MapCollections;Landroid/util/ArrayMap$1; -HSPLandroid/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/lang/Object;megamorphic_types -HSPLandroid/util/ArrayMap;->putAll(Landroid/util/ArrayMap;)V+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V -HSPLandroid/util/ArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/ArrayMap;->removeAt(I)Ljava/lang/Object; -HSPLandroid/util/ArrayMap;->retainAll(Ljava/util/Collection;)Z -HSPLandroid/util/ArrayMap;->setValueAt(ILjava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/ArrayMap;->size()I -HSPLandroid/util/ArrayMap;->toString()Ljava/lang/String; -HSPLandroid/util/ArrayMap;->validate()V -HSPLandroid/util/ArrayMap;->valueAt(I)Ljava/lang/Object; -HSPLandroid/util/ArrayMap;->values()Ljava/util/Collection; -HSPLandroid/util/ArraySet$1;-><init>(Landroid/util/ArraySet;)V -HSPLandroid/util/ArraySet$1;->colGetEntry(II)Ljava/lang/Object; -HSPLandroid/util/ArraySet$1;->colGetSize()I -HSPLandroid/util/ArraySet$1;->colRemoveAt(I)V -HSPLandroid/util/ArraySet;-><init>()V -HSPLandroid/util/ArraySet;-><init>(I)V -HSPLandroid/util/ArraySet;-><init>(IZ)V -HSPLandroid/util/ArraySet;-><init>(Landroid/util/ArraySet;)V -HSPLandroid/util/ArraySet;-><init>(Ljava/util/Collection;)V -HSPLandroid/util/ArraySet;-><init>([Ljava/lang/Object;)V -HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z+]Ljava/lang/Object;Ljava/lang/String;,Landroid/accounts/Account;,Landroid/window/SurfaceSyncGroup$2;,Landroid/net/UidRange; -HSPLandroid/util/ArraySet;->addAll(Landroid/util/ArraySet;)V -HSPLandroid/util/ArraySet;->addAll(Ljava/util/Collection;)Z -HSPLandroid/util/ArraySet;->allocArrays(I)V -HSPLandroid/util/ArraySet;->append(Ljava/lang/Object;)V+]Ljava/lang/Object;Lcom/android/org/conscrypt/OpenSSLRSAPublicKey;,Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey; -HSPLandroid/util/ArraySet;->binarySearch([II)I -HSPLandroid/util/ArraySet;->clear()V -HSPLandroid/util/ArraySet;->contains(Ljava/lang/Object;)Z -HSPLandroid/util/ArraySet;->ensureCapacity(I)V -HSPLandroid/util/ArraySet;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/ArraySet;->forEach(Ljava/util/function/Consumer;)V -HSPLandroid/util/ArraySet;->freeArrays([I[Ljava/lang/Object;I)V -HSPLandroid/util/ArraySet;->getCollection()Landroid/util/MapCollections; -HSPLandroid/util/ArraySet;->hashCode()I -HSPLandroid/util/ArraySet;->indexOf(Ljava/lang/Object;)I -HSPLandroid/util/ArraySet;->indexOf(Ljava/lang/Object;I)I -HSPLandroid/util/ArraySet;->indexOfNull()I -HSPLandroid/util/ArraySet;->isEmpty()Z -HSPLandroid/util/ArraySet;->iterator()Ljava/util/Iterator; -HSPLandroid/util/ArraySet;->remove(Ljava/lang/Object;)Z -HSPLandroid/util/ArraySet;->removeAll(Ljava/util/Collection;)Z -HSPLandroid/util/ArraySet;->removeAt(I)Ljava/lang/Object; -HSPLandroid/util/ArraySet;->shouldShrink()Z -HSPLandroid/util/ArraySet;->size()I -HSPLandroid/util/ArraySet;->toArray()[Ljava/lang/Object; -HSPLandroid/util/ArraySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLandroid/util/ArraySet;->toString()Ljava/lang/String; -HSPLandroid/util/ArraySet;->valueAt(I)Ljava/lang/Object; -HSPLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object; -HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V -HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Landroid/util/SystemConfigFileCommitEventLogger;)V -HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Ljava/lang/String;)V -HSPLandroid/util/AtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V -HSPLandroid/util/AtomicFile;->openRead()Ljava/io/FileInputStream; -HSPLandroid/util/AtomicFile;->rename(Ljava/io/File;Ljava/io/File;)V -HSPLandroid/util/AtomicFile;->startWrite()Ljava/io/FileOutputStream; -HSPLandroid/util/AtomicFile;->startWrite(J)Ljava/io/FileOutputStream; -HSPLandroid/util/Base64$Coder;-><init>()V -HSPLandroid/util/Base64$Decoder;-><init>(I[B)V -HSPLandroid/util/Base64$Decoder;->process([BIIZ)Z -HSPLandroid/util/Base64$Encoder;-><init>(I[B)V -HSPLandroid/util/Base64$Encoder;->process([BIIZ)Z -HSPLandroid/util/Base64;->decode(Ljava/lang/String;I)[B -HSPLandroid/util/Base64;->decode([BI)[B -HSPLandroid/util/Base64;->decode([BIII)[B+]Landroid/util/Base64$Decoder;Landroid/util/Base64$Decoder; -HSPLandroid/util/Base64;->encode([BI)[B -HSPLandroid/util/Base64;->encode([BIII)[B -HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String; -HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String; -HSPLandroid/util/CloseGuard;-><init>()V -HSPLandroid/util/CloseGuard;->close()V -HSPLandroid/util/CloseGuard;->open(Ljava/lang/String;)V -HSPLandroid/util/ContainerHelpers;->binarySearch([III)I -HSPLandroid/util/ContainerHelpers;->binarySearch([JIJ)I -HSPLandroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String; -HSPLandroid/util/DebugUtils;->flagsToString(Ljava/lang/Class;Ljava/lang/String;J)Ljava/lang/String; -HSPLandroid/util/DebugUtils;->getFieldValue(Ljava/lang/reflect/Field;)J -HSPLandroid/util/DisplayMetrics;-><init>()V -HSPLandroid/util/DisplayMetrics;->setTo(Landroid/util/DisplayMetrics;)V -HSPLandroid/util/DisplayMetrics;->setToDefaults()V -HSPLandroid/util/DisplayUtils;->getDisplayUniqueIdConfigIndex(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/util/EventLog$Event;-><init>([B)V -HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; -HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object; -HSPLandroid/util/EventLog$Event;->getHeaderSize()I -HSPLandroid/util/EventLog$Event;->getUid()I -HSPLandroid/util/EventLog;->getTagCode(Ljava/lang/String;)I -HSPLandroid/util/EventLog;->readTagsFile()V -HSPLandroid/util/ExceptionUtils;->appendCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable; -HSPLandroid/util/ExceptionUtils;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; -HSPLandroid/util/FastImmutableArraySet$FastIterator;->hasNext()Z -HSPLandroid/util/FastImmutableArraySet$FastIterator;->next()Ljava/lang/Object; -HSPLandroid/util/FastImmutableArraySet;->iterator()Ljava/util/Iterator; -HSPLandroid/util/FeatureFlagUtils;->getAllFeatureFlags()Ljava/util/Map; -HSPLandroid/util/FeatureFlagUtils;->getSystemPropertyPrefix(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/util/FeatureFlagUtils;->isEnabled(Landroid/content/Context;Ljava/lang/String;)Z -HSPLandroid/util/FloatProperty;-><init>(Ljava/lang/String;)V -HSPLandroid/util/FloatProperty;->set(Ljava/lang/Object;Ljava/lang/Float;)V -HSPLandroid/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;I)V -HSPLandroid/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;Ljava/lang/String;I)V -HSPLandroid/util/IndentingPrintWriter;->decreaseIndent()Landroid/util/IndentingPrintWriter; -HSPLandroid/util/IndentingPrintWriter;->increaseIndent()Landroid/util/IndentingPrintWriter; -HSPLandroid/util/IndentingPrintWriter;->maybeWriteIndent()V -HSPLandroid/util/IndentingPrintWriter;->print(Ljava/lang/String;Ljava/lang/Object;)Landroid/util/IndentingPrintWriter; -HSPLandroid/util/IndentingPrintWriter;->println()V -HSPLandroid/util/IndentingPrintWriter;->write(I)V -HSPLandroid/util/IndentingPrintWriter;->write(Ljava/lang/String;II)V -HSPLandroid/util/IndentingPrintWriter;->write([CII)V -HSPLandroid/util/IntArray;-><init>()V -HSPLandroid/util/IntArray;-><init>(I)V -HSPLandroid/util/IntArray;->add(I)V -HSPLandroid/util/IntArray;->add(II)V -HSPLandroid/util/IntArray;->addAll(Landroid/util/IntArray;)V -HSPLandroid/util/IntArray;->binarySearch(I)I -HSPLandroid/util/IntArray;->clear()V -HSPLandroid/util/IntArray;->ensureCapacity(I)V -HSPLandroid/util/IntArray;->get(I)I -HSPLandroid/util/IntArray;->indexOf(I)I -HSPLandroid/util/IntArray;->remove(I)V -HSPLandroid/util/IntArray;->size()I -HSPLandroid/util/IntArray;->toArray()[I -HSPLandroid/util/IntProperty;-><init>(Ljava/lang/String;)V -HSPLandroid/util/JsonReader;-><init>(Ljava/io/Reader;)V -HSPLandroid/util/JsonReader;->advance()Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->beginArray()V -HSPLandroid/util/JsonReader;->beginObject()V -HSPLandroid/util/JsonReader;->close()V -HSPLandroid/util/JsonReader;->decodeLiteral()Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->decodeNumber([CII)Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->endArray()V -HSPLandroid/util/JsonReader;->endObject()V -HSPLandroid/util/JsonReader;->expect(Landroid/util/JsonToken;)V -HSPLandroid/util/JsonReader;->fillBuffer(I)Z -HSPLandroid/util/JsonReader;->hasNext()Z -HSPLandroid/util/JsonReader;->nextBoolean()Z -HSPLandroid/util/JsonReader;->nextDouble()D -HSPLandroid/util/JsonReader;->nextInArray(Z)Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->nextInObject(Z)Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->nextLiteral(Z)Ljava/lang/String; -HSPLandroid/util/JsonReader;->nextName()Ljava/lang/String; -HSPLandroid/util/JsonReader;->nextNonWhitespace()I -HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String; -HSPLandroid/util/JsonReader;->nextString(C)Ljava/lang/String; -HSPLandroid/util/JsonReader;->nextValue()Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->objectValue()Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->peek()Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->peekStack()Landroid/util/JsonScope; -HSPLandroid/util/JsonReader;->pop()Landroid/util/JsonScope; -HSPLandroid/util/JsonReader;->push(Landroid/util/JsonScope;)V -HSPLandroid/util/JsonReader;->readEscapeCharacter()C -HSPLandroid/util/JsonReader;->readLiteral()Landroid/util/JsonToken; -HSPLandroid/util/JsonReader;->replaceTop(Landroid/util/JsonScope;)V -HSPLandroid/util/JsonReader;->skipValue()V -HSPLandroid/util/JsonToken;->values()[Landroid/util/JsonToken; -HSPLandroid/util/JsonWriter;-><init>(Ljava/io/Writer;)V -HSPLandroid/util/JsonWriter;->beforeName()V -HSPLandroid/util/JsonWriter;->beforeValue(Z)V -HSPLandroid/util/JsonWriter;->beginArray()Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->beginObject()Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->close()V -HSPLandroid/util/JsonWriter;->close(Landroid/util/JsonScope;Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->endArray()Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->endObject()Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->flush()V -HSPLandroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->newline()V -HSPLandroid/util/JsonWriter;->open(Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->peek()Landroid/util/JsonScope;+]Ljava/util/List;Ljava/util/ArrayList; -HSPLandroid/util/JsonWriter;->replaceTop(Landroid/util/JsonScope;)V+]Ljava/util/List;Ljava/util/ArrayList; -HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String;]Ljava/io/Writer;Ljava/io/BufferedWriter; -HSPLandroid/util/JsonWriter;->value(J)Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->value(Ljava/lang/String;)Landroid/util/JsonWriter; -HSPLandroid/util/JsonWriter;->value(Z)Landroid/util/JsonWriter; -HSPLandroid/util/KeyValueListParser$IntValue;->getValue()I -HSPLandroid/util/KeyValueListParser;-><init>(C)V -HSPLandroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z -HSPLandroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I -HSPLandroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J -HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V -HSPLandroid/util/LocalLog;-><init>(I)V -HSPLandroid/util/LocalLog;-><init>(IZ)V -HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V -HSPLandroid/util/LocalLog;->log(Ljava/lang/String;)V -HSPLandroid/util/Log$1;->onTerribleFailure(Ljava/lang/String;Landroid/util/Log$TerribleFailure;Z)V -HSPLandroid/util/Log$ImmediateLogWriter;-><init>(IILjava/lang/String;)V -HSPLandroid/util/Log$ImmediateLogWriter;->flush()V -HSPLandroid/util/Log$ImmediateLogWriter;->getWritten()I -HSPLandroid/util/Log$ImmediateLogWriter;->write([CII)V -HSPLandroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -HSPLandroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -HSPLandroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String; -HSPLandroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -HSPLandroid/util/Log;->logToRadioBuffer(ILjava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->println(ILjava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->printlns(IILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -HSPLandroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I -HSPLandroid/util/Log;->wtf(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;ZZ)I -HSPLandroid/util/LogPrinter;-><init>(ILjava/lang/String;)V -HSPLandroid/util/LongArray;-><init>()V -HSPLandroid/util/LongArray;-><init>(I)V -HSPLandroid/util/LongArray;->add(IJ)V -HSPLandroid/util/LongArray;->add(J)V -HSPLandroid/util/LongArray;->ensureCapacity(I)V -HSPLandroid/util/LongArray;->get(I)J -HSPLandroid/util/LongArray;->indexOf(J)I -HSPLandroid/util/LongArray;->size()I -HSPLandroid/util/LongArray;->toArray()[J -HSPLandroid/util/LongSparseArray;-><init>()V -HSPLandroid/util/LongSparseArray;-><init>(I)V -HSPLandroid/util/LongSparseArray;->append(JLjava/lang/Object;)V -HSPLandroid/util/LongSparseArray;->clear()V -HSPLandroid/util/LongSparseArray;->delete(J)V -HSPLandroid/util/LongSparseArray;->gc()V -HSPLandroid/util/LongSparseArray;->get(J)Ljava/lang/Object;+]Landroid/util/LongSparseArray;Landroid/util/LongSparseArray; -HSPLandroid/util/LongSparseArray;->get(JLjava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/LongSparseArray;->indexOfKey(J)I -HSPLandroid/util/LongSparseArray;->keyAt(I)J -HSPLandroid/util/LongSparseArray;->put(JLjava/lang/Object;)V -HSPLandroid/util/LongSparseArray;->remove(J)V -HSPLandroid/util/LongSparseArray;->removeAt(I)V -HSPLandroid/util/LongSparseArray;->size()I -HSPLandroid/util/LongSparseArray;->valueAt(I)Ljava/lang/Object; -HSPLandroid/util/LongSparseLongArray;-><init>()V -HSPLandroid/util/LongSparseLongArray;-><init>(I)V -HSPLandroid/util/LongSparseLongArray;->append(JJ)V -HSPLandroid/util/LongSparseLongArray;->clear()V -HSPLandroid/util/LongSparseLongArray;->clone()Landroid/util/LongSparseLongArray; -HSPLandroid/util/LongSparseLongArray;->get(JJ)J -HSPLandroid/util/LongSparseLongArray;->indexOfKey(J)I -HSPLandroid/util/LongSparseLongArray;->put(JJ)V -HSPLandroid/util/LongSparseLongArray;->size()I -HSPLandroid/util/LongSparseLongArray;->valueAt(I)J -HSPLandroid/util/LruCache;-><init>(I)V -HSPLandroid/util/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/util/LruCache;->evictAll()V -HSPLandroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;missing_types -HSPLandroid/util/LruCache;->hitCount()I -HSPLandroid/util/LruCache;->maxSize()I -HSPLandroid/util/LruCache;->missCount()I -HSPLandroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;,Landroid/util/LruCache; -HSPLandroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/LruCache;->resize(I)V -HSPLandroid/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/util/LruCache;->size()I -HSPLandroid/util/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/util/LruCache;->snapshot()Ljava/util/Map; -HSPLandroid/util/LruCache;->trimToSize(I)V+]Ljava/util/LinkedHashMap;Ljava/util/LinkedHashMap;]Landroid/util/LruCache;Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -HSPLandroid/util/MapCollections$ArrayIterator;-><init>(Landroid/util/MapCollections;I)V+]Landroid/util/MapCollections;Landroid/util/ArraySet$1;,Landroid/util/ArrayMap$1; -HSPLandroid/util/MapCollections$ArrayIterator;->hasNext()Z -HSPLandroid/util/MapCollections$ArrayIterator;->next()Ljava/lang/Object;+]Landroid/util/MapCollections$ArrayIterator;Landroid/util/MapCollections$ArrayIterator;]Landroid/util/MapCollections;Landroid/util/ArraySet$1;,Landroid/util/ArrayMap$1; -HSPLandroid/util/MapCollections$ArrayIterator;->remove()V -HSPLandroid/util/MapCollections$EntrySet;-><init>(Landroid/util/MapCollections;)V -HSPLandroid/util/MapCollections$EntrySet;->iterator()Ljava/util/Iterator; -HSPLandroid/util/MapCollections$EntrySet;->size()I -HSPLandroid/util/MapCollections$KeySet;-><init>(Landroid/util/MapCollections;)V -HSPLandroid/util/MapCollections$KeySet;->contains(Ljava/lang/Object;)Z -HSPLandroid/util/MapCollections$KeySet;->containsAll(Ljava/util/Collection;)Z -HSPLandroid/util/MapCollections$KeySet;->iterator()Ljava/util/Iterator; -HSPLandroid/util/MapCollections$KeySet;->size()I -HSPLandroid/util/MapCollections$KeySet;->toArray()[Ljava/lang/Object; -HSPLandroid/util/MapCollections$KeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLandroid/util/MapCollections$MapIterator;-><init>(Landroid/util/MapCollections;)V -HSPLandroid/util/MapCollections$MapIterator;->getKey()Ljava/lang/Object; -HSPLandroid/util/MapCollections$MapIterator;->getValue()Ljava/lang/Object; -HSPLandroid/util/MapCollections$MapIterator;->hasNext()Z -HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/lang/Object; -HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/util/Map$Entry; -HSPLandroid/util/MapCollections$ValuesCollection;->iterator()Ljava/util/Iterator; -HSPLandroid/util/MapCollections$ValuesCollection;->size()I -HSPLandroid/util/MapCollections$ValuesCollection;->toArray()[Ljava/lang/Object; -HSPLandroid/util/MapCollections;-><init>()V -HSPLandroid/util/MapCollections;->getEntrySet()Ljava/util/Set; -HSPLandroid/util/MapCollections;->getKeySet()Ljava/util/Set; -HSPLandroid/util/MapCollections;->getValues()Ljava/util/Collection; -HSPLandroid/util/MapCollections;->retainAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z -HSPLandroid/util/MapCollections;->toArrayHelper(I)[Ljava/lang/Object; -HSPLandroid/util/MapCollections;->toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object; -HSPLandroid/util/MathUtils;->addOrThrow(II)I -HSPLandroid/util/MathUtils;->constrain(FFF)F -HSPLandroid/util/MathUtils;->constrain(III)I -HSPLandroid/util/MathUtils;->constrainedMap(FFFFF)F -HSPLandroid/util/MathUtils;->lerp(FFF)F -HSPLandroid/util/MathUtils;->lerpInv(FFF)F -HSPLandroid/util/MathUtils;->lerpInvSat(FFF)F -HSPLandroid/util/MathUtils;->saturate(F)F -HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MemoryIntArray; -HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;)V -HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;Landroid/util/MemoryIntArray-IA;)V -HSPLandroid/util/MemoryIntArray;->close()V -HSPLandroid/util/MemoryIntArray;->enforceNotClosed()V -HSPLandroid/util/MemoryIntArray;->enforceValidIndex(I)V -HSPLandroid/util/MemoryIntArray;->finalize()V -HSPLandroid/util/MemoryIntArray;->get(I)I -HSPLandroid/util/MemoryIntArray;->isClosed()Z -HSPLandroid/util/MemoryIntArray;->size()I -HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MergedConfiguration; -HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/util/MergedConfiguration;-><init>()V -HSPLandroid/util/MergedConfiguration;-><init>(Landroid/os/Parcel;)V -HSPLandroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V -HSPLandroid/util/MergedConfiguration;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/MergedConfiguration;->getGlobalConfiguration()Landroid/content/res/Configuration; -HSPLandroid/util/MergedConfiguration;->getMergedConfiguration()Landroid/content/res/Configuration; -HSPLandroid/util/MergedConfiguration;->getOverrideConfiguration()Landroid/content/res/Configuration; -HSPLandroid/util/MergedConfiguration;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/util/MergedConfiguration;->setConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V -HSPLandroid/util/MergedConfiguration;->updateMergedConfig()V -HSPLandroid/util/MutableBoolean;-><init>(Z)V -HSPLandroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair; -HSPLandroid/util/Pair;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/Pair;->hashCode()I -HSPLandroid/util/Pair;->toString()Ljava/lang/String; -HSPLandroid/util/PathParser$PathData;-><init>(Landroid/util/PathParser$PathData;)V -HSPLandroid/util/PathParser$PathData;-><init>(Ljava/lang/String;)V -HSPLandroid/util/PathParser$PathData;->finalize()V -HSPLandroid/util/PathParser$PathData;->getNativePtr()J -HSPLandroid/util/PathParser;->-$$Nest$smnCreateEmptyPathData()J -HSPLandroid/util/PathParser;->-$$Nest$smnCreatePathData(J)J -HSPLandroid/util/PathParser;->-$$Nest$smnCreatePathDataFromString(Ljava/lang/String;I)J -HSPLandroid/util/PathParser;->-$$Nest$smnFinalize(J)V -HSPLandroid/util/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path; -HSPLandroid/util/Pools$SimplePool;-><init>(I)V -HSPLandroid/util/Pools$SimplePool;->acquire()Ljava/lang/Object; -HSPLandroid/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z -HSPLandroid/util/Pools$SimplePool;->release(Ljava/lang/Object;)Z -HSPLandroid/util/Pools$SynchronizedPool;-><init>(I)V -HSPLandroid/util/Pools$SynchronizedPool;-><init>(ILjava/lang/Object;)V -HSPLandroid/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object; -HSPLandroid/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z -HSPLandroid/util/PrefixPrinter;->println(Ljava/lang/String;)V -HSPLandroid/util/PrintWriterPrinter;->println(Ljava/lang/String;)V -HSPLandroid/util/Property;-><init>(Ljava/lang/Class;Ljava/lang/String;)V -HSPLandroid/util/Property;->getName()Ljava/lang/String; -HSPLandroid/util/Property;->getType()Ljava/lang/Class; -HSPLandroid/util/Range;-><init>(Ljava/lang/Comparable;Ljava/lang/Comparable;)V -HSPLandroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable; -HSPLandroid/util/Range;->contains(Landroid/util/Range;)Z -HSPLandroid/util/Range;->contains(Ljava/lang/Comparable;)Z -HSPLandroid/util/Range;->create(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range; -HSPLandroid/util/Range;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/Range;->extend(Landroid/util/Range;)Landroid/util/Range; -HSPLandroid/util/Range;->getLower()Ljava/lang/Comparable; -HSPLandroid/util/Range;->getUpper()Ljava/lang/Comparable; -HSPLandroid/util/Range;->hashCode()I -HSPLandroid/util/Range;->intersect(Landroid/util/Range;)Landroid/util/Range; -HSPLandroid/util/Range;->intersect(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range; -HSPLandroid/util/Rational;-><init>(II)V -HSPLandroid/util/Rational;->compareTo(Landroid/util/Rational;)I -HSPLandroid/util/Rational;->compareTo(Ljava/lang/Object;)I -HSPLandroid/util/Singleton;-><init>()V -HSPLandroid/util/Singleton;->get()Ljava/lang/Object; -HSPLandroid/util/Size;-><init>(II)V -HSPLandroid/util/Size;->equals(Ljava/lang/Object;)Z -HSPLandroid/util/Size;->getHeight()I -HSPLandroid/util/Size;->getWidth()I -HSPLandroid/util/Size;->hashCode()I -HSPLandroid/util/Size;->parseSize(Ljava/lang/String;)Landroid/util/Size; -HSPLandroid/util/Size;->toString()Ljava/lang/String; -HSPLandroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I -HSPLandroid/util/SparseArray;-><init>()V -HSPLandroid/util/SparseArray;-><init>(I)V -HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V+]Landroid/util/SparseArray;Landroid/util/SparseArray; -HSPLandroid/util/SparseArray;->clear()V -HSPLandroid/util/SparseArray;->clone()Landroid/util/SparseArray; -HSPLandroid/util/SparseArray;->contains(I)Z -HSPLandroid/util/SparseArray;->contentEquals(Landroid/util/SparseArray;)Z -HSPLandroid/util/SparseArray;->delete(I)V -HSPLandroid/util/SparseArray;->gc()V -HSPLandroid/util/SparseArray;->get(I)Ljava/lang/Object;+]Landroid/util/SparseArray;missing_types -HSPLandroid/util/SparseArray;->get(ILjava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/SparseArray;->indexOfKey(I)I -HSPLandroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I -HSPLandroid/util/SparseArray;->keyAt(I)I -HSPLandroid/util/SparseArray;->put(ILjava/lang/Object;)V -HSPLandroid/util/SparseArray;->remove(I)V -HSPLandroid/util/SparseArray;->removeAt(I)V -HSPLandroid/util/SparseArray;->removeReturnOld(I)Ljava/lang/Object; -HSPLandroid/util/SparseArray;->setValueAt(ILjava/lang/Object;)V -HSPLandroid/util/SparseArray;->size()I -HSPLandroid/util/SparseArray;->toString()Ljava/lang/String; -HSPLandroid/util/SparseArray;->valueAt(I)Ljava/lang/Object; -HSPLandroid/util/SparseArrayMap;-><init>()V -HSPLandroid/util/SparseArrayMap;->add(ILjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/SparseArrayMap;->get(ILjava/lang/Object;)Ljava/lang/Object; -HSPLandroid/util/SparseBooleanArray;-><init>()V -HSPLandroid/util/SparseBooleanArray;-><init>(I)V -HSPLandroid/util/SparseBooleanArray;->append(IZ)V -HSPLandroid/util/SparseBooleanArray;->clear()V -HSPLandroid/util/SparseBooleanArray;->clone()Landroid/util/SparseBooleanArray; -HSPLandroid/util/SparseBooleanArray;->delete(I)V -HSPLandroid/util/SparseBooleanArray;->get(I)Z -HSPLandroid/util/SparseBooleanArray;->get(IZ)Z -HSPLandroid/util/SparseBooleanArray;->indexOfKey(I)I -HSPLandroid/util/SparseBooleanArray;->indexOfValue(Z)I -HSPLandroid/util/SparseBooleanArray;->keyAt(I)I -HSPLandroid/util/SparseBooleanArray;->put(IZ)V -HSPLandroid/util/SparseBooleanArray;->size()I -HSPLandroid/util/SparseBooleanArray;->valueAt(I)Z -HSPLandroid/util/SparseIntArray;-><init>()V -HSPLandroid/util/SparseIntArray;-><init>(I)V -HSPLandroid/util/SparseIntArray;->append(II)V -HSPLandroid/util/SparseIntArray;->clear()V -HSPLandroid/util/SparseIntArray;->clone()Landroid/util/SparseIntArray; -HSPLandroid/util/SparseIntArray;->copyKeys()[I -HSPLandroid/util/SparseIntArray;->delete(I)V -HSPLandroid/util/SparseIntArray;->get(I)I+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray; -HSPLandroid/util/SparseIntArray;->get(II)I -HSPLandroid/util/SparseIntArray;->indexOfKey(I)I -HSPLandroid/util/SparseIntArray;->indexOfValue(I)I -HSPLandroid/util/SparseIntArray;->keyAt(I)I -HSPLandroid/util/SparseIntArray;->put(II)V -HSPLandroid/util/SparseIntArray;->removeAt(I)V -HSPLandroid/util/SparseIntArray;->size()I -HSPLandroid/util/SparseIntArray;->valueAt(I)I -HSPLandroid/util/SparseLongArray;-><init>()V -HSPLandroid/util/SparseLongArray;-><init>(I)V -HSPLandroid/util/SparseLongArray;->clear()V -HSPLandroid/util/SparseLongArray;->delete(I)V -HSPLandroid/util/SparseLongArray;->get(I)J -HSPLandroid/util/SparseLongArray;->get(IJ)J -HSPLandroid/util/SparseLongArray;->indexOfKey(I)I -HSPLandroid/util/SparseLongArray;->keyAt(I)I -HSPLandroid/util/SparseLongArray;->put(IJ)V -HSPLandroid/util/SparseLongArray;->removeAt(I)V -HSPLandroid/util/SparseLongArray;->size()I -HSPLandroid/util/SparseLongArray;->valueAt(I)J -HSPLandroid/util/SparseSetArray;-><init>()V -HSPLandroid/util/SparseSetArray;->add(ILjava/lang/Object;)Z -HSPLandroid/util/SparseSetArray;->get(I)Landroid/util/ArraySet; -HSPLandroid/util/Spline$MonotoneCubicSpline;-><init>([F[F)V -HSPLandroid/util/Spline$MonotoneCubicSpline;->interpolate(F)F -HSPLandroid/util/StateSet;->get(I)[I -HSPLandroid/util/StateSet;->stateSetMatches([I[I)Z -HSPLandroid/util/StateSet;->trimStateSet([II)[I -HSPLandroid/util/SystemConfigFileCommitEventLogger;-><init>(Ljava/lang/String;)V -HSPLandroid/util/TimeUtils;->formatDuration(J)Ljava/lang/String; -HSPLandroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;)V -HSPLandroid/util/TimeUtils;->formatDurationLocked(JI)I -HSPLandroid/util/TimeUtils;->printFieldLocked([CICIZI)I -HSPLandroid/util/TimingLogger;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/util/TimingLogger;->addSplit(Ljava/lang/String;)V -HSPLandroid/util/TimingLogger;->dumpToLog()V -HSPLandroid/util/TimingLogger;->reset()V -HSPLandroid/util/TimingLogger;->reset(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;J)V -HSPLandroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;JI)V -HSPLandroid/util/TimingsTraceLog;->assertSameThread()V -HSPLandroid/util/TimingsTraceLog;->logDuration(Ljava/lang/String;J)V -HSPLandroid/util/TimingsTraceLog;->traceBegin(Ljava/lang/String;)V -HSPLandroid/util/TimingsTraceLog;->traceEnd()V -HSPLandroid/util/TypedValue;-><init>()V -HSPLandroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F -HSPLandroid/util/TypedValue;->coerceToString()Ljava/lang/CharSequence; -HSPLandroid/util/TypedValue;->coerceToString(II)Ljava/lang/String; -HSPLandroid/util/TypedValue;->complexToDimension(ILandroid/util/DisplayMetrics;)F -HSPLandroid/util/TypedValue;->complexToDimensionPixelOffset(ILandroid/util/DisplayMetrics;)I -HSPLandroid/util/TypedValue;->complexToDimensionPixelSize(ILandroid/util/DisplayMetrics;)I -HSPLandroid/util/TypedValue;->complexToFloat(I)F -HSPLandroid/util/TypedValue;->complexToFraction(IFF)F -HSPLandroid/util/TypedValue;->getComplexUnit()I -HSPLandroid/util/TypedValue;->getDimension(Landroid/util/DisplayMetrics;)F -HSPLandroid/util/TypedValue;->getFloat()F -HSPLandroid/util/TypedValue;->getFraction(FF)F -HSPLandroid/util/TypedValue;->toString()Ljava/lang/String; -HSPLandroid/util/UtilConfig;->setThrowExceptionForUpperArrayOutOfBounds(Z)V -HSPLandroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet; -HSPLandroid/util/Xml;->newFastPullParser()Lcom/android/modules/utils/TypedXmlPullParser; -HSPLandroid/util/Xml;->newFastSerializer()Lcom/android/modules/utils/TypedXmlSerializer; -HSPLandroid/util/Xml;->newPullParser()Lorg/xmlpull/v1/XmlPullParser; -HSPLandroid/util/Xml;->newSerializer()Lorg/xmlpull/v1/XmlSerializer; -HSPLandroid/util/proto/EncodedBuffer;-><init>(I)V -HSPLandroid/util/proto/EncodedBuffer;->editRawFixed32(II)V -HSPLandroid/util/proto/EncodedBuffer;->getBytes(I)[B -HSPLandroid/util/proto/EncodedBuffer;->getRawFixed32At(I)I -HSPLandroid/util/proto/EncodedBuffer;->getRawVarint32Size(I)I -HSPLandroid/util/proto/EncodedBuffer;->getReadPos()I -HSPLandroid/util/proto/EncodedBuffer;->getReadableSize()I -HSPLandroid/util/proto/EncodedBuffer;->getWritePos()I -HSPLandroid/util/proto/EncodedBuffer;->readRawByte()B -HSPLandroid/util/proto/EncodedBuffer;->readRawFixed32()I -HSPLandroid/util/proto/EncodedBuffer;->readRawUnsigned()J -HSPLandroid/util/proto/EncodedBuffer;->rewindWriteTo(I)V -HSPLandroid/util/proto/EncodedBuffer;->skipRead(I)V -HSPLandroid/util/proto/EncodedBuffer;->startEditing()V -HSPLandroid/util/proto/EncodedBuffer;->writeFromThisBuffer(II)V -HSPLandroid/util/proto/EncodedBuffer;->writeRawBuffer([B)V -HSPLandroid/util/proto/EncodedBuffer;->writeRawBuffer([BII)V -HSPLandroid/util/proto/EncodedBuffer;->writeRawByte(B)V -HSPLandroid/util/proto/EncodedBuffer;->writeRawFixed32(I)V -HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint32(I)V -HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint64(J)V -HSPLandroid/util/proto/ProtoInputStream;->assertFieldNumber(J)V -HSPLandroid/util/proto/ProtoInputStream;->assertFreshData()V -HSPLandroid/util/proto/ProtoInputStream;->assertWireType(I)V -HSPLandroid/util/proto/ProtoInputStream;->checkPacked(J)V -HSPLandroid/util/proto/ProtoInputStream;->end(J)V -HSPLandroid/util/proto/ProtoInputStream;->fillBuffer()V -HSPLandroid/util/proto/ProtoInputStream;->getFieldNumber()I -HSPLandroid/util/proto/ProtoInputStream;->getOffset()I -HSPLandroid/util/proto/ProtoInputStream;->incOffset(I)V -HSPLandroid/util/proto/ProtoInputStream;->nextField()I -HSPLandroid/util/proto/ProtoInputStream;->nextField(J)Z -HSPLandroid/util/proto/ProtoInputStream;->readInt(J)I -HSPLandroid/util/proto/ProtoInputStream;->readLong(J)J -HSPLandroid/util/proto/ProtoInputStream;->readRawString(I)Ljava/lang/String; -HSPLandroid/util/proto/ProtoInputStream;->readString(J)Ljava/lang/String; -HSPLandroid/util/proto/ProtoInputStream;->readTag()V -HSPLandroid/util/proto/ProtoInputStream;->readVarint()J -HSPLandroid/util/proto/ProtoInputStream;->start(J)J -HSPLandroid/util/proto/ProtoOutputStream;-><init>()V -HSPLandroid/util/proto/ProtoOutputStream;-><init>(I)V -HSPLandroid/util/proto/ProtoOutputStream;->assertNotCompacted()V -HSPLandroid/util/proto/ProtoOutputStream;->compactIfNecessary()V -HSPLandroid/util/proto/ProtoOutputStream;->compactSizes(I)V -HSPLandroid/util/proto/ProtoOutputStream;->editEncodedSize(I)I -HSPLandroid/util/proto/ProtoOutputStream;->end(J)V -HSPLandroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V -HSPLandroid/util/proto/ProtoOutputStream;->flush()V -HSPLandroid/util/proto/ProtoOutputStream;->getTagSize(I)I -HSPLandroid/util/proto/ProtoOutputStream;->readRawTag()I -HSPLandroid/util/proto/ProtoOutputStream;->start(J)J -HSPLandroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J -HSPLandroid/util/proto/ProtoOutputStream;->write(JI)V -HSPLandroid/util/proto/ProtoOutputStream;->write(JJ)V -HSPLandroid/util/proto/ProtoOutputStream;->write(JLjava/lang/String;)V -HSPLandroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V -HSPLandroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)V -HSPLandroid/util/proto/ProtoOutputStream;->writeStringImpl(ILjava/lang/String;)V -HSPLandroid/util/proto/ProtoOutputStream;->writeTag(II)V -HSPLandroid/util/proto/ProtoOutputStream;->writeUnsignedVarintFromSignedInt(I)V -HSPLandroid/util/proto/ProtoOutputStream;->writeUtf8String(ILjava/lang/String;)V -HSPLandroid/util/proto/ProtoStream;-><init>()V -HSPLandroid/util/proto/ProtoStream;->getDepthFromToken(J)I -HSPLandroid/util/proto/ProtoStream;->getOffsetFromToken(J)I -HSPLandroid/util/proto/ProtoStream;->getRepeatedFromToken(J)Z -HSPLandroid/util/proto/ProtoStream;->makeToken(IZIII)J -HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/view/AbsSavedState; -HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object; -HSPLandroid/view/AbsSavedState;-><init>(Landroid/os/Parcelable;)V -HSPLandroid/view/AbsSavedState;->getSuperState()Landroid/os/Parcelable; -HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer; -HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object; -HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer; -HSPLandroid/view/Choreographer$2;->initialValue()Ljava/lang/Object; -HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;)V -HSPLandroid/view/Choreographer$CallbackQueue;-><init>(Landroid/view/Choreographer;Landroid/view/Choreographer$CallbackQueue-IA;)V -HSPLandroid/view/Choreographer$CallbackQueue;->addCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landroid/view/Choreographer$CallbackRecord; -HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/view/Choreographer$CallbackRecord;-><init>()V -HSPLandroid/view/Choreographer$CallbackRecord;-><init>(Landroid/view/Choreographer$CallbackRecord-IA;)V -HSPLandroid/view/Choreographer$CallbackRecord;->run(J)V+]Landroid/view/Choreographer$FrameCallback;missing_types]Ljava/lang/Runnable;missing_types -HSPLandroid/view/Choreographer$CallbackRecord;->run(Landroid/view/Choreographer$FrameData;)V+]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData;]Landroid/view/Choreographer$CallbackRecord;Landroid/view/Choreographer$CallbackRecord; -HSPLandroid/view/Choreographer$FrameData;->-$$Nest$fgetmFrameTimeNanos(Landroid/view/Choreographer$FrameData;)J -HSPLandroid/view/Choreographer$FrameData;-><init>()V -HSPLandroid/view/Choreographer$FrameData;->allocateFrameTimelines(I)V -HSPLandroid/view/Choreographer$FrameData;->checkInCallback()V -HSPLandroid/view/Choreographer$FrameData;->getFrameTimeNanos()J -HSPLandroid/view/Choreographer$FrameData;->getFrameTimelines()[Landroid/view/Choreographer$FrameTimeline; -HSPLandroid/view/Choreographer$FrameData;->getPreferredFrameTimeline()Landroid/view/Choreographer$FrameTimeline; -HSPLandroid/view/Choreographer$FrameData;->setInCallback(Z)V+]Landroid/view/Choreographer$FrameTimeline;Landroid/view/Choreographer$FrameTimeline; -HSPLandroid/view/Choreographer$FrameData;->update(JI)V -HSPLandroid/view/Choreographer$FrameData;->update(JLandroid/view/DisplayEventReceiver$VsyncEventData;)Landroid/view/Choreographer$FrameTimeline;+]Landroid/view/Choreographer$FrameTimeline;Landroid/view/Choreographer$FrameTimeline; -HSPLandroid/view/Choreographer$FrameData;->update(JLandroid/view/DisplayEventReceiver;J)Landroid/view/Choreographer$FrameTimeline; -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;IJ)V -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->onVsync(JJILandroid/view/DisplayEventReceiver$VsyncEventData;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/os/Message;Landroid/os/Message;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler;]Landroid/view/DisplayEventReceiver$VsyncEventData;Landroid/view/DisplayEventReceiver$VsyncEventData; -HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->run()V+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/view/Choreographer$FrameHandler;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;)V -HSPLandroid/view/Choreographer$FrameHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/view/Choreographer$FrameTimeline;->-$$Nest$fgetmDeadlineNanos(Landroid/view/Choreographer$FrameTimeline;)J -HSPLandroid/view/Choreographer$FrameTimeline;->-$$Nest$fgetmExpectedPresentationTimeNanos(Landroid/view/Choreographer$FrameTimeline;)J -HSPLandroid/view/Choreographer$FrameTimeline;->-$$Nest$fgetmVsyncId(Landroid/view/Choreographer$FrameTimeline;)J -HSPLandroid/view/Choreographer$FrameTimeline;-><init>()V -HSPLandroid/view/Choreographer$FrameTimeline;->getDeadlineNanos()J -HSPLandroid/view/Choreographer$FrameTimeline;->setInCallback(Z)V -HSPLandroid/view/Choreographer$FrameTimeline;->update(JJJ)V -HSPLandroid/view/Choreographer;->-$$Nest$fgetmHandler(Landroid/view/Choreographer;)Landroid/view/Choreographer$FrameHandler; -HSPLandroid/view/Choreographer;->-$$Nest$mobtainCallbackLocked(Landroid/view/Choreographer;JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord; -HSPLandroid/view/Choreographer;->-$$Nest$sfgetVSYNC_CALLBACK_TOKEN()Ljava/lang/Object; -HSPLandroid/view/Choreographer;->-$$Nest$sfputmMainInstance(Landroid/view/Choreographer;)V -HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;I)V -HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;IJ)V -HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;ILandroid/view/Choreographer-IA;)V -HSPLandroid/view/Choreographer;->doCallbacks(IJ)V+]Landroid/view/Choreographer$CallbackQueue;Landroid/view/Choreographer$CallbackQueue;]Landroid/view/Choreographer$CallbackRecord;Landroid/view/Choreographer$CallbackRecord;]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData; -HSPLandroid/view/Choreographer;->doFrame(JILandroid/view/DisplayEventReceiver$VsyncEventData;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/Choreographer$FrameData;Landroid/view/Choreographer$FrameData;]Landroid/graphics/FrameInfo;Landroid/graphics/FrameInfo;]Landroid/view/Choreographer;Landroid/view/Choreographer;]Landroid/view/DisplayEventReceiver$VsyncEventData;Landroid/view/DisplayEventReceiver$VsyncEventData; -HSPLandroid/view/Choreographer;->doScheduleCallback(I)V -HSPLandroid/view/Choreographer;->doScheduleVsync()V -HSPLandroid/view/Choreographer;->getFrameIntervalNanos()J -HSPLandroid/view/Choreographer;->getFrameTime()J+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/view/Choreographer;->getFrameTimeNanos()J -HSPLandroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; -HSPLandroid/view/Choreographer;->getMainThreadInstance()Landroid/view/Choreographer; -HSPLandroid/view/Choreographer;->getRefreshRate()F -HSPLandroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer; -HSPLandroid/view/Choreographer;->getVsyncId()J -HSPLandroid/view/Choreographer;->isRunningOnLooperThreadLocked()Z -HSPLandroid/view/Choreographer;->obtainCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord; -HSPLandroid/view/Choreographer;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/view/Choreographer;->postCallbackDelayed(ILjava/lang/Runnable;Ljava/lang/Object;J)V -HSPLandroid/view/Choreographer;->postCallbackDelayedInternal(ILjava/lang/Object;Ljava/lang/Object;J)V+]Landroid/view/Choreographer$CallbackQueue;Landroid/view/Choreographer$CallbackQueue;]Landroid/os/Message;Landroid/os/Message;]Landroid/view/Choreographer$FrameHandler;Landroid/view/Choreographer$FrameHandler; -HSPLandroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/view/Choreographer;->postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V -HSPLandroid/view/Choreographer;->recycleCallbackLocked(Landroid/view/Choreographer$CallbackRecord;)V -HSPLandroid/view/Choreographer;->removeCallbacks(ILjava/lang/Runnable;Ljava/lang/Object;)V -HSPLandroid/view/Choreographer;->removeCallbacksInternal(ILjava/lang/Object;Ljava/lang/Object;)V -HSPLandroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer$FrameCallback;)V -HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V -HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V+]Landroid/view/Choreographer$FrameDisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver; -HSPLandroid/view/Choreographer;->setFPSDivisor(I)V -HSPLandroid/view/ContextThemeWrapper;-><init>()V -HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V -HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V -HSPLandroid/view/ContextThemeWrapper;->attachBaseContext(Landroid/content/Context;)V -HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager; -HSPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration; -HSPLandroid/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources; -HSPLandroid/view/ContextThemeWrapper;->getResourcesInternal()Landroid/content/res/Resources; -HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/view/ContextThemeWrapper;->getTheme()Landroid/content/res/Resources$Theme;+]Landroid/view/ContextThemeWrapper;Landroid/view/ContextThemeWrapper; -HSPLandroid/view/ContextThemeWrapper;->initializeTheme()V -HSPLandroid/view/ContextThemeWrapper;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V -HSPLandroid/view/ContextThemeWrapper;->setTheme(I)V -HSPLandroid/view/CrossWindowBlurListeners;-><clinit>()V -HSPLandroid/view/Display$HdrCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Display$HdrCapabilities; -HSPLandroid/view/Display$HdrCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;Landroid/view/Display$HdrCapabilities-IA;)V -HSPLandroid/view/Display$HdrCapabilities;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/Display$HdrCapabilities;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/view/Display$HdrCapabilities;->toString()Ljava/lang/String; -HSPLandroid/view/Display$HdrCapabilities;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/Display$Mode$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Display$Mode; -HSPLandroid/view/Display$Mode$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/Display$Mode;-><init>(IIIF)V -HSPLandroid/view/Display$Mode;-><init>(IIIFF[F[I)V -HSPLandroid/view/Display$Mode;-><init>(IIIF[F[I)V -HSPLandroid/view/Display$Mode;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/Display$Mode;-><init>(Landroid/os/Parcel;Landroid/view/Display$Mode-IA;)V -HSPLandroid/view/Display$Mode;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/Display$Mode;->getModeId()I -HSPLandroid/view/Display$Mode;->getPhysicalHeight()I -HSPLandroid/view/Display$Mode;->getPhysicalWidth()I -HSPLandroid/view/Display$Mode;->getRefreshRate()F -HSPLandroid/view/Display$Mode;->matches(IIF)Z -HSPLandroid/view/Display$Mode;->toString()Ljava/lang/String; -HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/content/res/Resources;)V -HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;)V -HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;Landroid/content/res/Resources;)V -HSPLandroid/view/Display;->getAppVsyncOffsetNanos()J -HSPLandroid/view/Display;->getCutout()Landroid/view/DisplayCutout; -HSPLandroid/view/Display;->getDisplayAdjustments()Landroid/view/DisplayAdjustments; -HSPLandroid/view/Display;->getDisplayId()I -HSPLandroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z -HSPLandroid/view/Display;->getFlags()I -HSPLandroid/view/Display;->getHdrSdrRatio()F -HSPLandroid/view/Display;->getHeight()I -HSPLandroid/view/Display;->getInstallOrientation()I -HSPLandroid/view/Display;->getLocalRotation()I+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V -HSPLandroid/view/Display;->getMode()Landroid/view/Display$Mode; -HSPLandroid/view/Display;->getName()Ljava/lang/String; -HSPLandroid/view/Display;->getPreferredWideGamutColorSpace()Landroid/graphics/ColorSpace; -HSPLandroid/view/Display;->getPresentationDeadlineNanos()J -HSPLandroid/view/Display;->getRealMetrics(Landroid/util/DisplayMetrics;)V -HSPLandroid/view/Display;->getRealSize(Landroid/graphics/Point;)V -HSPLandroid/view/Display;->getRefreshRate()F -HSPLandroid/view/Display;->getRotation()I -HSPLandroid/view/Display;->getSize(Landroid/graphics/Point;)V -HSPLandroid/view/Display;->getState()I -HSPLandroid/view/Display;->getSupportedColorModes()[I -HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode; -HSPLandroid/view/Display;->getSupportedWideColorGamut()[Landroid/graphics/ColorSpace; -HSPLandroid/view/Display;->getWidth()I -HSPLandroid/view/Display;->hasAccess(IIII)Z -HSPLandroid/view/Display;->isValid()Z -HSPLandroid/view/Display;->isWideColorGamut()Z -HSPLandroid/view/Display;->shouldReportMaxBounds()Z -HSPLandroid/view/Display;->stateToString(I)Ljava/lang/String; -HSPLandroid/view/Display;->updateCachedAppSizeIfNeededLocked()V -HSPLandroid/view/Display;->updateDisplayInfoLocked()V+]Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal; -HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayAddress$Physical; -HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/DisplayAddress$Physical;-><init>(J)V -HSPLandroid/view/DisplayAddress$Physical;-><init>(JLandroid/view/DisplayAddress$Physical-IA;)V -HSPLandroid/view/DisplayAddress$Physical;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayAddress$Physical;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/DisplayAddress;-><init>()V -HSPLandroid/view/DisplayAdjustments;-><init>()V -HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/content/res/Configuration;)V -HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/view/DisplayAdjustments;)V -HSPLandroid/view/DisplayAdjustments;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayAdjustments;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo; -HSPLandroid/view/DisplayAdjustments;->getConfiguration()Landroid/content/res/Configuration; -HSPLandroid/view/DisplayAdjustments;->hashCode()I -HSPLandroid/view/DisplayAdjustments;->setCompatibilityInfo(Landroid/content/res/CompatibilityInfo;)V -HSPLandroid/view/DisplayAdjustments;->setConfiguration(Landroid/content/res/Configuration;)V -HSPLandroid/view/DisplayCutout$Bounds;->-$$Nest$mgetRects(Landroid/view/DisplayCutout$Bounds;)[Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout$Bounds;-><init>([Landroid/graphics/Rect;Z)V -HSPLandroid/view/DisplayCutout$Bounds;-><init>([Landroid/graphics/Rect;ZLandroid/view/DisplayCutout$Bounds-IA;)V -HSPLandroid/view/DisplayCutout$Bounds;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayCutout$Bounds;->getRects()[Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout$Bounds;->isEmpty()Z -HSPLandroid/view/DisplayCutout$CutoutPathParserInfo;-><init>(IIIIFLjava/lang/String;IFF)V -HSPLandroid/view/DisplayCutout$CutoutPathParserInfo;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayCutout$ParcelableWrapper$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayCutout$ParcelableWrapper; -HSPLandroid/view/DisplayCutout$ParcelableWrapper$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/DisplayCutout$ParcelableWrapper;-><init>()V -HSPLandroid/view/DisplayCutout$ParcelableWrapper;-><init>(Landroid/view/DisplayCutout;)V -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->get()Landroid/view/DisplayCutout; -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->readCutoutFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayCutout; -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout$ParcelableWrapper;)V -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout;)V -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeCutoutToParcel(Landroid/view/DisplayCutout;Landroid/os/Parcel;I)V -HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;Landroid/view/DisplayCutout$Bounds;Landroid/view/DisplayCutout$CutoutPathParserInfo;[I)V -HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;Landroid/view/DisplayCutout$Bounds;Landroid/view/DisplayCutout$CutoutPathParserInfo;[ILandroid/view/DisplayCutout-IA;)V -HSPLandroid/view/DisplayCutout;-><init>(Landroid/graphics/Rect;Landroid/graphics/Insets;[Landroid/graphics/Rect;Landroid/view/DisplayCutout$CutoutPathParserInfo;Z)V -HSPLandroid/view/DisplayCutout;->atLeastZero(I)I -HSPLandroid/view/DisplayCutout;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/DisplayCutout;->getBoundingRects()Ljava/util/List; -HSPLandroid/view/DisplayCutout;->getBoundingRectsAll()[Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout;->getCopyOrRef(Landroid/graphics/Rect;Z)Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout;->getSafeInsetBottom()I -HSPLandroid/view/DisplayCutout;->getSafeInsetLeft()I -HSPLandroid/view/DisplayCutout;->getSafeInsetRight()I -HSPLandroid/view/DisplayCutout;->getSafeInsetTop()I -HSPLandroid/view/DisplayCutout;->inset(IIII)Landroid/view/DisplayCutout; -HSPLandroid/view/DisplayCutout;->insetInsets(IIIILandroid/graphics/Rect;)Landroid/graphics/Rect; -HSPLandroid/view/DisplayCutout;->isBoundsEmpty()Z -HSPLandroid/view/DisplayCutout;->isEmpty()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;-><init>()V -HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;-><init>(JJJ)V -HSPLandroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;->copyFrom(Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;)V -HSPLandroid/view/DisplayEventReceiver$VsyncEventData;-><init>()V -HSPLandroid/view/DisplayEventReceiver$VsyncEventData;-><init>([Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;IIJ)V -HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->copyFrom(Landroid/view/DisplayEventReceiver$VsyncEventData;)V+]Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline;Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline; -HSPLandroid/view/DisplayEventReceiver$VsyncEventData;->preferredFrameTimeline()Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline; -HSPLandroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;II)V -HSPLandroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;IIJ)V -HSPLandroid/view/DisplayEventReceiver;->dispatchVsync(JJI)V+]Landroid/view/DisplayEventReceiver;Landroid/view/Choreographer$FrameDisplayEventReceiver; -HSPLandroid/view/DisplayEventReceiver;->getLatestVsyncEventData()Landroid/view/DisplayEventReceiver$VsyncEventData; -HSPLandroid/view/DisplayEventReceiver;->scheduleVsync()V -HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayInfo; -HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/DisplayInfo;-><init>()V -HSPLandroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;Landroid/view/DisplayInfo-IA;)V -HSPLandroid/view/DisplayInfo;->copyFrom(Landroid/view/DisplayInfo;)V -HSPLandroid/view/DisplayInfo;->equals(Landroid/view/DisplayInfo;)Z+]Landroid/util/SparseArray;Landroid/util/SparseArray;]Landroid/view/DisplayInfo;Landroid/view/DisplayInfo; -HSPLandroid/view/DisplayInfo;->findMode(I)Landroid/view/Display$Mode; -HSPLandroid/view/DisplayInfo;->flagsToString(I)Ljava/lang/String; -HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V -HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/view/DisplayAdjustments;)V -HSPLandroid/view/DisplayInfo;->getLogicalMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V -HSPLandroid/view/DisplayInfo;->getMaxBoundsMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V -HSPLandroid/view/DisplayInfo;->getMetricsWithSize(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;II)V+]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLandroid/view/DisplayInfo;->getMode()Landroid/view/Display$Mode; -HSPLandroid/view/DisplayInfo;->getRefreshRate()F -HSPLandroid/view/DisplayInfo;->hasAccess(I)Z -HSPLandroid/view/DisplayInfo;->isWideColorGamut()Z -HSPLandroid/view/DisplayInfo;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/view/DisplayInfo;->toString()Ljava/lang/String; -HSPLandroid/view/DisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/DisplayShape$1;-><init>()V -HSPLandroid/view/DisplayShape$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayShape; -HSPLandroid/view/DisplayShape$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/DisplayShape;-><clinit>()V -HSPLandroid/view/DisplayShape;-><init>(Ljava/lang/String;IIFI)V -HSPLandroid/view/DisplayShape;-><init>(Ljava/lang/String;IIFIIIF)V -HSPLandroid/view/DisplayShape;-><init>(Ljava/lang/String;IIFIIIFLandroid/view/DisplayShape-IA;)V -HSPLandroid/view/DisplayShape;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/FocusFinder$1;->initialValue()Landroid/view/FocusFinder; -HSPLandroid/view/FocusFinder$1;->initialValue()Ljava/lang/Object; -HSPLandroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLandroid/view/FocusFinder$FocusSorter;->sort([Landroid/view/View;IILandroid/view/ViewGroup;Z)V -HSPLandroid/view/FocusFinder$UserSpecifiedFocusComparator;-><init>(Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;)V -HSPLandroid/view/FocusFinder;-><init>()V -HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View; -HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View; -HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;ILjava/util/ArrayList;)Landroid/view/View; -HSPLandroid/view/FocusFinder;->findNextFocusInAbsoluteDirection(Ljava/util/ArrayList;Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View; -HSPLandroid/view/FocusFinder;->findNextUserSpecifiedFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View; -HSPLandroid/view/FocusFinder;->getEffectiveRoot(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup; -HSPLandroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder; -HSPLandroid/view/FocusFinder;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z -HSPLandroid/view/FocusFinder;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z -HSPLandroid/view/FrameMetrics;-><init>()V -HSPLandroid/view/FrameMetrics;->getMetric(I)J -HSPLandroid/view/FrameMetricsObserver;-><init>(Landroid/view/Window;Landroid/os/Handler;Landroid/view/Window$OnFrameMetricsAvailableListener;)V -HSPLandroid/view/FrameMetricsObserver;->getRendererObserver()Landroid/graphics/HardwareRendererObserver; -HSPLandroid/view/FrameMetricsObserver;->onFrameMetricsAvailable(I)V+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;)V -HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;Landroid/os/Handler;)V -HSPLandroid/view/GestureDetector$GestureHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDoubleTapEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onDown(Landroid/view/MotionEvent;)Z -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onLongPress(Landroid/view/MotionEvent;)V -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onShowPress(Landroid/view/MotionEvent;)V -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onSingleTapConfirmed(Landroid/view/MotionEvent;)Z -HSPLandroid/view/GestureDetector$SimpleOnGestureListener;->onSingleTapUp(Landroid/view/MotionEvent;)Z -HSPLandroid/view/GestureDetector;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V -HSPLandroid/view/GestureDetector;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V -HSPLandroid/view/GestureDetector;->cancel()V -HSPLandroid/view/GestureDetector;->cancelTaps()V -HSPLandroid/view/GestureDetector;->init(Landroid/content/Context;)V -HSPLandroid/view/GestureDetector;->isConsideredDoubleTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z -HSPLandroid/view/GestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/GestureDetector;->recordGestureClassification(I)V -HSPLandroid/view/GestureDetector;->setContextClickListener(Landroid/view/GestureDetector$OnContextClickListener;)V -HSPLandroid/view/GestureDetector;->setIsLongpressEnabled(Z)V -HSPLandroid/view/GestureDetector;->setOnDoubleTapListener(Landroid/view/GestureDetector$OnDoubleTapListener;)V -HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;)V -HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;)V -HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;I)V -HSPLandroid/view/Gravity;->applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;)V -HSPLandroid/view/Gravity;->getAbsoluteGravity(II)I -HSPLandroid/view/Gravity;->isHorizontal(I)Z -HSPLandroid/view/Gravity;->isVertical(I)Z -HSPLandroid/view/HandlerActionQueue$HandlerAction;-><init>(Ljava/lang/Runnable;J)V -HSPLandroid/view/HandlerActionQueue$HandlerAction;->matches(Ljava/lang/Runnable;)Z -HSPLandroid/view/HandlerActionQueue;-><init>()V -HSPLandroid/view/HandlerActionQueue;->executeActions(Landroid/os/Handler;)V+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler; -HSPLandroid/view/HandlerActionQueue;->post(Ljava/lang/Runnable;)V -HSPLandroid/view/HandlerActionQueue;->postDelayed(Ljava/lang/Runnable;J)V -HSPLandroid/view/HandlerActionQueue;->removeCallbacks(Ljava/lang/Runnable;)V -HSPLandroid/view/HandwritingInitiator$HandwritableViewInfo;-><init>(Landroid/view/View;)V -HSPLandroid/view/HandwritingInitiator$HandwritableViewInfo;->getView()Landroid/view/View; -HSPLandroid/view/HandwritingInitiator$HandwritingAreaTracker;-><init>()V -HSPLandroid/view/HandwritingInitiator$HandwritingAreaTracker;->updateHandwritingAreaForView(Landroid/view/View;)V -HSPLandroid/view/HandwritingInitiator$State;->-$$Nest$fgetmShouldInitHandwriting(Landroid/view/HandwritingInitiator$State;)Z -HSPLandroid/view/HandwritingInitiator$State;->-$$Nest$fgetmStylusPointerId(Landroid/view/HandwritingInitiator$State;)I -HSPLandroid/view/HandwritingInitiator;->-$$Nest$smisViewActive(Landroid/view/View;)Z -HSPLandroid/view/HandwritingInitiator;-><init>(Landroid/view/ViewConfiguration;Landroid/view/inputmethod/InputMethodManager;)V -HSPLandroid/view/HandwritingInitiator;->clearConnectedView()V -HSPLandroid/view/HandwritingInitiator;->getConnectedView()Landroid/view/View; -HSPLandroid/view/HandwritingInitiator;->isViewActive(Landroid/view/View;)Z -HSPLandroid/view/HandwritingInitiator;->onInputConnectionClosed(Landroid/view/View;)V -HSPLandroid/view/HandwritingInitiator;->onInputConnectionCreated(Landroid/view/View;)V -HSPLandroid/view/HandwritingInitiator;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/HandwritingInitiator;->updateHandwritingAreasForView(Landroid/view/View;)V -HSPLandroid/view/HdrRenderState;->updateForFrame(J)Z -HSPLandroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/IGraphicsStats$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IGraphicsStats$Stub$Proxy;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor; -HSPLandroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats; -HSPLandroid/view/IGraphicsStatsCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IGraphicsStatsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/IRemoteAnimationRunner$Stub;-><init>()V -HSPLandroid/view/IRemoteAnimationRunner$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/ISystemGestureExclusionListener$Stub;-><init>()V -HSPLandroid/view/IWindow$Stub;-><init>()V -HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IWindow$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/view/IWindow$Stub;->getMaxTransactionId()I -HSPLandroid/view/IWindow$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/IWindowManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F -HSPLandroid/view/IWindowManager$Stub$Proxy;->getWindowInsets(ILandroid/os/IBinder;Landroid/view/InsetsState;)Z -HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z -HSPLandroid/view/IWindowManager$Stub$Proxy;->isInTouchMode(I)Z -HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardLocked()Z -HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardSecure(I)Z -HSPLandroid/view/IWindowManager$Stub$Proxy;->openSession(Landroid/view/IWindowSessionCallback;)Landroid/view/IWindowSession; -HSPLandroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager; -HSPLandroid/view/IWindowSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->addToDisplayAsUser(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIILandroid/view/InputChannel;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/graphics/Rect;[F)I -HSPLandroid/view/IWindowSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;I)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId; -HSPLandroid/view/IWindowSession$Stub$Proxy;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->pokeDrawLock(Landroid/os/IBinder;)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIIILandroid/window/ClientWindowFrames;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;Landroid/view/InsetsSourceControl$Array;Landroid/os/Bundle;)I -HSPLandroid/view/IWindowSession$Stub$Proxy;->relayoutAsync(Landroid/view/IWindow;Landroid/view/WindowManager$LayoutParams;IIIIII)V+]Landroid/os/IBinder;Landroid/os/BinderProxy;]Landroid/view/IWindowSession$Stub$Proxy;Landroid/view/IWindowSession$Stub$Proxy;]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/view/IWindowSession$Stub$Proxy;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->setOnBackInvokedCallbackInfo(Landroid/view/IWindow;Landroid/window/OnBackInvokedCallbackInfo;)V -HSPLandroid/view/IWindowSession$Stub$Proxy;->setWallpaperZoomOut(Landroid/os/IBinder;F)V -HSPLandroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession; -HSPLandroid/view/IWindowSessionCallback$Stub;-><init>()V -HSPLandroid/view/IWindowSessionCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/ImeFocusController;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ImeFocusController;->getImmDelegate()Landroid/view/ImeFocusController$InputMethodManagerDelegate; -HSPLandroid/view/ImeFocusController;->hasImeFocus()Z -HSPLandroid/view/ImeFocusController;->isInLocalFocusMode(Landroid/view/WindowManager$LayoutParams;)Z -HSPLandroid/view/ImeFocusController;->onPostWindowFocus(Landroid/view/View;ZLandroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ImeFocusController;->onPreWindowFocus(ZLandroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ImeFocusController;->onProcessImeInputStage(Ljava/lang/Object;Landroid/view/InputEvent;Landroid/view/WindowManager$LayoutParams;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;)I -HSPLandroid/view/ImeFocusController;->onTraversal(ZLandroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ImeFocusController;->onViewDetachedFromWindow(Landroid/view/View;)V -HSPLandroid/view/ImeFocusController;->onViewFocusChanged(Landroid/view/View;Z)V -HSPLandroid/view/ImeFocusController;->onWindowDismissed()V -HSPLandroid/view/ImeInsetsSourceConsumer;-><init>(ILandroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V -HSPLandroid/view/ImeInsetsSourceConsumer;->applyLocalVisibilityOverride()Z -HSPLandroid/view/ImeInsetsSourceConsumer;->getImm()Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/ImeInsetsSourceConsumer;->isRequestedVisibleAwaitingControl()Z -HSPLandroid/view/ImeInsetsSourceConsumer;->onPerceptible(Z)V -HSPLandroid/view/ImeInsetsSourceConsumer;->onShowRequested()V -HSPLandroid/view/ImeInsetsSourceConsumer;->onWindowFocusGained(Z)V -HSPLandroid/view/ImeInsetsSourceConsumer;->onWindowFocusLost()V -HSPLandroid/view/ImeInsetsSourceConsumer;->removeSurface()V -HSPLandroid/view/ImeInsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)Z -HSPLandroid/view/InputChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputChannel; -HSPLandroid/view/InputChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/InputChannel;-><init>()V -HSPLandroid/view/InputChannel;->dispose()V -HSPLandroid/view/InputChannel;->getToken()Landroid/os/IBinder; -HSPLandroid/view/InputChannel;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/view/InputChannel;->setNativeInputChannel(J)V -HSPLandroid/view/InputDevice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputDevice; -HSPLandroid/view/InputDevice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/InputDevice$MotionRange;-><init>(IIFFFFF)V -HSPLandroid/view/InputDevice;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/InputDevice;->addMotionRange(IIFFFFF)V -HSPLandroid/view/InputDevice;->getDevice(I)Landroid/view/InputDevice; -HSPLandroid/view/InputDevice;->getDeviceIds()[I -HSPLandroid/view/InputDevice;->getGeneration()I -HSPLandroid/view/InputDevice;->getSources()I -HSPLandroid/view/InputDevice;->isVirtual()Z -HSPLandroid/view/InputEvent;-><init>()V -HSPLandroid/view/InputEvent;->getSequenceNumber()I -HSPLandroid/view/InputEvent;->isFromSource(I)Z+]Landroid/view/InputEvent;Landroid/view/MotionEvent; -HSPLandroid/view/InputEvent;->prepareForReuse()V -HSPLandroid/view/InputEvent;->recycle()V -HSPLandroid/view/InputEvent;->recycleIfNeededAfterDispatch()V -HSPLandroid/view/InputEventAssigner;-><init>()V -HSPLandroid/view/InputEventAssigner;->notifyFrameProcessed()V -HSPLandroid/view/InputEventAssigner;->processEvent(Landroid/view/InputEvent;)I -HSPLandroid/view/InputEventCompatProcessor;-><init>(Landroid/content/Context;)V -HSPLandroid/view/InputEventCompatProcessor;->processInputEventForCompatibility(Landroid/view/InputEvent;)Ljava/util/List; -HSPLandroid/view/InputEventConsistencyVerifier;->isInstrumentationEnabled()Z -HSPLandroid/view/InputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V -HSPLandroid/view/InputEventReceiver;->consumeBatchedInputEvents(J)Z -HSPLandroid/view/InputEventReceiver;->dispatchInputEvent(ILandroid/view/InputEvent;)V -HSPLandroid/view/InputEventReceiver;->dispose()V -HSPLandroid/view/InputEventReceiver;->dispose(Z)V -HSPLandroid/view/InputEventReceiver;->finalize()V -HSPLandroid/view/InputEventReceiver;->finishInputEvent(Landroid/view/InputEvent;Z)V -HSPLandroid/view/InputEventReceiver;->onBatchedInputEventPending(I)V -HSPLandroid/view/InputEventReceiver;->reportTimeline(IJJ)V -HSPLandroid/view/InputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V -HSPLandroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V -HSPLandroid/view/InputEventSender;->dispose()V -HSPLandroid/view/InputEventSender;->dispose(Z)V -HSPLandroid/view/InputEventSender;->finalize()V -HSPLandroid/view/InputEventSender;->sendInputEvent(ILandroid/view/InputEvent;)Z -HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputMonitor; -HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/InputMonitor;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/InputMonitor;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/InsetsAnimationControlImpl$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -HSPLandroid/view/InsetsAnimationControlImpl;-><init>(Landroid/util/SparseArray;Landroid/graphics/Rect;Landroid/view/InsetsState;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/InsetsAnimationControlCallbacks;JLandroid/view/animation/Interpolator;IILandroid/content/res/CompatibilityInfo$Translator;Landroid/view/inputmethod/ImeTracker$Token;)V -HSPLandroid/view/InsetsAnimationControlImpl;->addTranslationToMatrix(IILandroid/graphics/Matrix;Landroid/graphics/Rect;)V -HSPLandroid/view/InsetsAnimationControlImpl;->applyChangeInsets(Landroid/view/InsetsState;)Z -HSPLandroid/view/InsetsAnimationControlImpl;->buildSideControlsMap(Landroid/util/SparseSetArray;Landroid/util/SparseArray;)V -HSPLandroid/view/InsetsAnimationControlImpl;->calculateInsets(Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/util/SparseArray;ZLandroid/util/SparseIntArray;)Landroid/graphics/Insets; -HSPLandroid/view/InsetsAnimationControlImpl;->calculateInsets(Landroid/view/InsetsState;Landroid/util/SparseArray;Z)Landroid/graphics/Insets; -HSPLandroid/view/InsetsAnimationControlImpl;->calculatePerceptible(Landroid/graphics/Insets;F)Z -HSPLandroid/view/InsetsAnimationControlImpl;->cancel()V -HSPLandroid/view/InsetsAnimationControlImpl;->finish(Z)V -HSPLandroid/view/InsetsAnimationControlImpl;->getAnimation()Landroid/view/WindowInsetsAnimation; -HSPLandroid/view/InsetsAnimationControlImpl;->getAnimationType()I -HSPLandroid/view/InsetsAnimationControlImpl;->getControllingTypes()I -HSPLandroid/view/InsetsAnimationControlImpl;->getControls()Landroid/util/SparseArray; -HSPLandroid/view/InsetsAnimationControlImpl;->getCurrentAlpha()F -HSPLandroid/view/InsetsAnimationControlImpl;->getHiddenStateInsets()Landroid/graphics/Insets; -HSPLandroid/view/InsetsAnimationControlImpl;->getInsetsFromState(Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/util/SparseIntArray;)Landroid/graphics/Insets; -HSPLandroid/view/InsetsAnimationControlImpl;->getShownStateInsets()Landroid/graphics/Insets; -HSPLandroid/view/InsetsAnimationControlImpl;->getTypes()I -HSPLandroid/view/InsetsAnimationControlImpl;->hasZeroInsetsIme()Z -HSPLandroid/view/InsetsAnimationControlImpl;->isCancelled()Z -HSPLandroid/view/InsetsAnimationControlImpl;->notifyControlRevoked(I)V -HSPLandroid/view/InsetsAnimationControlImpl;->releaseLeashes()V -HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FF)V -HSPLandroid/view/InsetsAnimationControlImpl;->setInsetsAndAlpha(Landroid/graphics/Insets;FFZ)V -HSPLandroid/view/InsetsAnimationControlImpl;->updateSurfacePosition(Landroid/util/SparseArray;)V -HSPLandroid/view/InsetsAnimationThread;->ensureThreadLocked()V -HSPLandroid/view/InsetsAnimationThread;->getHandler()Landroid/os/Handler; -HSPLandroid/view/InsetsAnimationThread;->release()V -HSPLandroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1;->run()V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1;->run()V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;-><init>(Landroid/view/InsetsAnimationThreadControlRunner;)V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->applySurfaceParams([Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;)V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->notifyFinished(Landroid/view/InsetsAnimationControlRunner;Z)V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->releaseSurfaceControlFromRt(Landroid/view/SurfaceControl;)V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->reportPerceptible(IZ)V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->scheduleApplyChangeInsets(Landroid/view/InsetsAnimationControlRunner;)V -HSPLandroid/view/InsetsAnimationThreadControlRunner$1;->startAnimation(Landroid/view/InsetsAnimationControlRunner;Landroid/view/WindowInsetsAnimationControlListener;ILandroid/view/WindowInsetsAnimation;Landroid/view/WindowInsetsAnimation$Bounds;)V -HSPLandroid/view/InsetsAnimationThreadControlRunner;->-$$Nest$fgetmOuterCallbacks(Landroid/view/InsetsAnimationThreadControlRunner;)Landroid/view/InsetsAnimationControlCallbacks; -HSPLandroid/view/InsetsAnimationThreadControlRunner;->cancel()V -HSPLandroid/view/InsetsAnimationThreadControlRunner;->getAnimation()Landroid/view/WindowInsetsAnimation; -HSPLandroid/view/InsetsAnimationThreadControlRunner;->getAnimationType()I -HSPLandroid/view/InsetsAnimationThreadControlRunner;->getControllingTypes()I -HSPLandroid/view/InsetsAnimationThreadControlRunner;->getTypes()I -HSPLandroid/view/InsetsAnimationThreadControlRunner;->notifyControlRevoked(I)V -HSPLandroid/view/InsetsAnimationThreadControlRunner;->updateSurfacePosition(Landroid/util/SparseArray;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda10;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda7;-><init>()V -HSPLandroid/view/InsetsController$$ExternalSyntheticLambda9;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$1;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$2;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$2;->onFinish(Landroid/view/InsetsState;Landroid/view/InsetsState;)V -HSPLandroid/view/InsetsController$3;-><init>(Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsController$3;->onFinish(Landroid/view/InsetsState;Landroid/view/InsetsState;)V -HSPLandroid/view/InsetsController$3;->onStart(Landroid/view/InsetsState;Landroid/view/InsetsState;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda0;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda3;->getInterpolation(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda4;->getInterpolation(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->initialValue()Landroid/animation/AnimationHandler; -HSPLandroid/view/InsetsController$InternalAnimationControlListener$1;->initialValue()Ljava/lang/Object; -HSPLandroid/view/InsetsController$InternalAnimationControlListener$2;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener;-><init>(ZZIIZILandroid/view/WindowInsetsAnimationControlListener;Landroid/view/inputmethod/ImeTracker$InputMethodJankContext;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->calculateDurationMs()J -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getAlphaInterpolator()Landroid/view/animation/Interpolator; -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getDurationMs()J -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->getInsetsInterpolator()Landroid/view/animation/Interpolator; -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$2(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$3(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->lambda$getAlphaInterpolator$4(F)F -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onAnimationFinish()V -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onCancelled(Landroid/view/WindowInsetsAnimationController;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onFinished(Landroid/view/WindowInsetsAnimationController;)V -HSPLandroid/view/InsetsController$InternalAnimationControlListener;->onReady(Landroid/view/WindowInsetsAnimationController;I)V -HSPLandroid/view/InsetsController$RunningAnimation;-><init>(Landroid/view/InsetsAnimationControlRunner;I)V -HSPLandroid/view/InsetsController;->-$$Nest$sfgetsEvaluator()Landroid/animation/TypeEvaluator; -HSPLandroid/view/InsetsController;-><init>(Landroid/view/InsetsController$Host;)V -HSPLandroid/view/InsetsController;-><init>(Landroid/view/InsetsController$Host;Lcom/android/internal/util/function/TriFunction;Landroid/os/Handler;)V -HSPLandroid/view/InsetsController;->abortPendingImeControlRequest()V -HSPLandroid/view/InsetsController;->applyAnimation(IZZLandroid/view/inputmethod/ImeTracker$Token;)V -HSPLandroid/view/InsetsController;->applyAnimation(IZZZLandroid/view/inputmethod/ImeTracker$Token;)V -HSPLandroid/view/InsetsController;->applyLocalVisibilityOverride()V -HSPLandroid/view/InsetsController;->calculateControllableTypes()I -HSPLandroid/view/InsetsController;->calculateInsets(ZIIIII)Landroid/view/WindowInsets; -HSPLandroid/view/InsetsController;->calculateVisibleInsets(IIII)Landroid/graphics/Insets; -HSPLandroid/view/InsetsController;->cancelAnimation(Landroid/view/InsetsAnimationControlRunner;Z)V -HSPLandroid/view/InsetsController;->cancelExistingAnimations()V -HSPLandroid/view/InsetsController;->cancelExistingControllers(I)V -HSPLandroid/view/InsetsController;->captionInsetsUnchanged()Z -HSPLandroid/view/InsetsController;->collectSourceControls(ZILandroid/util/SparseArray;ILandroid/view/inputmethod/ImeTracker$Token;)Landroid/util/Pair; -HSPLandroid/view/InsetsController;->controlAnimationUncheckedInner(ILandroid/os/CancellationSignal;Landroid/view/WindowInsetsAnimationControlListener;Landroid/graphics/Rect;ZJLandroid/view/animation/Interpolator;IIZLandroid/view/inputmethod/ImeTracker$Token;)V -HSPLandroid/view/InsetsController;->dispatchAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/InsetsController;->getAnimationType(I)I -HSPLandroid/view/InsetsController;->getHost()Landroid/view/InsetsController$Host; -HSPLandroid/view/InsetsController;->getLastDispatchedState()Landroid/view/InsetsState; -HSPLandroid/view/InsetsController;->getRequestedVisibleTypes()I -HSPLandroid/view/InsetsController;->getSourceConsumer(II)Landroid/view/InsetsSourceConsumer; -HSPLandroid/view/InsetsController;->getState()Landroid/view/InsetsState; -HSPLandroid/view/InsetsController;->getSystemBarsAppearance()I -HSPLandroid/view/InsetsController;->hide(I)V -HSPLandroid/view/InsetsController;->invokeControllableInsetsChangedListeners()I -HSPLandroid/view/InsetsController;->lambda$new$2(Landroid/view/InsetsController;Ljava/lang/Integer;Ljava/lang/Integer;)Landroid/view/InsetsSourceConsumer; -HSPLandroid/view/InsetsController;->lambda$static$1(FLandroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets; -HSPLandroid/view/InsetsController;->notifyControlRevoked(Landroid/view/InsetsSourceConsumer;)V -HSPLandroid/view/InsetsController;->notifyFinished(Landroid/view/InsetsAnimationControlRunner;Z)V -HSPLandroid/view/InsetsController;->notifyVisibilityChanged()V -HSPLandroid/view/InsetsController;->onControlsChanged([Landroid/view/InsetsSourceControl;)V -HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z -HSPLandroid/view/InsetsController;->onWindowFocusGained(Z)V -HSPLandroid/view/InsetsController;->onWindowFocusLost()V -HSPLandroid/view/InsetsController;->reportPerceptible(IZ)V -HSPLandroid/view/InsetsController;->reportRequestedVisibleTypes()V -HSPLandroid/view/InsetsController;->setRequestedVisibleTypes(II)V -HSPLandroid/view/InsetsController;->show(I)V -HSPLandroid/view/InsetsController;->show(IZLandroid/view/inputmethod/ImeTracker$Token;)V -HSPLandroid/view/InsetsController;->updateCompatSysUiVisibility()V -HSPLandroid/view/InsetsController;->updateState(Landroid/view/InsetsState;)V -HSPLandroid/view/InsetsFlags;-><init>()V -HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource; -HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/InsetsSource;-><init>(II)V -HSPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/InsetsSource;-><init>(Landroid/view/InsetsSource;)V -HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Z)Landroid/graphics/Insets; -HSPLandroid/view/InsetsSource;->calculateVisibleInsets(Landroid/graphics/Rect;)Landroid/graphics/Insets; -HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;Z)Z -HSPLandroid/view/InsetsSource;->getFlags()I -HSPLandroid/view/InsetsSource;->getFrame()Landroid/graphics/Rect; -HSPLandroid/view/InsetsSource;->getId()I -HSPLandroid/view/InsetsSource;->getIntersection(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z -HSPLandroid/view/InsetsSource;->getType()I -HSPLandroid/view/InsetsSource;->getVisibleFrame()Landroid/graphics/Rect; -HSPLandroid/view/InsetsSource;->hasFlags(I)Z -HSPLandroid/view/InsetsSource;->isVisible()Z -HSPLandroid/view/InsetsSource;->setVisible(Z)Landroid/view/InsetsSource; -HSPLandroid/view/InsetsSource;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/InsetsSourceConsumer;-><init>(IILandroid/view/InsetsState;Ljava/util/function/Supplier;Landroid/view/InsetsController;)V -HSPLandroid/view/InsetsSourceConsumer;->applyLocalVisibilityOverride()Z -HSPLandroid/view/InsetsSourceConsumer;->applyRequestedVisibilityToControl()V -HSPLandroid/view/InsetsSourceConsumer;->getControl()Landroid/view/InsetsSourceControl; -HSPLandroid/view/InsetsSourceConsumer;->getId()I -HSPLandroid/view/InsetsSourceConsumer;->getType()I -HSPLandroid/view/InsetsSourceConsumer;->isRequestedVisibleAwaitingControl()Z -HSPLandroid/view/InsetsSourceConsumer;->onPerceptible(Z)V -HSPLandroid/view/InsetsSourceConsumer;->onWindowFocusGained(Z)V -HSPLandroid/view/InsetsSourceConsumer;->onWindowFocusLost()V -HSPLandroid/view/InsetsSourceConsumer;->removeSurface()V -HSPLandroid/view/InsetsSourceConsumer;->setControl(Landroid/view/InsetsSourceControl;[I[I)Z -HSPLandroid/view/InsetsSourceConsumer;->updateSource(Landroid/view/InsetsSource;I)V -HSPLandroid/view/InsetsSourceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSourceControl; -HSPLandroid/view/InsetsSourceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/InsetsSourceControl$1;->newArray(I)[Landroid/view/InsetsSourceControl; -HSPLandroid/view/InsetsSourceControl$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/view/InsetsSourceControl$Array$1;-><init>()V -HSPLandroid/view/InsetsSourceControl$Array;-><clinit>()V -HSPLandroid/view/InsetsSourceControl$Array;-><init>()V -HSPLandroid/view/InsetsSourceControl$Array;->get()[Landroid/view/InsetsSourceControl; -HSPLandroid/view/InsetsSourceControl$Array;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/view/InsetsSourceControl;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/InsetsSourceControl;-><init>(Landroid/view/InsetsSourceControl;)V -HSPLandroid/view/InsetsSourceControl;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/InsetsSourceControl;->getAndClearSkipAnimationOnce()Z -HSPLandroid/view/InsetsSourceControl;->getId()I -HSPLandroid/view/InsetsSourceControl;->getInsetsHint()Landroid/graphics/Insets; -HSPLandroid/view/InsetsSourceControl;->getLeash()Landroid/view/SurfaceControl; -HSPLandroid/view/InsetsSourceControl;->getSurfacePosition()Landroid/graphics/Point; -HSPLandroid/view/InsetsSourceControl;->getType()I -HSPLandroid/view/InsetsSourceControl;->hashCode()I -HSPLandroid/view/InsetsSourceControl;->isInitiallyVisible()Z -HSPLandroid/view/InsetsSourceControl;->release(Ljava/util/function/Consumer;)V -HSPLandroid/view/InsetsSourceControl;->setSurfacePosition(II)Z -HSPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsState; -HSPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/InsetsState$OnTraverseCallbacks;->onIdMatch(Landroid/view/InsetsSource;Landroid/view/InsetsSource;)V -HSPLandroid/view/InsetsState$OnTraverseCallbacks;->onStart(Landroid/view/InsetsState;Landroid/view/InsetsState;)V -HSPLandroid/view/InsetsState;-><init>()V -HSPLandroid/view/InsetsState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/InsetsState;-><init>(Landroid/view/InsetsState;Z)V -HSPLandroid/view/InsetsState;->addSource(Landroid/view/InsetsSource;)V -HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;II)Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray; -HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;IZ)Landroid/graphics/Insets;+]Landroid/view/InsetsSource;Landroid/view/InsetsSource;]Landroid/util/SparseArray;Landroid/util/SparseArray; -HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;Landroid/view/InsetsState;ZIIIIILandroid/util/SparseIntArray;)Landroid/view/WindowInsets; -HSPLandroid/view/InsetsState;->calculateRelativeCutout(Landroid/graphics/Rect;)Landroid/view/DisplayCutout; -HSPLandroid/view/InsetsState;->calculateRelativeDisplayShape(Landroid/graphics/Rect;)Landroid/view/DisplayShape; -HSPLandroid/view/InsetsState;->calculateRelativePrivacyIndicatorBounds(Landroid/graphics/Rect;)Landroid/view/PrivacyIndicatorBounds; -HSPLandroid/view/InsetsState;->calculateRelativeRoundedCorners(Landroid/graphics/Rect;)Landroid/view/RoundedCorners; -HSPLandroid/view/InsetsState;->calculateUncontrollableInsetsFromFrame(Landroid/graphics/Rect;)I -HSPLandroid/view/InsetsState;->calculateVisibleInsets(Landroid/graphics/Rect;IIII)Landroid/graphics/Insets; -HSPLandroid/view/InsetsState;->canControlSource(Landroid/graphics/Rect;Landroid/view/InsetsSource;)Z -HSPLandroid/view/InsetsState;->clearsCompatInsets(IIII)Z -HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;ZZ)Z -HSPLandroid/view/InsetsState;->getDisplayCutout()Landroid/view/DisplayCutout;+]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper; -HSPLandroid/view/InsetsState;->getDisplayCutoutSafe(Landroid/graphics/Rect;)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/DisplayCutout$ParcelableWrapper; -HSPLandroid/view/InsetsState;->getDisplayFrame()Landroid/graphics/Rect; -HSPLandroid/view/InsetsState;->getDisplayShape()Landroid/view/DisplayShape; -HSPLandroid/view/InsetsState;->getPrivacyIndicatorBounds()Landroid/view/PrivacyIndicatorBounds; -HSPLandroid/view/InsetsState;->getRoundedCorners()Landroid/view/RoundedCorners; -HSPLandroid/view/InsetsState;->isSourceOrDefaultVisible(II)Z -HSPLandroid/view/InsetsState;->peekSource(I)Landroid/view/InsetsSource; -HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)Landroid/util/SparseArray; -HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;I)V -HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V -HSPLandroid/view/InsetsState;->setDisplayCutout(Landroid/view/DisplayCutout;)V -HSPLandroid/view/InsetsState;->setDisplayFrame(Landroid/graphics/Rect;)V -HSPLandroid/view/InsetsState;->setPrivacyIndicatorBounds(Landroid/view/PrivacyIndicatorBounds;)V -HSPLandroid/view/InsetsState;->setRoundedCorners(Landroid/view/RoundedCorners;)V -HSPLandroid/view/InsetsState;->sourceAt(I)Landroid/view/InsetsSource; -HSPLandroid/view/InsetsState;->sourceIdAt(I)I -HSPLandroid/view/InsetsState;->sourceSize()I -HSPLandroid/view/InsetsState;->traverse(Landroid/view/InsetsState;Landroid/view/InsetsState;Landroid/view/InsetsState$OnTraverseCallbacks;)V -HSPLandroid/view/InsetsState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/KeyCharacterMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyCharacterMap; -HSPLandroid/view/KeyCharacterMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/KeyCharacterMap;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/KeyCharacterMap;->finalize()V -HSPLandroid/view/KeyCharacterMap;->get(II)I -HSPLandroid/view/KeyCharacterMap;->getKeyboardType()I -HSPLandroid/view/KeyCharacterMap;->getModifierBehavior()I -HSPLandroid/view/KeyCharacterMap;->load(I)Landroid/view/KeyCharacterMap; -HSPLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyEvent; -HSPLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/KeyEvent$DispatcherState;-><init>()V -HSPLandroid/view/KeyEvent$DispatcherState;->handleUpEvent(Landroid/view/KeyEvent;)V -HSPLandroid/view/KeyEvent$DispatcherState;->isTracking(Landroid/view/KeyEvent;)Z -HSPLandroid/view/KeyEvent$DispatcherState;->reset()V -HSPLandroid/view/KeyEvent$DispatcherState;->reset(Ljava/lang/Object;)V -HSPLandroid/view/KeyEvent$DispatcherState;->startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V -HSPLandroid/view/KeyEvent;-><init>(JJIIIIIIII)V -HSPLandroid/view/KeyEvent;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/KeyEvent;->actionToString(I)Ljava/lang/String; -HSPLandroid/view/KeyEvent;->dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z -HSPLandroid/view/KeyEvent;->getAction()I -HSPLandroid/view/KeyEvent;->getDeviceId()I -HSPLandroid/view/KeyEvent;->getEventTime()J -HSPLandroid/view/KeyEvent;->getFlags()I -HSPLandroid/view/KeyEvent;->getId()I -HSPLandroid/view/KeyEvent;->getKeyCharacterMap()Landroid/view/KeyCharacterMap; -HSPLandroid/view/KeyEvent;->getKeyCode()I -HSPLandroid/view/KeyEvent;->getMetaState()I -HSPLandroid/view/KeyEvent;->getRepeatCount()I -HSPLandroid/view/KeyEvent;->getSource()I -HSPLandroid/view/KeyEvent;->getUnicodeChar()I -HSPLandroid/view/KeyEvent;->getUnicodeChar(I)I -HSPLandroid/view/KeyEvent;->isCanceled()Z -HSPLandroid/view/KeyEvent;->isModifierKey(I)Z -HSPLandroid/view/KeyEvent;->isTracking()Z -HSPLandroid/view/KeyEvent;->metaStateToString(I)Ljava/lang/String; -HSPLandroid/view/KeyEvent;->normalizeMetaState(I)I -HSPLandroid/view/KeyEvent;->obtain()Landroid/view/KeyEvent; -HSPLandroid/view/KeyEvent;->obtain(IJJIIIIIIIII[BLjava/lang/String;)Landroid/view/KeyEvent; -HSPLandroid/view/KeyEvent;->recycleIfNeededAfterDispatch()V -HSPLandroid/view/KeyEvent;->startTracking()V -HSPLandroid/view/KeyEvent;->toString()Ljava/lang/String; -HSPLandroid/view/KeyEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/LayoutInflater$FactoryMerger;-><init>(Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;)V -HSPLandroid/view/LayoutInflater$FactoryMerger;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;-><init>(Landroid/content/Context;)V -HSPLandroid/view/LayoutInflater;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V -HSPLandroid/view/LayoutInflater;->advanceToRootNode(Lorg/xmlpull/v1/XmlPullParser;)V -HSPLandroid/view/LayoutInflater;->consumeChildElements(Lorg/xmlpull/v1/XmlPullParser;)V -HSPLandroid/view/LayoutInflater;->createView(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;Z)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater; -HSPLandroid/view/LayoutInflater;->getContext()Landroid/content/Context; -HSPLandroid/view/LayoutInflater;->getFactory()Landroid/view/LayoutInflater$Factory; -HSPLandroid/view/LayoutInflater;->getFactory2()Landroid/view/LayoutInflater$Factory2; -HSPLandroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/content/Context;Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->parseInclude(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;Landroid/view/View;Landroid/util/AttributeSet;)V+]Landroid/util/AttributeSet;Landroid/content/res/XmlBlock$Parser;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;Landroid/widget/FrameLayout;,Landroid/widget/LinearLayout;]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Ljava/lang/Object;Ljava/lang/String;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/res/XmlResourceParser;Landroid/content/res/XmlBlock$Parser; -HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V+]Landroid/view/View;missing_types]Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/XmlBlock$Parser;]Landroid/view/ViewGroup;Landroid/widget/RelativeLayout;,Landroid/widget/FrameLayout;,Landroid/widget/LinearLayout;]Landroid/view/LayoutInflater;Lcom/android/internal/policy/PhoneLayoutInflater;]Ljava/lang/Object;Ljava/lang/String; -HSPLandroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V -HSPLandroid/view/LayoutInflater;->setFactory2(Landroid/view/LayoutInflater$Factory2;)V -HSPLandroid/view/LayoutInflater;->setFilter(Landroid/view/LayoutInflater$Filter;)V -HSPLandroid/view/LayoutInflater;->setPrivateFactory(Landroid/view/LayoutInflater$Factory2;)V -HSPLandroid/view/LayoutInflater;->tryCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLandroid/view/LayoutInflater;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z -HSPLandroid/view/MenuInflater;-><init>(Landroid/content/Context;)V -HSPLandroid/view/MotionEvent$PointerCoords;-><init>()V -HSPLandroid/view/MotionEvent$PointerProperties;-><init>()V -HSPLandroid/view/MotionEvent;-><init>()V -HSPLandroid/view/MotionEvent;->ensureSharedTempPointerCapacity(I)V -HSPLandroid/view/MotionEvent;->finalize()V -HSPLandroid/view/MotionEvent;->findPointerIndex(I)I -HSPLandroid/view/MotionEvent;->getAction()I -HSPLandroid/view/MotionEvent;->getActionIndex()I -HSPLandroid/view/MotionEvent;->getActionMasked()I -HSPLandroid/view/MotionEvent;->getAxisValue(I)F -HSPLandroid/view/MotionEvent;->getButtonState()I -HSPLandroid/view/MotionEvent;->getClassification()I -HSPLandroid/view/MotionEvent;->getDeviceId()I -HSPLandroid/view/MotionEvent;->getDownTime()J -HSPLandroid/view/MotionEvent;->getEdgeFlags()I -HSPLandroid/view/MotionEvent;->getEventTime()J -HSPLandroid/view/MotionEvent;->getFlags()I -HSPLandroid/view/MotionEvent;->getHistoricalEventTime(I)J -HSPLandroid/view/MotionEvent;->getHistoricalX(II)F -HSPLandroid/view/MotionEvent;->getHistoricalY(II)F -HSPLandroid/view/MotionEvent;->getHistorySize()I -HSPLandroid/view/MotionEvent;->getId()I -HSPLandroid/view/MotionEvent;->getMetaState()I -HSPLandroid/view/MotionEvent;->getOrientation()F -HSPLandroid/view/MotionEvent;->getPointerCount()I -HSPLandroid/view/MotionEvent;->getPointerId(I)I -HSPLandroid/view/MotionEvent;->getPointerIdBits()I -HSPLandroid/view/MotionEvent;->getPressure(I)F -HSPLandroid/view/MotionEvent;->getRawX()F -HSPLandroid/view/MotionEvent;->getRawY()F -HSPLandroid/view/MotionEvent;->getSource()I -HSPLandroid/view/MotionEvent;->getToolType(I)I -HSPLandroid/view/MotionEvent;->getTouchMajor()F -HSPLandroid/view/MotionEvent;->getTouchMinor()F -HSPLandroid/view/MotionEvent;->getX()F -HSPLandroid/view/MotionEvent;->getX(I)F -HSPLandroid/view/MotionEvent;->getY()F -HSPLandroid/view/MotionEvent;->getY(I)F -HSPLandroid/view/MotionEvent;->initialize(IIIIIIIIIFFFFJJI[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;)Z -HSPLandroid/view/MotionEvent;->isTargetAccessibilityFocus()Z+]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->isTouchEvent()Z -HSPLandroid/view/MotionEvent;->obtain()Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFIIII)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->offsetLocation(FF)V -HSPLandroid/view/MotionEvent;->recycle()V -HSPLandroid/view/MotionEvent;->setAction(I)V -HSPLandroid/view/MotionEvent;->setLocation(FF)V -HSPLandroid/view/MotionEvent;->setTargetAccessibilityFocus(Z)V+]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent; -HSPLandroid/view/MotionEvent;->transform(Landroid/graphics/Matrix;)V -HSPLandroid/view/MotionEvent;->updateCursorPosition()V -HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;->onAccuracyChanged(Landroid/hardware/Sensor;I)V -HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;->onSensorChanged(Landroid/hardware/SensorEvent;)V -HSPLandroid/view/OrientationEventListener;-><init>(Landroid/content/Context;)V -HSPLandroid/view/OrientationEventListener;-><init>(Landroid/content/Context;I)V -HSPLandroid/view/OrientationEventListener;->disable()V -HSPLandroid/view/OrientationEventListener;->enable()V -HSPLandroid/view/PendingInsetsController;-><init>()V -HSPLandroid/view/PendingInsetsController;->detach()V -HSPLandroid/view/PendingInsetsController;->getRequestedVisibleTypes()I -HSPLandroid/view/PendingInsetsController;->getSystemBarsAppearance()I -HSPLandroid/view/PendingInsetsController;->replayAndAttach(Landroid/view/InsetsController;)V -HSPLandroid/view/PointerIcon;->getSystemIcon(Landroid/content/Context;I)Landroid/view/PointerIcon; -HSPLandroid/view/PointerIcon;->getSystemIconTypeIndex(I)I -HSPLandroid/view/PrivacyIndicatorBounds$1;-><init>()V -HSPLandroid/view/PrivacyIndicatorBounds$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/PrivacyIndicatorBounds; -HSPLandroid/view/PrivacyIndicatorBounds$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/PrivacyIndicatorBounds;-><clinit>()V -HSPLandroid/view/PrivacyIndicatorBounds;-><init>()V -HSPLandroid/view/PrivacyIndicatorBounds;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/PrivacyIndicatorBounds;-><init>([Landroid/graphics/Rect;I)V -HSPLandroid/view/PrivacyIndicatorBounds;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/PrivacyIndicatorBounds;->inset(IIII)Landroid/view/PrivacyIndicatorBounds; -HSPLandroid/view/PrivacyIndicatorBounds;->insetRect(Landroid/graphics/Rect;IIII)Landroid/graphics/Rect; -HSPLandroid/view/PrivacyIndicatorBounds;->updateStaticBounds([Landroid/graphics/Rect;)Landroid/view/PrivacyIndicatorBounds; -HSPLandroid/view/PrivacyIndicatorBounds;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/RemoteAccessibilityController;-><init>(Landroid/view/View;)V -HSPLandroid/view/RemoteAccessibilityController;->connected()Z -HSPLandroid/view/RemoteAccessibilityController;->disassosciateHierarchy()V -HSPLandroid/view/RemoteAccessibilityController;->setRemoteAccessibilityEmbeddedConnection(Landroid/view/accessibility/IAccessibilityEmbeddedConnection;Landroid/os/IBinder;)V -HSPLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/view/IRemoteAnimationRunner;JJ)V -HSPLandroid/view/RemoteAnimationAdapter;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/RoundedCorner$1;-><init>()V -HSPLandroid/view/RoundedCorner$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RoundedCorner; -HSPLandroid/view/RoundedCorner$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/RoundedCorner;-><clinit>()V -HSPLandroid/view/RoundedCorner;-><init>(I)V -HSPLandroid/view/RoundedCorner;-><init>(IIII)V -HSPLandroid/view/RoundedCorner;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/RoundedCorner;->getCenter()Landroid/graphics/Point; -HSPLandroid/view/RoundedCorner;->getRadius()I -HSPLandroid/view/RoundedCorner;->isEmpty()Z -HSPLandroid/view/RoundedCorners$1;-><init>()V -HSPLandroid/view/RoundedCorners$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RoundedCorners; -HSPLandroid/view/RoundedCorners$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/RoundedCorners;-><clinit>()V -HSPLandroid/view/RoundedCorners;-><init>(Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;Landroid/view/RoundedCorner;)V -HSPLandroid/view/RoundedCorners;-><init>([Landroid/view/RoundedCorner;)V -HSPLandroid/view/RoundedCorners;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/RoundedCorners;->getRoundedCornerBottomRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->getRoundedCornerTopRadius(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/view/RoundedCorners;->inset(IIII)Landroid/view/RoundedCorners; -HSPLandroid/view/RoundedCorners;->insetRoundedCorner(IIIIIIII)Landroid/view/RoundedCorner; -HSPLandroid/view/RoundedCorners;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V -HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V -HSPLandroid/view/ScaleGestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/ScaleGestureDetector;->setQuickScaleEnabled(Z)V -HSPLandroid/view/ScaleGestureDetector;->setStylusScaleEnabled(Z)V -HSPLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;)V -HSPLandroid/view/Surface;-><init>()V -HSPLandroid/view/Surface;-><init>(J)V -HSPLandroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V -HSPLandroid/view/Surface;->checkNotReleasedLocked()V -HSPLandroid/view/Surface;->copyFrom(Landroid/graphics/BLASTBufferQueue;)V -HSPLandroid/view/Surface;->copyFrom(Landroid/view/SurfaceControl;)V -HSPLandroid/view/Surface;->destroy()V -HSPLandroid/view/Surface;->finalize()V -HSPLandroid/view/Surface;->forceScopedDisconnect()V -HSPLandroid/view/Surface;->getGenerationId()I -HSPLandroid/view/Surface;->getNextFrameNumber()J -HSPLandroid/view/Surface;->isValid()Z -HSPLandroid/view/Surface;->lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas; -HSPLandroid/view/Surface;->release()V -HSPLandroid/view/Surface;->rotationToString(I)Ljava/lang/String; -HSPLandroid/view/Surface;->setNativeObjectLocked(J)V -HSPLandroid/view/Surface;->transferFrom(Landroid/view/Surface;)V -HSPLandroid/view/Surface;->unlockCanvasAndPost(Landroid/graphics/Canvas;)V -HSPLandroid/view/Surface;->unlockSwCanvasAndPost(Landroid/graphics/Canvas;)V -HSPLandroid/view/Surface;->updateNativeObject(J)V -HSPLandroid/view/Surface;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl; -HSPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/SurfaceControl$Builder;-><init>(Landroid/view/SurfaceSession;)V -HSPLandroid/view/SurfaceControl$Builder;->build()Landroid/view/SurfaceControl; -HSPLandroid/view/SurfaceControl$Builder;->setBLASTLayer()Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setBufferSize(II)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setCallsite(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setColorLayer()Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setContainerLayer()Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setFlags(I)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setFlags(II)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setFormat(I)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setHidden(Z)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setLocalOwnerView(Landroid/view/View;)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setName(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setOpaque(Z)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->setParent(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Builder; -HSPLandroid/view/SurfaceControl$Builder;->unsetBufferSize()V -HSPLandroid/view/SurfaceControl$Transaction;-><init>()V -HSPLandroid/view/SurfaceControl$Transaction;-><init>(J)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; -HSPLandroid/view/SurfaceControl$Transaction;->apply()V -HSPLandroid/view/SurfaceControl$Transaction;->apply(Z)V -HSPLandroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V -HSPLandroid/view/SurfaceControl$Transaction;->checkPreconditions(Landroid/view/SurfaceControl;)V -HSPLandroid/view/SurfaceControl$Transaction;->clear()V -HSPLandroid/view/SurfaceControl$Transaction;->close()V -HSPLandroid/view/SurfaceControl$Transaction;->hide(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap; -HSPLandroid/view/SurfaceControl$Transaction;->notifyReparentedSurfaces()V -HSPLandroid/view/SurfaceControl$Transaction;->remove(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->reparent(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->sanitize(II)V -HSPLandroid/view/SurfaceControl$Transaction;->setAlpha(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setBufferSize(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setColor(Landroid/view/SurfaceControl;[F)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setCornerRadius(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setDesintationFrame(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setExtendedRangeBrightness(Landroid/view/SurfaceControl;FF)Landroid/view/SurfaceControl$Transaction;+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setFrameTimelineVsync(J)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setLayer(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;FFFF)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;Landroid/graphics/Matrix;[F)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setOpaque(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setPosition(Landroid/view/SurfaceControl;FF)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setRelativeLayer(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->show(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceControl$Transaction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeCreateTransaction()J -HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSanitize(JII)V -HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSetDestinationFrame(JJIIII)V -HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSetExtendedRangeBrightness(JJFF)V -HSPLandroid/view/SurfaceControl;->-$$Nest$smnativeSetFlags(JJII)V -HSPLandroid/view/SurfaceControl;-><init>()V -HSPLandroid/view/SurfaceControl;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceControl;Ljava/lang/String;)V -HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;Landroid/util/SparseIntArray;Ljava/lang/ref/WeakReference;Ljava/lang/String;)V -HSPLandroid/view/SurfaceControl;->assignNativeObject(JLjava/lang/String;)V -HSPLandroid/view/SurfaceControl;->checkNotReleased()V -HSPLandroid/view/SurfaceControl;->copyFrom(Landroid/view/SurfaceControl;Ljava/lang/String;)V -HSPLandroid/view/SurfaceControl;->finalize()V -HSPLandroid/view/SurfaceControl;->getTransformHint()I -HSPLandroid/view/SurfaceControl;->isSameSurface(Landroid/view/SurfaceControl;)Z -HSPLandroid/view/SurfaceControl;->isValid()Z -HSPLandroid/view/SurfaceControl;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/view/SurfaceControl;->release()V -HSPLandroid/view/SurfaceControl;->rotationToBufferTransform(I)I -HSPLandroid/view/SurfaceControl;->setTransformHint(I)V -HSPLandroid/view/SurfaceControlRegistry$DefaultReporter;-><init>()V -HSPLandroid/view/SurfaceControlRegistry$DefaultReporter;-><init>(Landroid/view/SurfaceControlRegistry$DefaultReporter-IA;)V -HSPLandroid/view/SurfaceControlRegistry;-><clinit>()V -HSPLandroid/view/SurfaceControlRegistry;->getProcessInstance()Landroid/view/SurfaceControlRegistry; -HSPLandroid/view/SurfaceSession;-><init>()V -HSPLandroid/view/SurfaceSession;->finalize()V -HSPLandroid/view/SurfaceSession;->kill()V -HSPLandroid/view/SurfaceView$$ExternalSyntheticLambda1;-><init>(Landroid/view/SurfaceView;)V -HSPLandroid/view/SurfaceView$1;-><init>(Landroid/view/SurfaceView;)V -HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;-><init>(Landroid/view/SurfaceView;II)V -HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionChanged(JIIII)V -HSPLandroid/view/SurfaceView$SurfaceViewPositionUpdateListener;->positionLost(J)V -HSPLandroid/view/SurfaceView;->-$$Nest$fgetmRTLastReportedPosition(Landroid/view/SurfaceView;)Landroid/graphics/Rect; -HSPLandroid/view/SurfaceView;->-$$Nest$fgetmRtTransaction(Landroid/view/SurfaceView;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceView;->-$$Nest$mapplyOrMergeTransaction(Landroid/view/SurfaceView;Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;)V -HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIZ)V -HSPLandroid/view/SurfaceView;->applyOrMergeTransaction(Landroid/view/SurfaceControl$Transaction;J)V -HSPLandroid/view/SurfaceView;->applyTransactionOnVriDraw(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SurfaceView;->clearSurfaceViewPort(Landroid/graphics/Canvas;)V -HSPLandroid/view/SurfaceView;->copySurface(ZZ)V -HSPLandroid/view/SurfaceView;->createBlastSurfaceControls(Landroid/view/ViewRootImpl;Ljava/lang/String;Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SurfaceView;->dispatchDraw(Landroid/graphics/Canvas;)V -HSPLandroid/view/SurfaceView;->gatherTransparentRegion(Landroid/graphics/Region;)Z -HSPLandroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder; -HSPLandroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback; -HSPLandroid/view/SurfaceView;->notifySurfaceDestroyed()V -HSPLandroid/view/SurfaceView;->onAttachedToWindow()V -HSPLandroid/view/SurfaceView;->onDetachedFromWindow()V -HSPLandroid/view/SurfaceView;->onDrawFinished()V -HSPLandroid/view/SurfaceView;->onMeasure(II)V -HSPLandroid/view/SurfaceView;->onSetSurfacePositionAndScale(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;IIFF)V -HSPLandroid/view/SurfaceView;->onWindowVisibilityChanged(I)V -HSPLandroid/view/SurfaceView;->performDrawFinished()V -HSPLandroid/view/SurfaceView;->performSurfaceTransaction(Landroid/view/ViewRootImpl;Landroid/content/res/CompatibilityInfo$Translator;ZZZZLandroid/view/SurfaceControl$Transaction;)Z -HSPLandroid/view/SurfaceView;->releaseSurfaces(Z)V -HSPLandroid/view/SurfaceView;->replacePositionUpdateListener(II)V -HSPLandroid/view/SurfaceView;->requiresSurfaceControlCreation(ZZ)Z -HSPLandroid/view/SurfaceView;->setFrame(IIII)Z -HSPLandroid/view/SurfaceView;->setVisibility(I)V -HSPLandroid/view/SurfaceView;->setZOrderOnTop(Z)V -HSPLandroid/view/SurfaceView;->setZOrderedOnTop(ZZ)Z -HSPLandroid/view/SurfaceView;->surfaceCreated(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SurfaceView;->surfaceDestroyed()V -HSPLandroid/view/SurfaceView;->updateBackgroundColor(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/SurfaceView;->updateBackgroundVisibility(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SurfaceView;->updateEmbeddedAccessibilityMatrix(Z)V -HSPLandroid/view/SurfaceView;->updateRelativeZ(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SurfaceView;->updateSurface()V -HSPLandroid/view/SurfaceView;->vriDrawStarted(Z)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;-><init>(Landroid/view/SurfaceControl;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->build()Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams; -HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withAlpha(F)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; -HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withMatrix(Landroid/graphics/Matrix;)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; -HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder;->withVisibility(Z)Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; -HSPLandroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;-><init>(Landroid/view/SurfaceControl;IFLandroid/graphics/Matrix;Landroid/graphics/Rect;IFIZLandroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/SyncRtSurfaceTransactionApplier;->applyParams(Landroid/view/SurfaceControl$Transaction;Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams;[F)V -HSPLandroid/view/TextureView;-><init>(Landroid/content/Context;)V -HSPLandroid/view/TextureView;->applyUpdate()V -HSPLandroid/view/TextureView;->destroyHardwareLayer()V -HSPLandroid/view/TextureView;->destroyHardwareResources()V -HSPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/view/TextureView;->getLayerType()I -HSPLandroid/view/TextureView;->getTextureLayer()Landroid/graphics/TextureLayer; -HSPLandroid/view/TextureView;->isOpaque()Z -HSPLandroid/view/TextureView;->onAttachedToWindow()V -HSPLandroid/view/TextureView;->onDetachedFromWindowInternal()V -HSPLandroid/view/TextureView;->onSizeChanged(IIII)V -HSPLandroid/view/TextureView;->onVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/view/TextureView;->releaseSurfaceTexture()V -HSPLandroid/view/TextureView;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V -HSPLandroid/view/TextureView;->updateLayer()V -HSPLandroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;-><init>(Ljava/util/ArrayList;)V -HSPLandroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0;->onFrameCommit(Z)V -HSPLandroid/view/ThreadedRenderer$1;-><init>(Landroid/view/ThreadedRenderer;Ljava/util/ArrayList;)V -HSPLandroid/view/ThreadedRenderer$1;->lambda$onFrameDraw$0(Ljava/util/ArrayList;Z)V+]Landroid/graphics/HardwareRenderer$FrameCommitCallback;Landroid/view/ViewRootImpl$7$$ExternalSyntheticLambda0;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ThreadedRenderer$1;->onFrameDraw(IJ)Landroid/graphics/HardwareRenderer$FrameCommitCallback;+]Landroid/graphics/HardwareRenderer$FrameDrawingCallback;Landroid/view/ViewRootImpl$3;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->-$$Nest$fgetmSurfaceControl(Landroid/view/ThreadedRenderer$WebViewOverlayProvider;)Landroid/view/SurfaceControl; -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;-><clinit>()V -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;-><init>()V -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;-><init>(Landroid/view/ThreadedRenderer$WebViewOverlayProvider-IA;)V -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->setBLASTBufferQueue(Landroid/graphics/BLASTBufferQueue;)V -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->setSurfaceControl(Landroid/view/SurfaceControl;)V -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->setSurfaceControlOpaque(Z)Z -HSPLandroid/view/ThreadedRenderer$WebViewOverlayProvider;->shouldEnableOverlaySupport()Z -HSPLandroid/view/ThreadedRenderer;-><init>(Landroid/content/Context;ZLjava/lang/String;)V -HSPLandroid/view/ThreadedRenderer;->access$000()Z -HSPLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer; -HSPLandroid/view/ThreadedRenderer;->destroy()V -HSPLandroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V -HSPLandroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V -HSPLandroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V+]Landroid/view/ViewFrameInfo;Landroid/view/ViewFrameInfo;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ThreadedRenderer;->dumpArgsToFlags([Ljava/lang/String;)I -HSPLandroid/view/ThreadedRenderer;->getHeight()I -HSPLandroid/view/ThreadedRenderer;->getWidth()I -HSPLandroid/view/ThreadedRenderer;->handleDumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V -HSPLandroid/view/ThreadedRenderer;->initialize(Landroid/view/Surface;)Z -HSPLandroid/view/ThreadedRenderer;->initializeIfNeeded(IILandroid/view/View$AttachInfo;Landroid/view/Surface;Landroid/graphics/Rect;)Z -HSPLandroid/view/ThreadedRenderer;->invalidateRoot()V -HSPLandroid/view/ThreadedRenderer;->isEnabled()Z -HSPLandroid/view/ThreadedRenderer;->isRequested()Z -HSPLandroid/view/ThreadedRenderer;->loadSystemProperties()Z -HSPLandroid/view/ThreadedRenderer;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ThreadedRenderer;->rendererOwnsSurfaceControlOpacity()Z -HSPLandroid/view/ThreadedRenderer;->setEnabled(Z)V -HSPLandroid/view/ThreadedRenderer;->setLightCenter(Landroid/view/View$AttachInfo;)V -HSPLandroid/view/ThreadedRenderer;->setRequested(Z)V -HSPLandroid/view/ThreadedRenderer;->setSurface(Landroid/view/Surface;)V -HSPLandroid/view/ThreadedRenderer;->setSurfaceControl(Landroid/view/SurfaceControl;Landroid/graphics/BLASTBufferQueue;)V+]Landroid/view/ThreadedRenderer$WebViewOverlayProvider;Landroid/view/ThreadedRenderer$WebViewOverlayProvider; -HSPLandroid/view/ThreadedRenderer;->setSurfaceControlOpaque(Z)Z -HSPLandroid/view/ThreadedRenderer;->setup(IILandroid/view/View$AttachInfo;Landroid/graphics/Rect;)V -HSPLandroid/view/ThreadedRenderer;->updateEnabledState(Landroid/view/Surface;)V -HSPLandroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/ThreadedRenderer$DrawCallbacks;Landroid/view/ViewRootImpl;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V -HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ThreadedRenderer;->updateWebViewOverlayCallbacks()V+]Landroid/view/ThreadedRenderer$WebViewOverlayProvider;Landroid/view/ThreadedRenderer$WebViewOverlayProvider; -HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V -HSPLandroid/view/VelocityTracker;-><init>(I)V -HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V -HSPLandroid/view/VelocityTracker;->clear()V -HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(I)V -HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(IF)V -HSPLandroid/view/VelocityTracker;->finalize()V -HSPLandroid/view/VelocityTracker;->getXVelocity()F -HSPLandroid/view/VelocityTracker;->getXVelocity(I)F -HSPLandroid/view/VelocityTracker;->getYVelocity()F -HSPLandroid/view/VelocityTracker;->getYVelocity(I)F -HSPLandroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker; -HSPLandroid/view/VelocityTracker;->recycle()V -HSPLandroid/view/View$$ExternalSyntheticLambda4;-><init>(Landroid/view/View;)V -HSPLandroid/view/View$$ExternalSyntheticLambda4;->run()V -HSPLandroid/view/View$$ExternalSyntheticLambda5;->run()V -HSPLandroid/view/View$$ExternalSyntheticLambda7;-><init>(Landroid/view/View;)V -HSPLandroid/view/View$$ExternalSyntheticLambda7;->run()V -HSPLandroid/view/View$12;->get(Landroid/view/View;)Ljava/lang/Float; -HSPLandroid/view/View$12;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/View$12;->setValue(Landroid/view/View;F)V -HSPLandroid/view/View$12;->setValue(Ljava/lang/Object;F)V+]Landroid/view/View$12;Landroid/view/View$12; -HSPLandroid/view/View$13;->get(Landroid/view/View;)Ljava/lang/Float; -HSPLandroid/view/View$13;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/View$13;->setValue(Landroid/view/View;F)V -HSPLandroid/view/View$13;->setValue(Ljava/lang/Object;F)V -HSPLandroid/view/View$1;-><init>(Landroid/view/View;Landroid/view/View$ListenerInfo;)V -HSPLandroid/view/View$1;->positionChanged(JIIII)V -HSPLandroid/view/View$1;->positionLost(J)V -HSPLandroid/view/View$2;->get(Landroid/view/View;)Ljava/lang/Float; -HSPLandroid/view/View$2;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/View$2;->setValue(Landroid/view/View;F)V -HSPLandroid/view/View$2;->setValue(Ljava/lang/Object;F)V -HSPLandroid/view/View$3;->get(Landroid/view/View;)Ljava/lang/Float; -HSPLandroid/view/View$3;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/View$3;->setValue(Landroid/view/View;F)V -HSPLandroid/view/View$3;->setValue(Ljava/lang/Object;F)V -HSPLandroid/view/View$4;->get(Landroid/view/View;)Ljava/lang/Float; -HSPLandroid/view/View$4;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/View$4;->setValue(Landroid/view/View;F)V -HSPLandroid/view/View$4;->setValue(Ljava/lang/Object;F)V -HSPLandroid/view/View$5;->get(Landroid/view/View;)Ljava/lang/Float; -HSPLandroid/view/View$5;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/View$5;->setValue(Landroid/view/View;F)V -HSPLandroid/view/View$5;->setValue(Ljava/lang/Object;F)V -HSPLandroid/view/View$AccessibilityDelegate;-><init>()V -HSPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider; -HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V -HSPLandroid/view/View$AttachInfo;-><init>(Landroid/view/IWindowSession;Landroid/view/IWindow;Landroid/view/Display;Landroid/view/ViewRootImpl;Landroid/os/Handler;Landroid/view/View$AttachInfo$Callbacks;Landroid/content/Context;)V -HSPLandroid/view/View$AttachInfo;->delayNotifyContentCaptureInsetsEvent(Landroid/graphics/Insets;)V -HSPLandroid/view/View$AttachInfo;->ensureEvents(Landroid/view/contentcapture/ContentCaptureSession;)Ljava/util/ArrayList; -HSPLandroid/view/View$BaseSavedState$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/view/View$BaseSavedState; -HSPLandroid/view/View$BaseSavedState$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object; -HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V -HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcelable;)V -HSPLandroid/view/View$BaseSavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/View$CheckForLongPress;->run()V -HSPLandroid/view/View$CheckForTap;->run()V -HSPLandroid/view/View$ForegroundInfo;->-$$Nest$fgetmInsidePadding(Landroid/view/View$ForegroundInfo;)Z -HSPLandroid/view/View$ForegroundInfo;->-$$Nest$fputmInsidePadding(Landroid/view/View$ForegroundInfo;Z)V -HSPLandroid/view/View$ForegroundInfo;-><init>()V -HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmHandwritingArea(Landroid/view/View$ListenerInfo;)Landroid/graphics/Rect; -HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmKeepClearRects(Landroid/view/View$ListenerInfo;)Ljava/util/List; -HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmPreferKeepClear(Landroid/view/View$ListenerInfo;)Z -HSPLandroid/view/View$ListenerInfo;->-$$Nest$fgetmUnrestrictedKeepClearRects(Landroid/view/View$ListenerInfo;)Ljava/util/List; -HSPLandroid/view/View$ListenerInfo;->-$$Nest$fputmHandwritingArea(Landroid/view/View$ListenerInfo;Landroid/graphics/Rect;)V -HSPLandroid/view/View$ListenerInfo;->-$$Nest$fputmPositionChangedUpdate(Landroid/view/View$ListenerInfo;Ljava/lang/Runnable;)V -HSPLandroid/view/View$ListenerInfo;-><init>()V -HSPLandroid/view/View$MeasureSpec;->getMode(I)I -HSPLandroid/view/View$MeasureSpec;->getSize(I)I -HSPLandroid/view/View$MeasureSpec;->makeMeasureSpec(II)I -HSPLandroid/view/View$MeasureSpec;->makeSafeMeasureSpec(II)I -HSPLandroid/view/View$PerformClick;->run()V -HSPLandroid/view/View$ScrollabilityCache;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V -HSPLandroid/view/View$ScrollabilityCache;->run()V+]Landroid/graphics/Interpolator;Landroid/graphics/Interpolator;]Landroid/view/View;missing_types -HSPLandroid/view/View$TintInfo;-><init>()V -HSPLandroid/view/View$TransformationInfo;-><init>()V -HSPLandroid/view/View$UnsetPressedState;->run()V -HSPLandroid/view/View$VisibilityChangeForAutofillHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/view/View;-><init>(Landroid/content/Context;)V+]Landroid/view/View;missing_types]Ljava/lang/Object;missing_types]Landroid/content/Context;missing_types]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;I)V -HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;II)V -HSPLandroid/view/View;->addFrameMetricsListener(Landroid/view/Window;Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V -HSPLandroid/view/View;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V -HSPLandroid/view/View;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V -HSPLandroid/view/View;->animate()Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/View;->announceForAccessibility(Ljava/lang/CharSequence;)V -HSPLandroid/view/View;->appendId(Ljava/lang/StringBuilder;)V -HSPLandroid/view/View;->applyBackgroundTint()V -HSPLandroid/view/View;->applyForegroundTint()V -HSPLandroid/view/View;->applyInsets(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->applyLegacyAnimation(Landroid/view/ViewGroup;JLandroid/view/animation/Animation;Z)Z -HSPLandroid/view/View;->areDrawablesResolved()Z -HSPLandroid/view/View;->assignParent(Landroid/view/ViewParent;)V -HSPLandroid/view/View;->awakenScrollBars()Z -HSPLandroid/view/View;->awakenScrollBars(IZ)Z+]Landroid/os/Handler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/view/View;Landroid/widget/ImageView;,Landroid/widget/TextView;,Landroid/widget/LinearLayout; -HSPLandroid/view/View;->bringToFront()V -HSPLandroid/view/View;->buildDrawingCache(Z)V -HSPLandroid/view/View;->buildDrawingCacheImpl(Z)V -HSPLandroid/view/View;->buildLayer()V -HSPLandroid/view/View;->calculateAccessibilityDataSensitive()V -HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z -HSPLandroid/view/View;->canHaveDisplayList()Z -HSPLandroid/view/View;->canNotifyAutofillEnterExitEvent()Z -HSPLandroid/view/View;->canReceivePointerEvents()Z -HSPLandroid/view/View;->canResolveLayoutDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types -HSPLandroid/view/View;->canResolveTextDirection()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types -HSPLandroid/view/View;->canScrollHorizontally(I)Z -HSPLandroid/view/View;->canScrollVertically(I)Z -HSPLandroid/view/View;->canTakeFocus()Z -HSPLandroid/view/View;->cancel(Landroid/view/View$SendAccessibilityEventThrottle;)V -HSPLandroid/view/View;->cancelLongPress()V -HSPLandroid/view/View;->cancelPendingInputEvents()V -HSPLandroid/view/View;->checkForLongClick(JFFI)V -HSPLandroid/view/View;->checkInputConnectionProxy(Landroid/view/View;)Z -HSPLandroid/view/View;->cleanupDraw()V -HSPLandroid/view/View;->clearAccessibilityFocus()V -HSPLandroid/view/View;->clearAccessibilityFocusNoCallbacks(I)V -HSPLandroid/view/View;->clearAccessibilityThrottles()V -HSPLandroid/view/View;->clearAnimation()V -HSPLandroid/view/View;->clearFocus()V -HSPLandroid/view/View;->clearFocusInternal(Landroid/view/View;ZZ)V -HSPLandroid/view/View;->clearParentsWantFocus()V -HSPLandroid/view/View;->clearTranslationState()V -HSPLandroid/view/View;->clearViewTranslationResponse()V -HSPLandroid/view/View;->collectPreferKeepClearRects()Ljava/util/List; -HSPLandroid/view/View;->collectUnrestrictedPreferKeepClearRects()Ljava/util/List; -HSPLandroid/view/View;->combineMeasuredStates(II)I -HSPLandroid/view/View;->combineVisibility(II)I -HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->computeHorizontalScrollExtent()I -HSPLandroid/view/View;->computeHorizontalScrollOffset()I -HSPLandroid/view/View;->computeHorizontalScrollRange()I -HSPLandroid/view/View;->computeOpaqueFlags()V -HSPLandroid/view/View;->computeScroll()V -HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->computeVerticalScrollExtent()I+]Landroid/view/View;missing_types -HSPLandroid/view/View;->computeVerticalScrollOffset()I -HSPLandroid/view/View;->computeVerticalScrollRange()I+]Landroid/view/View;missing_types -HSPLandroid/view/View;->damageInParent()V -HSPLandroid/view/View;->destroyDrawingCache()V -HSPLandroid/view/View;->destroyHardwareResources()V -HSPLandroid/view/View;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/View;missing_types]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Ljava/util/concurrent/CopyOnWriteArrayList;Ljava/util/concurrent/CopyOnWriteArrayList;]Ljava/util/Iterator;Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator; -HSPLandroid/view/View;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/view/View;->dispatchDetachedFromWindow()V+]Landroid/view/View;missing_types]Ljava/util/List;Ljava/util/Collections$EmptyList;]Landroid/view/ImeFocusController;Landroid/view/ImeFocusController;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V -HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V -HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V -HSPLandroid/view/View;->dispatchInitialProvideContentCaptureStructure()V -HSPLandroid/view/View;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLandroid/view/View;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z -HSPLandroid/view/View;->dispatchNestedFling(FFZ)Z -HSPLandroid/view/View;->dispatchNestedPreFling(FF)Z -HSPLandroid/view/View;->dispatchNestedPreScroll(II[I[I)Z -HSPLandroid/view/View;->dispatchNestedScroll(IIII[I)Z -HSPLandroid/view/View;->dispatchPointerEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/View;->dispatchProvideContentCaptureStructure()V -HSPLandroid/view/View;->dispatchProvideStructure(Landroid/view/ViewStructure;II)V -HSPLandroid/view/View;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V -HSPLandroid/view/View;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V -HSPLandroid/view/View;->dispatchScreenStateChanged(I)V -HSPLandroid/view/View;->dispatchSetActivated(Z)V -HSPLandroid/view/View;->dispatchSetPressed(Z)V -HSPLandroid/view/View;->dispatchSetSelected(Z)V -HSPLandroid/view/View;->dispatchStartTemporaryDetach()V -HSPLandroid/view/View;->dispatchSystemUiVisibilityChanged(I)V -HSPLandroid/view/View;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z+]Landroid/view/View;missing_types -HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/view/View;->dispatchWindowFocusChanged(Z)V -HSPLandroid/view/View;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/View;->dispatchWindowSystemUiVisiblityChanged(I)V -HSPLandroid/view/View;->dispatchWindowVisibilityChanged(I)V -HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)Z+]Landroid/view/View;missing_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/view/ViewGroup;Landroid/widget/FrameLayout;]Landroid/view/animation/Transformation;Landroid/view/animation/Transformation;]Landroid/view/animation/Animation;Landroid/view/animation/TranslateAnimation;,Landroid/view/animation/AlphaAnimation; -HSPLandroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/view/View;->drawDefaultFocusHighlight(Landroid/graphics/Canvas;)V -HSPLandroid/view/View;->drawableHotspotChanged(FF)V -HSPLandroid/view/View;->drawableStateChanged()V+]Landroid/animation/StateListAnimator;Landroid/animation/StateListAnimator;]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;Landroid/widget/ScrollBarDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/StateListDrawable;,Landroid/graphics/drawable/ColorDrawable; -HSPLandroid/view/View;->drawsWithRenderNode(Landroid/graphics/Canvas;)Z+]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/view/View;->ensureTransformationInfo()V -HSPLandroid/view/View;->findAccessibilityFocusHost(Z)Landroid/view/View; -HSPLandroid/view/View;->findFocus()Landroid/view/View; -HSPLandroid/view/View;->findFrameMetricsObserver(Landroid/view/Window$OnFrameMetricsAvailableListener;)Landroid/view/FrameMetricsObserver; -HSPLandroid/view/View;->findKeyboardNavigationCluster()Landroid/view/View; -HSPLandroid/view/View;->findOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; -HSPLandroid/view/View;->findUserSetNextFocus(Landroid/view/View;I)Landroid/view/View; -HSPLandroid/view/View;->findViewByAutofillIdTraversal(I)Landroid/view/View; -HSPLandroid/view/View;->findViewById(I)Landroid/view/View; -HSPLandroid/view/View;->findViewTraversal(I)Landroid/view/View; -HSPLandroid/view/View;->findViewWithTag(Ljava/lang/Object;)Landroid/view/View; -HSPLandroid/view/View;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View; -HSPLandroid/view/View;->fitSystemWindows(Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->focusSearch(I)Landroid/view/View; -HSPLandroid/view/View;->forceLayout()V -HSPLandroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z -HSPLandroid/view/View;->generateViewId()I -HSPLandroid/view/View;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate; -HSPLandroid/view/View;->getAccessibilityLiveRegion()I -HSPLandroid/view/View;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider; -HSPLandroid/view/View;->getAccessibilityViewId()I -HSPLandroid/view/View;->getAlpha()F -HSPLandroid/view/View;->getAndCacheContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession; -HSPLandroid/view/View;->getAnimation()Landroid/view/animation/Animation; -HSPLandroid/view/View;->getApplicationWindowToken()Landroid/os/IBinder; -HSPLandroid/view/View;->getAutofillHints()[Ljava/lang/String; -HSPLandroid/view/View;->getAutofillId()Landroid/view/autofill/AutofillId; -HSPLandroid/view/View;->getAutofillType()I -HSPLandroid/view/View;->getAutofillViewId()I -HSPLandroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable; -HSPLandroid/view/View;->getBaseline()I -HSPLandroid/view/View;->getBottom()I -HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V -HSPLandroid/view/View;->getClipBounds()Landroid/graphics/Rect; -HSPLandroid/view/View;->getClipToOutline()Z -HSPLandroid/view/View;->getContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession; -HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence; -HSPLandroid/view/View;->getContext()Landroid/content/Context; -HSPLandroid/view/View;->getDefaultSize(II)I -HSPLandroid/view/View;->getDisplay()Landroid/view/Display; -HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode;+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/drawable/Drawable;missing_types]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class; -HSPLandroid/view/View;->getDrawableState()[I+]Landroid/view/View;missing_types -HSPLandroid/view/View;->getDrawingCache(Z)Landroid/graphics/Bitmap; -HSPLandroid/view/View;->getDrawingRect(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->getDrawingTime()J -HSPLandroid/view/View;->getElevation()F -HSPLandroid/view/View;->getFilterTouchesWhenObscured()Z -HSPLandroid/view/View;->getFinalAlpha()F -HSPLandroid/view/View;->getFitsSystemWindows()Z -HSPLandroid/view/View;->getFocusable()I -HSPLandroid/view/View;->getFocusableAttribute(Landroid/content/res/TypedArray;)I -HSPLandroid/view/View;->getFocusedRect(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->getForeground()Landroid/graphics/drawable/Drawable; -HSPLandroid/view/View;->getForegroundGravity()I -HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z -HSPLandroid/view/View;->getHandler()Landroid/os/Handler; -HSPLandroid/view/View;->getHasOverlappingRendering()Z+]Landroid/view/View;missing_types -HSPLandroid/view/View;->getHeight()I -HSPLandroid/view/View;->getHitRect(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->getHorizontalFadingEdgeLength()I -HSPLandroid/view/View;->getHorizontalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V -HSPLandroid/view/View;->getHorizontalScrollbarHeight()I -HSPLandroid/view/View;->getId()I -HSPLandroid/view/View;->getImportantForAccessibility()I -HSPLandroid/view/View;->getImportantForAutofill()I -HSPLandroid/view/View;->getImportantForContentCapture()I -HSPLandroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix; -HSPLandroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState; -HSPLandroid/view/View;->getLayerType()I -HSPLandroid/view/View;->getLayoutDirection()I+]Landroid/view/View;missing_types]Landroid/content/Context;missing_types -HSPLandroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/view/View;->getLeft()I -HSPLandroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo; -HSPLandroid/view/View;->getLocalVisibleRect(Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->getLocationInSurface([I)V -HSPLandroid/view/View;->getLocationInWindow([I)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->getLocationOnScreen()[I -HSPLandroid/view/View;->getLocationOnScreen([I)V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix;+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->getMeasuredHeight()I -HSPLandroid/view/View;->getMeasuredState()I -HSPLandroid/view/View;->getMeasuredWidth()I -HSPLandroid/view/View;->getMeasuredWidthAndState()I -HSPLandroid/view/View;->getMinimumHeight()I -HSPLandroid/view/View;->getMinimumWidth()I -HSPLandroid/view/View;->getNotifiedContentCaptureAppeared()Z -HSPLandroid/view/View;->getOutlineProvider()Landroid/view/ViewOutlineProvider; -HSPLandroid/view/View;->getOverScrollMode()I -HSPLandroid/view/View;->getPaddingBottom()I -HSPLandroid/view/View;->getPaddingEnd()I -HSPLandroid/view/View;->getPaddingLeft()I -HSPLandroid/view/View;->getPaddingRight()I -HSPLandroid/view/View;->getPaddingStart()I -HSPLandroid/view/View;->getPaddingTop()I -HSPLandroid/view/View;->getParent()Landroid/view/ViewParent; -HSPLandroid/view/View;->getPivotX()F -HSPLandroid/view/View;->getPivotY()F -HSPLandroid/view/View;->getProjectionReceiver()Landroid/view/View; -HSPLandroid/view/View;->getRawLayoutDirection()I -HSPLandroid/view/View;->getRawTextAlignment()I -HSPLandroid/view/View;->getRawTextDirection()I -HSPLandroid/view/View;->getReceiveContentMimeTypes()[Ljava/lang/String; -HSPLandroid/view/View;->getResources()Landroid/content/res/Resources; -HSPLandroid/view/View;->getRight()I -HSPLandroid/view/View;->getRootView()Landroid/view/View; -HSPLandroid/view/View;->getRootWindowInsets()Landroid/view/WindowInsets; -HSPLandroid/view/View;->getRotation()F -HSPLandroid/view/View;->getRotationX()F -HSPLandroid/view/View;->getRotationY()F -HSPLandroid/view/View;->getRunQueue()Landroid/view/HandlerActionQueue; -HSPLandroid/view/View;->getScaleX()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->getScaleY()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->getScrollX()I -HSPLandroid/view/View;->getScrollY()I -HSPLandroid/view/View;->getSolidColor()I -HSPLandroid/view/View;->getStateListAnimator()Landroid/animation/StateListAnimator; -HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->getSuggestedMinimumHeight()I+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->getSuggestedMinimumWidth()I+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->getSystemGestureExclusionRects()Ljava/util/List; -HSPLandroid/view/View;->getSystemUiVisibility()I -HSPLandroid/view/View;->getTag()Ljava/lang/Object; -HSPLandroid/view/View;->getTag(I)Ljava/lang/Object; -HSPLandroid/view/View;->getTextAlignment()I -HSPLandroid/view/View;->getTextDirection()I -HSPLandroid/view/View;->getThreadedRenderer()Landroid/view/ThreadedRenderer; -HSPLandroid/view/View;->getTop()I -HSPLandroid/view/View;->getTransitionAlpha()F -HSPLandroid/view/View;->getTransitionName()Ljava/lang/String; -HSPLandroid/view/View;->getTranslationX()F -HSPLandroid/view/View;->getTranslationY()F+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->getTranslationZ()F -HSPLandroid/view/View;->getVerticalFadingEdgeLength()I -HSPLandroid/view/View;->getVerticalScrollbarWidth()I+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable; -HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl; -HSPLandroid/view/View;->getViewTranslationCallback()Landroid/view/translation/ViewTranslationCallback; -HSPLandroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver; -HSPLandroid/view/View;->getVisibility()I -HSPLandroid/view/View;->getWidth()I -HSPLandroid/view/View;->getWindowAttachCount()I -HSPLandroid/view/View;->getWindowId()Landroid/view/WindowId; -HSPLandroid/view/View;->getWindowInsetsController()Landroid/view/WindowInsetsController;+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/View;->getWindowSystemUiVisibility()I -HSPLandroid/view/View;->getWindowToken()Landroid/os/IBinder; -HSPLandroid/view/View;->getWindowVisibility()I -HSPLandroid/view/View;->getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->getX()F -HSPLandroid/view/View;->getY()F -HSPLandroid/view/View;->getZ()F -HSPLandroid/view/View;->handleFocusGainInternal(ILandroid/graphics/Rect;)V -HSPLandroid/view/View;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->hasAncestorThatBlocksDescendantFocus()Z -HSPLandroid/view/View;->hasDefaultFocus()Z -HSPLandroid/view/View;->hasExplicitFocusable()Z -HSPLandroid/view/View;->hasFocus()Z -HSPLandroid/view/View;->hasFocusable()Z -HSPLandroid/view/View;->hasFocusable(ZZ)Z -HSPLandroid/view/View;->hasIdentityMatrix()Z+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->hasImeFocus()Z -HSPLandroid/view/View;->hasListenersForAccessibility()Z -HSPLandroid/view/View;->hasNestedScrollingParent()Z -HSPLandroid/view/View;->hasOnClickListeners()Z -HSPLandroid/view/View;->hasOverlappingRendering()Z -HSPLandroid/view/View;->hasRtlSupport()Z -HSPLandroid/view/View;->hasSize()Z -HSPLandroid/view/View;->hasTransientState()Z -HSPLandroid/view/View;->hasTranslationTransientState()Z -HSPLandroid/view/View;->hasUnhandledKeyListener()Z -HSPLandroid/view/View;->hasWindowFocus()Z -HSPLandroid/view/View;->hasWindowInsetsAnimationCallback()Z -HSPLandroid/view/View;->hideAutofillHighlight()Z -HSPLandroid/view/View;->hideTooltip()V -HSPLandroid/view/View;->includeForAccessibility()Z -HSPLandroid/view/View;->includeForAccessibility(Z)Z -HSPLandroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View; -HSPLandroid/view/View;->initScrollCache()V -HSPLandroid/view/View;->initialAwakenScrollBars()Z+]Landroid/view/View;Landroid/widget/ScrollView; -HSPLandroid/view/View;->initializeFadingEdgeInternal(Landroid/content/res/TypedArray;)V -HSPLandroid/view/View;->initializeScrollIndicatorsInternal()V -HSPLandroid/view/View;->initializeScrollbarsInternal(Landroid/content/res/TypedArray;)V -HSPLandroid/view/View;->internalSetPadding(IIII)V -HSPLandroid/view/View;->invalidate()V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->invalidate(IIII)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->invalidate(Landroid/graphics/Rect;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->invalidate(Z)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/view/View;missing_types]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->invalidateInternal(IIIIZZ)V+]Landroid/view/View;megamorphic_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;missing_types]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->invalidateOutline()V -HSPLandroid/view/View;->invalidateParentCaches()V -HSPLandroid/view/View;->invalidateParentIfNeeded()V -HSPLandroid/view/View;->invalidateParentIfNeededAndWasQuickRejected()V -HSPLandroid/view/View;->invalidateViewProperty(ZZ)V -HSPLandroid/view/View;->isAccessibilityFocused()Z -HSPLandroid/view/View;->isAccessibilityFocusedViewOrHost()Z -HSPLandroid/view/View;->isAccessibilityPane()Z -HSPLandroid/view/View;->isActionableForAccessibility()Z -HSPLandroid/view/View;->isActivated()Z -HSPLandroid/view/View;->isAggregatedVisible()Z -HSPLandroid/view/View;->isAttachedToWindow()Z -HSPLandroid/view/View;->isAutoHandwritingEnabled()Z -HSPLandroid/view/View;->isAutofillable()Z+]Landroid/view/View;missing_types]Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillManager; -HSPLandroid/view/View;->isAutofilled()Z -HSPLandroid/view/View;->isClickable()Z -HSPLandroid/view/View;->isContextClickable()Z -HSPLandroid/view/View;->isCredential()Z -HSPLandroid/view/View;->isDefaultFocusHighlightNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/view/View;->isEnabled()Z -HSPLandroid/view/View;->isFocusable()Z -HSPLandroid/view/View;->isFocusableInTouchMode()Z -HSPLandroid/view/View;->isFocused()Z -HSPLandroid/view/View;->isFocusedByDefault()Z -HSPLandroid/view/View;->isForegroundInsidePadding()Z -HSPLandroid/view/View;->isFrameworkOptionalFitsSystemWindows()Z -HSPLandroid/view/View;->isHapticFeedbackEnabled()Z -HSPLandroid/view/View;->isHardwareAccelerated()Z -HSPLandroid/view/View;->isHorizontalFadingEdgeEnabled()Z -HSPLandroid/view/View;->isHorizontalScrollBarEnabled()Z -HSPLandroid/view/View;->isImportantForAccessibility()Z -HSPLandroid/view/View;->isImportantForAutofill()Z+]Landroid/view/View;missing_types]Landroid/view/ViewParent;missing_types -HSPLandroid/view/View;->isImportantForContentCapture()Z -HSPLandroid/view/View;->isInEditMode()Z -HSPLandroid/view/View;->isInLayout()Z -HSPLandroid/view/View;->isInScrollingContainer()Z -HSPLandroid/view/View;->isInTouchMode()Z -HSPLandroid/view/View;->isKeyboardNavigationCluster()Z -HSPLandroid/view/View;->isLaidOut()Z -HSPLandroid/view/View;->isLayoutDirectionInherited()Z -HSPLandroid/view/View;->isLayoutDirectionResolved()Z -HSPLandroid/view/View;->isLayoutModeOptical(Ljava/lang/Object;)Z+]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/View;->isLayoutRequested()Z -HSPLandroid/view/View;->isLayoutRtl()Z -HSPLandroid/view/View;->isLayoutValid()Z+]Landroid/view/View;missing_types -HSPLandroid/view/View;->isLongClickable()Z -HSPLandroid/view/View;->isNestedScrollingEnabled()Z -HSPLandroid/view/View;->isOpaque()Z -HSPLandroid/view/View;->isPaddingResolved()Z -HSPLandroid/view/View;->isPressed()Z -HSPLandroid/view/View;->isProjectionReceiver()Z -HSPLandroid/view/View;->isRootNamespace()Z -HSPLandroid/view/View;->isRtlCompatibilityMode()Z -HSPLandroid/view/View;->isSelected()Z -HSPLandroid/view/View;->isShowingLayoutBounds()Z -HSPLandroid/view/View;->isShown()Z -HSPLandroid/view/View;->isSoundEffectsEnabled()Z -HSPLandroid/view/View;->isTemporarilyDetached()Z -HSPLandroid/view/View;->isTextAlignmentInherited()Z -HSPLandroid/view/View;->isTextAlignmentResolved()Z -HSPLandroid/view/View;->isTextDirectionInherited()Z -HSPLandroid/view/View;->isTextDirectionResolved()Z -HSPLandroid/view/View;->isVerticalFadingEdgeEnabled()Z -HSPLandroid/view/View;->isVerticalScrollBarEnabled()Z -HSPLandroid/view/View;->isVerticalScrollBarHidden()Z -HSPLandroid/view/View;->isViewIdGenerated(I)Z -HSPLandroid/view/View;->isVisibleToUser()Z -HSPLandroid/view/View;->isVisibleToUser(Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->jumpDrawablesToCurrentState()V -HSPLandroid/view/View;->layout(IIII)V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/View;->makeFrameworkOptionalFitsSystemWindows()V -HSPLandroid/view/View;->makeOptionalFitsSystemWindows()V -HSPLandroid/view/View;->mapRectFromViewToScreenCoords(Landroid/graphics/RectF;Z)V -HSPLandroid/view/View;->mapRectFromViewToWindowCoords(Landroid/graphics/RectF;Z)V -HSPLandroid/view/View;->measure(II)V+]Landroid/view/View;megamorphic_types]Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray; -HSPLandroid/view/View;->mergeDrawableStates([I[I)[I -HSPLandroid/view/View;->needGlobalAttributesUpdate(Z)V -HSPLandroid/view/View;->needRtlPropertiesResolution()Z -HSPLandroid/view/View;->notifyAppearedOrDisappearedForContentCaptureIfNeeded(Z)V -HSPLandroid/view/View;->notifyAutofillManagerOnClick()V -HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V -HSPLandroid/view/View;->notifyGlobalFocusCleared(Landroid/view/View;)V -HSPLandroid/view/View;->notifySubtreeAccessibilityStateChangedByParentIfNeeded()V -HSPLandroid/view/View;->notifySubtreeAccessibilityStateChangedIfNeeded()V -HSPLandroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V -HSPLandroid/view/View;->offsetLeftAndRight(I)V -HSPLandroid/view/View;->offsetTopAndBottom(I)V -HSPLandroid/view/View;->onAnimationEnd()V -HSPLandroid/view/View;->onAnimationStart()V -HSPLandroid/view/View;->onApplyFrameworkOptionalFitSystemWindows(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/View;->onAttachedToWindow()V+]Landroid/view/accessibility/AccessibilityNodeIdManager;Landroid/view/accessibility/AccessibilityNodeIdManager;]Landroid/view/View;missing_types -HSPLandroid/view/View;->onCancelPendingInputEvents()V -HSPLandroid/view/View;->onCheckIsTextEditor()Z -HSPLandroid/view/View;->onCloseSystemDialogs(Ljava/lang/String;)V -HSPLandroid/view/View;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/view/View;->onCreateDrawableState(I)[I+]Landroid/view/View;missing_types -HSPLandroid/view/View;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection; -HSPLandroid/view/View;->onDetachedFromWindow()V -HSPLandroid/view/View;->onDetachedFromWindowInternal()V+]Landroid/view/accessibility/AccessibilityNodeIdManager;Landroid/view/accessibility/AccessibilityNodeIdManager;]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V -HSPLandroid/view/View;->onDrawScrollBars(Landroid/graphics/Canvas;)V+]Landroid/graphics/Interpolator;Landroid/graphics/Interpolator;]Landroid/view/View;missing_types]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable; -HSPLandroid/view/View;->onDrawScrollIndicators(Landroid/graphics/Canvas;)V -HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V+]Landroid/graphics/drawable/Drawable;Landroid/widget/ScrollBarDrawable; -HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->onFinishInflate()V -HSPLandroid/view/View;->onFinishTemporaryDetach()V -HSPLandroid/view/View;->onFocusChanged(ZILandroid/graphics/Rect;)V -HSPLandroid/view/View;->onFocusLost()V -HSPLandroid/view/View;->onKeyDown(ILandroid/view/KeyEvent;)Z -HSPLandroid/view/View;->onKeyPreIme(ILandroid/view/KeyEvent;)Z -HSPLandroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z -HSPLandroid/view/View;->onLayout(ZIIII)V -HSPLandroid/view/View;->onMeasure(II)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/View;->onProvideAutofillVirtualStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/View;->onProvideContentCaptureStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V -HSPLandroid/view/View;->onResolveDrawables(I)V -HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V -HSPLandroid/view/View;->onRtlPropertiesChanged(I)V -HSPLandroid/view/View;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/view/View;->onScreenStateChanged(I)V -HSPLandroid/view/View;->onScrollChanged(IIII)V -HSPLandroid/view/View;->onSetAlpha(I)Z -HSPLandroid/view/View;->onSizeChanged(IIII)V -HSPLandroid/view/View;->onStartTemporaryDetach()V -HSPLandroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->onVisibilityAggregated(Z)V+]Landroid/view/View;megamorphic_types]Ljava/util/List;Ljava/util/Collections$EmptyList;,Ljava/util/ArrayList;]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->onVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/view/View;->onWindowFocusChanged(Z)V -HSPLandroid/view/View;->onWindowSystemUiVisibilityChanged(I)V -HSPLandroid/view/View;->onWindowVisibilityChanged(I)V -HSPLandroid/view/View;->overScrollBy(IIIIIIIIZ)Z -HSPLandroid/view/View;->performButtonActionOnTouchDown(Landroid/view/MotionEvent;)Z -HSPLandroid/view/View;->performClick()Z -HSPLandroid/view/View;->performCollectViewAttributes(Landroid/view/View$AttachInfo;I)V -HSPLandroid/view/View;->performHapticFeedback(I)Z -HSPLandroid/view/View;->performHapticFeedback(II)Z -HSPLandroid/view/View;->performLongClick()Z -HSPLandroid/view/View;->performLongClick(FF)Z -HSPLandroid/view/View;->performLongClickInternal(FF)Z -HSPLandroid/view/View;->playSoundEffect(I)V -HSPLandroid/view/View;->pointInView(FF)Z -HSPLandroid/view/View;->pointInView(FFF)Z -HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z -HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z -HSPLandroid/view/View;->postInvalidate()V -HSPLandroid/view/View;->postInvalidateDelayed(J)V -HSPLandroid/view/View;->postInvalidateOnAnimation()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/View;->postOnAnimation(Ljava/lang/Runnable;)V -HSPLandroid/view/View;->postOnAnimationDelayed(Ljava/lang/Runnable;J)V -HSPLandroid/view/View;->postSendViewScrolledAccessibilityEventCallback(II)V -HSPLandroid/view/View;->postUpdate(Ljava/lang/Runnable;)V -HSPLandroid/view/View;->rebuildOutline()V+]Landroid/view/ViewOutlineProvider;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/Outline;Landroid/graphics/Outline; -HSPLandroid/view/View;->recomputePadding()V -HSPLandroid/view/View;->refreshDrawableState()V -HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V -HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z -HSPLandroid/view/View;->removeFrameMetricsListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V -HSPLandroid/view/View;->removeLongPressCallback()V -HSPLandroid/view/View;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V -HSPLandroid/view/View;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V -HSPLandroid/view/View;->removePerformClickCallback()V -HSPLandroid/view/View;->removeTapCallback()V -HSPLandroid/view/View;->removeUnsetPressCallback()V -HSPLandroid/view/View;->requestApplyInsets()V -HSPLandroid/view/View;->requestFitSystemWindows()V -HSPLandroid/view/View;->requestFocus()Z -HSPLandroid/view/View;->requestFocus(I)Z -HSPLandroid/view/View;->requestFocus(ILandroid/graphics/Rect;)Z -HSPLandroid/view/View;->requestFocusNoSearch(ILandroid/graphics/Rect;)Z -HSPLandroid/view/View;->requestLayout()V+]Landroid/view/View;missing_types]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;]Landroid/view/ViewParent;missing_types -HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;)Z -HSPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z -HSPLandroid/view/View;->requireViewById(I)Landroid/view/View; -HSPLandroid/view/View;->resetDisplayList()V -HSPLandroid/view/View;->resetPressedState()V -HSPLandroid/view/View;->resetResolvedDrawables()V -HSPLandroid/view/View;->resetResolvedDrawablesInternal()V -HSPLandroid/view/View;->resetResolvedLayoutDirection()V -HSPLandroid/view/View;->resetResolvedPadding()V -HSPLandroid/view/View;->resetResolvedPaddingInternal()V -HSPLandroid/view/View;->resetResolvedTextAlignment()V -HSPLandroid/view/View;->resetResolvedTextDirection()V -HSPLandroid/view/View;->resetRtlProperties()V -HSPLandroid/view/View;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/View;->resolveDrawables()V -HSPLandroid/view/View;->resolveLayoutDirection()Z -HSPLandroid/view/View;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup$LayoutParams;missing_types -HSPLandroid/view/View;->resolvePadding()V+]Landroid/view/View;missing_types]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/ColorDrawable; -HSPLandroid/view/View;->resolveRtlPropertiesIfNeeded()Z+]Landroid/view/View;missing_types -HSPLandroid/view/View;->resolveSize(II)I -HSPLandroid/view/View;->resolveSizeAndState(III)I -HSPLandroid/view/View;->resolveTextAlignment()Z -HSPLandroid/view/View;->resolveTextDirection()Z -HSPLandroid/view/View;->restoreHierarchyState(Landroid/util/SparseArray;)V -HSPLandroid/view/View;->retrieveExplicitStyle(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V -HSPLandroid/view/View;->rootViewRequestFocus()Z -HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;)F -HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;FF)F -HSPLandroid/view/View;->saveAttributeDataForStyleable(Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V -HSPLandroid/view/View;->saveHierarchyState(Landroid/util/SparseArray;)V -HSPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V -HSPLandroid/view/View;->scrollBy(II)V -HSPLandroid/view/View;->scrollTo(II)V -HSPLandroid/view/View;->sendAccessibilityEvent(I)V -HSPLandroid/view/View;->sendAccessibilityEventInternal(I)V -HSPLandroid/view/View;->setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V -HSPLandroid/view/View;->setAccessibilityHeading(Z)V -HSPLandroid/view/View;->setAccessibilityLiveRegion(I)V -HSPLandroid/view/View;->setAccessibilityPaneTitle(Ljava/lang/CharSequence;)V -HSPLandroid/view/View;->setAccessibilityTraversalAfter(I)V -HSPLandroid/view/View;->setAccessibilityTraversalBefore(I)V -HSPLandroid/view/View;->setActivated(Z)V -HSPLandroid/view/View;->setAlpha(F)V -HSPLandroid/view/View;->setAlphaInternal(F)V -HSPLandroid/view/View;->setAlphaNoInvalidation(F)Z -HSPLandroid/view/View;->setAnimation(Landroid/view/animation/Animation;)V -HSPLandroid/view/View;->setAutoHandwritingEnabled(Z)V -HSPLandroid/view/View;->setAutofilled(ZZ)V -HSPLandroid/view/View;->setBackground(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/View;->setBackgroundBounds()V+]Landroid/graphics/drawable/Drawable;missing_types -HSPLandroid/view/View;->setBackgroundColor(I)V -HSPLandroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/view/View;missing_types]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal$SuppliedThreadLocal;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/ColorDrawable; -HSPLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)V+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->setBackgroundResource(I)V -HSPLandroid/view/View;->setBackgroundTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/view/View;->setBottom(I)V -HSPLandroid/view/View;->setClickable(Z)V -HSPLandroid/view/View;->setClipBounds(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->setClipToOutline(Z)V -HSPLandroid/view/View;->setContentDescription(Ljava/lang/CharSequence;)V -HSPLandroid/view/View;->setDefaultFocusHighlightEnabled(Z)V -HSPLandroid/view/View;->setDetached(Z)V -HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->setDrawingCacheEnabled(Z)V -HSPLandroid/view/View;->setElevation(F)V -HSPLandroid/view/View;->setEnabled(Z)V -HSPLandroid/view/View;->setFitsSystemWindows(Z)V -HSPLandroid/view/View;->setFlags(II)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/view/ViewParent;missing_types -HSPLandroid/view/View;->setFocusable(I)V -HSPLandroid/view/View;->setFocusable(Z)V -HSPLandroid/view/View;->setFocusableInTouchMode(Z)V -HSPLandroid/view/View;->setForeground(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/View;->setForegroundGravity(I)V -HSPLandroid/view/View;->setFrame(IIII)Z+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->setHandwritingArea(Landroid/graphics/Rect;)V -HSPLandroid/view/View;->setHapticFeedbackEnabled(Z)V -HSPLandroid/view/View;->setHasTransientState(Z)V -HSPLandroid/view/View;->setHorizontalFadingEdgeEnabled(Z)V -HSPLandroid/view/View;->setHorizontalScrollBarEnabled(Z)V -HSPLandroid/view/View;->setId(I)V -HSPLandroid/view/View;->setImportantForAccessibility(I)V -HSPLandroid/view/View;->setImportantForAutofill(I)V -HSPLandroid/view/View;->setImportantForContentCapture(I)V -HSPLandroid/view/View;->setIsRootNamespace(Z)V -HSPLandroid/view/View;->setKeepScreenOn(Z)V -HSPLandroid/view/View;->setKeyboardNavigationCluster(Z)V -HSPLandroid/view/View;->setKeyedTag(ILjava/lang/Object;)V -HSPLandroid/view/View;->setLayerPaint(Landroid/graphics/Paint;)V -HSPLandroid/view/View;->setLayerType(ILandroid/graphics/Paint;)V -HSPLandroid/view/View;->setLayoutDirection(I)V -HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/View;->setLeft(I)V -HSPLandroid/view/View;->setLeftTopRightBottom(IIII)V -HSPLandroid/view/View;->setLongClickable(Z)V -HSPLandroid/view/View;->setMeasuredDimension(II)V -HSPLandroid/view/View;->setMeasuredDimensionRaw(II)V -HSPLandroid/view/View;->setMinimumHeight(I)V -HSPLandroid/view/View;->setMinimumWidth(I)V -HSPLandroid/view/View;->setNotifiedContentCaptureAppeared()V -HSPLandroid/view/View;->setOnApplyWindowInsetsListener(Landroid/view/View$OnApplyWindowInsetsListener;)V -HSPLandroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V -HSPLandroid/view/View;->setOnCreateContextMenuListener(Landroid/view/View$OnCreateContextMenuListener;)V -HSPLandroid/view/View;->setOnDragListener(Landroid/view/View$OnDragListener;)V -HSPLandroid/view/View;->setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V -HSPLandroid/view/View;->setOnHoverListener(Landroid/view/View$OnHoverListener;)V -HSPLandroid/view/View;->setOnKeyListener(Landroid/view/View$OnKeyListener;)V -HSPLandroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V -HSPLandroid/view/View;->setOnScrollChangeListener(Landroid/view/View$OnScrollChangeListener;)V -HSPLandroid/view/View;->setOnSystemUiVisibilityChangeListener(Landroid/view/View$OnSystemUiVisibilityChangeListener;)V -HSPLandroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V -HSPLandroid/view/View;->setOutlineAmbientShadowColor(I)V -HSPLandroid/view/View;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V -HSPLandroid/view/View;->setOutlineProviderFromAttribute(I)V -HSPLandroid/view/View;->setOutlineSpotShadowColor(I)V -HSPLandroid/view/View;->setOverScrollMode(I)V -HSPLandroid/view/View;->setPadding(IIII)V -HSPLandroid/view/View;->setPaddingRelative(IIII)V -HSPLandroid/view/View;->setPivotX(F)V -HSPLandroid/view/View;->setPivotY(F)V -HSPLandroid/view/View;->setPointerIcon(Landroid/view/PointerIcon;)V -HSPLandroid/view/View;->setPressed(Z)V -HSPLandroid/view/View;->setRenderEffect(Landroid/graphics/RenderEffect;)V -HSPLandroid/view/View;->setRight(I)V -HSPLandroid/view/View;->setRotation(F)V -HSPLandroid/view/View;->setRotationX(F)V -HSPLandroid/view/View;->setRotationY(F)V -HSPLandroid/view/View;->setSaveEnabled(Z)V -HSPLandroid/view/View;->setSaveFromParentEnabled(Z)V -HSPLandroid/view/View;->setScaleX(F)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->setScaleY(F)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->setScrollContainer(Z)V -HSPLandroid/view/View;->setScrollIndicators(II)V -HSPLandroid/view/View;->setScrollX(I)V -HSPLandroid/view/View;->setScrollY(I)V -HSPLandroid/view/View;->setSelected(Z)V -HSPLandroid/view/View;->setStateDescription(Ljava/lang/CharSequence;)V -HSPLandroid/view/View;->setStateListAnimator(Landroid/animation/StateListAnimator;)V -HSPLandroid/view/View;->setSystemGestureExclusionRects(Ljava/util/List;)V -HSPLandroid/view/View;->setSystemUiVisibility(I)V -HSPLandroid/view/View;->setTag(ILjava/lang/Object;)V -HSPLandroid/view/View;->setTag(Ljava/lang/Object;)V -HSPLandroid/view/View;->setTagInternal(ILjava/lang/Object;)V -HSPLandroid/view/View;->setTextAlignment(I)V -HSPLandroid/view/View;->setTextDirection(I)V -HSPLandroid/view/View;->setTooltipText(Ljava/lang/CharSequence;)V -HSPLandroid/view/View;->setTop(I)V -HSPLandroid/view/View;->setTouchDelegate(Landroid/view/TouchDelegate;)V -HSPLandroid/view/View;->setTransitionAlpha(F)V -HSPLandroid/view/View;->setTransitionName(Ljava/lang/String;)V -HSPLandroid/view/View;->setTransitionVisibility(I)V -HSPLandroid/view/View;->setTranslationX(F)V -HSPLandroid/view/View;->setTranslationY(F)V -HSPLandroid/view/View;->setTranslationZ(F)V+]Landroid/view/View;missing_types]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V -HSPLandroid/view/View;->setVisibility(I)V -HSPLandroid/view/View;->setWillNotDraw(Z)V -HSPLandroid/view/View;->setX(F)V -HSPLandroid/view/View;->setY(F)V -HSPLandroid/view/View;->shouldDrawRoundScrollbar()Z+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/res/Configuration;Landroid/content/res/Configuration; -HSPLandroid/view/View;->sizeChange(IIII)V -HSPLandroid/view/View;->skipInvalidate()Z+]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V -HSPLandroid/view/View;->startNestedScroll(I)Z -HSPLandroid/view/View;->stopNestedScroll()V -HSPLandroid/view/View;->switchDefaultFocusHighlight()V -HSPLandroid/view/View;->toString()Ljava/lang/String; -HSPLandroid/view/View;->transformFromViewToWindowSpace([I)V+]Landroid/view/View;missing_types -HSPLandroid/view/View;->unFocus(Landroid/view/View;)V -HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V -HSPLandroid/view/View;->updateDisplayListIfDirty()Landroid/graphics/RenderNode;+]Landroid/view/View;megamorphic_types]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V -HSPLandroid/view/View;->updateHandwritingArea()V -HSPLandroid/view/View;->updateKeepClearRects()V -HSPLandroid/view/View;->updateLocalSystemUiVisibility(II)Z -HSPLandroid/view/View;->updatePflags3AndNotifyA11yIfChanged(IZ)V -HSPLandroid/view/View;->updatePositionUpdateListener()V -HSPLandroid/view/View;->updatePreferKeepClearForFocus()V -HSPLandroid/view/View;->updateSystemGestureExclusionRects()V -HSPLandroid/view/View;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/view/View;->willNotDraw()Z -HSPLandroid/view/ViewAnimationHostBridge;-><init>(Landroid/view/View;)V -HSPLandroid/view/ViewAnimationHostBridge;->isAttached()Z -HSPLandroid/view/ViewAnimationHostBridge;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V -HSPLandroid/view/ViewAnimationHostBridge;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V -HSPLandroid/view/ViewConfiguration;-><init>(Landroid/content/Context;)V -HSPLandroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; -HSPLandroid/view/ViewConfiguration;->getDoubleTapTimeout()I -HSPLandroid/view/ViewConfiguration;->getLongPressTimeout()I -HSPLandroid/view/ViewConfiguration;->getPressedStateDuration()I -HSPLandroid/view/ViewConfiguration;->getScaledAmbiguousGestureMultiplier()F -HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapSlop()I -HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapTouchSlop()I -HSPLandroid/view/ViewConfiguration;->getScaledFadingEdgeLength()I -HSPLandroid/view/ViewConfiguration;->getScaledHandwritingSlop()I -HSPLandroid/view/ViewConfiguration;->getScaledHorizontalScrollFactor()F -HSPLandroid/view/ViewConfiguration;->getScaledHoverSlop()I -HSPLandroid/view/ViewConfiguration;->getScaledMaximumDrawingCacheSize()I -HSPLandroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I -HSPLandroid/view/ViewConfiguration;->getScaledMinScrollbarTouchTarget()I -HSPLandroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I -HSPLandroid/view/ViewConfiguration;->getScaledMinimumScalingSpan()I -HSPLandroid/view/ViewConfiguration;->getScaledOverflingDistance()I -HSPLandroid/view/ViewConfiguration;->getScaledOverscrollDistance()I -HSPLandroid/view/ViewConfiguration;->getScaledPagingTouchSlop()I -HSPLandroid/view/ViewConfiguration;->getScaledScrollBarSize()I -HSPLandroid/view/ViewConfiguration;->getScaledTouchSlop()I -HSPLandroid/view/ViewConfiguration;->getScaledVerticalScrollFactor()F -HSPLandroid/view/ViewConfiguration;->getScaledWindowTouchSlop()I -HSPLandroid/view/ViewConfiguration;->getScrollBarFadeDuration()I -HSPLandroid/view/ViewConfiguration;->getScrollDefaultDelay()I -HSPLandroid/view/ViewConfiguration;->getScrollFriction()F -HSPLandroid/view/ViewConfiguration;->getTapTimeout()I -HSPLandroid/view/ViewConfiguration;->isFadingMarqueeEnabled()Z -HSPLandroid/view/ViewConfiguration;->isPreferKeepClearForFocusEnabled()Z -HSPLandroid/view/ViewDebug;->getViewInstanceCount()J -HSPLandroid/view/ViewDebug;->getViewRootImplCount()J -HSPLandroid/view/ViewFrameInfo;-><init>()V -HSPLandroid/view/ViewFrameInfo;->markDrawStart()V -HSPLandroid/view/ViewFrameInfo;->populateFrameInfo(Landroid/graphics/FrameInfo;)V -HSPLandroid/view/ViewFrameInfo;->reset()V -HSPLandroid/view/ViewFrameInfo;->setInputEvent(I)V -HSPLandroid/view/ViewGroup$4;-><init>(Landroid/view/ViewGroup;)V -HSPLandroid/view/ViewGroup$4;->endTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V -HSPLandroid/view/ViewGroup$4;->startTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V -HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;-><init>()V -HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->obtain()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; -HSPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->recycle()V -HSPLandroid/view/ViewGroup$LayoutParams;-><init>()V -HSPLandroid/view/ViewGroup$LayoutParams;-><init>(II)V -HSPLandroid/view/ViewGroup$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/ViewGroup$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/ViewGroup$LayoutParams;->resolveLayoutDirection(I)V -HSPLandroid/view/ViewGroup$LayoutParams;->setBaseAttributes(Landroid/content/res/TypedArray;II)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(II)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Landroid/view/ViewGroup$MarginLayoutParams;missing_types]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;->doResolveMargins()V -HSPLandroid/view/ViewGroup$MarginLayoutParams;->getLayoutDirection()I -HSPLandroid/view/ViewGroup$MarginLayoutParams;->getMarginEnd()I -HSPLandroid/view/ViewGroup$MarginLayoutParams;->getMarginStart()I -HSPLandroid/view/ViewGroup$MarginLayoutParams;->isMarginRelative()Z -HSPLandroid/view/ViewGroup$MarginLayoutParams;->resolveLayoutDirection(I)V+]Landroid/view/ViewGroup$MarginLayoutParams;missing_types -HSPLandroid/view/ViewGroup$MarginLayoutParams;->setLayoutDirection(I)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMarginEnd(I)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMarginStart(I)V -HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMargins(IIII)V -HSPLandroid/view/ViewGroup$TouchTarget;-><init>()V -HSPLandroid/view/ViewGroup$TouchTarget;->obtain(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget; -HSPLandroid/view/ViewGroup$TouchTarget;->recycle()V -HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;)V -HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/view/ViewGroup;->addFocusables(Ljava/util/ArrayList;II)V -HSPLandroid/view/ViewGroup;->addInArray(Landroid/view/View;I)V -HSPLandroid/view/ViewGroup;->addTouchTarget(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget; -HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;I)V -HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;II)V -HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/ViewGroup;->addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/view/ViewGroup;->addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)Z -HSPLandroid/view/ViewGroup;->addViewInner(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/ViewGroup;->bringChildToFront(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->buildOrderedChildList()Ljava/util/ArrayList; -HSPLandroid/view/ViewGroup;->buildTouchDispatchChildList()Ljava/util/ArrayList; -HSPLandroid/view/ViewGroup;->cancelAndClearTouchTargets(Landroid/view/MotionEvent;)V -HSPLandroid/view/ViewGroup;->cancelHoverTarget(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->cancelTouchTarget(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/view/ViewGroup;->childDrawableStateChanged(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->childHasTransientStateChanged(Landroid/view/View;Z)V -HSPLandroid/view/ViewGroup;->cleanupLayoutState(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->clearCachedLayoutMode()V -HSPLandroid/view/ViewGroup;->clearChildFocus(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->clearDisappearingChildren()V -HSPLandroid/view/ViewGroup;->clearFocus()V -HSPLandroid/view/ViewGroup;->clearFocusedInCluster()V -HSPLandroid/view/ViewGroup;->clearTouchTargets()V -HSPLandroid/view/ViewGroup;->destroyHardwareResources()V -HSPLandroid/view/ViewGroup;->detachAllViewsFromParent()V -HSPLandroid/view/ViewGroup;->detachViewFromParent(I)V -HSPLandroid/view/ViewGroup;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/ViewGroup;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V -HSPLandroid/view/ViewGroup;->dispatchCancelPendingInputEvents()V -HSPLandroid/view/ViewGroup;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V+]Landroid/view/View;missing_types -HSPLandroid/view/ViewGroup;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/view/ViewGroup;->dispatchDetachedFromWindow()V -HSPLandroid/view/ViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/view/ViewGroup;->dispatchDrawableHotspotChanged(FF)V -HSPLandroid/view/ViewGroup;->dispatchFinishTemporaryDetach()V -HSPLandroid/view/ViewGroup;->dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V -HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewGroup;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLandroid/view/ViewGroup;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z -HSPLandroid/view/ViewGroup;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V -HSPLandroid/view/ViewGroup;->dispatchProvideContentCaptureStructure()V -HSPLandroid/view/ViewGroup;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V -HSPLandroid/view/ViewGroup;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V -HSPLandroid/view/ViewGroup;->dispatchScreenStateChanged(I)V -HSPLandroid/view/ViewGroup;->dispatchSetActivated(Z)V -HSPLandroid/view/ViewGroup;->dispatchSetPressed(Z)V -HSPLandroid/view/ViewGroup;->dispatchSetSelected(Z)V -HSPLandroid/view/ViewGroup;->dispatchStartTemporaryDetach()V -HSPLandroid/view/ViewGroup;->dispatchSystemUiVisibilityChanged(I)V -HSPLandroid/view/ViewGroup;->dispatchThawSelfOnly(Landroid/util/SparseArray;)V -HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/ViewGroup$TouchTarget;Landroid/view/ViewGroup$TouchTarget;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z+]Landroid/view/View;missing_types]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/ViewGroup;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View; -HSPLandroid/view/ViewGroup;->dispatchViewAdded(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->dispatchViewRemoved(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z+]Landroid/view/View;missing_types -HSPLandroid/view/ViewGroup;->dispatchVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/view/ViewGroup;->dispatchWindowFocusChanged(Z)V -HSPLandroid/view/ViewGroup;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V -HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V -HSPLandroid/view/ViewGroup;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z+]Landroid/view/View;missing_types -HSPLandroid/view/ViewGroup;->drawableStateChanged()V -HSPLandroid/view/ViewGroup;->endViewTransition(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->exitHoverTargets()V -HSPLandroid/view/ViewGroup;->exitTooltipHoverTargets()V -HSPLandroid/view/ViewGroup;->findFocus()Landroid/view/View; -HSPLandroid/view/ViewGroup;->findOnBackInvokedDispatcherForChild(Landroid/view/View;Landroid/view/View;)Landroid/window/OnBackInvokedDispatcher; -HSPLandroid/view/ViewGroup;->findViewByAutofillIdTraversal(I)Landroid/view/View; -HSPLandroid/view/ViewGroup;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View; -HSPLandroid/view/ViewGroup;->findViewTraversal(I)Landroid/view/View; -HSPLandroid/view/ViewGroup;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View; -HSPLandroid/view/ViewGroup;->finishAnimatingView(Landroid/view/View;Landroid/view/animation/Animation;)V -HSPLandroid/view/ViewGroup;->focusSearch(Landroid/view/View;I)Landroid/view/View; -HSPLandroid/view/ViewGroup;->focusableViewAvailable(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->gatherTransparentRegion(Landroid/graphics/Region;)Z -HSPLandroid/view/ViewGroup;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/view/ViewGroup;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/view/ViewGroup;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedIndex(IIZ)I -HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedView(Ljava/util/ArrayList;[Landroid/view/View;I)Landroid/view/View;+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewGroup;->getChildAt(I)Landroid/view/View; -HSPLandroid/view/ViewGroup;->getChildCount()I -HSPLandroid/view/ViewGroup;->getChildMeasureSpec(III)I -HSPLandroid/view/ViewGroup;->getChildTransformation()Landroid/view/animation/Transformation; -HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z -HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;Z)Z+]Landroid/graphics/RectF;Landroid/graphics/RectF;]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewParent;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewGroup;->getChildrenForAutofill(I)Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; -HSPLandroid/view/ViewGroup;->getChildrenForContentCapture()Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; -HSPLandroid/view/ViewGroup;->getClipChildren()Z -HSPLandroid/view/ViewGroup;->getClipToPadding()Z -HSPLandroid/view/ViewGroup;->getDescendantFocusability()I -HSPLandroid/view/ViewGroup;->getFocusedChild()Landroid/view/View; -HSPLandroid/view/ViewGroup;->getLayoutMode()I -HSPLandroid/view/ViewGroup;->getLayoutTransition()Landroid/animation/LayoutTransition; -HSPLandroid/view/ViewGroup;->getNestedScrollAxes()I -HSPLandroid/view/ViewGroup;->getOverlay()Landroid/view/ViewGroupOverlay; -HSPLandroid/view/ViewGroup;->getScrollIndicatorBounds(Landroid/graphics/Rect;)V -HSPLandroid/view/ViewGroup;->getTempLocationF()[F -HSPLandroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/ViewGroup$TouchTarget; -HSPLandroid/view/ViewGroup;->getTouchscreenBlocksFocus()Z -HSPLandroid/view/ViewGroup;->handleFocusGainInternal(ILandroid/graphics/Rect;)V -HSPLandroid/view/ViewGroup;->hasBooleanFlag(I)Z -HSPLandroid/view/ViewGroup;->hasChildWithZ()Z -HSPLandroid/view/ViewGroup;->hasDefaultFocus()Z -HSPLandroid/view/ViewGroup;->hasFocus()Z -HSPLandroid/view/ViewGroup;->hasFocusable(ZZ)Z -HSPLandroid/view/ViewGroup;->hasFocusableChild(Z)Z -HSPLandroid/view/ViewGroup;->hasTransientState()Z -HSPLandroid/view/ViewGroup;->hasUnhandledKeyListener()Z -HSPLandroid/view/ViewGroup;->hasWindowInsetsAnimationCallback()Z -HSPLandroid/view/ViewGroup;->indexOfChild(Landroid/view/View;)I -HSPLandroid/view/ViewGroup;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/view/ViewGroup;->initViewGroup()V -HSPLandroid/view/ViewGroup;->internalSetPadding(IIII)V -HSPLandroid/view/ViewGroup;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V+]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent; -HSPLandroid/view/ViewGroup;->isChildrenDrawingOrderEnabled()Z -HSPLandroid/view/ViewGroup;->isLayoutModeOptical()Z -HSPLandroid/view/ViewGroup;->isLayoutSuppressed()Z -HSPLandroid/view/ViewGroup;->isTransformedTouchPointInView(FFLandroid/view/View;Landroid/graphics/PointF;)Z -HSPLandroid/view/ViewGroup;->isViewTransitioning(Landroid/view/View;)Z -HSPLandroid/view/ViewGroup;->jumpDrawablesToCurrentState()V -HSPLandroid/view/ViewGroup;->layout(IIII)V -HSPLandroid/view/ViewGroup;->makeFrameworkOptionalFitsSystemWindows()V -HSPLandroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V -HSPLandroid/view/ViewGroup;->measureChild(Landroid/view/View;II)V -HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V+]Landroid/view/View;missing_types -HSPLandroid/view/ViewGroup;->measureChildren(II)V -HSPLandroid/view/ViewGroup;->newDispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V -HSPLandroid/view/ViewGroup;->offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V -HSPLandroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View;Landroid/graphics/Rect;ZZ)V -HSPLandroid/view/ViewGroup;->onAttachedToWindow()V -HSPLandroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V -HSPLandroid/view/ViewGroup;->onCreateDrawableState(I)[I -HSPLandroid/view/ViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V+]Landroid/view/ViewParent;missing_types -HSPLandroid/view/ViewGroup;->onDescendantUnbufferedRequested()V -HSPLandroid/view/ViewGroup;->onDetachedFromWindow()V -HSPLandroid/view/ViewGroup;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z+]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/view/ViewGroup;->onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z -HSPLandroid/view/ViewGroup;->onSetLayoutParams(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/ViewGroup;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z -HSPLandroid/view/ViewGroup;->onViewAdded(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->onViewRemoved(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->populateChildrenForAutofill(Ljava/util/ArrayList;I)V -HSPLandroid/view/ViewGroup;->populateChildrenForContentCapture(Ljava/util/ArrayList;)V -HSPLandroid/view/ViewGroup;->recomputeViewAttributes(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->recreateChildDisplayList(Landroid/view/View;)V+]Landroid/view/View;missing_types -HSPLandroid/view/ViewGroup;->removeAllViews()V -HSPLandroid/view/ViewGroup;->removeAllViewsInLayout()V -HSPLandroid/view/ViewGroup;->removeDetachedView(Landroid/view/View;Z)V -HSPLandroid/view/ViewGroup;->removeFromArray(I)V -HSPLandroid/view/ViewGroup;->removeFromArray(II)V -HSPLandroid/view/ViewGroup;->removePointersFromTouchTargets(I)V -HSPLandroid/view/ViewGroup;->removeView(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->removeViewAt(I)V -HSPLandroid/view/ViewGroup;->removeViewInLayout(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->removeViewInternal(ILandroid/view/View;)V -HSPLandroid/view/ViewGroup;->removeViewInternal(Landroid/view/View;)Z -HSPLandroid/view/ViewGroup;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z -HSPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V+]Landroid/view/ViewParent;missing_types -HSPLandroid/view/ViewGroup;->requestFocus(ILandroid/graphics/Rect;)Z -HSPLandroid/view/ViewGroup;->requestTransitionStart(Landroid/animation/LayoutTransition;)V -HSPLandroid/view/ViewGroup;->requestTransparentRegion(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->resetCancelNextUpFlag(Landroid/view/View;)Z -HSPLandroid/view/ViewGroup;->resetResolvedDrawables()V -HSPLandroid/view/ViewGroup;->resetResolvedLayoutDirection()V -HSPLandroid/view/ViewGroup;->resetResolvedPadding()V -HSPLandroid/view/ViewGroup;->resetResolvedTextAlignment()V -HSPLandroid/view/ViewGroup;->resetResolvedTextDirection()V -HSPLandroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V -HSPLandroid/view/ViewGroup;->resetTouchState()V -HSPLandroid/view/ViewGroup;->resolveDrawables()V -HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z -HSPLandroid/view/ViewGroup;->resolveLayoutParams()V+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->resolvePadding()V -HSPLandroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z+]Landroid/view/View;missing_types]Landroid/view/ViewGroup;missing_types -HSPLandroid/view/ViewGroup;->resolveTextAlignment()Z -HSPLandroid/view/ViewGroup;->resolveTextDirection()Z -HSPLandroid/view/ViewGroup;->restoreDefaultFocus()Z -HSPLandroid/view/ViewGroup;->setAddStatesFromChildren(Z)V -HSPLandroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V -HSPLandroid/view/ViewGroup;->setBooleanFlag(IZ)V -HSPLandroid/view/ViewGroup;->setChildrenDrawingCacheEnabled(Z)V -HSPLandroid/view/ViewGroup;->setChildrenDrawingOrderEnabled(Z)V -HSPLandroid/view/ViewGroup;->setClipChildren(Z)V -HSPLandroid/view/ViewGroup;->setClipToPadding(Z)V -HSPLandroid/view/ViewGroup;->setDescendantFocusability(I)V -HSPLandroid/view/ViewGroup;->setLayoutTransition(Landroid/animation/LayoutTransition;)V -HSPLandroid/view/ViewGroup;->setMotionEventSplittingEnabled(Z)V -HSPLandroid/view/ViewGroup;->setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V -HSPLandroid/view/ViewGroup;->setTouchscreenBlocksFocus(Z)V -HSPLandroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z -HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z -HSPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->suppressLayout(Z)V -HSPLandroid/view/ViewGroup;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V -HSPLandroid/view/ViewGroup;->unFocus(Landroid/view/View;)V -HSPLandroid/view/ViewGroup;->updateLocalSystemUiVisibility(II)Z -HSPLandroid/view/ViewGroupOverlay;->add(Landroid/view/View;)V -HSPLandroid/view/ViewGroupOverlay;->remove(Landroid/view/View;)V -HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V+]Landroid/graphics/Outline;Landroid/graphics/Outline;]Landroid/graphics/drawable/Drawable;missing_types]Landroid/view/View;missing_types -HSPLandroid/view/ViewOutlineProvider$2;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V -HSPLandroid/view/ViewOutlineProvider;-><init>()V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;-><init>(Landroid/content/Context;Landroid/view/View;)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/view/View;)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(IIII)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Landroid/graphics/Rect;)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V -HSPLandroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/view/View;)V -HSPLandroid/view/ViewOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V -HSPLandroid/view/ViewOverlay;->add(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/view/ViewOverlay;->getOverlayView()Landroid/view/ViewGroup; -HSPLandroid/view/ViewOverlay;->isEmpty()Z -HSPLandroid/view/ViewPropertyAnimator$1;-><init>(Landroid/view/ViewPropertyAnimator;)V -HSPLandroid/view/ViewPropertyAnimator$1;->run()V -HSPLandroid/view/ViewPropertyAnimator$2;->run()V -HSPLandroid/view/ViewPropertyAnimator$3;->run()V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/view/ViewPropertyAnimator;)V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationCancel(Landroid/animation/Animator;)V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationEnd(Landroid/animation/Animator;)V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationStart(Landroid/animation/Animator;)V -HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V+]Ljava/util/HashMap;Ljava/util/HashMap;]Landroid/view/View;Landroid/widget/LinearLayout;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator; -HSPLandroid/view/ViewPropertyAnimator$NameValuesHolder;-><init>(IFF)V -HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;-><init>(ILjava/util/ArrayList;)V -HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;->cancel(I)Z -HSPLandroid/view/ViewPropertyAnimator;-><init>(Landroid/view/View;)V -HSPLandroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->animateProperty(IF)V -HSPLandroid/view/ViewPropertyAnimator;->animatePropertyBy(IFF)V -HSPLandroid/view/ViewPropertyAnimator;->cancel()V -HSPLandroid/view/ViewPropertyAnimator;->getValue(I)F -HSPLandroid/view/ViewPropertyAnimator;->scaleX(F)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->scaleY(F)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->setValue(IF)V -HSPLandroid/view/ViewPropertyAnimator;->start()V -HSPLandroid/view/ViewPropertyAnimator;->startAnimation()V -HSPLandroid/view/ViewPropertyAnimator;->translationX(F)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->translationY(F)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->withLayer()Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewPropertyAnimator;->withStartAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator; -HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda17;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$$ExternalSyntheticLambda3;->run()V -HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureNoConnection()V -HSPLandroid/view/ViewRootImpl$AsyncInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V -HSPLandroid/view/ViewRootImpl$AsyncInputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V -HSPLandroid/view/ViewRootImpl$AsyncInputStage;->defer(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$AsyncInputStage;->dequeue(Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$AsyncInputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;->run()V -HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V -HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processMotionEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$HighContrastTextManager;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$ImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V -HSPLandroid/view/ViewRootImpl$ImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V -HSPLandroid/view/ViewRootImpl$ImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$InputMetricsListener;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$InputMetricsListener;->onFrameMetricsAvailable(I)V+]Landroid/view/ViewRootImpl$WindowInputEventReceiver;Landroid/view/ViewRootImpl$WindowInputEventReceiver; -HSPLandroid/view/ViewRootImpl$InputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V -HSPLandroid/view/ViewRootImpl$InputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V -HSPLandroid/view/ViewRootImpl$InputStage;->deliver(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$InputStage;->finish(Landroid/view/ViewRootImpl$QueuedInputEvent;Z)V -HSPLandroid/view/ViewRootImpl$InputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$InputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$InputStage;->onDetachedFromWindow()V -HSPLandroid/view/ViewRootImpl$InputStage;->onWindowFocusChanged(Z)V -HSPLandroid/view/ViewRootImpl$InputStage;->shouldDropInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)Z -HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V+]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V+]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewRootImpl$NativePostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V -HSPLandroid/view/ViewRootImpl$NativePostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$NativePreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V -HSPLandroid/view/ViewRootImpl$NativePreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$QueuedInputEvent;-><init>()V -HSPLandroid/view/ViewRootImpl$QueuedInputEvent;->shouldSendToSynthesizer()Z -HSPLandroid/view/ViewRootImpl$QueuedInputEvent;->shouldSkipIme()Z -HSPLandroid/view/ViewRootImpl$SyntheticInputStage;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onDetachedFromWindow()V -HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onWindowFocusChanged(Z)V -HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;-><init>(Landroid/view/ViewRootImpl$SyntheticJoystickHandler;)V -HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->resetState()V -HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;->cancel()V -HSPLandroid/view/ViewRootImpl$SyntheticKeyboardHandler;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler$1;-><init>(Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;)V -HSPLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$SyntheticTrackballHandler;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$SystemUiVisibilityInfo;-><init>()V -HSPLandroid/view/ViewRootImpl$TrackballAxis;-><init>()V -HSPLandroid/view/ViewRootImpl$TraversalRunnable;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$TraversalRunnable;->run()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;-><init>()V -HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;-><init>(Landroid/view/ViewRootImpl$UnhandledKeyManager-IA;)V -HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->dispatch(Landroid/view/View;Landroid/view/KeyEvent;)Z -HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->preDispatch(Landroid/view/KeyEvent;)V -HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;->preViewDispatch(Landroid/view/KeyEvent;)Z -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->maybeUpdatePointerIcon(Landroid/view/MotionEvent;)V -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V -HSPLandroid/view/ViewRootImpl$ViewPreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I -HSPLandroid/view/ViewRootImpl$ViewRootHandler;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$ViewRootHandler;->getMessageName(Landroid/os/Message;)Ljava/lang/String; -HSPLandroid/view/ViewRootImpl$ViewRootHandler;->handleMessage(Landroid/os/Message;)V -HSPLandroid/view/ViewRootImpl$ViewRootHandler;->handleMessageImpl(Landroid/os/Message;)V -HSPLandroid/view/ViewRootImpl$ViewRootHandler;->sendMessageAtTime(Landroid/os/Message;J)Z -HSPLandroid/view/ViewRootImpl$W;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootImpl$W;->closeSystemDialogs(Ljava/lang/String;)V -HSPLandroid/view/ViewRootImpl$W;->dispatchAppVisibility(Z)V -HSPLandroid/view/ViewRootImpl$W;->dispatchWindowShown()V -HSPLandroid/view/ViewRootImpl$W;->insetsControlChanged(Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V -HSPLandroid/view/ViewRootImpl$W;->moved(II)V -HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/ViewRootImpl;Landroid/view/InputChannel;Landroid/os/Looper;)V -HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V -HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onBatchedInputEventPending(I)V -HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onFocusEvent(Z)V -HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V -HSPLandroid/view/ViewRootImpl;->-$$Nest$fgetmBlastBufferQueue(Landroid/view/ViewRootImpl;)Landroid/graphics/BLASTBufferQueue; -HSPLandroid/view/ViewRootImpl;->-$$Nest$fputmProfileRendering(Landroid/view/ViewRootImpl;Z)V -HSPLandroid/view/ViewRootImpl;->-$$Nest$mdispatchInsetsControlChanged(Landroid/view/ViewRootImpl;Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V -HSPLandroid/view/ViewRootImpl;->-$$Nest$mprofileRendering(Landroid/view/ViewRootImpl;Z)V -HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V -HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;Landroid/view/WindowLayout;)V -HSPLandroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V -HSPLandroid/view/ViewRootImpl;->addFrameCommitCallbackIfNeeded()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->addSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V -HSPLandroid/view/ViewRootImpl;->addWindowCallbacks(Landroid/view/WindowCallbacks;)V -HSPLandroid/view/ViewRootImpl;->adjustLayoutParamsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ViewRootImpl;->applyKeepScreenOnFlag(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ViewRootImpl;->applyTransactionOnDraw(Landroid/view/SurfaceControl$Transaction;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->canResolveTextDirection()Z -HSPLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->checkForLeavingTouchModeAndConsume(Landroid/view/KeyEvent;)Z -HSPLandroid/view/ViewRootImpl;->checkThread()V -HSPLandroid/view/ViewRootImpl;->childDrawableStateChanged(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->childHasTransientStateChanged(Landroid/view/View;Z)V -HSPLandroid/view/ViewRootImpl;->clearChildFocus(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->clearLowProfileModeIfNeeded(IZ)V -HSPLandroid/view/ViewRootImpl;->collectViewAttributes()Z+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ViewRootImpl;->controlInsetsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ViewRootImpl;->createSyncIfNeeded()V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup; -HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V -HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V -HSPLandroid/view/ViewRootImpl;->destroySurface()V -HSPLandroid/view/ViewRootImpl;->die(Z)Z -HSPLandroid/view/ViewRootImpl;->dipToPx(I)I -HSPLandroid/view/ViewRootImpl;->dispatchAppVisibility(Z)V -HSPLandroid/view/ViewRootImpl;->dispatchApplyInsets(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->dispatchCheckFocus()V -HSPLandroid/view/ViewRootImpl;->dispatchDetachedFromWindow()V -HSPLandroid/view/ViewRootImpl;->dispatchDispatchSystemUiVisibilityChanged()V -HSPLandroid/view/ViewRootImpl;->dispatchFocusEvent(ZZ)V -HSPLandroid/view/ViewRootImpl;->dispatchInsetsControlChanged(Landroid/view/InsetsState;[Landroid/view/InsetsSourceControl;)V -HSPLandroid/view/ViewRootImpl;->dispatchInvalidateDelayed(Landroid/view/View;J)V -HSPLandroid/view/ViewRootImpl;->dispatchInvalidateOnAnimation(Landroid/view/View;)V+]Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable; -HSPLandroid/view/ViewRootImpl;->dispatchMoved(II)V -HSPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)Z -HSPLandroid/view/ViewRootImpl;->doDie()V -HSPLandroid/view/ViewRootImpl;->doProcessInputEvents()V -HSPLandroid/view/ViewRootImpl;->doTraversal()V+]Landroid/os/Looper;Landroid/os/Looper;]Landroid/view/ViewRootImpl$ViewRootHandler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/os/MessageQueue;Landroid/os/MessageQueue; -HSPLandroid/view/ViewRootImpl;->draw(ZLandroid/window/SurfaceSyncGroup;Z)Z+]Landroid/view/Surface;Landroid/view/Surface;]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/HdrRenderState;Landroid/view/HdrRenderState;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/Choreographer;Landroid/view/Choreographer;]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction; -HSPLandroid/view/ViewRootImpl;->drawAccessibilityFocusedDrawableIfNeeded(Landroid/graphics/Canvas;)V -HSPLandroid/view/ViewRootImpl;->drawSoftware(Landroid/view/Surface;Landroid/view/View$AttachInfo;IIZLandroid/graphics/Rect;Landroid/graphics/Rect;)Z -HSPLandroid/view/ViewRootImpl;->enableHardwareAcceleration(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/ViewRootImpl;->endDragResizing()V -HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;)V -HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V -HSPLandroid/view/ViewRootImpl;->ensureTouchMode(Z)Z -HSPLandroid/view/ViewRootImpl;->ensureTouchModeLocally(Z)Z -HSPLandroid/view/ViewRootImpl;->enterTouchMode()Z -HSPLandroid/view/ViewRootImpl;->findOnBackInvokedDispatcherForChild(Landroid/view/View;Landroid/view/View;)Landroid/window/OnBackInvokedDispatcher; -HSPLandroid/view/ViewRootImpl;->finishInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl;->fireAccessibilityFocusEventIfHasFocusedNode()V -HSPLandroid/view/ViewRootImpl;->focusableViewAvailable(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->forceLayout(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->getAccessibilityFocusedHost()Landroid/view/View; -HSPLandroid/view/ViewRootImpl;->getAccessibilityFocusedRect(Landroid/graphics/Rect;)Z -HSPLandroid/view/ViewRootImpl;->getAudioManager()Landroid/media/AudioManager; -HSPLandroid/view/ViewRootImpl;->getAutofillManager()Landroid/view/autofill/AutofillManager; -HSPLandroid/view/ViewRootImpl;->getBufferTransformHint()I -HSPLandroid/view/ViewRootImpl;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z -HSPLandroid/view/ViewRootImpl;->getCompatWindowConfiguration()Landroid/app/WindowConfiguration; -HSPLandroid/view/ViewRootImpl;->getConfiguration()Landroid/content/res/Configuration;+]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/content/Context;Lcom/android/internal/policy/DecorContext; -HSPLandroid/view/ViewRootImpl;->getDisplayId()I -HSPLandroid/view/ViewRootImpl;->getHandwritingInitiator()Landroid/view/HandwritingInitiator; -HSPLandroid/view/ViewRootImpl;->getHostVisibility()I+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ViewRootImpl;->getImeFocusController()Landroid/view/ImeFocusController; -HSPLandroid/view/ViewRootImpl;->getImpliedSystemUiVisibility(Landroid/view/WindowManager$LayoutParams;)I -HSPLandroid/view/ViewRootImpl;->getInsetsController()Landroid/view/InsetsController; -HSPLandroid/view/ViewRootImpl;->getNightMode()I -HSPLandroid/view/ViewRootImpl;->getOnBackInvokedDispatcher()Landroid/window/WindowOnBackInvokedDispatcher; -HSPLandroid/view/ViewRootImpl;->getOrCreateSurfaceSyncGroup()Landroid/window/SurfaceSyncGroup; -HSPLandroid/view/ViewRootImpl;->getParent()Landroid/view/ViewParent; -HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(III)I -HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue;+]Ljava/lang/ThreadLocal;Ljava/lang/ThreadLocal; -HSPLandroid/view/ViewRootImpl;->getSurfaceControl()Landroid/view/SurfaceControl; -HSPLandroid/view/ViewRootImpl;->getSurfaceSequenceId()I -HSPLandroid/view/ViewRootImpl;->getTextDirection()I -HSPLandroid/view/ViewRootImpl;->getTitle()Ljava/lang/CharSequence; -HSPLandroid/view/ViewRootImpl;->getUpdatedFrameInfo()Landroid/graphics/FrameInfo;+]Landroid/view/InputEventAssigner;Landroid/view/InputEventAssigner;]Landroid/view/ViewFrameInfo;Landroid/view/ViewFrameInfo; -HSPLandroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList; -HSPLandroid/view/ViewRootImpl;->getView()Landroid/view/View; -HSPLandroid/view/ViewRootImpl;->getViewBoundsSandboxingEnabled()Z -HSPLandroid/view/ViewRootImpl;->getWindowBoundsInsetSystemBars()Landroid/graphics/Rect; -HSPLandroid/view/ViewRootImpl;->getWindowFlags()I -HSPLandroid/view/ViewRootImpl;->getWindowInsets(Z)Landroid/view/WindowInsets; -HSPLandroid/view/ViewRootImpl;->getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V -HSPLandroid/view/ViewRootImpl;->handleAppVisibility(Z)V -HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V -HSPLandroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged()V -HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V -HSPLandroid/view/ViewRootImpl;->invalidate()V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V -HSPLandroid/view/ViewRootImpl;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent; -HSPLandroid/view/ViewRootImpl;->invalidateRectOnScreen(Landroid/graphics/Rect;)V -HSPLandroid/view/ViewRootImpl;->isAccessibilityFocusDirty()Z+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/view/ViewRootImpl;->isContentCaptureEnabled()Z -HSPLandroid/view/ViewRootImpl;->isContentCaptureReallyEnabled()Z -HSPLandroid/view/ViewRootImpl;->isHardwareEnabled()Z+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer; -HSPLandroid/view/ViewRootImpl;->isInLayout()Z -HSPLandroid/view/ViewRootImpl;->isInTouchMode()Z -HSPLandroid/view/ViewRootImpl;->isInWMSRequestedSync()Z -HSPLandroid/view/ViewRootImpl;->isLayoutRequested()Z -HSPLandroid/view/ViewRootImpl;->isNavigationKey(Landroid/view/KeyEvent;)Z -HSPLandroid/view/ViewRootImpl;->isTextDirectionResolved()Z -HSPLandroid/view/ViewRootImpl;->keepClearRectsChanged(Z)V -HSPLandroid/view/ViewRootImpl;->lambda$createSyncIfNeeded$4(ILandroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/ViewRootImpl;->lambda$getOrCreateSurfaceSyncGroup$14()V -HSPLandroid/view/ViewRootImpl;->lambda$new$0(Landroid/view/View;)Ljava/util/List; -HSPLandroid/view/ViewRootImpl;->lambda$new$1(Landroid/view/View;)Ljava/util/List; -HSPLandroid/view/ViewRootImpl;->lambda$new$2(Landroid/view/View;)Ljava/util/List; -HSPLandroid/view/ViewRootImpl;->loadSystemProperties()V -HSPLandroid/view/ViewRootImpl;->maybeFireAccessibilityWindowStateChangedEvent()V -HSPLandroid/view/ViewRootImpl;->maybeHandleWindowMove(Landroid/graphics/Rect;)V -HSPLandroid/view/ViewRootImpl;->maybeUpdateTooltip(Landroid/view/MotionEvent;)V -HSPLandroid/view/ViewRootImpl;->measureHierarchy(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/content/res/Resources;IIZ)Z+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ViewRootImpl;->mergeWithNextTransaction(Landroid/view/SurfaceControl$Transaction;J)V+]Landroid/graphics/BLASTBufferQueue;Landroid/graphics/BLASTBufferQueue; -HSPLandroid/view/ViewRootImpl;->notifyContentCaptureEvents()V -HSPLandroid/view/ViewRootImpl;->notifyDrawStarted(Z)V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewRootImpl;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer; -HSPLandroid/view/ViewRootImpl;->notifySurfaceCreated(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/ViewRootImpl;->notifySurfaceDestroyed()V -HSPLandroid/view/ViewRootImpl;->obtainQueuedInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;I)Landroid/view/ViewRootImpl$QueuedInputEvent; -HSPLandroid/view/ViewRootImpl;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->onDescendantUnbufferedRequested()V -HSPLandroid/view/ViewRootImpl;->onMovedToDisplay(ILandroid/content/res/Configuration;)V -HSPLandroid/view/ViewRootImpl;->onPostDraw(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/view/ViewRootImpl;->onPreDraw(Landroid/graphics/RecordingCanvas;)V -HSPLandroid/view/ViewRootImpl;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z -HSPLandroid/view/ViewRootImpl;->performContentCaptureInitialReport()V -HSPLandroid/view/ViewRootImpl;->performDraw(Landroid/window/SurfaceSyncGroup;)Z+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer; -HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/content/Context;Lcom/android/internal/policy/DecorContext;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewRootImpl;->performMeasure(II)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView; -HSPLandroid/view/ViewRootImpl;->performTraversals()V+]Landroid/view/ViewTreeObserver;Landroid/view/ViewTreeObserver;]Landroid/view/View;missing_types]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/view/HandlerActionQueue;Landroid/view/HandlerActionQueue;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/Surface;Landroid/view/Surface;]Landroid/util/MergedConfiguration;Landroid/util/MergedConfiguration;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ImeFocusController;Landroid/view/ImeFocusController;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;,Lcom/android/internal/policy/DecorContext;]Lcom/android/internal/view/RootViewSurfaceTaker;Lcom/android/internal/policy/DecorView;]Landroid/graphics/Region;Landroid/graphics/Region;]Landroid/content/res/Configuration;Landroid/content/res/Configuration;]Landroid/window/SurfaceSyncGroup;Landroid/window/SurfaceSyncGroup;]Landroid/window/WindowOnBackInvokedDispatcher;Landroid/window/WindowOnBackInvokedDispatcher; -HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V -HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V -HSPLandroid/view/ViewRootImpl;->prepareSurfaces()V+]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->profileRendering(Z)V -HSPLandroid/view/ViewRootImpl;->recomputeViewAttributes(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->recycleQueuedInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V -HSPLandroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V -HSPLandroid/view/ViewRootImpl;->registerBackCallbackOnWindow()V -HSPLandroid/view/ViewRootImpl;->registerCallbackForPendingTransactions()V+]Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl$Transaction;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->registerCallbacksForSync(ZLandroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/ViewRootImpl;->registerCompatOnBackInvokedCallback()V -HSPLandroid/view/ViewRootImpl;->registerListeners()V -HSPLandroid/view/ViewRootImpl;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V+]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer; -HSPLandroid/view/ViewRootImpl;->relayoutWindow(Landroid/view/WindowManager$LayoutParams;IZ)I+]Landroid/view/IWindowSession;Landroid/view/IWindowSession$Stub$Proxy;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;]Landroid/view/HdrRenderState;Landroid/view/HdrRenderState;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Landroid/util/MergedConfiguration;Landroid/util/MergedConfiguration;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/Display;Landroid/view/Display; -HSPLandroid/view/ViewRootImpl;->removeSendWindowContentChangedCallback()V -HSPLandroid/view/ViewRootImpl;->removeSurfaceChangedCallback(Landroid/view/ViewRootImpl$SurfaceChangedCallback;)V -HSPLandroid/view/ViewRootImpl;->removeWindowCallbacks(Landroid/view/WindowCallbacks;)V -HSPLandroid/view/ViewRootImpl;->reportDrawFinished(Landroid/view/SurfaceControl$Transaction;I)V -HSPLandroid/view/ViewRootImpl;->reportNextDraw(Ljava/lang/String;)V -HSPLandroid/view/ViewRootImpl;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z -HSPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V -HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V -HSPLandroid/view/ViewRootImpl;->requestLayout()V+]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->requestLayoutDuringLayout(Landroid/view/View;)Z -HSPLandroid/view/ViewRootImpl;->requestTransparentRegion(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V -HSPLandroid/view/ViewRootImpl;->scheduleTraversals()V+]Landroid/os/Looper;Landroid/os/Looper;]Landroid/view/ViewRootImpl$ViewRootHandler;Landroid/view/ViewRootImpl$ViewRootHandler;]Landroid/os/MessageQueue;Landroid/os/MessageQueue;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/Choreographer;Landroid/view/Choreographer; -HSPLandroid/view/ViewRootImpl;->scrollToRectOrFocus(Landroid/graphics/Rect;Z)Z -HSPLandroid/view/ViewRootImpl;->sendBackKeyEvent(I)V -HSPLandroid/view/ViewRootImpl;->setAccessibilityFocus(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V -HSPLandroid/view/ViewRootImpl;->setAccessibilityWindowAttributesIfNeeded()V -HSPLandroid/view/ViewRootImpl;->setActivityConfigCallback(Landroid/view/ViewRootImpl$ActivityConfigCallback;)V -HSPLandroid/view/ViewRootImpl;->setBoundsLayerCrop(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/view/ViewRootImpl;->setFrame(Landroid/graphics/Rect;Z)V+]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/InsetsController;Landroid/view/InsetsController; -HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl; -HSPLandroid/view/ViewRootImpl;->setOnContentApplyWindowInsetsListener(Landroid/view/Window$OnContentApplyWindowInsetsListener;)V -HSPLandroid/view/ViewRootImpl;->setTag()V -HSPLandroid/view/ViewRootImpl;->setView(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/view/View;I)V+]Landroid/view/IWindowSession;Landroid/view/IWindowSession$Stub$Proxy;]Landroid/view/InsetsState;Landroid/view/InsetsState;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/content/res/CompatibilityInfo;Landroid/content/res/CompatibilityInfo$1;]Landroid/view/ThreadedRenderer;Landroid/view/ThreadedRenderer;]Landroid/view/InsetsSourceControl$Array;Landroid/view/InsetsSourceControl$Array;]Landroid/view/InsetsController;Landroid/view/InsetsController;]Landroid/view/PendingInsetsController;Landroid/view/PendingInsetsController;]Lcom/android/internal/view/RootViewSurfaceTaker;Lcom/android/internal/policy/DecorView;]Landroid/view/FallbackEventHandler;Lcom/android/internal/policy/PhoneFallbackEventHandler;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/WindowLayout;Landroid/view/WindowLayout;]Landroid/graphics/Rect;Landroid/graphics/Rect;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/view/DisplayAdjustments;Landroid/view/DisplayAdjustments;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration;]Landroid/view/Display;Landroid/view/Display; -HSPLandroid/view/ViewRootImpl;->setWindowStopped(Z)V -HSPLandroid/view/ViewRootImpl;->shouldDispatchCutout()Z -HSPLandroid/view/ViewRootImpl;->shouldOptimizeMeasure(Landroid/view/WindowManager$LayoutParams;)Z -HSPLandroid/view/ViewRootImpl;->shouldSetFrameRate()Z+]Landroid/view/Surface;Landroid/view/Surface; -HSPLandroid/view/ViewRootImpl;->shouldSetFrameRateCategory()Z+]Landroid/view/Surface;Landroid/view/Surface; -HSPLandroid/view/ViewRootImpl;->shouldUseDisplaySize(Landroid/view/WindowManager$LayoutParams;)Z -HSPLandroid/view/ViewRootImpl;->systemGestureExclusionChanged()V -HSPLandroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V -HSPLandroid/view/ViewRootImpl;->unscheduleTraversals()V -HSPLandroid/view/ViewRootImpl;->updateBlastSurfaceIfNeeded()V+]Landroid/graphics/BLASTBufferQueue;Landroid/graphics/BLASTBufferQueue;]Landroid/view/SurfaceControl;Landroid/view/SurfaceControl; -HSPLandroid/view/ViewRootImpl;->updateBoundsLayer(Landroid/view/SurfaceControl$Transaction;)Z -HSPLandroid/view/ViewRootImpl;->updateCaptionInsets()Z -HSPLandroid/view/ViewRootImpl;->updateCompatSysUiVisibility(III)V -HSPLandroid/view/ViewRootImpl;->updateCompatSystemUiVisibilityInfo(IIII)V -HSPLandroid/view/ViewRootImpl;->updateConfiguration(I)V -HSPLandroid/view/ViewRootImpl;->updateContentDrawBounds()Z+]Landroid/view/WindowCallbacks;Lcom/android/internal/policy/DecorView;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewRootImpl;->updateForceDarkMode()V -HSPLandroid/view/ViewRootImpl;->updateInternalDisplay(ILandroid/content/res/Resources;)V -HSPLandroid/view/ViewRootImpl;->updateKeepClearForAccessibilityFocusRect()V -HSPLandroid/view/ViewRootImpl;->updateKeepClearRectsForView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->updateOpacity(Landroid/view/WindowManager$LayoutParams;ZZ)V -HSPLandroid/view/ViewRootImpl;->updateSyncInProgressCount(Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/view/ViewRootImpl;->updateSystemGestureExclusionRectsForView(Landroid/view/View;)V -HSPLandroid/view/ViewRootImpl;->windowFocusChanged(Z)V -HSPLandroid/view/ViewRootInsetsControllerHost;-><init>(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->dipToPx(I)I -HSPLandroid/view/ViewRootInsetsControllerHost;->dispatchWindowInsetsAnimationEnd(Landroid/view/WindowInsetsAnimation;)V -HSPLandroid/view/ViewRootInsetsControllerHost;->getHandler()Landroid/os/Handler; -HSPLandroid/view/ViewRootInsetsControllerHost;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/ViewRootInsetsControllerHost;->getSystemBarsAppearance()I -HSPLandroid/view/ViewRootInsetsControllerHost;->getSystemBarsBehavior()I -HSPLandroid/view/ViewRootInsetsControllerHost;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator; -HSPLandroid/view/ViewRootInsetsControllerHost;->getWindowToken()Landroid/os/IBinder; -HSPLandroid/view/ViewRootInsetsControllerHost;->hasAnimationCallbacks()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->isSystemBarsAppearanceControlled()Z -HSPLandroid/view/ViewRootInsetsControllerHost;->notifyInsetsChanged()V -HSPLandroid/view/ViewRootInsetsControllerHost;->updateCompatSysUiVisibility(III)V -HSPLandroid/view/ViewRootRectTracker$ViewInfo;-><init>(Landroid/view/ViewRootRectTracker;Landroid/view/View;)V -HSPLandroid/view/ViewRootRectTracker$ViewInfo;->getView()Landroid/view/View; -HSPLandroid/view/ViewRootRectTracker$ViewInfo;->update()I -HSPLandroid/view/ViewRootRectTracker;->-$$Nest$mgetTrackedRectsForView(Landroid/view/ViewRootRectTracker;Landroid/view/View;)Ljava/util/List; -HSPLandroid/view/ViewRootRectTracker;-><init>(Ljava/util/function/Function;)V -HSPLandroid/view/ViewRootRectTracker;->computeChangedRects()Ljava/util/List; -HSPLandroid/view/ViewRootRectTracker;->computeChanges()Z -HSPLandroid/view/ViewRootRectTracker;->getTrackedRectsForView(Landroid/view/View;)Ljava/util/List; -HSPLandroid/view/ViewRootRectTracker;->updateRectsForView(Landroid/view/View;)V -HSPLandroid/view/ViewStructure;-><init>()V -HSPLandroid/view/ViewStructure;->setImportantForAutofill(I)V -HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/view/ViewStub;->inflate()Landroid/view/View; -HSPLandroid/view/ViewStub;->setLayoutInflater(Landroid/view/LayoutInflater;)V -HSPLandroid/view/ViewStub;->setLayoutResource(I)V -HSPLandroid/view/ViewStub;->setOnInflateListener(Landroid/view/ViewStub$OnInflateListener;)V -HSPLandroid/view/ViewStub;->setVisibility(I)V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;-><init>()V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->get(I)Ljava/lang/Object;+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->size()I -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;-><init>()V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->add(Ljava/lang/Object;)V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->addAll(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->end()V+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->getArray()Ljava/util/ArrayList; -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->remove(Ljava/lang/Object;)V -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->size()I+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->start()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V -HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->isEmpty()Z -HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->reset()V -HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V -HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->setTouchableInsets(I)V -HSPLandroid/view/ViewTreeObserver;-><init>(Landroid/content/Context;)V -HSPLandroid/view/ViewTreeObserver;->addOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V -HSPLandroid/view/ViewTreeObserver;->addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V -HSPLandroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V -HSPLandroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V -HSPLandroid/view/ViewTreeObserver;->captureFrameCommitCallbacks()Ljava/util/ArrayList; -HSPLandroid/view/ViewTreeObserver;->checkIsAlive()V -HSPLandroid/view/ViewTreeObserver;->dispatchOnComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V -HSPLandroid/view/ViewTreeObserver;->dispatchOnDraw()V+]Ljava/util/ArrayList;Ljava/util/ArrayList;]Landroid/view/ViewTreeObserver$OnDrawListener;Landroid/widget/Editor$2; -HSPLandroid/view/ViewTreeObserver;->dispatchOnEnterAnimationComplete()V -HSPLandroid/view/ViewTreeObserver;->dispatchOnGlobalLayout()V+]Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; -HSPLandroid/view/ViewTreeObserver;->dispatchOnPreDraw()Z+]Landroid/view/ViewTreeObserver$OnPreDrawListener;missing_types]Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;]Landroid/view/ViewTreeObserver$CopyOnWriteArray;Landroid/view/ViewTreeObserver$CopyOnWriteArray; -HSPLandroid/view/ViewTreeObserver;->dispatchOnScrollChanged()V -HSPLandroid/view/ViewTreeObserver;->dispatchOnSystemGestureExclusionRectsChanged(Ljava/util/List;)V -HSPLandroid/view/ViewTreeObserver;->dispatchOnTouchModeChanged(Z)V -HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowAttachedChange(Z)V -HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowFocusChange(Z)V -HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowShown()V -HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowVisibilityChange(I)V -HSPLandroid/view/ViewTreeObserver;->hasComputeInternalInsetsListeners()Z -HSPLandroid/view/ViewTreeObserver;->isAlive()Z -HSPLandroid/view/ViewTreeObserver;->kill()V -HSPLandroid/view/ViewTreeObserver;->merge(Landroid/view/ViewTreeObserver;)V -HSPLandroid/view/ViewTreeObserver;->removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V -HSPLandroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V -HSPLandroid/view/Window;-><init>(Landroid/content/Context;)V -HSPLandroid/view/Window;->addFlags(I)V -HSPLandroid/view/Window;->addOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V -HSPLandroid/view/Window;->adjustLayoutParamsForSubWindow(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/Window;->clearFlags(I)V -HSPLandroid/view/Window;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/Window;->findViewById(I)Landroid/view/View; -HSPLandroid/view/Window;->getAttributes()Landroid/view/WindowManager$LayoutParams; -HSPLandroid/view/Window;->getCallback()Landroid/view/Window$Callback; -HSPLandroid/view/Window;->getColorMode()I -HSPLandroid/view/Window;->getContainer()Landroid/view/Window; -HSPLandroid/view/Window;->getContext()Landroid/content/Context; -HSPLandroid/view/Window;->getDefaultFeatures(Landroid/content/Context;)I -HSPLandroid/view/Window;->getFeatures()I -HSPLandroid/view/Window;->getForcedWindowFlags()I -HSPLandroid/view/Window;->getLocalFeatures()I -HSPLandroid/view/Window;->getWindowControllerCallback()Landroid/view/Window$WindowControllerCallback; -HSPLandroid/view/Window;->getWindowManager()Landroid/view/WindowManager; -HSPLandroid/view/Window;->getWindowStyle()Landroid/content/res/TypedArray; -HSPLandroid/view/Window;->hasFeature(I)Z -HSPLandroid/view/Window;->hasSoftInputMode()Z -HSPLandroid/view/Window;->haveDimAmount()Z -HSPLandroid/view/Window;->isDestroyed()Z -HSPLandroid/view/Window;->isOutOfBounds(Landroid/content/Context;Landroid/view/MotionEvent;)Z -HSPLandroid/view/Window;->isOverlayWithDecorCaptionEnabled()Z -HSPLandroid/view/Window;->isWideColorGamut()Z -HSPLandroid/view/Window;->makeActive()V -HSPLandroid/view/Window;->onDrawLegacyNavigationBarBackgroundChanged(Z)Z -HSPLandroid/view/Window;->removeOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V -HSPLandroid/view/Window;->requestFeature(I)Z -HSPLandroid/view/Window;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V+]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/Window;Lcom/android/internal/policy/PhoneWindow; -HSPLandroid/view/Window;->setBackgroundBlurRadius(I)V -HSPLandroid/view/Window;->setCallback(Landroid/view/Window$Callback;)V -HSPLandroid/view/Window;->setCloseOnTouchOutside(Z)V -HSPLandroid/view/Window;->setCloseOnTouchOutsideIfNotSet(Z)V -HSPLandroid/view/Window;->setColorMode(I)V -HSPLandroid/view/Window;->setDefaultWindowFormat(I)V -HSPLandroid/view/Window;->setFlags(II)V -HSPLandroid/view/Window;->setGravity(I)V -HSPLandroid/view/Window;->setLayout(II)V -HSPLandroid/view/Window;->setOnWindowDismissedCallback(Landroid/view/Window$OnWindowDismissedCallback;)V -HSPLandroid/view/Window;->setPreferMinimalPostProcessing(Z)V -HSPLandroid/view/Window;->setSoftInputMode(I)V -HSPLandroid/view/Window;->setType(I)V -HSPLandroid/view/Window;->setWindowAnimations(I)V -HSPLandroid/view/Window;->setWindowControllerCallback(Landroid/view/Window$WindowControllerCallback;)V -HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V -HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z -HSPLandroid/view/WindowInsets$Builder;-><init>()V -HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V -HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets$Builder;->setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder; -HSPLandroid/view/WindowInsets$Side;->all()I -HSPLandroid/view/WindowInsets$Type;->all()I -HSPLandroid/view/WindowInsets$Type;->captionBar()I -HSPLandroid/view/WindowInsets$Type;->defaultVisible()I -HSPLandroid/view/WindowInsets$Type;->displayCutout()I -HSPLandroid/view/WindowInsets$Type;->hasCompatSystemBars(I)Z -HSPLandroid/view/WindowInsets$Type;->ime()I -HSPLandroid/view/WindowInsets$Type;->indexOf(I)I -HSPLandroid/view/WindowInsets$Type;->navigationBars()I -HSPLandroid/view/WindowInsets$Type;->statusBars()I -HSPLandroid/view/WindowInsets$Type;->systemBars()I -HSPLandroid/view/WindowInsets$Type;->systemGestures()I -HSPLandroid/view/WindowInsets$Type;->toString(I)Ljava/lang/String; -HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZIILandroid/view/DisplayCutout;Landroid/view/RoundedCorners;Landroid/view/PrivacyIndicatorBounds;Landroid/view/DisplayShape;IZ[[Landroid/graphics/Rect;[[Landroid/graphics/Rect;II)V+]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;][Landroid/graphics/Insets;[Landroid/graphics/Insets;][[Landroid/graphics/Rect;[[Landroid/graphics/Rect; -HSPLandroid/view/WindowInsets;->assignCompatInsets([Landroid/graphics/Insets;Landroid/graphics/Rect;)V -HSPLandroid/view/WindowInsets;->consumeDisplayCutout()Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->consumeStableInsets()Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->consumeSystemWindowInsets()Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->displayCutoutCopyConstructorArgument(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout; -HSPLandroid/view/WindowInsets;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/WindowInsets;->getDisplayCutout()Landroid/view/DisplayCutout; -HSPLandroid/view/WindowInsets;->getInsets(I)Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getInsets([Landroid/graphics/Insets;I)Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getInsetsIgnoringVisibility(I)Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getMandatorySystemGestureInsets()Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getStableInsetBottom()I -HSPLandroid/view/WindowInsets;->getStableInsetLeft()I -HSPLandroid/view/WindowInsets;->getStableInsetRight()I -HSPLandroid/view/WindowInsets;->getStableInsetTop()I -HSPLandroid/view/WindowInsets;->getStableInsets()Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getSystemGestureInsets()Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getSystemWindowInsetBottom()I -HSPLandroid/view/WindowInsets;->getSystemWindowInsetLeft()I -HSPLandroid/view/WindowInsets;->getSystemWindowInsetRight()I -HSPLandroid/view/WindowInsets;->getSystemWindowInsetTop()I -HSPLandroid/view/WindowInsets;->getSystemWindowInsets()Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->getSystemWindowInsetsAsRect()Landroid/graphics/Rect; -HSPLandroid/view/WindowInsets;->inset(IIII)Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->inset(Landroid/graphics/Insets;)Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->insetInsets(Landroid/graphics/Insets;IIII)Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->insetInsets([Landroid/graphics/Insets;IIII)[Landroid/graphics/Insets; -HSPLandroid/view/WindowInsets;->insetUnchecked(IIII)Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsets;->isConsumed()Z -HSPLandroid/view/WindowInsets;->isRound()Z -HSPLandroid/view/WindowInsets;->replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets; -HSPLandroid/view/WindowInsetsAnimation$Bounds;-><init>(Landroid/graphics/Insets;Landroid/graphics/Insets;)V -HSPLandroid/view/WindowInsetsAnimation$Callback;-><init>(I)V -HSPLandroid/view/WindowInsetsAnimation;-><init>(ILandroid/view/animation/Interpolator;J)V -HSPLandroid/view/WindowInsetsAnimation;->getTypeMask()I -HSPLandroid/view/WindowInsetsAnimation;->setAlpha(F)V -HSPLandroid/view/WindowLayout;-><clinit>()V -HSPLandroid/view/WindowLayout;-><init>()V -HSPLandroid/view/WindowLayout;->computeFrames(Landroid/view/WindowManager$LayoutParams;Landroid/view/InsetsState;Landroid/graphics/Rect;Landroid/graphics/Rect;IIIIFLandroid/window/ClientWindowFrames;)V+]Landroid/view/InsetsState;Landroid/view/InsetsState;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Landroid/view/DisplayCutout;Landroid/view/DisplayCutout;]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/view/WindowLayout;->computeSurfaceSize(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;IILandroid/graphics/Rect;ZLandroid/graphics/Point;)V+]Landroid/graphics/Point;Landroid/graphics/Point;]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V -HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/WindowManager$LayoutParams; -HSPLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/WindowManager$LayoutParams;-><init>()V -HSPLandroid/view/WindowManager$LayoutParams;-><init>(IIIII)V -HSPLandroid/view/WindowManager$LayoutParams;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/WindowManager$LayoutParams;->copyFrom(Landroid/view/WindowManager$LayoutParams;)I+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/view/WindowManager$LayoutParams;->forRotation(I)Landroid/view/WindowManager$LayoutParams; -HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I -HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsSides()I -HSPLandroid/view/WindowManager$LayoutParams;->getFitInsetsTypes()I -HSPLandroid/view/WindowManager$LayoutParams;->getTitle()Ljava/lang/CharSequence; -HSPLandroid/view/WindowManager$LayoutParams;->isFitInsetsIgnoringVisibility()Z -HSPLandroid/view/WindowManager$LayoutParams;->isFullscreen()Z -HSPLandroid/view/WindowManager$LayoutParams;->mayUseInputMethod(I)Z -HSPLandroid/view/WindowManager$LayoutParams;->setColorMode(I)V -HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsIgnoringVisibility(Z)V -HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsSides(I)V -HSPLandroid/view/WindowManager$LayoutParams;->setFitInsetsTypes(I)V -HSPLandroid/view/WindowManager$LayoutParams;->setSurfaceInsets(Landroid/view/View;ZZ)V -HSPLandroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V -HSPLandroid/view/WindowManager$LayoutParams;->writeToParcel(Landroid/os/Parcel;I)V+]Landroid/os/Parcel;Landroid/os/Parcel; -HSPLandroid/view/WindowManager;->hasWindowExtensionsEnabled()Z -HSPLandroid/view/WindowManagerGlobal$1;-><init>()V -HSPLandroid/view/WindowManagerGlobal$2;-><init>(Landroid/view/WindowManagerGlobal;)V -HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;-><clinit>()V -HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;-><init>(Landroid/view/WindowManagerGlobal;)V -HSPLandroid/view/WindowManagerGlobal$TrustedPresentationListener;-><init>(Landroid/view/WindowManagerGlobal;Landroid/view/WindowManagerGlobal$TrustedPresentationListener-IA;)V -HSPLandroid/view/WindowManagerGlobal;-><init>()V -HSPLandroid/view/WindowManagerGlobal;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;Landroid/view/Display;Landroid/view/Window;I)V -HSPLandroid/view/WindowManagerGlobal;->closeAll(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/view/WindowManagerGlobal;->closeAllExceptView(Landroid/os/IBinder;Landroid/view/View;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/view/WindowManagerGlobal;->doRemoveView(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/WindowManagerGlobal;->dumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V -HSPLandroid/view/WindowManagerGlobal;->findViewLocked(Landroid/view/View;Z)I+]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal; -HSPLandroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList; -HSPLandroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager; -HSPLandroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession; -HSPLandroid/view/WindowManagerGlobal;->getWindowView(Landroid/os/IBinder;)Landroid/view/View; -HSPLandroid/view/WindowManagerGlobal;->initialize()V -HSPLandroid/view/WindowManagerGlobal;->peekWindowSession()Landroid/view/IWindowSession; -HSPLandroid/view/WindowManagerGlobal;->removeView(Landroid/view/View;Z)V -HSPLandroid/view/WindowManagerGlobal;->removeViewLocked(IZ)V -HSPLandroid/view/WindowManagerGlobal;->setStoppedState(Landroid/os/IBinder;Z)V -HSPLandroid/view/WindowManagerGlobal;->trimMemory(I)V -HSPLandroid/view/WindowManagerGlobal;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;)V -HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;Landroid/view/Window;Landroid/os/IBinder;)V -HSPLandroid/view/WindowManagerImpl;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/WindowManagerImpl;->applyTokens(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/view/WindowManagerImpl;->assertWindowContextTypeMatches(I)V -HSPLandroid/view/WindowManagerImpl;->createLocalWindowManager(Landroid/view/Window;)Landroid/view/WindowManagerImpl; -HSPLandroid/view/WindowManagerImpl;->createWindowContextWindowManager(Landroid/content/Context;)Landroid/view/WindowManager; -HSPLandroid/view/WindowManagerImpl;->getCurrentWindowMetrics()Landroid/view/WindowMetrics; -HSPLandroid/view/WindowManagerImpl;->getDefaultDisplay()Landroid/view/Display; -HSPLandroid/view/WindowManagerImpl;->getMaximumWindowMetrics()Landroid/view/WindowMetrics; -HSPLandroid/view/WindowManagerImpl;->removeView(Landroid/view/View;)V -HSPLandroid/view/WindowManagerImpl;->removeViewImmediate(Landroid/view/View;)V -HSPLandroid/view/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V+]Landroid/view/WindowManagerGlobal;Landroid/view/WindowManagerGlobal; -HSPLandroid/view/WindowMetrics;-><init>(Landroid/graphics/Rect;Landroid/view/WindowInsets;)V -HSPLandroid/view/WindowMetrics;-><init>(Landroid/graphics/Rect;Ljava/util/function/Supplier;F)V -HSPLandroid/view/WindowMetrics;->getBounds()Landroid/graphics/Rect; -HSPLandroid/view/WindowMetrics;->getWindowInsets()Landroid/view/WindowInsets; -HSPLandroid/view/accessibility/AccessibilityInteractionClient;->hasAnyDirectConnection()Z -HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V -HSPLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V -HSPLandroid/view/accessibility/AccessibilityManager$1;->setFocusAppearance(II)V -HSPLandroid/view/accessibility/AccessibilityManager$1;->setState(I)V -HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;)V -HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager$MyCallback-IA;)V -HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;->handleMessage(Landroid/os/Message;)Z -HSPLandroid/view/accessibility/AccessibilityManager;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;I)V -HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z -HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;Landroid/os/Handler;)V -HSPLandroid/view/accessibility/AccessibilityManager;->addHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;Landroid/os/Handler;)V -HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z -HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;Landroid/os/Handler;)V -HSPLandroid/view/accessibility/AccessibilityManager;->getEnabledAccessibilityServiceList(I)Ljava/util/List; -HSPLandroid/view/accessibility/AccessibilityManager;->getInstalledAccessibilityServiceList()Ljava/util/List; -HSPLandroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager; -HSPLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMillis(II)I -HSPLandroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager; -HSPLandroid/view/accessibility/AccessibilityManager;->hasAnyDirectConnection()Z -HSPLandroid/view/accessibility/AccessibilityManager;->initialFocusAppearanceLocked(Landroid/content/res/Resources;)V -HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z+]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager; -HSPLandroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z -HSPLandroid/view/accessibility/AccessibilityManager;->isTouchExplorationEnabled()Z -HSPLandroid/view/accessibility/AccessibilityManager;->notifyAccessibilityStateChanged()V -HSPLandroid/view/accessibility/AccessibilityManager;->registerSystemAction(Landroid/app/RemoteAction;I)V -HSPLandroid/view/accessibility/AccessibilityManager;->removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z -HSPLandroid/view/accessibility/AccessibilityManager;->removeHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;)V -HSPLandroid/view/accessibility/AccessibilityManager;->removeTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z -HSPLandroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V -HSPLandroid/view/accessibility/AccessibilityManager;->tryConnectToServiceLocked(Landroid/view/accessibility/IAccessibilityManager;)V -HSPLandroid/view/accessibility/AccessibilityManager;->unregisterSystemAction(I)V -HSPLandroid/view/accessibility/AccessibilityManager;->updateAccessibilityTracingState(I)V -HSPLandroid/view/accessibility/AccessibilityManager;->updateFocusAppearanceLocked(II)V -HSPLandroid/view/accessibility/AccessibilityManager;->updateUiTimeout(J)V -HSPLandroid/view/accessibility/AccessibilityNodeIdManager;-><init>()V -HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->getInstance()Landroid/view/accessibility/AccessibilityNodeIdManager; -HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->registerViewWithId(Landroid/view/View;I)V -HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->unregisterViewWithId(I)V -HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;-><init>(ILjava/lang/CharSequence;)V -HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->getId()I -HSPLandroid/view/accessibility/AccessibilityNodeProvider;-><init>()V -HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->getTypeface()Landroid/graphics/Typeface; -HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasBackgroundColor()Z -HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeColor()Z -HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasEdgeType()Z -HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasForegroundColor()Z -HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasWindowColor()Z -HSPLandroid/view/accessibility/CaptioningManager$CaptioningChangeListener;-><init>()V -HSPLandroid/view/accessibility/CaptioningManager;-><init>(Landroid/content/Context;)V -HSPLandroid/view/accessibility/CaptioningManager;->addCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V -HSPLandroid/view/accessibility/CaptioningManager;->getFontScale()F -HSPLandroid/view/accessibility/CaptioningManager;->getLocale()Ljava/util/Locale; -HSPLandroid/view/accessibility/CaptioningManager;->getRawUserStyle()I -HSPLandroid/view/accessibility/CaptioningManager;->getUserStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle; -HSPLandroid/view/accessibility/CaptioningManager;->isEnabled()Z -HSPLandroid/view/accessibility/CaptioningManager;->registerObserver(Ljava/lang/String;)V -HSPLandroid/view/accessibility/CaptioningManager;->removeCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V -HSPLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;-><init>()V -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getEnabledAccessibilityServiceList(II)Ljava/util/List; -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getFocusColor()I -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getFocusStrokeWidth()I -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getRecommendedTimeoutMillis()J -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->registerSystemAction(Landroid/app/RemoteAction;I)V -HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->unregisterSystemAction(I)V -HSPLandroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager; -HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;-><init>()V -HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getMaxTransactionId()I -HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/accessibility/WeakSparseArray$WeakReferenceWithId;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;I)V -HSPLandroid/view/accessibility/WeakSparseArray;-><init>()V -HSPLandroid/view/accessibility/WeakSparseArray;->append(ILjava/lang/Object;)V -HSPLandroid/view/accessibility/WeakSparseArray;->remove(I)V -HSPLandroid/view/accessibility/WeakSparseArray;->removeUnreachableValues()V -HSPLandroid/view/animation/AccelerateDecelerateInterpolator;-><init>()V -HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->createNativeInterpolator()J -HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/AccelerateInterpolator;-><init>()V -HSPLandroid/view/animation/AccelerateInterpolator;-><init>(F)V -HSPLandroid/view/animation/AccelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/AccelerateInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/AlphaAnimation;-><init>(FF)V -HSPLandroid/view/animation/AlphaAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/AlphaAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V -HSPLandroid/view/animation/AlphaAnimation;->hasAlpha()Z -HSPLandroid/view/animation/AlphaAnimation;->willChangeBounds()Z -HSPLandroid/view/animation/AlphaAnimation;->willChangeTransformationMatrix()Z -HSPLandroid/view/animation/Animation$1;->run()V -HSPLandroid/view/animation/Animation$3;->run()V -HSPLandroid/view/animation/Animation$Description;-><init>()V -HSPLandroid/view/animation/Animation$Description;->parseValue(Landroid/util/TypedValue;Landroid/content/Context;)Landroid/view/animation/Animation$Description; -HSPLandroid/view/animation/Animation;-><init>()V -HSPLandroid/view/animation/Animation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/Animation;->cancel()V -HSPLandroid/view/animation/Animation;->detach()V -HSPLandroid/view/animation/Animation;->dispatchAnimationEnd()V -HSPLandroid/view/animation/Animation;->dispatchAnimationStart()V -HSPLandroid/view/animation/Animation;->ensureInterpolator()V -HSPLandroid/view/animation/Animation;->finalize()V -HSPLandroid/view/animation/Animation;->getDuration()J -HSPLandroid/view/animation/Animation;->getFillAfter()Z -HSPLandroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V -HSPLandroid/view/animation/Animation;->getScaleFactor()F -HSPLandroid/view/animation/Animation;->getStartOffset()J -HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;)Z -HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;F)Z -HSPLandroid/view/animation/Animation;->getTransformationAt(FLandroid/view/animation/Transformation;)V -HSPLandroid/view/animation/Animation;->hasAlpha()Z -HSPLandroid/view/animation/Animation;->hasEnded()Z -HSPLandroid/view/animation/Animation;->hasStarted()Z -HSPLandroid/view/animation/Animation;->initialize(IIII)V -HSPLandroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V -HSPLandroid/view/animation/Animation;->isFillEnabled()Z -HSPLandroid/view/animation/Animation;->isInitialized()Z -HSPLandroid/view/animation/Animation;->reset()V -HSPLandroid/view/animation/Animation;->resolveSize(IFII)F -HSPLandroid/view/animation/Animation;->setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V -HSPLandroid/view/animation/Animation;->setBackdropColor(I)V -HSPLandroid/view/animation/Animation;->setBackgroundColor(I)V -HSPLandroid/view/animation/Animation;->setDetachWallpaper(Z)V -HSPLandroid/view/animation/Animation;->setDuration(J)V -HSPLandroid/view/animation/Animation;->setFillAfter(Z)V -HSPLandroid/view/animation/Animation;->setFillBefore(Z)V -HSPLandroid/view/animation/Animation;->setFillEnabled(Z)V -HSPLandroid/view/animation/Animation;->setHasRoundedCorners(Z)V -HSPLandroid/view/animation/Animation;->setInterpolator(Landroid/content/Context;I)V -HSPLandroid/view/animation/Animation;->setInterpolator(Landroid/view/animation/Interpolator;)V -HSPLandroid/view/animation/Animation;->setListenerHandler(Landroid/os/Handler;)V -HSPLandroid/view/animation/Animation;->setRepeatCount(I)V -HSPLandroid/view/animation/Animation;->setRepeatMode(I)V -HSPLandroid/view/animation/Animation;->setShowBackdrop(Z)V -HSPLandroid/view/animation/Animation;->setShowWallpaper(Z)V -HSPLandroid/view/animation/Animation;->setStartOffset(J)V -HSPLandroid/view/animation/Animation;->setStartTime(J)V -HSPLandroid/view/animation/Animation;->setZAdjustment(I)V -HSPLandroid/view/animation/Animation;->willChangeBounds()Z -HSPLandroid/view/animation/Animation;->willChangeTransformationMatrix()Z -HSPLandroid/view/animation/AnimationSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/AnimationSet;-><init>(Z)V -HSPLandroid/view/animation/AnimationSet;->addAnimation(Landroid/view/animation/Animation;)V -HSPLandroid/view/animation/AnimationSet;->getDuration()J -HSPLandroid/view/animation/AnimationSet;->getTransformation(JLandroid/view/animation/Transformation;)Z -HSPLandroid/view/animation/AnimationSet;->hasAlpha()Z -HSPLandroid/view/animation/AnimationSet;->init()V -HSPLandroid/view/animation/AnimationSet;->initialize(IIII)V -HSPLandroid/view/animation/AnimationSet;->initializeInvalidateRegion(IIII)V -HSPLandroid/view/animation/AnimationSet;->reset()V -HSPLandroid/view/animation/AnimationSet;->restoreChildrenStartOffset()V -HSPLandroid/view/animation/AnimationSet;->setDuration(J)V -HSPLandroid/view/animation/AnimationSet;->setFillAfter(Z)V -HSPLandroid/view/animation/AnimationSet;->setFillBefore(Z)V -HSPLandroid/view/animation/AnimationSet;->setFlag(IZ)V -HSPLandroid/view/animation/AnimationSet;->setRepeatMode(I)V -HSPLandroid/view/animation/AnimationSet;->setStartOffset(J)V -HSPLandroid/view/animation/AnimationSet;->setStartTime(J)V -HSPLandroid/view/animation/AnimationSet;->willChangeBounds()Z -HSPLandroid/view/animation/AnimationSet;->willChangeTransformationMatrix()Z -HSPLandroid/view/animation/AnimationUtils$1;->initialValue()Landroid/view/animation/AnimationUtils$AnimationState; -HSPLandroid/view/animation/AnimationUtils$1;->initialValue()Ljava/lang/Object; -HSPLandroid/view/animation/AnimationUtils$AnimationState;-><init>()V -HSPLandroid/view/animation/AnimationUtils$AnimationState;-><init>(Landroid/view/animation/AnimationUtils$AnimationState-IA;)V -HSPLandroid/view/animation/AnimationUtils;->createAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Animation; -HSPLandroid/view/animation/AnimationUtils;->createAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/view/animation/AnimationSet;Landroid/util/AttributeSet;)Landroid/view/animation/Animation; -HSPLandroid/view/animation/AnimationUtils;->createInterpolatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Interpolator; -HSPLandroid/view/animation/AnimationUtils;->currentAnimationTimeMillis()J -HSPLandroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation; -HSPLandroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/Context;I)Landroid/view/animation/Interpolator; -HSPLandroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/view/animation/Interpolator; -HSPLandroid/view/animation/AnimationUtils;->lockAnimationClock(J)V -HSPLandroid/view/animation/AnimationUtils;->lockAnimationClock(JJ)V+]Ljava/lang/ThreadLocal;Landroid/view/animation/AnimationUtils$1; -HSPLandroid/view/animation/AnimationUtils;->unlockAnimationClock()V+]Ljava/lang/ThreadLocal;Landroid/view/animation/AnimationUtils$1; -HSPLandroid/view/animation/BaseInterpolator;-><init>()V -HSPLandroid/view/animation/BaseInterpolator;->getChangingConfiguration()I -HSPLandroid/view/animation/BaseInterpolator;->setChangingConfiguration(I)V -HSPLandroid/view/animation/DecelerateInterpolator;-><init>()V -HSPLandroid/view/animation/DecelerateInterpolator;-><init>(F)V -HSPLandroid/view/animation/DecelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/LinearInterpolator;-><init>()V -HSPLandroid/view/animation/LinearInterpolator;->createNativeInterpolator()J -HSPLandroid/view/animation/LinearInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/OvershootInterpolator;-><init>()V -HSPLandroid/view/animation/OvershootInterpolator;-><init>(F)V -HSPLandroid/view/animation/OvershootInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/PathInterpolator;-><init>(FFFF)V -HSPLandroid/view/animation/PathInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/PathInterpolator;->createNativeInterpolator()J -HSPLandroid/view/animation/PathInterpolator;->getInterpolation(F)F -HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V -HSPLandroid/view/animation/PathInterpolator;->initPath(Landroid/graphics/Path;)V+]Landroid/graphics/Path;Landroid/graphics/Path; -HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V -HSPLandroid/view/animation/ScaleAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/ScaleAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V -HSPLandroid/view/animation/ScaleAnimation;->initialize(IIII)V -HSPLandroid/view/animation/ScaleAnimation;->initializePivotPoint()V -HSPLandroid/view/animation/ScaleAnimation;->resolveScale(FIIII)F -HSPLandroid/view/animation/Transformation;-><init>()V -HSPLandroid/view/animation/Transformation;->clear()V -HSPLandroid/view/animation/Transformation;->compose(Landroid/view/animation/Transformation;)V -HSPLandroid/view/animation/Transformation;->getAlpha()F -HSPLandroid/view/animation/Transformation;->getInsets()Landroid/graphics/Insets; -HSPLandroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix; -HSPLandroid/view/animation/Transformation;->getTransformationType()I -HSPLandroid/view/animation/Transformation;->set(Landroid/view/animation/Transformation;)V -HSPLandroid/view/animation/Transformation;->setAlpha(F)V -HSPLandroid/view/animation/Transformation;->setInsets(Landroid/graphics/Insets;)V -HSPLandroid/view/animation/TranslateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/view/animation/TranslateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V -HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V -HSPLandroid/view/autofill/AutofillClientController;-><clinit>()V -HSPLandroid/view/autofill/AutofillClientController;-><init>(Landroid/app/Activity;)V -HSPLandroid/view/autofill/AutofillClientController;->autofillClientGetActivityToken()Landroid/os/IBinder; -HSPLandroid/view/autofill/AutofillClientController;->autofillClientGetComponentName()Landroid/content/ComponentName; -HSPLandroid/view/autofill/AutofillClientController;->autofillClientIsFillUiShowing()Z -HSPLandroid/view/autofill/AutofillClientController;->autofillClientRequestHideFillUi()Z -HSPLandroid/view/autofill/AutofillClientController;->autofillClientResetableStateAvailable()V -HSPLandroid/view/autofill/AutofillClientController;->autofillClientRunOnUiThread(Ljava/lang/Runnable;)V -HSPLandroid/view/autofill/AutofillClientController;->enableAutofillCompatibilityIfNeeded()V -HSPLandroid/view/autofill/AutofillClientController;->getAutofillManager()Landroid/view/autofill/AutofillManager; -HSPLandroid/view/autofill/AutofillClientController;->getNextAutofillId()I -HSPLandroid/view/autofill/AutofillClientController;->isDisablingEnterExitEventForAutofill()Z -HSPLandroid/view/autofill/AutofillClientController;->onActivityAttached(Landroid/app/Application;)V -HSPLandroid/view/autofill/AutofillClientController;->onActivityCreated(Landroid/os/Bundle;)V -HSPLandroid/view/autofill/AutofillClientController;->onActivityDestroyed()V -HSPLandroid/view/autofill/AutofillClientController;->onActivityFinish(Landroid/content/Intent;)V -HSPLandroid/view/autofill/AutofillClientController;->onActivityPaused()V -HSPLandroid/view/autofill/AutofillClientController;->onActivityPerformResume(Z)V -HSPLandroid/view/autofill/AutofillClientController;->onActivityResumed()V -HSPLandroid/view/autofill/AutofillClientController;->onActivityStarted()V -HSPLandroid/view/autofill/AutofillClientController;->onActivityStopped(Landroid/content/Intent;Z)V -HSPLandroid/view/autofill/AutofillClientController;->onSaveInstanceState(Landroid/os/Bundle;)V -HSPLandroid/view/autofill/AutofillClientController;->onStartActivity(Landroid/content/Intent;Landroid/content/Intent;)V -HSPLandroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda0;-><init>()V -HSPLandroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda1;->test(Ljava/lang/Object;)Z -HSPLandroid/view/autofill/AutofillFeatureFlags;->getDenylistStringFromFlag()Ljava/lang/String; -HSPLandroid/view/autofill/AutofillFeatureFlags;->getFillDialogEnabledHints()[Ljava/lang/String; -HSPLandroid/view/autofill/AutofillFeatureFlags;->getNonAutofillableImeActionIdSetFromFlag()Ljava/util/Set; -HSPLandroid/view/autofill/AutofillFeatureFlags;->isFillDialogEnabled()Z -HSPLandroid/view/autofill/AutofillFeatureFlags;->isTriggerFillRequestOnUnimportantViewEnabled()Z -HSPLandroid/view/autofill/AutofillFeatureFlags;->lambda$getFillDialogEnabledHints$1(Ljava/lang/String;)Z -HSPLandroid/view/autofill/AutofillFeatureFlags;->shouldIncludeAllChildrenViewInAssistStructure()Z -HSPLandroid/view/autofill/AutofillFeatureFlags;->shouldIncludeAllViewsAutofillTypeNotNoneInAssistStructrue()Z -HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillId; -HSPLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/autofill/AutofillId;-><init>(I)V -HSPLandroid/view/autofill/AutofillId;-><init>(IIJI)V -HSPLandroid/view/autofill/AutofillId;->equals(Ljava/lang/Object;)Z -HSPLandroid/view/autofill/AutofillId;->getViewId()I -HSPLandroid/view/autofill/AutofillId;->hasSession()Z -HSPLandroid/view/autofill/AutofillId;->hashCode()I -HSPLandroid/view/autofill/AutofillId;->isVirtualInt()Z -HSPLandroid/view/autofill/AutofillId;->isVirtualLong()Z -HSPLandroid/view/autofill/AutofillId;->resetSessionId()V -HSPLandroid/view/autofill/AutofillId;->toString()Ljava/lang/String; -HSPLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;)V -HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getView(Landroid/view/autofill/AutofillManager;Landroid/view/autofill/AutofillId;)Landroid/view/View; -HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getViewCoordinates(Landroid/view/autofill/AutofillId;)Landroid/graphics/Rect; -HSPLandroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient;->getViewNodeParcelable(Landroid/view/autofill/AutofillId;)Landroid/app/assist/AssistStructure$ViewNodeParcelable; -HSPLandroid/view/autofill/AutofillManager$AutofillCallback;-><init>()V -HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V -HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->lambda$setState$0(Landroid/view/autofill/AutofillManager;I)V -HSPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->setState(I)V -HSPLandroid/view/autofill/AutofillManager;->-$$Nest$mpost(Landroid/view/autofill/AutofillManager;Ljava/lang/Runnable;)V -HSPLandroid/view/autofill/AutofillManager;-><init>(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V -HSPLandroid/view/autofill/AutofillManager;->cancelLocked()V -HSPLandroid/view/autofill/AutofillManager;->cancelSessionLocked()V -HSPLandroid/view/autofill/AutofillManager;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V -HSPLandroid/view/autofill/AutofillManager;->getAutofillServiceComponentName()Landroid/content/ComponentName; -HSPLandroid/view/autofill/AutofillManager;->getClient()Landroid/view/autofill/AutofillManager$AutofillClient; -HSPLandroid/view/autofill/AutofillManager;->hasAutofillFeature()Z -HSPLandroid/view/autofill/AutofillManager;->hasFillDialogUiFeature()Z -HSPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z -HSPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z -HSPLandroid/view/autofill/AutofillManager;->isEnabled()Z -HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V -HSPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V -HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V -HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForFillDialog(Landroid/view/View;)V -HSPLandroid/view/autofill/AutofillManager;->notifyViewExited(Landroid/view/View;)V -HSPLandroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;)V -HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V -HSPLandroid/view/autofill/AutofillManager;->onActivityFinishing()V -HSPLandroid/view/autofill/AutofillManager;->onInvisibleForAutofill(Z)V -HSPLandroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V -HSPLandroid/view/autofill/AutofillManager;->post(Ljava/lang/Runnable;)V -HSPLandroid/view/autofill/AutofillManager;->registerCallback(Landroid/view/autofill/AutofillManager$AutofillCallback;)V -HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi()V -HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Z)V -HSPLandroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V -HSPLandroid/view/autofill/AutofillManager;->setSessionFinished(ILjava/util/List;)V -HSPLandroid/view/autofill/AutofillManager;->setState(I)V -HSPLandroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z -HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z -HSPLandroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V -HSPLandroid/view/autofill/AutofillManager;->tryAddServiceClientIfNeededLocked()Z -HSPLandroid/view/autofill/AutofillManager;->updateSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V -HSPLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillValue; -HSPLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/autofill/AutofillValue;-><init>(ILjava/lang/Object;)V -HSPLandroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/autofill/AutofillValue;->forText(Ljava/lang/CharSequence;)Landroid/view/autofill/AutofillValue; -HSPLandroid/view/autofill/AutofillValue;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;-><init>()V -HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/autofill/IAugmentedAutofillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->cancelSession(II)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAutofillServiceComponentName(Lcom/android/internal/os/IResultReceiver;)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->setHasCallback(IIZ)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;ZLcom/android/internal/os/IResultReceiver;)V -HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V -HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager; -HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(II)V -HSPLandroid/view/contentcapture/ContentCaptureEvent;-><init>(IIJ)V -HSPLandroid/view/contentcapture/ContentCaptureEvent;->addAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->getId()Landroid/view/autofill/AutofillId; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->getIds()Ljava/util/List; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->getSessionId()I -HSPLandroid/view/contentcapture/ContentCaptureEvent;->getText()Ljava/lang/CharSequence; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->getType()I -HSPLandroid/view/contentcapture/ContentCaptureEvent;->mergeEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setBounds(Landroid/graphics/Rect;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setComposingIndex(II)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setInsets(Landroid/graphics/Insets;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setSelectionIndex(II)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setText(Ljava/lang/CharSequence;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->setViewNode(Landroid/view/contentcapture/ViewNode;)Landroid/view/contentcapture/ContentCaptureEvent; -HSPLandroid/view/contentcapture/ContentCaptureEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/contentcapture/ContentCaptureHelper;->getLoggingLevelAsString(I)Ljava/lang/String; -HSPLandroid/view/contentcapture/ContentCaptureHelper;->setLoggingLevel(I)V -HSPLandroid/view/contentcapture/ContentCaptureManager$LocalDataShareAdapterResourceManager;-><init>()V -HSPLandroid/view/contentcapture/ContentCaptureManager$StrippedContext;-><init>(Landroid/content/Context;)V -HSPLandroid/view/contentcapture/ContentCaptureManager;-><init>(Landroid/content/Context;Landroid/view/contentcapture/IContentCaptureManager;Landroid/content/ContentCaptureOptions;)V -HSPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z -HSPLandroid/view/contentcapture/ContentCaptureManager;->onActivityCreated(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/content/ComponentName;)V -HSPLandroid/view/contentcapture/ContentCaptureManager;->setFlushViewTreeAppearingEventDisabled(Z)V -HSPLandroid/view/contentcapture/ContentCaptureManager;->updateWindowAttributes(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/contentcapture/ContentCaptureSession;-><init>()V -HSPLandroid/view/contentcapture/ContentCaptureSession;-><init>(I)V -HSPLandroid/view/contentcapture/ContentCaptureSession;->destroy()V -HSPLandroid/view/contentcapture/ContentCaptureSession;->getFlushReasonAsString(I)Ljava/lang/String; -HSPLandroid/view/contentcapture/ContentCaptureSession;->getId()I -HSPLandroid/view/contentcapture/ContentCaptureSession;->getRandomSessionId()I -HSPLandroid/view/contentcapture/ContentCaptureSession;->getStateAsString(I)Ljava/lang/String; -HSPLandroid/view/contentcapture/ContentCaptureSession;->isContentCaptureEnabled()Z -HSPLandroid/view/contentcapture/ContentCaptureSession;->newViewStructure(Landroid/view/View;)Landroid/view/ViewStructure; -HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewAppeared(Landroid/view/ViewStructure;)V -HSPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V -HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy;->sendEvents(Landroid/content/pm/ParceledListSlice;ILandroid/content/ContentCaptureOptions;)V -HSPLandroid/view/contentcapture/IContentCaptureDirectManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureDirectManager; -HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->finishSession(I)V -HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->registerContentCaptureOptionsCallback(Ljava/lang/String;Landroid/view/contentcapture/IContentCaptureOptionsCallback;)V -HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/content/ComponentName;IILcom/android/internal/os/IResultReceiver;)V -HSPLandroid/view/contentcapture/IContentCaptureManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureManager; -HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;-><init>()V -HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getMaxTransactionId()I -HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLandroid/view/contentcapture/IContentCaptureOptionsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda10;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda11;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda12;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda1;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda2;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda3;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda4;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda8;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1;->run()V -HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;-><init>(Landroid/view/contentcapture/MainContentCaptureSession;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;->lambda$send$1(Landroid/view/contentcapture/MainContentCaptureSession;ILandroid/os/IBinder;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver;->send(ILandroid/os/Bundle;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;-><init>(Landroid/view/contentcapture/ContentCaptureManager$StrippedContext;Landroid/view/contentcapture/ContentCaptureManager;Landroid/os/Handler;Landroid/view/contentcapture/IContentCaptureManager;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->clearEvents()Landroid/content/pm/ParceledListSlice; -HSPLandroid/view/contentcapture/MainContentCaptureSession;->destroySession()V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->flush(I)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->flushIfNeeded(I)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->getActivityName()Ljava/lang/String; -HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState()Ljava/lang/String; -HSPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState(I)Ljava/lang/String; -HSPLandroid/view/contentcapture/MainContentCaptureSession;->hasStarted()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z -HSPLandroid/view/contentcapture/MainContentCaptureSession;->notifyWindowBoundsChanged(ILandroid/graphics/Rect;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->onDestroy()V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->onSessionStarted(ILandroid/os/IBinder;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->scheduleFlush(IZ)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;Z)V -HSPLandroid/view/contentcapture/MainContentCaptureSession;->start(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/content/ComponentName;I)V -HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;-><init>()V -HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;->isSimple()Z -HSPLandroid/view/contentcapture/ViewNode$ViewNodeText;->writeToParcel(Landroid/os/Parcel;Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;-><init>(Landroid/view/View;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->getNodeText()Landroid/view/contentcapture/ViewNode$ViewNodeText; -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillHints([Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillType(I)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setCheckable(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setClassName(Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setClickable(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setContentDescription(Ljava/lang/CharSequence;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setDimens(IIIIII)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setEnabled(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setFocusable(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setFocused(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setHint(Ljava/lang/CharSequence;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setHintIdEntry(Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setInputType(I)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setLongClickable(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMaxTextEms(I)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMaxTextLength(I)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setMinTextEms(I)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setOpaque(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setReceiveContentMimeTypes([Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setSelected(Z)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setText(Ljava/lang/CharSequence;II)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextIdEntry(Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextLines([I[I)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setTextStyle(FIII)V -HSPLandroid/view/contentcapture/ViewNode$ViewStructureImpl;->setVisibility(I)V -HSPLandroid/view/contentcapture/ViewNode;->-$$Nest$fputmReceiveContentMimeTypes(Landroid/view/contentcapture/ViewNode;[Ljava/lang/String;)V -HSPLandroid/view/contentcapture/ViewNode;-><init>()V -HSPLandroid/view/contentcapture/ViewNode;->writeSelfToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/contentcapture/ViewNode;->writeToParcel(Landroid/os/Parcel;Landroid/view/contentcapture/ViewNode;I)V -HSPLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/View;Z)V -HSPLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/inputmethod/InputMethodManager;Z)V -HSPLandroid/view/inputmethod/BaseInputConnection;->beginBatchEdit()Z -HSPLandroid/view/inputmethod/BaseInputConnection;->closeConnection()V -HSPLandroid/view/inputmethod/BaseInputConnection;->commitText(Ljava/lang/CharSequence;I)Z -HSPLandroid/view/inputmethod/BaseInputConnection;->deleteSurroundingText(II)Z -HSPLandroid/view/inputmethod/BaseInputConnection;->endBatchEdit()Z -HSPLandroid/view/inputmethod/BaseInputConnection;->endComposingRegionEditInternal()V -HSPLandroid/view/inputmethod/BaseInputConnection;->ensureDefaultComposingSpans()V -HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z -HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable; -HSPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler; -HSPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V -HSPLandroid/view/inputmethod/BaseInputConnection;->replaceText(Ljava/lang/CharSequence;IZ)V -HSPLandroid/view/inputmethod/BaseInputConnection;->reportFullscreenMode(Z)Z -HSPLandroid/view/inputmethod/BaseInputConnection;->sendCurrentText()V -HSPLandroid/view/inputmethod/BaseInputConnection;->sendKeyEvent(Landroid/view/KeyEvent;)Z -HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingRegion(II)Z -HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingSpans(Landroid/text/Spannable;II)V -HSPLandroid/view/inputmethod/BaseInputConnection;->setComposingText(Ljava/lang/CharSequence;I)Z -HSPLandroid/view/inputmethod/CursorAnchorInfo$Builder;-><init>()V -HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/EditorInfo; -HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/EditorInfo;-><init>()V -HSPLandroid/view/inputmethod/EditorInfo;->createCopyInternal()Landroid/view/inputmethod/EditorInfo; -HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingSubText(Ljava/lang/CharSequence;I)V -HSPLandroid/view/inputmethod/EditorInfo;->setInitialSurroundingText(Ljava/lang/CharSequence;)V -HSPLandroid/view/inputmethod/EditorInfo;->setInitialToolType(I)V -HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/inputmethod/ExtractedTextRequest;-><init>()V -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;-><clinit>()V -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->addClient(Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->getImeTrackerService()Lcom/android/internal/inputmethod/IImeTracker; -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->getService()Lcom/android/internal/view/IInputMethodManager; -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->isAvailable()Z -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->isImeTraceEnabled()Z -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->removeImeSurfaceFromWindowAsync(Landroid/os/IBinder;)V -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->reportPerceptibleAsync(Landroid/os/IBinder;Z)V -HSPLandroid/view/inputmethod/IInputMethodManagerGlobalInvoker;->startInputOrWindowGainedFocus(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult; -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;-><clinit>()V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;-><init>(Lcom/android/internal/inputmethod/IInputMethodSession;Landroid/os/Handler;)V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->createOrNull(Lcom/android/internal/inputmethod/IInputMethodSession;)Landroid/view/inputmethod/IInputMethodSessionInvoker; -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInput()V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->finishInputInternal()V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelection(IIIIII)V -HSPLandroid/view/inputmethod/IInputMethodSessionInvoker;->updateSelectionInternal(IIIIII)V -HSPLandroid/view/inputmethod/ImeTracker$1$$ExternalSyntheticLambda0;-><init>(Landroid/view/inputmethod/ImeTracker$1;)V -HSPLandroid/view/inputmethod/ImeTracker$1;-><init>()V -HSPLandroid/view/inputmethod/ImeTracker$1;->onProgress(Landroid/view/inputmethod/ImeTracker$Token;I)V -HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda0;-><init>(Ljava/lang/String;)V -HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z -HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda1;-><init>()V -HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda2;-><init>()V -HSPLandroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/ImeTracker$Debug;-><clinit>()V -HSPLandroid/view/inputmethod/ImeTracker$Debug;->getFieldMapping(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/Map; -HSPLandroid/view/inputmethod/ImeTracker$Debug;->getFieldValue(Ljava/lang/reflect/Field;)I -HSPLandroid/view/inputmethod/ImeTracker$Debug;->lambda$getFieldMapping$0(Ljava/lang/String;Ljava/lang/reflect/Field;)Z -HSPLandroid/view/inputmethod/ImeTracker$Debug;->originToString(I)Ljava/lang/String; -HSPLandroid/view/inputmethod/ImeTracker$Debug;->phaseToString(I)Ljava/lang/String; -HSPLandroid/view/inputmethod/ImeTracker$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/ImeTracker$Token; -HSPLandroid/view/inputmethod/ImeTracker$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/ImeTracker$Token;->-$$Nest$fgetmTag(Landroid/view/inputmethod/ImeTracker$Token;)Ljava/lang/String; -HSPLandroid/view/inputmethod/ImeTracker$Token;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/inputmethod/ImeTracker$Token;-><init>(Landroid/os/Parcel;Landroid/view/inputmethod/ImeTracker$Token-IA;)V -HSPLandroid/view/inputmethod/ImeTracker$Token;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/inputmethod/ImeTracker;-><clinit>()V -HSPLandroid/view/inputmethod/ImeTracker;->forLogging()Landroid/view/inputmethod/ImeTracker; -HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InlineSuggestionsRequest; -HSPLandroid/view/inputmethod/InlineSuggestionsRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/InlineSuggestionsRequest;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->onConstructed()V -HSPLandroid/view/inputmethod/InlineSuggestionsRequest;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/inputmethod/InputConnectionWrapper;-><init>(Landroid/view/inputmethod/InputConnection;Z)V -HSPLandroid/view/inputmethod/InputConnectionWrapper;->beginBatchEdit()Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->closeConnection()V -HSPLandroid/view/inputmethod/InputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->deleteSurroundingText(II)Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->endBatchEdit()Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->finishComposingText()Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->getHandler()Landroid/os/Handler; -HSPLandroid/view/inputmethod/InputConnectionWrapper;->getSelectedText(I)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextAfterCursor(II)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/InputConnectionWrapper;->getTextBeforeCursor(II)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/InputConnectionWrapper;->reportFullscreenMode(Z)Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->setComposingRegion(II)Z -HSPLandroid/view/inputmethod/InputConnectionWrapper;->setComposingText(Ljava/lang/CharSequence;I)Z -HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodInfo; -HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;Ljava/util/List;)V -HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String; -HSPLandroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String; -HSPLandroid/view/inputmethod/InputMethodInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo; -HSPLandroid/view/inputmethod/InputMethodInfo;->getSubtypeAt(I)Landroid/view/inputmethod/InputMethodSubtype; -HSPLandroid/view/inputmethod/InputMethodManager$1;->getReceivingDispatcher()Landroid/window/WindowOnBackInvokedDispatcher; -HSPLandroid/view/inputmethod/InputMethodManager$2;-><init>(Landroid/view/inputmethod/InputMethodManager;)V -HSPLandroid/view/inputmethod/InputMethodManager$2;->onBindMethod(Lcom/android/internal/inputmethod/InputBindResult;)V -HSPLandroid/view/inputmethod/InputMethodManager$2;->onUnbindMethod(II)V -HSPLandroid/view/inputmethod/InputMethodManager$2;->reportFullscreenMode(Z)V -HSPLandroid/view/inputmethod/InputMethodManager$2;->setActive(ZZ)V -HSPLandroid/view/inputmethod/InputMethodManager$BindState;-><init>(Lcom/android/internal/inputmethod/InputBindResult;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;-><init>(Landroid/view/inputmethod/InputMethodManager;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onPostWindowGainedFocus(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onPreWindowGainedFocus(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onScheduledCheckFocus(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onViewDetachedFromWindow(Landroid/view/View;Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->onWindowDismissed(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$DelegateImpl;->setCurrentRootViewLocked(Landroid/view/ViewRootImpl;)V -HSPLandroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0;->run()V -HSPLandroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/os/Looper;)V -HSPLandroid/view/inputmethod/InputMethodManager$H;->handleMessage(Landroid/os/Message;)V -HSPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V -HSPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->run()V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmFullscreenMode(Landroid/view/inputmethod/InputMethodManager;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmImeDispatcher(Landroid/view/inputmethod/InputMethodManager;)Landroid/window/ImeOnBackInvokedDispatcher; -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmImeInsetsConsumer(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/ImeInsetsSourceConsumer; -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmNextServedView(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View; -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmRestartOnNextWindowFocus(Landroid/view/inputmethod/InputMethodManager;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fgetmServedView(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View; -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fputmActive(Landroid/view/inputmethod/InputMethodManager;Z)V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fputmFullscreenMode(Landroid/view/inputmethod/InputMethodManager;Z)V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$fputmRestartOnNextWindowFocus(Landroid/view/inputmethod/InputMethodManager;Z)V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mcheckFocusInternalLocked(Landroid/view/inputmethod/InputMethodManager;ZLandroid/view/ViewRootImpl;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mforAccessibilitySessionsLocked(Landroid/view/inputmethod/InputMethodManager;Ljava/util/function/Consumer;)V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mgetServedViewLocked(Landroid/view/inputmethod/InputMethodManager;)Landroid/view/View; -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mgetStartInputFlags(Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;I)I -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$monViewFocusChangedInternal(Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;Z)V -HSPLandroid/view/inputmethod/InputMethodManager;->-$$Nest$mstartInputOnWindowFocusGainInternal(Landroid/view/inputmethod/InputMethodManager;ILandroid/view/View;III)Z -HSPLandroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/view/IInputMethodManager;ILandroid/os/Looper;)V -HSPLandroid/view/inputmethod/InputMethodManager;->areSameInputChannel(Landroid/view/InputChannel;Landroid/view/InputChannel;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->canStartInput(Landroid/view/View;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->checkFocus()V -HSPLandroid/view/inputmethod/InputMethodManager;->checkFocusInternalLocked(ZLandroid/view/ViewRootImpl;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->clearConnectionLocked()V -HSPLandroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V -HSPLandroid/view/inputmethod/InputMethodManager;->createInputConnection(Landroid/view/View;)Landroid/util/Pair; -HSPLandroid/view/inputmethod/InputMethodManager;->createInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/inputmethod/InputMethodManager;->createRealInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/inputmethod/InputMethodManager;->dispatchInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)I -HSPLandroid/view/inputmethod/InputMethodManager;->dispatchKeyEventFromInputMethod(Landroid/view/View;Landroid/view/KeyEvent;)V -HSPLandroid/view/inputmethod/InputMethodManager;->ensureDefaultInstanceForDefaultDisplayIfNecessary()V -HSPLandroid/view/inputmethod/InputMethodManager;->finishInputLocked()V -HSPLandroid/view/inputmethod/InputMethodManager;->finishedInputEvent(IZZ)V -HSPLandroid/view/inputmethod/InputMethodManager;->flushPendingEventsLocked()V -HSPLandroid/view/inputmethod/InputMethodManager;->forAccessibilitySessionsLocked(Ljava/util/function/Consumer;)V -HSPLandroid/view/inputmethod/InputMethodManager;->forContext(Landroid/content/Context;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/inputmethod/InputMethodManager;->forContextInternal(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/inputmethod/InputMethodManager;->getDelegate()Landroid/view/inputmethod/InputMethodManager$DelegateImpl; -HSPLandroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List; -HSPLandroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List; -HSPLandroid/view/inputmethod/InputMethodManager;->getFallbackInputMethodManagerIfNecessary(Landroid/view/View;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/view/inputmethod/InputMethodManager;->getServedViewLocked()Landroid/view/View; -HSPLandroid/view/inputmethod/InputMethodManager;->getStartInputFlags(Landroid/view/View;I)I -HSPLandroid/view/inputmethod/InputMethodManager;->hasServedByInputMethodLocked(Landroid/view/View;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;I)Z -HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;I)Z -HSPLandroid/view/inputmethod/InputMethodManager;->invalidateInput(Landroid/view/View;)V -HSPLandroid/view/inputmethod/InputMethodManager;->isActive()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isActive(Landroid/view/View;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isImeSessionAvailableLocked()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isInEditMode()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isInEditModeInternal()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isInputMethodSuppressingSpellChecker()Z -HSPLandroid/view/inputmethod/InputMethodManager;->isSwitchingBetweenEquivalentNonEditableViews(Landroid/view/inputmethod/ViewFocusParameterInfo;IIII)Z -HSPLandroid/view/inputmethod/InputMethodManager;->onViewFocusChangedInternal(Landroid/view/View;Z)V -HSPLandroid/view/inputmethod/InputMethodManager;->registerImeConsumer(Landroid/view/ImeInsetsSourceConsumer;)V -HSPLandroid/view/inputmethod/InputMethodManager;->removeImeSurface(Landroid/os/IBinder;)V -HSPLandroid/view/inputmethod/InputMethodManager;->reportInputConnectionOpened(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Landroid/os/Handler;Landroid/view/View;)V -HSPLandroid/view/inputmethod/InputMethodManager;->reportPerceptible(Landroid/os/IBinder;Z)V -HSPLandroid/view/inputmethod/InputMethodManager;->restartInput(Landroid/view/View;)V -HSPLandroid/view/inputmethod/InputMethodManager;->sendInputEventOnMainLooperLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)I -HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;I)Z -HSPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z -HSPLandroid/view/inputmethod/InputMethodManager;->startInputInner(ILandroid/os/IBinder;III)Z -HSPLandroid/view/inputmethod/InputMethodManager;->startInputOnWindowFocusGainInternal(ILandroid/view/View;III)Z -HSPLandroid/view/inputmethod/InputMethodManager;->unregisterImeConsumer(Landroid/view/ImeInsetsSourceConsumer;)V -HSPLandroid/view/inputmethod/InputMethodManager;->updateInputChannelLocked(Landroid/view/InputChannel;)V -HSPLandroid/view/inputmethod/InputMethodManager;->updateSelection(Landroid/view/View;IIII)V -HSPLandroid/view/inputmethod/InputMethodManager;->viewClicked(Landroid/view/View;)V -HSPLandroid/view/inputmethod/InputMethodManagerGlobal;->isImeTraceAvailable()Z -HSPLandroid/view/inputmethod/InputMethodManagerGlobal;->isImeTraceEnabled()Z -HSPLandroid/view/inputmethod/InputMethodSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodSubtype; -HSPLandroid/view/inputmethod/InputMethodSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String; -HSPLandroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String; -HSPLandroid/view/inputmethod/InputMethodSubtype;->hashCode()I -HSPLandroid/view/inputmethod/InputMethodSubtypeArray;->get(I)Landroid/view/inputmethod/InputMethodSubtype; -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl$1;-><init>(Landroid/view/inputmethod/RemoteInputConnectionImpl;)V -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputMethodManager;Landroid/view/View;)V -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->dispatch(Ljava/lang/Runnable;)V -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->dispatchWithTracing(Ljava/lang/String;Ljava/lang/Runnable;)V -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->finishComposingTextFromImm()V -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->getInputConnection()Landroid/view/inputmethod/InputConnection; -HSPLandroid/view/inputmethod/RemoteInputConnectionImpl;->isFinished()Z -HSPLandroid/view/inputmethod/SurroundingText$1;-><init>()V -HSPLandroid/view/inputmethod/SurroundingText;-><clinit>()V -HSPLandroid/view/inputmethod/SurroundingText;-><init>(Ljava/lang/CharSequence;III)V -HSPLandroid/view/inputmethod/SurroundingText;->copyWithParcelableSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/view/inputmethod/SurroundingText;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/inputmethod/ViewFocusParameterInfo;-><init>(Landroid/view/inputmethod/EditorInfo;IIII)V -HSPLandroid/view/inputmethod/ViewFocusParameterInfo;->sameAs(Landroid/view/inputmethod/EditorInfo;IIII)Z -HSPLandroid/view/textclassifier/ConversationAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationAction; -HSPLandroid/view/textclassifier/ConversationAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/ConversationAction;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/ConversationAction;->getAction()Landroid/app/RemoteAction; -HSPLandroid/view/textclassifier/ConversationAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/ConversationActions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions; -HSPLandroid/view/textclassifier/ConversationActions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Message; -HSPLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/ConversationActions$Message;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request; -HSPLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/ConversationActions$Request;-><init>(Ljava/util/List;Landroid/view/textclassifier/TextClassifier$EntityConfig;ILjava/util/List;Landroid/os/Bundle;)V -HSPLandroid/view/textclassifier/ConversationActions$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request; -HSPLandroid/view/textclassifier/ConversationActions$Request;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V -HSPLandroid/view/textclassifier/ConversationActions;-><init>(Ljava/util/List;Ljava/lang/String;)V -HSPLandroid/view/textclassifier/ConversationActions;->getConversationActions()Ljava/util/List; -HSPLandroid/view/textclassifier/ConversationActions;->getId()Ljava/lang/String; -HSPLandroid/view/textclassifier/ConversationActions;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/EntityConfidence$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/EntityConfidence; -HSPLandroid/view/textclassifier/EntityConfidence$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/EntityConfidence;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/EntityConfidence;->getEntities()Ljava/util/List; -HSPLandroid/view/textclassifier/EntityConfidence;->resetSortedEntitiesFromMap()V -HSPLandroid/view/textclassifier/SelectionEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;-><init>(Ljava/lang/String;Landroid/view/textclassifier/TextClassificationConstants;)V -HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->get()Landroid/os/Parcelable; -HSPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->onSuccess(Landroid/os/Bundle;)V -HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;-><init>(Ljava/lang/String;Landroid/view/textclassifier/TextClassificationConstants;)V -HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->get()Ljava/lang/Object; -HSPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->onSuccess(Ljava/lang/Object;)V -HSPLandroid/view/textclassifier/SystemTextClassifier;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Z)V -HSPLandroid/view/textclassifier/SystemTextClassifier;->initializeRemoteSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V -HSPLandroid/view/textclassifier/SystemTextClassifierMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/SystemTextClassifierMetadata; -HSPLandroid/view/textclassifier/SystemTextClassifierMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/SystemTextClassifierMetadata;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextClassification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification; -HSPLandroid/view/textclassifier/TextClassification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextClassification$Request;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextClassification;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/TextClassificationConstants;-><init>()V -HSPLandroid/view/textclassifier/TextClassificationConstants;->getSystemTextClassifierApiTimeoutInSecond()J -HSPLandroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionAnimationEnabled()Z -HSPLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationContext; -HSPLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextClassificationContext$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/view/textclassifier/TextClassificationContext$Builder;->build()Landroid/view/textclassifier/TextClassificationContext; -HSPLandroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/view/textclassifier/TextClassificationContext;->getPackageName()Ljava/lang/String; -HSPLandroid/view/textclassifier/TextClassificationContext;->getWidgetType()Ljava/lang/String; -HSPLandroid/view/textclassifier/TextClassificationContext;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V -HSPLandroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V -HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V -HSPLandroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier; -HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants; -HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants; -HSPLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier(I)Landroid/view/textclassifier/TextClassifier; -HSPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier()Landroid/view/textclassifier/TextClassifier; -HSPLandroid/view/textclassifier/TextClassificationSession;-><init>(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassifier;)V -HSPLandroid/view/textclassifier/TextClassificationSession;->checkDestroyedAndRun(Ljava/util/function/Supplier;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextClassificationSession;->isDestroyed()Z -HSPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationSessionId; -HSPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextClassificationSessionId;-><init>(Ljava/lang/String;Landroid/os/IBinder;)V -HSPLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifier$EntityConfig; -HSPLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/TextClassifier$Utils;->checkMainThread()V -HSPLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifierEvent; -HSPLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textclassifier/TextClassifierEvent;->getEventContext()Landroid/view/textclassifier/TextClassificationContext; -HSPLandroid/view/textclassifier/TextClassifierEvent;->getParcelToken()I -HSPLandroid/view/textclassifier/TextClassifierEvent;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLjava/time/ZonedDateTime;Landroid/os/Bundle;)V -HSPLandroid/view/textclassifier/TextLinks$Request;->getText()Ljava/lang/CharSequence; -HSPLandroid/view/textclassifier/TextLinks$Request;->setSystemTextClassifierMetadata(Landroid/view/textclassifier/SystemTextClassifierMetadata;)V -HSPLandroid/view/textclassifier/TextLinks$Request;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/view/textclassifier/TextLinks;->getLinks()Ljava/util/Collection; -HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SentenceSuggestionsInfo; -HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->newArray(I)[Landroid/view/textservice/SentenceSuggestionsInfo; -HSPLandroid/view/textservice/SentenceSuggestionsInfo$1;->newArray(I)[Ljava/lang/Object; -HSPLandroid/view/textservice/SentenceSuggestionsInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerInfo; -HSPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textservice/SpellCheckerInfo;->getId()Ljava/lang/String; -HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype; -HSPLandroid/view/textservice/SpellCheckerInfo;->getSubtypeCount()I -HSPLandroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V -HSPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V -HSPLandroid/view/textservice/SpellCheckerSession;->close()V -HSPLandroid/view/textservice/SpellCheckerSession;->finalize()V -HSPLandroid/view/textservice/SpellCheckerSession;->getSentenceSuggestions([Landroid/view/textservice/TextInfo;I)V -HSPLandroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener; -HSPLandroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener; -HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype; -HSPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textservice/SpellCheckerSubtype;->getLocale()Ljava/lang/String; -HSPLandroid/view/textservice/SuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SuggestionsInfo; -HSPLandroid/view/textservice/SuggestionsInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/view/textservice/SuggestionsInfo;-><init>(Landroid/os/Parcel;)V -HSPLandroid/view/textservice/TextInfo;-><init>(Ljava/lang/CharSequence;IIII)V -HSPLandroid/view/textservice/TextServicesManager;->createInstance(Landroid/content/Context;)Landroid/view/textservice/TextServicesManager; -HSPLandroid/view/textservice/TextServicesManager;->finishSpellCheckerService(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V -HSPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype; -HSPLandroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z -HSPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession; -HSPLandroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/webkit/ConsoleMessage;->message()Ljava/lang/String; -HSPLandroid/webkit/CookieManager;-><init>()V -HSPLandroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager; -HSPLandroid/webkit/CookieSyncManager;->setGetInstanceIsAllowed()V -HSPLandroid/webkit/GeolocationPermissions;-><init>()V -HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo; -HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->isMultiProcessEnabled()Z -HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse; -HSPLandroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService; -HSPLandroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String; -HSPLandroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap; -HSPLandroid/webkit/URLUtil;->isFileUrl(Ljava/lang/String;)Z -HSPLandroid/webkit/URLUtil;->isHttpUrl(Ljava/lang/String;)Z -HSPLandroid/webkit/URLUtil;->isHttpsUrl(Ljava/lang/String;)Z -HSPLandroid/webkit/URLUtil;->isValidUrl(Ljava/lang/String;)Z -HSPLandroid/webkit/WebChromeClient;-><init>()V -HSPLandroid/webkit/WebChromeClient;->getVisitedHistory(Landroid/webkit/ValueCallback;)V -HSPLandroid/webkit/WebChromeClient;->onProgressChanged(Landroid/webkit/WebView;I)V -HSPLandroid/webkit/WebChromeClient;->onReceivedIcon(Landroid/webkit/WebView;Landroid/graphics/Bitmap;)V -HSPLandroid/webkit/WebChromeClient;->onReceivedTitle(Landroid/webkit/WebView;Ljava/lang/String;)V -HSPLandroid/webkit/WebSettings;-><init>()V -HSPLandroid/webkit/WebSettings;->getDefaultUserAgent(Landroid/content/Context;)Ljava/lang/String; -HSPLandroid/webkit/WebStorage;-><init>()V -HSPLandroid/webkit/WebView$HitTestResult;-><init>()V -HSPLandroid/webkit/WebView$PrivateAccess;->overScrollBy(IIIIIIIIZ)V -HSPLandroid/webkit/WebView$PrivateAccess;->setMeasuredDimension(II)V -HSPLandroid/webkit/WebView$PrivateAccess;->super_getScrollBarStyle()I -HSPLandroid/webkit/WebView$PrivateAccess;->super_scrollTo(II)V -HSPLandroid/webkit/WebView$PrivateAccess;->super_setFrame(IIII)Z -HSPLandroid/webkit/WebView$PrivateAccess;->super_setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;)V -HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILjava/util/Map;Z)V -HSPLandroid/webkit/WebView;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V -HSPLandroid/webkit/WebView;->checkThread()V -HSPLandroid/webkit/WebView;->computeHorizontalScrollOffset()I -HSPLandroid/webkit/WebView;->computeHorizontalScrollRange()I -HSPLandroid/webkit/WebView;->computeScroll()V -HSPLandroid/webkit/WebView;->computeVerticalScrollExtent()I -HSPLandroid/webkit/WebView;->computeVerticalScrollOffset()I -HSPLandroid/webkit/WebView;->computeVerticalScrollRange()I -HSPLandroid/webkit/WebView;->destroy()V -HSPLandroid/webkit/WebView;->dispatchDraw(Landroid/graphics/Canvas;)V -HSPLandroid/webkit/WebView;->ensureProviderCreated()V -HSPLandroid/webkit/WebView;->evaluateJavascript(Ljava/lang/String;Landroid/webkit/ValueCallback;)V -HSPLandroid/webkit/WebView;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo; -HSPLandroid/webkit/WebView;->getFavicon()Landroid/graphics/Bitmap; -HSPLandroid/webkit/WebView;->getHandler()Landroid/os/Handler; -HSPLandroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings; -HSPLandroid/webkit/WebView;->loadDataWithBaseURL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLandroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V -HSPLandroid/webkit/WebView;->onAttachedToWindow()V -HSPLandroid/webkit/WebView;->onDetachedFromWindowInternal()V -HSPLandroid/webkit/WebView;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/webkit/WebView;->onMeasure(II)V -HSPLandroid/webkit/WebView;->onOverScrolled(IIZZ)V -HSPLandroid/webkit/WebView;->onSizeChanged(IIII)V -HSPLandroid/webkit/WebView;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/webkit/WebView;->onVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/webkit/WebView;->onWindowFocusChanged(Z)V -HSPLandroid/webkit/WebView;->onWindowVisibilityChanged(I)V -HSPLandroid/webkit/WebView;->setBackgroundColor(I)V -HSPLandroid/webkit/WebView;->setDataDirectorySuffix(Ljava/lang/String;)V -HSPLandroid/webkit/WebView;->setFrame(IIII)Z -HSPLandroid/webkit/WebView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/webkit/WebView;->setOverScrollMode(I)V -HSPLandroid/webkit/WebView;->setWebChromeClient(Landroid/webkit/WebChromeClient;)V -HSPLandroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V -HSPLandroid/webkit/WebViewClient;-><init>()V -HSPLandroid/webkit/WebViewClient;->doUpdateVisitedHistory(Landroid/webkit/WebView;Ljava/lang/String;Z)V -HSPLandroid/webkit/WebViewClient;->onLoadResource(Landroid/webkit/WebView;Ljava/lang/String;)V -HSPLandroid/webkit/WebViewClient;->onPageCommitVisible(Landroid/webkit/WebView;Ljava/lang/String;)V -HSPLandroid/webkit/WebViewClient;->onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V -HSPLandroid/webkit/WebViewClient;->onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V -HSPLandroid/webkit/WebViewClient;->onScaleChanged(Landroid/webkit/WebView;FF)V -HSPLandroid/webkit/WebViewClient;->shouldInterceptRequest(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Landroid/webkit/WebResourceResponse; -HSPLandroid/webkit/WebViewClient;->shouldInterceptRequest(Landroid/webkit/WebView;Ljava/lang/String;)Landroid/webkit/WebResourceResponse; -HSPLandroid/webkit/WebViewDelegate;->addWebViewAssetPath(Landroid/content/Context;)V -HSPLandroid/webkit/WebViewDelegate;->drawWebViewFunctor(Landroid/graphics/Canvas;I)V -HSPLandroid/webkit/WebViewDelegate;->getApplication()Landroid/app/Application; -HSPLandroid/webkit/WebViewDelegate;->getDataDirectorySuffix()Ljava/lang/String; -HSPLandroid/webkit/WebViewDelegate;->getPackageId(Landroid/content/res/Resources;Ljava/lang/String;)I -HSPLandroid/webkit/WebViewDelegate;->getStartupTimestamps()Landroid/webkit/WebViewFactory$StartupTimestamps; -HSPLandroid/webkit/WebViewDelegate;->isMultiProcessEnabled()Z -HSPLandroid/webkit/WebViewFactory$StartupTimestamps;->getWebViewLoadStart()J -HSPLandroid/webkit/WebViewFactory;->getDataDirectorySuffix()Ljava/lang/String; -HSPLandroid/webkit/WebViewFactory;->getLoadedPackageInfo()Landroid/content/pm/PackageInfo; -HSPLandroid/webkit/WebViewFactory;->getProvider()Landroid/webkit/WebViewFactoryProvider; -HSPLandroid/webkit/WebViewFactory;->getProviderClass()Ljava/lang/Class; -HSPLandroid/webkit/WebViewFactory;->getStartupTimestamps()Landroid/webkit/WebViewFactory$StartupTimestamps; -HSPLandroid/webkit/WebViewFactory;->getUpdateService()Landroid/webkit/IWebViewUpdateService; -HSPLandroid/webkit/WebViewFactory;->getUpdateServiceUnchecked()Landroid/webkit/IWebViewUpdateService; -HSPLandroid/webkit/WebViewFactory;->getWebViewContextAndSetProvider()Landroid/content/Context; -HSPLandroid/webkit/WebViewFactory;->getWebViewLibrary(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String; -HSPLandroid/webkit/WebViewFactory;->isWebViewSupported()Z -HSPLandroid/webkit/WebViewFactory;->prepareWebViewInZygote()V -HSPLandroid/webkit/WebViewFactory;->setDataDirectorySuffix(Ljava/lang/String;)V -HSPLandroid/webkit/WebViewFactory;->signaturesEquals([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z -HSPLandroid/webkit/WebViewFactory;->verifyPackageInfo(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;)V -HSPLandroid/webkit/WebViewLibraryLoader;->loadNativeLibrary(Ljava/lang/ClassLoader;Ljava/lang/String;)I -HSPLandroid/webkit/WebViewLibraryLoader;->reserveAddressSpaceInZygote()V -HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/webkit/WebViewProviderResponse; -HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/widget/AbsListView$3;->run()V -HSPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V -HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>()V -HSPLandroid/widget/AbsListView$DeviceConfigChangeListener;-><init>(Landroid/widget/AbsListView$DeviceConfigChangeListener-IA;)V -HSPLandroid/widget/AbsListView$PerformClick;->run()V -HSPLandroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V -HSPLandroid/widget/AbsListView$RecycleBin;->clear()V -HSPLandroid/widget/AbsListView$RecycleBin;->clearTransientStateViews()V -HSPLandroid/widget/AbsListView$RecycleBin;->fillActiveViews(II)V -HSPLandroid/widget/AbsListView$RecycleBin;->getActiveView(I)Landroid/view/View; -HSPLandroid/widget/AbsListView$RecycleBin;->getScrapView(I)Landroid/view/View; -HSPLandroid/widget/AbsListView$RecycleBin;->getTransientStateView(I)Landroid/view/View; -HSPLandroid/widget/AbsListView$RecycleBin;->markChildrenDirty()V -HSPLandroid/widget/AbsListView$RecycleBin;->pruneScrapViews()V -HSPLandroid/widget/AbsListView$RecycleBin;->removeSkippedScrap()V -HSPLandroid/widget/AbsListView$RecycleBin;->retrieveFromScrap(Ljava/util/ArrayList;I)Landroid/view/View; -HSPLandroid/widget/AbsListView$RecycleBin;->scrapActiveViews()V -HSPLandroid/widget/AbsListView$RecycleBin;->setViewTypeCount(I)V -HSPLandroid/widget/AbsListView$RecycleBin;->shouldRecycleViewType(I)Z -HSPLandroid/widget/AbsListView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/AbsListView$WindowRunnnable;->rememberWindowAttachCount()V -HSPLandroid/widget/AbsListView$WindowRunnnable;->sameWindow()Z -HSPLandroid/widget/AbsListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/AbsListView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/widget/AbsListView;->clearChoices()V -HSPLandroid/widget/AbsListView;->computeVerticalScrollExtent()I -HSPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I -HSPLandroid/widget/AbsListView;->computeVerticalScrollRange()I -HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/AbsListView;->dispatchSetPressed(Z)V -HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/AbsListView;->drawableStateChanged()V -HSPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/AbsListView$LayoutParams; -HSPLandroid/widget/AbsListView;->getDrawableStateForSelector()[I -HSPLandroid/widget/AbsListView;->getVerticalScrollbarWidth()I -HSPLandroid/widget/AbsListView;->handleBoundsChange()V -HSPLandroid/widget/AbsListView;->handleDataChanged()V -HSPLandroid/widget/AbsListView;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/AbsListView;->hideSelector()V -HSPLandroid/widget/AbsListView;->initAbsListView()V -HSPLandroid/widget/AbsListView;->internalSetPadding(IIII)V -HSPLandroid/widget/AbsListView;->invokeOnItemScrollListener()V -HSPLandroid/widget/AbsListView;->isFastScrollEnabled()Z -HSPLandroid/widget/AbsListView;->isInFilterMode()Z -HSPLandroid/widget/AbsListView;->isVerticalScrollBarHidden()Z -HSPLandroid/widget/AbsListView;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/AbsListView;->obtainView(I[Z)Landroid/view/View; -HSPLandroid/widget/AbsListView;->onAttachedToWindow()V -HSPLandroid/widget/AbsListView;->onCancelPendingInputEvents()V -HSPLandroid/widget/AbsListView;->onDetachedFromWindow()V -HSPLandroid/widget/AbsListView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/AbsListView;->onLayout(ZIIII)V -HSPLandroid/widget/AbsListView;->onMeasure(II)V -HSPLandroid/widget/AbsListView;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/AbsListView;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/widget/AbsListView;->onTouchDown(Landroid/view/MotionEvent;)V -HSPLandroid/widget/AbsListView;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/AbsListView;->onTouchModeChanged(Z)V -HSPLandroid/widget/AbsListView;->onTouchMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)V -HSPLandroid/widget/AbsListView;->onTouchUp(Landroid/view/MotionEvent;)V -HSPLandroid/widget/AbsListView;->onWindowFocusChanged(Z)V -HSPLandroid/widget/AbsListView;->performItemClick(Landroid/view/View;IJ)Z -HSPLandroid/widget/AbsListView;->pointToPosition(II)I -HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;)V -HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;ZFF)V -HSPLandroid/widget/AbsListView;->reportScrollStateChange(I)V -HSPLandroid/widget/AbsListView;->requestLayout()V -HSPLandroid/widget/AbsListView;->resetList()V -HSPLandroid/widget/AbsListView;->setChoiceMode(I)V -HSPLandroid/widget/AbsListView;->setFastScrollAlwaysVisible(Z)V -HSPLandroid/widget/AbsListView;->setFastScrollEnabled(Z)V -HSPLandroid/widget/AbsListView;->setFastScrollStyle(I)V -HSPLandroid/widget/AbsListView;->setFrame(IIII)Z -HSPLandroid/widget/AbsListView;->setItemViewLayoutParams(Landroid/view/View;I)V -HSPLandroid/widget/AbsListView;->setOnScrollListener(Landroid/widget/AbsListView$OnScrollListener;)V -HSPLandroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V -HSPLandroid/widget/AbsListView;->setSelectionFromTop(II)V -HSPLandroid/widget/AbsListView;->setSelector(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/AbsListView;->setSmoothScrollbarEnabled(Z)V -HSPLandroid/widget/AbsListView;->setStackFromBottom(Z)V -HSPLandroid/widget/AbsListView;->setTextFilterEnabled(Z)V -HSPLandroid/widget/AbsListView;->setTranscriptMode(I)V -HSPLandroid/widget/AbsListView;->setVisibleRangeHint(II)V -HSPLandroid/widget/AbsListView;->setupDeviceConfigProperties()V -HSPLandroid/widget/AbsListView;->shouldShowSelector()Z -HSPLandroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z -HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z -HSPLandroid/widget/AbsListView;->updateScrollIndicators()V -HSPLandroid/widget/AbsListView;->updateSelectorState()V -HSPLandroid/widget/AbsListView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/AbsSeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/AbsSeekBar;->applyThumbTint()V -HSPLandroid/widget/AbsSeekBar;->applyTickMarkTint()V -HSPLandroid/widget/AbsSeekBar;->drawThumb(Landroid/graphics/Canvas;)V -HSPLandroid/widget/AbsSeekBar;->drawTickMarks(Landroid/graphics/Canvas;)V -HSPLandroid/widget/AbsSeekBar;->drawTrack(Landroid/graphics/Canvas;)V -HSPLandroid/widget/AbsSeekBar;->drawableStateChanged()V -HSPLandroid/widget/AbsSeekBar;->getThumbOffset()I -HSPLandroid/widget/AbsSeekBar;->growRectTo(Landroid/graphics/Rect;I)V -HSPLandroid/widget/AbsSeekBar;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/AbsSeekBar;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/AbsSeekBar;->onMeasure(II)V -HSPLandroid/widget/AbsSeekBar;->onResolveDrawables(I)V -HSPLandroid/widget/AbsSeekBar;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/AbsSeekBar;->onSizeChanged(IIII)V -HSPLandroid/widget/AbsSeekBar;->onVisualProgressChanged(IF)V -HSPLandroid/widget/AbsSeekBar;->setKeyProgressIncrement(I)V -HSPLandroid/widget/AbsSeekBar;->setMax(I)V -HSPLandroid/widget/AbsSeekBar;->setMin(I)V -HSPLandroid/widget/AbsSeekBar;->setThumb(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/AbsSeekBar;->setThumbOffset(I)V -HSPLandroid/widget/AbsSeekBar;->setThumbPos(ILandroid/graphics/drawable/Drawable;FI)V -HSPLandroid/widget/AbsSeekBar;->setTickMark(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/AbsSeekBar;->updateGestureExclusionRects()V -HSPLandroid/widget/AbsSeekBar;->updateThumbAndTrackPos(II)V -HSPLandroid/widget/AbsSeekBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/AbsSpinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/AbsSpinner;->getAdapter()Landroid/widget/Adapter; -HSPLandroid/widget/AbsSpinner;->getAdapter()Landroid/widget/SpinnerAdapter; -HSPLandroid/widget/AbsSpinner;->getAutofillType()I -HSPLandroid/widget/AbsSpinner;->requestLayout()V -HSPLandroid/widget/AbsoluteLayout;->onLayout(ZIIII)V -HSPLandroid/widget/AbsoluteLayout;->onMeasure(II)V -HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ActionMenuView;->onMeasure(II)V -HSPLandroid/widget/ActionMenuView;->peekMenu()Lcom/android/internal/view/menu/MenuBuilder; -HSPLandroid/widget/AdapterView$AdapterDataSetObserver;-><init>(Landroid/widget/AdapterView;)V -HSPLandroid/widget/AdapterView$AdapterDataSetObserver;->onChanged()V -HSPLandroid/widget/AdapterView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/AdapterView;->checkFocus()V -HSPLandroid/widget/AdapterView;->checkSelectionChanged()V -HSPLandroid/widget/AdapterView;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V -HSPLandroid/widget/AdapterView;->getCount()I -HSPLandroid/widget/AdapterView;->getItemIdAtPosition(I)J -HSPLandroid/widget/AdapterView;->getSelectedItemId()J -HSPLandroid/widget/AdapterView;->isInFilterMode()Z -HSPLandroid/widget/AdapterView;->onProvideStructure(Landroid/view/ViewStructure;II)V -HSPLandroid/widget/AdapterView;->rememberSyncState()V -HSPLandroid/widget/AdapterView;->setEmptyView(Landroid/view/View;)V -HSPLandroid/widget/AdapterView;->setFocusable(I)V -HSPLandroid/widget/AdapterView;->setFocusableInTouchMode(Z)V -HSPLandroid/widget/AdapterView;->setNextSelectedPositionInt(I)V -HSPLandroid/widget/AdapterView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V -HSPLandroid/widget/AdapterView;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V -HSPLandroid/widget/AdapterView;->setSelectedPositionInt(I)V -HSPLandroid/widget/AdapterView;->updateEmptyStatus(Z)V -HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;I)V -HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;)V -HSPLandroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;Z)V -HSPLandroid/widget/ArrayAdapter;->clear()V -HSPLandroid/widget/ArrayAdapter;->getCount()I -HSPLandroid/widget/ArrayAdapter;->getItem(I)Ljava/lang/Object; -HSPLandroid/widget/ArrayAdapter;->getItemId(I)J -HSPLandroid/widget/ArrayAdapter;->notifyDataSetChanged()V -HSPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V -HSPLandroid/widget/AutoCompleteTextView$MyWatcher;-><init>(Landroid/widget/AutoCompleteTextView;)V -HSPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V -HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILandroid/content/res/Resources$Theme;)V -HSPLandroid/widget/AutoCompleteTextView;->setCompletionHint(Ljava/lang/CharSequence;)V -HSPLandroid/widget/BaseAdapter;-><init>()V -HSPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z -HSPLandroid/widget/BaseAdapter;->getItemViewType(I)I -HSPLandroid/widget/BaseAdapter;->getViewTypeCount()I -HSPLandroid/widget/BaseAdapter;->hasStableIds()Z -HSPLandroid/widget/BaseAdapter;->isEmpty()Z -HSPLandroid/widget/BaseAdapter;->isEnabled(I)Z -HSPLandroid/widget/BaseAdapter;->notifyDataSetChanged()V -HSPLandroid/widget/BaseAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V -HSPLandroid/widget/BaseAdapter;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V -HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/Button;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/CompoundButton$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/CompoundButton;->applyButtonTint()V -HSPLandroid/widget/CompoundButton;->drawableHotspotChanged(FF)V -HSPLandroid/widget/CompoundButton;->drawableStateChanged()V -HSPLandroid/widget/CompoundButton;->getAutofillType()I -HSPLandroid/widget/CompoundButton;->getAutofillValue()Landroid/view/autofill/AutofillValue; -HSPLandroid/widget/CompoundButton;->getButtonDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/CompoundButton;->getButtonStateDescription()Ljava/lang/CharSequence; -HSPLandroid/widget/CompoundButton;->getCompoundPaddingLeft()I -HSPLandroid/widget/CompoundButton;->getCompoundPaddingRight()I -HSPLandroid/widget/CompoundButton;->getHorizontalOffsetForDrawables()I -HSPLandroid/widget/CompoundButton;->isChecked()Z -HSPLandroid/widget/CompoundButton;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/CompoundButton;->onCreateDrawableState(I)[I -HSPLandroid/widget/CompoundButton;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/CompoundButton;->onProvideStructure(Landroid/view/ViewStructure;II)V -HSPLandroid/widget/CompoundButton;->onResolveDrawables(I)V -HSPLandroid/widget/CompoundButton;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/widget/CompoundButton;->setButtonDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/CompoundButton;->setChecked(Z)V -HSPLandroid/widget/CompoundButton;->setDefaultStateDescription()V -HSPLandroid/widget/CompoundButton;->setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V -HSPLandroid/widget/CompoundButton;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/EdgeEffect;->calculateDistanceFromGlowValues(FF)F -HSPLandroid/widget/EdgeEffect;->dampStretchVector(F)F -HSPLandroid/widget/EdgeEffect;->draw(Landroid/graphics/Canvas;)Z+]Landroid/graphics/Matrix;Landroid/graphics/Matrix;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/widget/EdgeEffect;->finish()V -HSPLandroid/widget/EdgeEffect;->getCurrentEdgeEffectBehavior()I -HSPLandroid/widget/EdgeEffect;->getDistance()F -HSPLandroid/widget/EdgeEffect;->isAtEquilibrium()Z -HSPLandroid/widget/EdgeEffect;->isFinished()Z -HSPLandroid/widget/EdgeEffect;->onAbsorb(I)V -HSPLandroid/widget/EdgeEffect;->onPull(FF)V+]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/widget/EdgeEffect;->onPullDistance(FF)F -HSPLandroid/widget/EdgeEffect;->onRelease()V -HSPLandroid/widget/EdgeEffect;->setSize(II)V -HSPLandroid/widget/EdgeEffect;->update()V -HSPLandroid/widget/EdgeEffect;->updateSpring()V -HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/EditText;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/EditText;->getDefaultEditable()Z -HSPLandroid/widget/EditText;->getDefaultMovementMethod()Landroid/text/method/MovementMethod; -HSPLandroid/widget/EditText;->getFreezesText()Z -HSPLandroid/widget/EditText;->getText()Landroid/text/Editable; -HSPLandroid/widget/EditText;->getText()Ljava/lang/CharSequence; -HSPLandroid/widget/EditText;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V -HSPLandroid/widget/EditText;->setSelection(I)V -HSPLandroid/widget/EditText;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V -HSPLandroid/widget/EditText;->supportsAutoSizeText()Z -HSPLandroid/widget/Editor$$ExternalSyntheticLambda2;-><init>(Landroid/widget/Editor;)V -HSPLandroid/widget/Editor$2;->onDraw()V -HSPLandroid/widget/Editor$AccessibilitySmartActions;-><init>(Landroid/widget/TextView;)V -HSPLandroid/widget/Editor$AccessibilitySmartActions;-><init>(Landroid/widget/TextView;Landroid/widget/Editor$AccessibilitySmartActions-IA;)V -HSPLandroid/widget/Editor$Blink;->cancel()V -HSPLandroid/widget/Editor$Blink;->run()V -HSPLandroid/widget/Editor$Blink;->uncancel()V -HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V+]Landroid/view/inputmethod/InputMethodManager;Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/widget/Editor$EditOperation;-><init>(Landroid/widget/Editor;Ljava/lang/String;ILjava/lang/String;Z)V -HSPLandroid/widget/Editor$EditOperation;->commit()V -HSPLandroid/widget/Editor$EditOperation;->forceMergeWith(Landroid/widget/Editor$EditOperation;)V -HSPLandroid/widget/Editor$EditOperation;->mergeDeleteWith(Landroid/widget/Editor$EditOperation;)Z -HSPLandroid/widget/Editor$EditOperation;->mergeInsertWith(Landroid/widget/Editor$EditOperation;)Z -HSPLandroid/widget/Editor$EditOperation;->mergeReplaceWith(Landroid/widget/Editor$EditOperation;)Z -HSPLandroid/widget/Editor$EditOperation;->mergeWith(Landroid/widget/Editor$EditOperation;)Z -HSPLandroid/widget/Editor$EditOperation;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/Editor$HandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V -HSPLandroid/widget/Editor$HandleView;->getHorizontal(Landroid/text/Layout;I)F -HSPLandroid/widget/Editor$HandleView;->hide()V -HSPLandroid/widget/Editor$HandleView;->invalidate()V -HSPLandroid/widget/Editor$HandleView;->isAtRtlRun(Landroid/text/Layout;I)Z -HSPLandroid/widget/Editor$HandleView;->isDragging()Z -HSPLandroid/widget/Editor$HandleView;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/Editor$HandleView;->onSizeChanged(IIII)V -HSPLandroid/widget/Editor$HandleView;->positionAtCursorOffset(IZZ)V -HSPLandroid/widget/Editor$HandleView;->setDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/Editor$HandleView;->shouldShow()Z -HSPLandroid/widget/Editor$HandleView;->updateDrawable(Z)V -HSPLandroid/widget/Editor$HandleView;->updatePosition(IIZZ)V -HSPLandroid/widget/Editor$InsertionHandleView;-><init>(Landroid/widget/Editor;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/Editor$InsertionHandleView;->dismiss()V -HSPLandroid/widget/Editor$InsertionHandleView;->getCurrentCursorOffset()I -HSPLandroid/widget/Editor$InsertionHandleView;->getCursorHorizontalPosition(Landroid/text/Layout;I)I -HSPLandroid/widget/Editor$InsertionHandleView;->getCursorOffset()I -HSPLandroid/widget/Editor$InsertionHandleView;->getHorizontalGravity(Z)I -HSPLandroid/widget/Editor$InsertionHandleView;->getHotspotX(Landroid/graphics/drawable/Drawable;Z)I -HSPLandroid/widget/Editor$InsertionHandleView;->isShowing()Z -HSPLandroid/widget/Editor$InsertionHandleView;->onDetached()V -HSPLandroid/widget/Editor$InsertionHandleView;->onMeasure(II)V -HSPLandroid/widget/Editor$InsertionHandleView;->show()V -HSPLandroid/widget/Editor$InsertionHandleView;->updateDrawable(Z)V -HSPLandroid/widget/Editor$InsertionHandleView;->updateSelection(I)V -HSPLandroid/widget/Editor$InsertionPointCursorController;->getHandle()Landroid/widget/Editor$InsertionHandleView; -HSPLandroid/widget/Editor$InsertionPointCursorController;->hide()V -HSPLandroid/widget/Editor$InsertionPointCursorController;->invalidateHandle()V -HSPLandroid/widget/Editor$InsertionPointCursorController;->isActive()Z -HSPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified()Z -HSPLandroid/widget/Editor$InsertionPointCursorController;->onDetached()V -HSPLandroid/widget/Editor$InsertionPointCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V -HSPLandroid/widget/Editor$InsertionPointCursorController;->show()V -HSPLandroid/widget/Editor$PositionListener;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V -HSPLandroid/widget/Editor$PositionListener;->onPreDraw()Z+]Landroid/widget/Editor$TextViewPositionListener;Landroid/widget/Editor$CursorAnchorInfoNotifier;,Landroid/widget/Editor$InsertionHandleView; -HSPLandroid/widget/Editor$PositionListener;->onScrollChanged()V -HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V -HSPLandroid/widget/Editor$PositionListener;->updatePosition()V+]Landroid/widget/TextView;Landroid/widget/EditText; -HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V -HSPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I -HSPLandroid/widget/Editor$SelectionModifierCursorController;->hide()V -HSPLandroid/widget/Editor$SelectionModifierCursorController;->invalidateHandles()V -HSPLandroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModified()Z -HSPLandroid/widget/Editor$SelectionModifierCursorController;->isDragAcceleratorActive()Z -HSPLandroid/widget/Editor$SelectionModifierCursorController;->isSelectionStartDragged()Z -HSPLandroid/widget/Editor$SelectionModifierCursorController;->onDetached()V -HSPLandroid/widget/Editor$SelectionModifierCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V+]Landroid/widget/EditorTouchState;Landroid/widget/EditorTouchState;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/widget/Editor$SelectionModifierCursorController;Landroid/widget/Editor$SelectionModifierCursorController;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V -HSPLandroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V -HSPLandroid/widget/Editor$SelectionModifierCursorController;->updateSelection(Landroid/view/MotionEvent;)V -HSPLandroid/widget/Editor$SpanController;->hide()V -HSPLandroid/widget/Editor$SpanController;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/widget/Editor$SpanController;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V -HSPLandroid/widget/Editor$SpanController;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/widget/Editor$TextRenderNode;->needsRecord()Z+]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode; -HSPLandroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V -HSPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z -HSPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V -HSPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence; -HSPLandroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V -HSPLandroid/widget/Editor$UndoInputFilter;->recordEdit(Landroid/widget/Editor$EditOperation;I)V -HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Parcel;)V -HSPLandroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V -HSPLandroid/widget/Editor;->-$$Nest$fgetmTextView(Landroid/widget/Editor;)Landroid/widget/TextView; -HSPLandroid/widget/Editor;->-$$Nest$mgetInputMethodManager(Landroid/widget/Editor;)Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/widget/Editor;-><init>(Landroid/widget/TextView;)V -HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V -HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V -HSPLandroid/widget/Editor;->beforeSetText()V -HSPLandroid/widget/Editor;->beginBatchEdit()V -HSPLandroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I -HSPLandroid/widget/Editor;->createInputContentTypeIfNeeded()V -HSPLandroid/widget/Editor;->createInputMethodStateIfNeeded()V -HSPLandroid/widget/Editor;->discardTextDisplayLists()V -HSPLandroid/widget/Editor;->downgradeEasyCorrectionSpans()V -HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I+]Landroid/widget/Editor$TextRenderNode;Landroid/widget/Editor$TextRenderNode;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Landroid/text/Layout;Landroid/text/DynamicLayout;]Landroid/graphics/RenderNode;Landroid/graphics/RenderNode;]Landroid/graphics/RecordingCanvas;Landroid/graphics/RecordingCanvas; -HSPLandroid/widget/Editor;->endBatchEdit()V -HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V -HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V -HSPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z -HSPLandroid/widget/Editor;->finishBatchEdit(Landroid/widget/Editor$InputMethodState;)V -HSPLandroid/widget/Editor;->forgetUndoRedo()V -HSPLandroid/widget/Editor;->getAvailableDisplayListIndex([III)I -HSPLandroid/widget/Editor;->getDefaultOnReceiveContentListener()Landroid/widget/TextViewOnReceiveContentListener; -HSPLandroid/widget/Editor;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/widget/Editor;->getInsertionController()Landroid/widget/Editor$InsertionPointCursorController; -HSPLandroid/widget/Editor;->getLastTapPosition()I -HSPLandroid/widget/Editor;->getPositionListener()Landroid/widget/Editor$PositionListener; -HSPLandroid/widget/Editor;->getSelectionActionModeHelper()Landroid/widget/SelectionActionModeHelper; -HSPLandroid/widget/Editor;->getSelectionController()Landroid/widget/Editor$SelectionModifierCursorController; -HSPLandroid/widget/Editor;->getTextActionMode()Landroid/view/ActionMode; -HSPLandroid/widget/Editor;->getTextView()Landroid/widget/TextView; -HSPLandroid/widget/Editor;->hasInsertionController()Z -HSPLandroid/widget/Editor;->hasSelectionController()Z -HSPLandroid/widget/Editor;->hideCursorAndSpanControllers()V -HSPLandroid/widget/Editor;->hideInsertionPointCursorController()V -HSPLandroid/widget/Editor;->invalidateHandlesAndActionMode()V -HSPLandroid/widget/Editor;->invalidateTextDisplayList()V -HSPLandroid/widget/Editor;->invalidateTextDisplayList(Landroid/text/Layout;II)V -HSPLandroid/widget/Editor;->isCursorInsideEasyCorrectionSpan()Z -HSPLandroid/widget/Editor;->loadCursorDrawable()V -HSPLandroid/widget/Editor;->loadHandleDrawables(Z)V -HSPLandroid/widget/Editor;->makeBlink()V -HSPLandroid/widget/Editor;->maybeFireScheduledRestartInputForSetText()V -HSPLandroid/widget/Editor;->onAttachedToWindow()V -HSPLandroid/widget/Editor;->onDetachedFromWindow()V -HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Ljava/util/List;Ljava/util/List;Landroid/graphics/Path;Landroid/graphics/Paint;I)V -HSPLandroid/widget/Editor;->onFocusChanged(ZI)V -HSPLandroid/widget/Editor;->onLocaleChanged()V -HSPLandroid/widget/Editor;->onScreenStateChanged(I)V -HSPLandroid/widget/Editor;->onScrollChanged()V -HSPLandroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V+]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/EditorTouchState;Landroid/widget/EditorTouchState;]Landroid/widget/Editor$SelectionModifierCursorController;Landroid/widget/Editor$SelectionModifierCursorController;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/widget/Editor;->onTouchUpEvent(Landroid/view/MotionEvent;)V -HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V -HSPLandroid/widget/Editor;->prepareCursorControllers()V+]Landroid/view/View;Lcom/android/internal/policy/DecorView;]Landroid/widget/Editor;Landroid/widget/Editor; -HSPLandroid/widget/Editor;->refreshTextActionMode()V -HSPLandroid/widget/Editor;->reportExtractedText()Z -HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V -HSPLandroid/widget/Editor;->resumeBlink()V -HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel; -HSPLandroid/widget/Editor;->scheduleRestartInputForSetText()V -HSPLandroid/widget/Editor;->sendOnTextChanged(III)V -HSPLandroid/widget/Editor;->sendUpdateSelection()V -HSPLandroid/widget/Editor;->setFrame()V -HSPLandroid/widget/Editor;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V -HSPLandroid/widget/Editor;->shouldBlink()Z -HSPLandroid/widget/Editor;->shouldFilterOutTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/Editor;->shouldRenderCursor()Z -HSPLandroid/widget/Editor;->stopTextActionMode()V -HSPLandroid/widget/Editor;->unregisterOnBackInvokedCallback()V -HSPLandroid/widget/Editor;->updateCursorPosition()V -HSPLandroid/widget/Editor;->updateCursorPosition(IIF)V -HSPLandroid/widget/Editor;->updateFloatingToolbarVisibility(Landroid/view/MotionEvent;)V -HSPLandroid/widget/Editor;->updateSpellCheckSpans(IIZ)V -HSPLandroid/widget/EditorTouchState;->getLastDownX()F -HSPLandroid/widget/EditorTouchState;->getLastDownY()F -HSPLandroid/widget/EditorTouchState;->isMovedEnoughForDrag()Z -HSPLandroid/widget/EditorTouchState;->isMultiTap()Z -HSPLandroid/widget/EditorTouchState;->isMultiTapInSameArea()Z -HSPLandroid/widget/EditorTouchState;->update(Landroid/view/MotionEvent;Landroid/view/ViewConfiguration;)V+]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/widget/Filter;-><init>()V -HSPLandroid/widget/ForwardingListener;-><init>(Landroid/view/View;)V -HSPLandroid/widget/ForwardingListener;->onViewAttachedToWindow(Landroid/view/View;)V -HSPLandroid/widget/ForwardingListener;->onViewDetachedFromWindow(Landroid/view/View;)V -HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(II)V -HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(III)V -HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/FrameLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/widget/FrameLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/FrameLayout;->generateDefaultLayoutParams()Landroid/widget/FrameLayout$LayoutParams; -HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/FrameLayout$LayoutParams; -HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/FrameLayout;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/FrameLayout;->getPaddingBottomWithForeground()I+]Landroid/widget/FrameLayout;missing_types -HSPLandroid/widget/FrameLayout;->getPaddingLeftWithForeground()I+]Landroid/widget/FrameLayout;missing_types -HSPLandroid/widget/FrameLayout;->getPaddingRightWithForeground()I+]Landroid/widget/FrameLayout;missing_types -HSPLandroid/widget/FrameLayout;->getPaddingTopWithForeground()I+]Landroid/widget/FrameLayout;missing_types -HSPLandroid/widget/FrameLayout;->layoutChildren(IIIIZ)V+]Landroid/view/View;missing_types]Landroid/widget/FrameLayout;missing_types -HSPLandroid/widget/FrameLayout;->onLayout(ZIIII)V+]Landroid/widget/FrameLayout;missing_types -HSPLandroid/widget/FrameLayout;->onMeasure(II)V+]Landroid/widget/FrameLayout;missing_types]Landroid/view/View;missing_types]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/widget/FrameLayout;->setForegroundGravity(I)V -HSPLandroid/widget/FrameLayout;->setMeasureAllChildren(Z)V -HSPLandroid/widget/FrameLayout;->shouldDelayChildPressedState()Z -HSPLandroid/widget/GridLayout$7$1;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I -HSPLandroid/widget/GridLayout$7$1;->include(II)V -HSPLandroid/widget/GridLayout$7$1;->reset()V -HSPLandroid/widget/GridLayout$7$1;->size(Z)I -HSPLandroid/widget/GridLayout$7;->getAlignmentValue(Landroid/view/View;II)I -HSPLandroid/widget/GridLayout$7;->getGravityOffset(Landroid/view/View;I)I -HSPLandroid/widget/GridLayout$Alignment;->getSizeInCell(Landroid/view/View;II)I -HSPLandroid/widget/GridLayout$Assoc;->pack()Landroid/widget/GridLayout$PackedMap; -HSPLandroid/widget/GridLayout$Axis$1;-><init>(Landroid/widget/GridLayout$Axis;[Landroid/widget/GridLayout$Arc;)V -HSPLandroid/widget/GridLayout$Axis$1;->walk(I)V -HSPLandroid/widget/GridLayout$Axis;-><init>(Landroid/widget/GridLayout;Z)V -HSPLandroid/widget/GridLayout$Axis;->calculateMaxIndex()I -HSPLandroid/widget/GridLayout$Axis;->computeGroupBounds()V -HSPLandroid/widget/GridLayout$Axis;->computeHasWeights()Z -HSPLandroid/widget/GridLayout$Axis;->computeLinks(Landroid/widget/GridLayout$PackedMap;Z)V -HSPLandroid/widget/GridLayout$Axis;->computeLocations([I)V -HSPLandroid/widget/GridLayout$Axis;->createArcs()[Landroid/widget/GridLayout$Arc; -HSPLandroid/widget/GridLayout$Axis;->createGroupBounds()Landroid/widget/GridLayout$PackedMap; -HSPLandroid/widget/GridLayout$Axis;->createLinks(Z)Landroid/widget/GridLayout$PackedMap; -HSPLandroid/widget/GridLayout$Axis;->getGroupBounds()Landroid/widget/GridLayout$PackedMap; -HSPLandroid/widget/GridLayout$Axis;->getLocations()[I -HSPLandroid/widget/GridLayout$Axis;->getMeasure(I)I -HSPLandroid/widget/GridLayout$Axis;->groupArcsByFirstVertex([Landroid/widget/GridLayout$Arc;)[[Landroid/widget/GridLayout$Arc; -HSPLandroid/widget/GridLayout$Axis;->include(Ljava/util/List;Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;Z)V -HSPLandroid/widget/GridLayout$Axis;->layout(I)V -HSPLandroid/widget/GridLayout$Axis;->setCount(I)V -HSPLandroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[IZ)Z -HSPLandroid/widget/GridLayout$Bounds;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I -HSPLandroid/widget/GridLayout$Bounds;->include(II)V -HSPLandroid/widget/GridLayout$Bounds;->reset()V -HSPLandroid/widget/GridLayout$Bounds;->size(Z)I -HSPLandroid/widget/GridLayout$Interval;->equals(Ljava/lang/Object;)Z -HSPLandroid/widget/GridLayout$LayoutParams;->hashCode()I -HSPLandroid/widget/GridLayout$PackedMap;->compact([Ljava/lang/Object;[I)[Ljava/lang/Object; -HSPLandroid/widget/GridLayout$PackedMap;->createIndex([Ljava/lang/Object;)[I -HSPLandroid/widget/GridLayout$PackedMap;->getValue(I)Ljava/lang/Object; -HSPLandroid/widget/GridLayout$Spec;->hashCode()I -HSPLandroid/widget/GridLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/GridLayout;->computeLayoutParamsHashCode()I -HSPLandroid/widget/GridLayout;->consistencyCheck()V -HSPLandroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;Landroid/widget/GridLayout$LayoutParams;ZZ)I -HSPLandroid/widget/GridLayout;->getLayoutParams(Landroid/view/View;)Landroid/widget/GridLayout$LayoutParams; -HSPLandroid/widget/GridLayout;->getMargin(Landroid/view/View;ZZ)I -HSPLandroid/widget/GridLayout;->getMargin1(Landroid/view/View;ZZ)I -HSPLandroid/widget/GridLayout;->getMeasurement(Landroid/view/View;Z)I -HSPLandroid/widget/GridLayout;->measureChildrenWithMargins(IIZ)V -HSPLandroid/widget/GridLayout;->onLayout(ZIIII)V -HSPLandroid/widget/GridLayout;->onMeasure(II)V -HSPLandroid/widget/GridLayout;->requestLayout()V -HSPLandroid/widget/GridLayout;->setAlignmentMode(I)V -HSPLandroid/widget/GridLayout;->setColumnCount(I)V -HSPLandroid/widget/GridLayout;->setColumnOrderPreserved(Z)V -HSPLandroid/widget/GridLayout;->setOrientation(I)V -HSPLandroid/widget/GridLayout;->setRowCount(I)V -HSPLandroid/widget/GridLayout;->setRowOrderPreserved(Z)V -HSPLandroid/widget/GridLayout;->setUseDefaultMargins(Z)V -HSPLandroid/widget/GridLayout;->validateLayoutParams()V -HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/HorizontalScrollView$SavedState; -HSPLandroid/widget/HorizontalScrollView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;)V -HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;I)V -HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/HorizontalScrollView;->computeScroll()V -HSPLandroid/widget/HorizontalScrollView;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/HorizontalScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/HorizontalScrollView;->getScrollRange()I -HSPLandroid/widget/HorizontalScrollView;->inChild(II)Z -HSPLandroid/widget/HorizontalScrollView;->initScrollView()V -HSPLandroid/widget/HorizontalScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V -HSPLandroid/widget/HorizontalScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V -HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V -HSPLandroid/widget/HorizontalScrollView;->onRestoreInstanceState(Landroid/os/Parcelable;)V -HSPLandroid/widget/HorizontalScrollView;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/widget/HorizontalScrollView;->onSizeChanged(IIII)V -HSPLandroid/widget/HorizontalScrollView;->requestLayout()V -HSPLandroid/widget/HorizontalScrollView;->scrollTo(II)V -HSPLandroid/widget/HorizontalScrollView;->setFillViewport(Z)V -HSPLandroid/widget/HorizontalScrollView;->shouldDelayChildPressedState()Z -HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/ImageButton;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/ImageButton;->onSetAlpha(I)Z -HSPLandroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$ScaleType; -HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/widget/ImageView;->applyAlpha()V -HSPLandroid/widget/ImageView;->applyColorFilter()V -HSPLandroid/widget/ImageView;->applyImageTint()V -HSPLandroid/widget/ImageView;->applyXfermode()V -HSPLandroid/widget/ImageView;->clearColorFilter()V -HSPLandroid/widget/ImageView;->configureBounds()V -HSPLandroid/widget/ImageView;->drawableHotspotChanged(FF)V -HSPLandroid/widget/ImageView;->drawableStateChanged()V -HSPLandroid/widget/ImageView;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/ImageView;->getBaseline()I -HSPLandroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/ImageView;->getImageMatrix()Landroid/graphics/Matrix; -HSPLandroid/widget/ImageView;->getScaleType()Landroid/widget/ImageView$ScaleType; -HSPLandroid/widget/ImageView;->hasOverlappingRendering()Z -HSPLandroid/widget/ImageView;->initImageView()V -HSPLandroid/widget/ImageView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ImageView;->isFilledByImage()Z -HSPLandroid/widget/ImageView;->isOpaque()Z -HSPLandroid/widget/ImageView;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/ImageView;->onAttachedToWindow()V -HSPLandroid/widget/ImageView;->onCreateDrawableState(I)[I -HSPLandroid/widget/ImageView;->onDetachedFromWindow()V -HSPLandroid/widget/ImageView;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/ImageView;->onMeasure(II)V -HSPLandroid/widget/ImageView;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V -HSPLandroid/widget/ImageView;->resizeFromDrawable()V -HSPLandroid/widget/ImageView;->resolveAdjustedSize(III)I -HSPLandroid/widget/ImageView;->resolveUri()V -HSPLandroid/widget/ImageView;->scaleTypeToScaleToFit(Landroid/widget/ImageView$ScaleType;)Landroid/graphics/Matrix$ScaleToFit; -HSPLandroid/widget/ImageView;->setAdjustViewBounds(Z)V -HSPLandroid/widget/ImageView;->setAlpha(I)V -HSPLandroid/widget/ImageView;->setColorFilter(I)V -HSPLandroid/widget/ImageView;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V -HSPLandroid/widget/ImageView;->setColorFilter(Landroid/graphics/ColorFilter;)V -HSPLandroid/widget/ImageView;->setCropToPadding(Z)V -HSPLandroid/widget/ImageView;->setFrame(IIII)Z -HSPLandroid/widget/ImageView;->setImageAlpha(I)V -HSPLandroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V -HSPLandroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V+]Landroid/graphics/Matrix;Landroid/graphics/Matrix; -HSPLandroid/widget/ImageView;->setImageResource(I)V -HSPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V -HSPLandroid/widget/ImageView;->setImageTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/widget/ImageView;->setMaxHeight(I)V -HSPLandroid/widget/ImageView;->setMaxWidth(I)V -HSPLandroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V -HSPLandroid/widget/ImageView;->setSelected(Z)V -HSPLandroid/widget/ImageView;->setVisibility(I)V -HSPLandroid/widget/ImageView;->updateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ImageView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(II)V -HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V -HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; -HSPLandroid/widget/LinearLayout;->allViewsAreGoneBefore(I)Z -HSPLandroid/widget/LinearLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/widget/LinearLayout;->forceUniformHeight(II)V -HSPLandroid/widget/LinearLayout;->forceUniformWidth(II)V -HSPLandroid/widget/LinearLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/LinearLayout;->generateDefaultLayoutParams()Landroid/widget/LinearLayout$LayoutParams; -HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/LinearLayout$LayoutParams; -HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/LinearLayout$LayoutParams; -HSPLandroid/widget/LinearLayout;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/LinearLayout;->getBaseline()I -HSPLandroid/widget/LinearLayout;->getChildrenSkipCount(Landroid/view/View;I)I -HSPLandroid/widget/LinearLayout;->getDividerDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/LinearLayout;->getGravity()I -HSPLandroid/widget/LinearLayout;->getLocationOffset(Landroid/view/View;)I -HSPLandroid/widget/LinearLayout;->getNextLocationOffset(Landroid/view/View;)I -HSPLandroid/widget/LinearLayout;->getOrientation()I -HSPLandroid/widget/LinearLayout;->getVirtualChildAt(I)Landroid/view/View;+]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->getVirtualChildCount()I+]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->hasDividerBeforeChildAt(I)Z -HSPLandroid/widget/LinearLayout;->layoutHorizontal(IIII)V -HSPLandroid/widget/LinearLayout;->layoutVertical(IIII)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->measureChildBeforeLayout(Landroid/view/View;IIIII)V+]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->measureHorizontal(II)V+]Landroid/view/View;missing_types]Landroid/widget/LinearLayout;Landroid/widget/LinearLayout; -HSPLandroid/widget/LinearLayout;->measureVertical(II)V+]Landroid/view/View;megamorphic_types]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/LinearLayout;->onLayout(ZIIII)V+]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->onMeasure(II)V+]Landroid/widget/LinearLayout;missing_types -HSPLandroid/widget/LinearLayout;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/LinearLayout;->setBaselineAligned(Z)V -HSPLandroid/widget/LinearLayout;->setChildFrame(Landroid/view/View;IIII)V+]Landroid/view/View;missing_types -HSPLandroid/widget/LinearLayout;->setDividerDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/LinearLayout;->setGravity(I)V -HSPLandroid/widget/LinearLayout;->setOrientation(I)V -HSPLandroid/widget/LinearLayout;->shouldDelayChildPressedState()Z -HSPLandroid/widget/ListPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/ListPopupWindow;->isShowing()Z -HSPLandroid/widget/ListPopupWindow;->setAdapter(Landroid/widget/ListAdapter;)V -HSPLandroid/widget/ListPopupWindow;->setAnchorView(Landroid/view/View;)V -HSPLandroid/widget/ListPopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ListPopupWindow;->setHeight(I)V -HSPLandroid/widget/ListPopupWindow;->setListSelector(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ListPopupWindow;->setModal(Z)V -HSPLandroid/widget/ListPopupWindow;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V -HSPLandroid/widget/ListPopupWindow;->setPromptPosition(I)V -HSPLandroid/widget/ListPopupWindow;->setPromptView(Landroid/view/View;)V -HSPLandroid/widget/ListPopupWindow;->setSoftInputMode(I)V -HSPLandroid/widget/ListPopupWindow;->setWidth(I)V -HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/ListView;->adjustViewsUpOrDown()V -HSPLandroid/widget/ListView;->clearRecycledState(Ljava/util/ArrayList;)V -HSPLandroid/widget/ListView;->correctTooHigh(I)V -HSPLandroid/widget/ListView;->dispatchDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/ListView;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z -HSPLandroid/widget/ListView;->fillDown(II)Landroid/view/View; -HSPLandroid/widget/ListView;->fillFromTop(I)Landroid/view/View; -HSPLandroid/widget/ListView;->fillSpecific(II)Landroid/view/View; -HSPLandroid/widget/ListView;->fillUp(II)Landroid/view/View; -HSPLandroid/widget/ListView;->findMotionRow(I)I -HSPLandroid/widget/ListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View; -HSPLandroid/widget/ListView;->findViewTraversal(I)Landroid/view/View; -HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/Adapter; -HSPLandroid/widget/ListView;->getAdapter()Landroid/widget/ListAdapter; -HSPLandroid/widget/ListView;->getHeaderViewsCount()I -HSPLandroid/widget/ListView;->isOpaque()Z -HSPLandroid/widget/ListView;->layoutChildren()V -HSPLandroid/widget/ListView;->lookForSelectablePosition(IZ)I -HSPLandroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View; -HSPLandroid/widget/ListView;->measureHeightOfChildren(IIIII)I -HSPLandroid/widget/ListView;->measureScrapChild(Landroid/view/View;III)V -HSPLandroid/widget/ListView;->onDetachedFromWindow()V -HSPLandroid/widget/ListView;->onFinishInflate()V -HSPLandroid/widget/ListView;->onMeasure(II)V -HSPLandroid/widget/ListView;->onSizeChanged(IIII)V -HSPLandroid/widget/ListView;->recycleOnMeasure()Z -HSPLandroid/widget/ListView;->removeUnusedFixedViews(Ljava/util/List;)V -HSPLandroid/widget/ListView;->resetList()V -HSPLandroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V -HSPLandroid/widget/ListView;->setCacheColorHint(I)V -HSPLandroid/widget/ListView;->setDivider(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ListView;->setSelection(I)V -HSPLandroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V -HSPLandroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V+]Landroid/content/res/Resources;Landroid/content/res/Resources; -HSPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V -HSPLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z -HSPLandroid/widget/OverScroller$SplineOverScroller;->finish()V -HSPLandroid/widget/OverScroller$SplineOverScroller;->fling(IIIII)V -HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineDeceleration(I)D -HSPLandroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDistance(I)D -HSPLandroid/widget/OverScroller$SplineOverScroller;->onEdgeReached()V -HSPLandroid/widget/OverScroller$SplineOverScroller;->springback(III)Z -HSPLandroid/widget/OverScroller$SplineOverScroller;->startScroll(III)V -HSPLandroid/widget/OverScroller$SplineOverScroller;->startSpringback(III)V -HSPLandroid/widget/OverScroller$SplineOverScroller;->update()Z -HSPLandroid/widget/OverScroller$SplineOverScroller;->updateScroll(F)V -HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V -HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V -HSPLandroid/widget/OverScroller;->abortAnimation()V -HSPLandroid/widget/OverScroller;->computeScrollOffset()Z -HSPLandroid/widget/OverScroller;->fling(IIIIIIII)V -HSPLandroid/widget/OverScroller;->fling(IIIIIIIIII)V+]Landroid/widget/OverScroller;Landroid/widget/OverScroller;]Landroid/widget/OverScroller$SplineOverScroller;Landroid/widget/OverScroller$SplineOverScroller; -HSPLandroid/widget/OverScroller;->forceFinished(Z)V -HSPLandroid/widget/OverScroller;->getCurrVelocity()F -HSPLandroid/widget/OverScroller;->getCurrX()I -HSPLandroid/widget/OverScroller;->getCurrY()I -HSPLandroid/widget/OverScroller;->getFinalX()I -HSPLandroid/widget/OverScroller;->getFinalY()I -HSPLandroid/widget/OverScroller;->isFinished()Z -HSPLandroid/widget/OverScroller;->springBack(IIIIII)Z -HSPLandroid/widget/OverScroller;->startScroll(IIIII)V -HSPLandroid/widget/PopupWindow$PopupBackgroundView;->onCreateDrawableState(I)[I -HSPLandroid/widget/PopupWindow$PopupDecorView;->cancelTransitions()V -HSPLandroid/widget/PopupWindow$PopupDecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/PopupWindow$PopupDecorView;->onAttachedToWindow()V -HSPLandroid/widget/PopupWindow$PopupDecorView;->onDetachedFromWindow()V -HSPLandroid/widget/PopupWindow;->-$$Nest$munregisterBackCallback(Landroid/widget/PopupWindow;Landroid/window/OnBackInvokedDispatcher;)V -HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V -HSPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;IIZ)V -HSPLandroid/widget/PopupWindow;->attachToAnchor(Landroid/view/View;III)V -HSPLandroid/widget/PopupWindow;->computeFlags(I)I -HSPLandroid/widget/PopupWindow;->createBackgroundView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupBackgroundView; -HSPLandroid/widget/PopupWindow;->createDecorView(Landroid/view/View;)Landroid/widget/PopupWindow$PopupDecorView; -HSPLandroid/widget/PopupWindow;->createPopupLayoutParams(Landroid/os/IBinder;)Landroid/view/WindowManager$LayoutParams; -HSPLandroid/widget/PopupWindow;->detachFromAnchor()V -HSPLandroid/widget/PopupWindow;->dismiss()V -HSPLandroid/widget/PopupWindow;->findDropDownPosition(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;IIIIIZ)Z -HSPLandroid/widget/PopupWindow;->getAnchor()Landroid/view/View; -HSPLandroid/widget/PopupWindow;->getAppRootView(Landroid/view/View;)Landroid/view/View; -HSPLandroid/widget/PopupWindow;->getBackground()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/PopupWindow;->getContentView()Landroid/view/View; -HSPLandroid/widget/PopupWindow;->getDecorViewLayoutParams()Landroid/view/WindowManager$LayoutParams; -HSPLandroid/widget/PopupWindow;->getHeight()I -HSPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition; -HSPLandroid/widget/PopupWindow;->getWidth()I -HSPLandroid/widget/PopupWindow;->hasContentView()Z -HSPLandroid/widget/PopupWindow;->invokePopup(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/widget/PopupWindow;->isShowing()Z -HSPLandroid/widget/PopupWindow;->isSplitTouchEnabled()Z -HSPLandroid/widget/PopupWindow;->preparePopup(Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V -HSPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V -HSPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V -HSPLandroid/widget/PopupWindow;->setFocusable(Z)V -HSPLandroid/widget/PopupWindow;->setHeight(I)V -HSPLandroid/widget/PopupWindow;->setInputMethodMode(I)V -HSPLandroid/widget/PopupWindow;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V -HSPLandroid/widget/PopupWindow;->setOutsideTouchable(Z)V -HSPLandroid/widget/PopupWindow;->setSoftInputMode(I)V -HSPLandroid/widget/PopupWindow;->setTouchInterceptor(Landroid/view/View$OnTouchListener;)V -HSPLandroid/widget/PopupWindow;->setWidth(I)V -HSPLandroid/widget/PopupWindow;->setWindowLayoutType(I)V -HSPLandroid/widget/PopupWindow;->showAsDropDown(Landroid/view/View;III)V -HSPLandroid/widget/PopupWindow;->showAtLocation(Landroid/os/IBinder;III)V -HSPLandroid/widget/PopupWindow;->showAtLocation(Landroid/view/View;III)V -HSPLandroid/widget/PopupWindow;->tryFitHorizontal(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z -HSPLandroid/widget/PopupWindow;->tryFitVertical(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z -HSPLandroid/widget/PopupWindow;->unregisterBackCallback(Landroid/window/OnBackInvokedDispatcher;)V -HSPLandroid/widget/PopupWindow;->update(IIII)V -HSPLandroid/widget/PopupWindow;->update(IIIIZ)V -HSPLandroid/widget/PopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V -HSPLandroid/widget/PopupWindow;->updateAboveAnchor(Z)V -HSPLandroid/widget/ProgressBar$2;-><init>(Landroid/widget/ProgressBar;Ljava/lang/String;)V -HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/ProgressBar$SavedState; -HSPLandroid/widget/ProgressBar$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/ProgressBar;->applyIndeterminateTint()V -HSPLandroid/widget/ProgressBar;->applyPrimaryProgressTint()V -HSPLandroid/widget/ProgressBar;->applyProgressBackgroundTint()V -HSPLandroid/widget/ProgressBar;->applyProgressTints()V -HSPLandroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V -HSPLandroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V -HSPLandroid/widget/ProgressBar;->drawableHotspotChanged(FF)V -HSPLandroid/widget/ProgressBar;->drawableStateChanged()V -HSPLandroid/widget/ProgressBar;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/ProgressBar;->getCurrentDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/ProgressBar;->getIndeterminateDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/ProgressBar;->getMax()I -HSPLandroid/widget/ProgressBar;->getMin()I -HSPLandroid/widget/ProgressBar;->getProgress()I -HSPLandroid/widget/ProgressBar;->getProgressDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/ProgressBar;->initProgressBar()V -HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/AnimatedStateListDrawable;,Landroid/graphics/drawable/GradientDrawable;,Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/RippleDrawable; -HSPLandroid/widget/ProgressBar;->isIndeterminate()Z -HSPLandroid/widget/ProgressBar;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/ProgressBar;->onAttachedToWindow()V -HSPLandroid/widget/ProgressBar;->onDetachedFromWindow()V -HSPLandroid/widget/ProgressBar;->onDraw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/ProgressBar;->onMeasure(II)V -HSPLandroid/widget/ProgressBar;->onProgressRefresh(FZI)V -HSPLandroid/widget/ProgressBar;->onResolveDrawables(I)V -HSPLandroid/widget/ProgressBar;->onRestoreInstanceState(Landroid/os/Parcelable;)V -HSPLandroid/widget/ProgressBar;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/widget/ProgressBar;->onSizeChanged(IIII)V -HSPLandroid/widget/ProgressBar;->onVisibilityAggregated(Z)V -HSPLandroid/widget/ProgressBar;->onVisualProgressChanged(IF)V -HSPLandroid/widget/ProgressBar;->postInvalidate()V -HSPLandroid/widget/ProgressBar;->refreshProgress(IIZZ)V -HSPLandroid/widget/ProgressBar;->setIndeterminate(Z)V -HSPLandroid/widget/ProgressBar;->setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ProgressBar;->setInterpolator(Landroid/content/Context;I)V -HSPLandroid/widget/ProgressBar;->setInterpolator(Landroid/view/animation/Interpolator;)V -HSPLandroid/widget/ProgressBar;->setMax(I)V -HSPLandroid/widget/ProgressBar;->setMin(I)V -HSPLandroid/widget/ProgressBar;->setProgress(I)V -HSPLandroid/widget/ProgressBar;->setProgressDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ProgressBar;->setProgressInternal(IZZ)Z -HSPLandroid/widget/ProgressBar;->setSecondaryProgress(I)V -HSPLandroid/widget/ProgressBar;->setVisualProgress(IF)V -HSPLandroid/widget/ProgressBar;->startAnimation()V -HSPLandroid/widget/ProgressBar;->stopAnimation()V -HSPLandroid/widget/ProgressBar;->swapCurrentDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ProgressBar;->updateDrawableBounds(II)V -HSPLandroid/widget/ProgressBar;->updateDrawableState()V -HSPLandroid/widget/ProgressBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;-><init>()V -HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->acquire(Landroid/view/View;)Landroid/widget/RelativeLayout$DependencyGraph$Node; -HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->release()V -HSPLandroid/widget/RelativeLayout$DependencyGraph;-><init>()V -HSPLandroid/widget/RelativeLayout$DependencyGraph;->add(Landroid/view/View;)V -HSPLandroid/widget/RelativeLayout$DependencyGraph;->clear()V -HSPLandroid/widget/RelativeLayout$DependencyGraph;->findRoots([I)Ljava/util/ArrayDeque;+]Landroid/util/ArrayMap;Landroid/util/ArrayMap;]Ljava/util/ArrayDeque;Ljava/util/ArrayDeque;]Landroid/util/SparseArray;Landroid/util/SparseArray;]Ljava/util/ArrayList;Ljava/util/ArrayList; -HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmBottom(Landroid/widget/RelativeLayout$LayoutParams;)I -HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmLeft(Landroid/widget/RelativeLayout$LayoutParams;)I -HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmRight(Landroid/widget/RelativeLayout$LayoutParams;)I -HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fgetmTop(Landroid/widget/RelativeLayout$LayoutParams;)I -HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmBottom(Landroid/widget/RelativeLayout$LayoutParams;I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->-$$Nest$fputmTop(Landroid/widget/RelativeLayout$LayoutParams;I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V -HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V+]Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray; -HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->addRule(II)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules()[I -HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules(I)[I -HSPLandroid/widget/RelativeLayout$LayoutParams;->hasRelativeRules()Z -HSPLandroid/widget/RelativeLayout$LayoutParams;->removeRule(I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveLayoutDirection(I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveRules(I)V -HSPLandroid/widget/RelativeLayout$LayoutParams;->shouldResolveLayoutDirection(I)Z -HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/RelativeLayout;->applyHorizontalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;I[I)V -HSPLandroid/widget/RelativeLayout;->applyVerticalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;II)V+]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; -HSPLandroid/widget/RelativeLayout;->centerHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V -HSPLandroid/widget/RelativeLayout;->centerVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V -HSPLandroid/widget/RelativeLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/widget/RelativeLayout;->compareLayoutPosition(Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;)I -HSPLandroid/widget/RelativeLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams; -HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams; -HSPLandroid/widget/RelativeLayout;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/RelativeLayout;->getBaseline()I -HSPLandroid/widget/RelativeLayout;->getChildMeasureSpec(IIIIIIII)I -HSPLandroid/widget/RelativeLayout;->getRelatedView([II)Landroid/view/View; -HSPLandroid/widget/RelativeLayout;->getRelatedViewBaselineOffset([I)I -HSPLandroid/widget/RelativeLayout;->getRelatedViewParams([II)Landroid/widget/RelativeLayout$LayoutParams; -HSPLandroid/widget/RelativeLayout;->initFromAttributes(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/RelativeLayout;->measureChild(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V -HSPLandroid/widget/RelativeLayout;->measureChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V -HSPLandroid/widget/RelativeLayout;->onLayout(ZIIII)V -HSPLandroid/widget/RelativeLayout;->onMeasure(II)V+]Landroid/widget/RelativeLayout;Landroid/widget/RelativeLayout;]Landroid/view/View;Landroid/widget/TextView;]Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams; -HSPLandroid/widget/RelativeLayout;->positionAtEdge(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V -HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z -HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z -HSPLandroid/widget/RelativeLayout;->queryCompatibilityModes(Landroid/content/Context;)V -HSPLandroid/widget/RelativeLayout;->requestLayout()V -HSPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z -HSPLandroid/widget/RelativeLayout;->sortChildren()V+]Landroid/widget/RelativeLayout;Landroid/widget/RelativeLayout;]Landroid/widget/RelativeLayout$DependencyGraph;Landroid/widget/RelativeLayout$DependencyGraph; -HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/RemoteViews; -HSPLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/widget/RemoteViews$Action;-><init>()V -HSPLandroid/widget/RemoteViews$Action;-><init>(Landroid/widget/RemoteViews$Action-IA;)V -HSPLandroid/widget/RemoteViews$Action;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;-><init>(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLandroid/widget/RemoteViews$ApplicationInfoCache;-><init>()V -HSPLandroid/widget/RemoteViews$ApplicationInfoCache;->getOrPut(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/widget/RemoteViews$ApplicationInfoCache;->lambda$getOrPut$0(Landroid/content/pm/ApplicationInfo;Landroid/util/Pair;)Landroid/content/pm/ApplicationInfo; -HSPLandroid/widget/RemoteViews$ApplicationInfoCache;->put(Landroid/content/pm/ApplicationInfo;)V -HSPLandroid/widget/RemoteViews$BitmapCache;-><init>()V -HSPLandroid/widget/RemoteViews$BitmapCache;-><init>(Landroid/os/Parcel;)V -HSPLandroid/widget/RemoteViews$BitmapCache;->getBitmapForId(I)Landroid/graphics/Bitmap; -HSPLandroid/widget/RemoteViews$BitmapCache;->getBitmapId(Landroid/graphics/Bitmap;)I -HSPLandroid/widget/RemoteViews$BitmapCache;->writeBitmapsToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$BitmapReflectionAction;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V -HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->getActionTag()I -HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->setHierarchyRootData(Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$MethodKey;->equals(Ljava/lang/Object;)Z -HSPLandroid/widget/RemoteViews$MethodKey;->hashCode()I -HSPLandroid/widget/RemoteViews$MethodKey;->set(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)V -HSPLandroid/widget/RemoteViews$ReflectionAction;->getActionTag()I -HSPLandroid/widget/RemoteViews$ReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$RemoteResponse;-><init>()V -HSPLandroid/widget/RemoteViews$RemoteResponse;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/widget/RemoteViews$RemoteResponse;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getResources()Landroid/content/res/Resources; -HSPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getTheme()Landroid/content/res/Resources$Theme; -HSPLandroid/widget/RemoteViews$SetOnClickResponse;->getActionTag()I -HSPLandroid/widget/RemoteViews$SetOnClickResponse;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I -HSPLandroid/widget/RemoteViews$TextViewSizeAction;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews;->-$$Nest$smgetPackageUserKey(Landroid/content/pm/ApplicationInfo;)Landroid/util/Pair; -HSPLandroid/widget/RemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V -HSPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$HierarchyRootData;Landroid/content/pm/ApplicationInfo;I)V -HSPLandroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V -HSPLandroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V -HSPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View; -HSPLandroid/widget/RemoteViews;->configureAsChild(Landroid/widget/RemoteViews$HierarchyRootData;)V -HSPLandroid/widget/RemoteViews;->configureDescendantsAsChildren()V -HSPLandroid/widget/RemoteViews;->getActionFromParcel(Landroid/os/Parcel;I)Landroid/widget/RemoteViews$Action; -HSPLandroid/widget/RemoteViews;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo; -HSPLandroid/widget/RemoteViews;->getHierarchyRootData()Landroid/widget/RemoteViews$HierarchyRootData; -HSPLandroid/widget/RemoteViews;->getLayoutId()I -HSPLandroid/widget/RemoteViews;->getMethod(Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle; -HSPLandroid/widget/RemoteViews;->getPackage()Ljava/lang/String; -HSPLandroid/widget/RemoteViews;->getPackageUserKey(Landroid/content/pm/ApplicationInfo;)Landroid/util/Pair; -HSPLandroid/widget/RemoteViews;->getRemoteViewsToApply(Landroid/content/Context;)Landroid/widget/RemoteViews; -HSPLandroid/widget/RemoteViews;->hasFlags(I)Z -HSPLandroid/widget/RemoteViews;->hasLandscapeAndPortraitLayouts()Z -HSPLandroid/widget/RemoteViews;->hasSizedRemoteViews()Z -HSPLandroid/widget/RemoteViews;->readActionsFromParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews;->setBitmap(ILjava/lang/String;Landroid/graphics/Bitmap;)V -HSPLandroid/widget/RemoteViews;->setBoolean(ILjava/lang/String;Z)V -HSPLandroid/widget/RemoteViews;->setCharSequence(ILjava/lang/String;Ljava/lang/CharSequence;)V -HSPLandroid/widget/RemoteViews;->setContentDescription(ILjava/lang/CharSequence;)V -HSPLandroid/widget/RemoteViews;->setImageViewBitmap(ILandroid/graphics/Bitmap;)V -HSPLandroid/widget/RemoteViews;->setInt(ILjava/lang/String;I)V -HSPLandroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V -HSPLandroid/widget/RemoteViews;->setOnClickResponse(ILandroid/widget/RemoteViews$RemoteResponse;)V -HSPLandroid/widget/RemoteViews;->setTextColor(II)V -HSPLandroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V -HSPLandroid/widget/RemoteViews;->setViewPadding(IIIII)V -HSPLandroid/widget/RemoteViews;->setViewVisibility(II)V -HSPLandroid/widget/RemoteViews;->shouldUseStaticFilter()Z -HSPLandroid/widget/RemoteViews;->writeActionsToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RemoteViews;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/RtlSpacingHelper;->getEnd()I -HSPLandroid/widget/RtlSpacingHelper;->getStart()I -HSPLandroid/widget/RtlSpacingHelper;->setAbsolute(II)V -HSPLandroid/widget/RtlSpacingHelper;->setDirection(Z)V -HSPLandroid/widget/RtlSpacingHelper;->setRelative(II)V -HSPLandroid/widget/ScrollBarDrawable;-><init>()V -HSPLandroid/widget/ScrollBarDrawable;->draw(Landroid/graphics/Canvas;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/graphics/Rect;Landroid/graphics/Rect; -HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V -HSPLandroid/widget/ScrollBarDrawable;->getSize(Z)I+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/widget/ScrollBarDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable; -HSPLandroid/widget/ScrollBarDrawable;->isStateful()Z+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/widget/ScrollBarDrawable;->mutate()Landroid/widget/ScrollBarDrawable;+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/widget/ScrollBarDrawable;->onBoundsChange(Landroid/graphics/Rect;)V -HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z -HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/ScrollBarDrawable;Landroid/widget/ScrollBarDrawable;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V+]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/GradientDrawable; -HSPLandroid/widget/ScrollBarDrawable;->setAlwaysDrawVerticalTrack(Z)V -HSPLandroid/widget/ScrollBarDrawable;->setHorizontalThumbDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->setHorizontalTrackDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->setParameters(IIIZ)V -HSPLandroid/widget/ScrollBarDrawable;->setVerticalThumbDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollBarDrawable;->setVerticalTrackDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/ScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/ScrollView;->computeScroll()V -HSPLandroid/widget/ScrollView;->computeVerticalScrollOffset()I -HSPLandroid/widget/ScrollView;->computeVerticalScrollRange()I -HSPLandroid/widget/ScrollView;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/ScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/ScrollView;->initScrollView()V -HSPLandroid/widget/ScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V -HSPLandroid/widget/ScrollView;->onDetachedFromWindow()V -HSPLandroid/widget/ScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/ScrollView;->onLayout(ZIIII)V -HSPLandroid/widget/ScrollView;->onMeasure(II)V -HSPLandroid/widget/ScrollView;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/widget/ScrollView;->onSizeChanged(IIII)V -HSPLandroid/widget/ScrollView;->requestLayout()V -HSPLandroid/widget/ScrollView;->scrollTo(II)V -HSPLandroid/widget/ScrollView;->setFillViewport(Z)V -HSPLandroid/widget/ScrollView;->shouldDelayChildPressedState()Z -HSPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z -HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V -HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->getInterpolation(F)F -HSPLandroid/widget/Scroller$ViscousFluidInterpolator;->viscousFluid(F)F -HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V -HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V -HSPLandroid/widget/Scroller;->abortAnimation()V -HSPLandroid/widget/Scroller;->computeDeceleration(F)F -HSPLandroid/widget/Scroller;->computeScrollOffset()Z -HSPLandroid/widget/Scroller;->getCurrX()I -HSPLandroid/widget/Scroller;->getCurrY()I -HSPLandroid/widget/Scroller;->isFinished()Z -HSPLandroid/widget/Scroller;->startScroll(IIIII)V -HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/SeekBar;->onProgressRefresh(FZI)V -HSPLandroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V -HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->isSelectionStarted()Z -HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->onTextChanged(IILandroid/view/textclassifier/TextClassification;)V -HSPLandroid/widget/SelectionActionModeHelper$SelectionTracker;->resetSelection(ILandroid/widget/Editor;)Z -HSPLandroid/widget/SelectionActionModeHelper$TextClassificationHelper;->init(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V -HSPLandroid/widget/SelectionActionModeHelper;-><init>(Landroid/widget/Editor;)V -HSPLandroid/widget/SelectionActionModeHelper;->getText(Landroid/widget/TextView;)Ljava/lang/CharSequence; -HSPLandroid/widget/SelectionActionModeHelper;->getTextClassificationSettings()Landroid/view/textclassifier/TextClassificationConstants; -HSPLandroid/widget/SelectionActionModeHelper;->onTextChanged(II)V -HSPLandroid/widget/SelectionActionModeHelper;->sortSelectionIndices(II)[I -HSPLandroid/widget/SmartSelectSprite;-><init>(Landroid/content/Context;ILjava/lang/Runnable;)V -HSPLandroid/widget/Space;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/Space;->draw(Landroid/graphics/Canvas;)V -HSPLandroid/widget/Space;->getDefaultSize2(II)I -HSPLandroid/widget/Space;->onMeasure(II)V -HSPLandroid/widget/SpellChecker$1;->run()V -HSPLandroid/widget/SpellChecker$SpellParser;->isFinished()Z -HSPLandroid/widget/SpellChecker$SpellParser;->parse()V -HSPLandroid/widget/SpellChecker$SpellParser;->stop()V -HSPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V -HSPLandroid/widget/SpellChecker;->closeSession()V -HSPLandroid/widget/SpellChecker;->isSessionActive()Z -HSPLandroid/widget/SpellChecker;->nextSpellCheckSpanIndex()I -HSPLandroid/widget/SpellChecker;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V -HSPLandroid/widget/SpellChecker;->onGetSuggestionsInternal(Landroid/view/textservice/SuggestionsInfo;II)Landroid/text/style/SpellCheckSpan; -HSPLandroid/widget/SpellChecker;->onSpellCheckSpanRemoved(Landroid/text/style/SpellCheckSpan;)V -HSPLandroid/widget/SpellChecker;->resetSession()V -HSPLandroid/widget/SpellChecker;->setLocale(Ljava/util/Locale;)V -HSPLandroid/widget/SpellChecker;->spellCheck()V -HSPLandroid/widget/SpellChecker;->spellCheck(II)V -HSPLandroid/widget/SpellChecker;->spellCheck(IIZ)V -HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/Spinner;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IIILandroid/content/res/Resources$Theme;)V -HSPLandroid/widget/Spinner;->onDetachedFromWindow()V -HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/Switch;->drawableStateChanged()V -HSPLandroid/widget/Switch;->getButtonStateDescription()Ljava/lang/CharSequence; -HSPLandroid/widget/Switch;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/Switch;->onCreateDrawableState(I)[I -HSPLandroid/widget/Switch;->setChecked(Z)V -HSPLandroid/widget/Switch;->setSwitchTextAppearance(Landroid/content/Context;I)V -HSPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;)V -HSPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;I)V -HSPLandroid/widget/Switch;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/TextView$3;->run()V -HSPLandroid/widget/TextView$ChangeWatcher;-><init>(Landroid/widget/TextView;)V -HSPLandroid/widget/TextView$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V -HSPLandroid/widget/TextView$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/widget/TextView$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/widget/TextView$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V -HSPLandroid/widget/TextView$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V -HSPLandroid/widget/TextView$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/widget/TextView$Drawables;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/TextView$Drawables;->applyErrorDrawableIfNeeded(I)V -HSPLandroid/widget/TextView$Drawables;->hasMetadata()Z -HSPLandroid/widget/TextView$Drawables;->resolveWithLayoutDirection(I)Z -HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/TextView$SavedState; -HSPLandroid/widget/TextView$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/widget/TextView$SavedState;-><init>(Landroid/os/Parcel;)V -HSPLandroid/widget/TextView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>()V -HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>(Landroid/widget/TextView$TextAppearanceAttributes-IA;)V -HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;)V -HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V -HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V+]Landroid/graphics/Paint;Landroid/graphics/Paint;]Landroid/content/res/Resources$Theme;Landroid/content/res/Resources$Theme;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/view/ViewConfiguration;Landroid/view/ViewConfiguration;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types]Landroid/widget/TextView;missing_types -HSPLandroid/widget/TextView;->addSearchHighlightPaths()V -HSPLandroid/widget/TextView;->addTextChangedListener(Landroid/text/TextWatcher;)V -HSPLandroid/widget/TextView;->applyCompoundDrawableTint()V -HSPLandroid/widget/TextView;->applySingleLine(ZZZZ)V -HSPLandroid/widget/TextView;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V -HSPLandroid/widget/TextView;->assumeLayout()V -HSPLandroid/widget/TextView;->autoSizeText()V -HSPLandroid/widget/TextView;->beginBatchEdit()V -HSPLandroid/widget/TextView;->bringPointIntoView(I)Z -HSPLandroid/widget/TextView;->bringPointIntoView(IZ)Z -HSPLandroid/widget/TextView;->bringTextIntoView()Z -HSPLandroid/widget/TextView;->canMarquee()Z -HSPLandroid/widget/TextView;->cancelLongPress()V -HSPLandroid/widget/TextView;->checkForRelayout()V -HSPLandroid/widget/TextView;->checkForResize()V -HSPLandroid/widget/TextView;->cleanupAutoSizePresetSizes([I)[I -HSPLandroid/widget/TextView;->compressText(F)Z -HSPLandroid/widget/TextView;->computeHorizontalScrollRange()I -HSPLandroid/widget/TextView;->computeScroll()V -HSPLandroid/widget/TextView;->computeVerticalScrollExtent()I+]Landroid/widget/TextView;missing_types -HSPLandroid/widget/TextView;->computeVerticalScrollRange()I+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout; -HSPLandroid/widget/TextView;->convertToLocalHorizontalCoordinate(F)F -HSPLandroid/widget/TextView;->createEditorIfNeeded()V -HSPLandroid/widget/TextView;->didTouchFocusSelect()Z -HSPLandroid/widget/TextView;->doKeyDown(ILandroid/view/KeyEvent;Landroid/view/KeyEvent;)I -HSPLandroid/widget/TextView;->drawableHotspotChanged(FF)V -HSPLandroid/widget/TextView;->drawableStateChanged()V -HSPLandroid/widget/TextView;->endBatchEdit()V -HSPLandroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I -HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V -HSPLandroid/widget/TextView;->getAccessibilityClassName()Ljava/lang/CharSequence; -HSPLandroid/widget/TextView;->getAutoSizeStepGranularity()I -HSPLandroid/widget/TextView;->getAutofillHints()[Ljava/lang/String; -HSPLandroid/widget/TextView;->getAutofillType()I -HSPLandroid/widget/TextView;->getAutofillValue()Landroid/view/autofill/AutofillValue; -HSPLandroid/widget/TextView;->getBaseline()I -HSPLandroid/widget/TextView;->getBaselineOffset()I -HSPLandroid/widget/TextView;->getBottomVerticalOffset(Z)I -HSPLandroid/widget/TextView;->getBoxHeight(Landroid/text/Layout;)I+]Landroid/widget/TextView;Landroid/widget/EditText;,Landroid/widget/Button; -HSPLandroid/widget/TextView;->getBreakStrategy()I -HSPLandroid/widget/TextView;->getCompoundDrawablePadding()I -HSPLandroid/widget/TextView;->getCompoundDrawables()[Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/TextView;->getCompoundDrawablesRelative()[Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/TextView;->getCompoundPaddingBottom()I -HSPLandroid/widget/TextView;->getCompoundPaddingLeft()I -HSPLandroid/widget/TextView;->getCompoundPaddingRight()I -HSPLandroid/widget/TextView;->getCompoundPaddingTop()I -HSPLandroid/widget/TextView;->getCurrentTextColor()I -HSPLandroid/widget/TextView;->getDefaultEditable()Z -HSPLandroid/widget/TextView;->getDefaultMovementMethod()Landroid/text/method/MovementMethod; -HSPLandroid/widget/TextView;->getDesiredHeight()I -HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I+]Landroid/text/Layout;Landroid/text/BoringLayout;]Landroid/widget/TextView;Landroid/widget/TextView; -HSPLandroid/widget/TextView;->getEditableText()Landroid/text/Editable; -HSPLandroid/widget/TextView;->getEllipsize()Landroid/text/TextUtils$TruncateAt; -HSPLandroid/widget/TextView;->getError()Ljava/lang/CharSequence; -HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I+]Landroid/text/Layout;Landroid/text/StaticLayout;]Landroid/widget/TextView;Landroid/widget/TextView; -HSPLandroid/widget/TextView;->getExtendedPaddingTop()I+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/widget/TextView;Landroid/widget/TextView;,Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/Button; -HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter; -HSPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V -HSPLandroid/widget/TextView;->getFreezesText()Z -HSPLandroid/widget/TextView;->getGravity()I -HSPLandroid/widget/TextView;->getHint()Ljava/lang/CharSequence; -HSPLandroid/widget/TextView;->getHorizontalOffsetForDrawables()I -HSPLandroid/widget/TextView;->getHorizontallyScrolling()Z -HSPLandroid/widget/TextView;->getHyphenationFrequency()I -HSPLandroid/widget/TextView;->getIncludeFontPadding()Z -HSPLandroid/widget/TextView;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager; -HSPLandroid/widget/TextView;->getInputType()I -HSPLandroid/widget/TextView;->getInterestingRect(Landroid/graphics/Rect;I)V -HSPLandroid/widget/TextView;->getJustificationMode()I -HSPLandroid/widget/TextView;->getKeyListener()Landroid/text/method/KeyListener; -HSPLandroid/widget/TextView;->getLayout()Landroid/text/Layout; -HSPLandroid/widget/TextView;->getLayoutAlignment()Landroid/text/Layout$Alignment; -HSPLandroid/widget/TextView;->getLineAtCoordinate(F)I -HSPLandroid/widget/TextView;->getLineAtCoordinateUnclamped(F)I -HSPLandroid/widget/TextView;->getLineCount()I -HSPLandroid/widget/TextView;->getLineHeight()I -HSPLandroid/widget/TextView;->getLineSpacingExtra()F -HSPLandroid/widget/TextView;->getLineSpacingMultiplier()F -HSPLandroid/widget/TextView;->getMaxEms()I -HSPLandroid/widget/TextView;->getMaxLines()I -HSPLandroid/widget/TextView;->getMinEms()I -HSPLandroid/widget/TextView;->getMinWidth()I -HSPLandroid/widget/TextView;->getOffsetAtCoordinate(IF)I -HSPLandroid/widget/TextView;->getOffsetForPosition(FF)I -HSPLandroid/widget/TextView;->getPaint()Landroid/text/TextPaint; -HSPLandroid/widget/TextView;->getSelectionEnd()I -HSPLandroid/widget/TextView;->getSelectionEndTransformed()I -HSPLandroid/widget/TextView;->getSelectionStart()I+]Landroid/widget/TextView;missing_types -HSPLandroid/widget/TextView;->getSelectionStartTransformed()I -HSPLandroid/widget/TextView;->getServiceManagerForUser(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; -HSPLandroid/widget/TextView;->getSpellCheckerLocale()Ljava/util/Locale; -HSPLandroid/widget/TextView;->getText()Ljava/lang/CharSequence; -HSPLandroid/widget/TextView;->getTextColors()Landroid/content/res/ColorStateList; -HSPLandroid/widget/TextView;->getTextCursorDrawable()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; -HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale; -HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList; -HSPLandroid/widget/TextView;->getTextSelectHandle()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/TextView;->getTextSelectHandleLeft()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/TextView;->getTextSelectHandleRight()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/TextView;->getTextSize()F -HSPLandroid/widget/TextView;->getTotalPaddingBottom()I -HSPLandroid/widget/TextView;->getTotalPaddingLeft()I -HSPLandroid/widget/TextView;->getTotalPaddingRight()I -HSPLandroid/widget/TextView;->getTotalPaddingTop()I -HSPLandroid/widget/TextView;->getTransformationMethod()Landroid/text/method/TransformationMethod; -HSPLandroid/widget/TextView;->getTypeface()Landroid/graphics/Typeface; -HSPLandroid/widget/TextView;->getTypefaceStyle()I -HSPLandroid/widget/TextView;->getUpdatedHighlightPath()Landroid/graphics/Path; -HSPLandroid/widget/TextView;->getVerticalOffset(Z)I -HSPLandroid/widget/TextView;->handleBackInTextActionModeIfNeeded(Landroid/view/KeyEvent;)Z -HSPLandroid/widget/TextView;->handleTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/widget/TextView;->hasGesturePreviewHighlight()Z -HSPLandroid/widget/TextView;->hasOverlappingRendering()Z -HSPLandroid/widget/TextView;->hasPasswordTransformationMethod()Z -HSPLandroid/widget/TextView;->hasSelection()Z -HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V -HSPLandroid/widget/TextView;->invalidateCursor()V -HSPLandroid/widget/TextView;->invalidateCursorPath()V -HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V+]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/Button;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/AnimatedStateListDrawable;,Landroid/graphics/drawable/InsetDrawable;,Landroid/graphics/drawable/RippleDrawable;,Landroid/graphics/drawable/LayerDrawable;,Landroid/graphics/drawable/VectorDrawable; -HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V -HSPLandroid/widget/TextView;->isAnyPasswordInputType()Z -HSPLandroid/widget/TextView;->isAutoSizeEnabled()Z -HSPLandroid/widget/TextView;->isAutofillable()Z -HSPLandroid/widget/TextView;->isFallbackLineSpacingForStaticLayout()Z -HSPLandroid/widget/TextView;->isFromPrimePointer(Landroid/view/MotionEvent;Z)Z+]Landroid/view/MotionEvent;Landroid/view/MotionEvent; -HSPLandroid/widget/TextView;->isInBatchEditMode()Z -HSPLandroid/widget/TextView;->isInExtractedMode()Z -HSPLandroid/widget/TextView;->isInputMethodTarget()Z -HSPLandroid/widget/TextView;->isMarqueeFadeEnabled()Z -HSPLandroid/widget/TextView;->isMultilineInputType(I)Z -HSPLandroid/widget/TextView;->isPasswordInputType(I)Z -HSPLandroid/widget/TextView;->isPositionVisible(FF)Z+]Landroid/view/View;missing_types]Landroid/graphics/Matrix;Landroid/graphics/Matrix; -HSPLandroid/widget/TextView;->isShowingHint()Z -HSPLandroid/widget/TextView;->isSuggestionsEnabled()Z -HSPLandroid/widget/TextView;->isTextAutofillable()Z -HSPLandroid/widget/TextView;->isTextEditable()Z -HSPLandroid/widget/TextView;->isTextSelectable()Z -HSPLandroid/widget/TextView;->isVisibleToAccessibility()Z -HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V -HSPLandroid/widget/TextView;->length()I -HSPLandroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V+]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/TextView;,Landroid/widget/Button; -HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;+]Landroid/text/DynamicLayout$Builder;Landroid/text/DynamicLayout$Builder;]Landroid/text/BoringLayout;Landroid/text/BoringLayout;]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/TextView;]Ljava/lang/CharSequence;Ljava/lang/String;]Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$Builder; -HSPLandroid/widget/TextView;->maybeUpdateHighlightPaths()V -HSPLandroid/widget/TextView;->notifyContentCaptureTextChanged()V -HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V -HSPLandroid/widget/TextView;->nullLayouts()V -HSPLandroid/widget/TextView;->onAttachedToWindow()V -HSPLandroid/widget/TextView;->onBeginBatchEdit()V -HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z -HSPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I -HSPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection; -HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V -HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)V+]Landroid/text/Layout;Landroid/text/BoringLayout;,Landroid/text/StaticLayout;,Landroid/text/DynamicLayout;]Landroid/widget/TextView;missing_types]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/graphics/Canvas;Landroid/graphics/RecordingCanvas;]Landroid/widget/Editor;Landroid/widget/Editor;]Ljava/lang/CharSequence;Landroid/text/SpannableStringBuilder; -HSPLandroid/widget/TextView;->onEditorAction(I)V -HSPLandroid/widget/TextView;->onEndBatchEdit()V -HSPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V -HSPLandroid/widget/TextView;->onInputConnectionClosedInternal()V -HSPLandroid/widget/TextView;->onInputConnectionOpenedInternal(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Landroid/os/Handler;)V -HSPLandroid/widget/TextView;->onKeyDown(ILandroid/view/KeyEvent;)Z -HSPLandroid/widget/TextView;->onKeyPreIme(ILandroid/view/KeyEvent;)Z -HSPLandroid/widget/TextView;->onKeyUp(ILandroid/view/KeyEvent;)Z -HSPLandroid/widget/TextView;->onLayout(ZIIII)V -HSPLandroid/widget/TextView;->onLocaleChanged()V -HSPLandroid/widget/TextView;->onMeasure(II)V+]Landroid/text/Layout;Landroid/text/DynamicLayout;,Landroid/text/BoringLayout;,Landroid/text/StaticLayout;]Landroid/widget/TextView;Landroid/widget/CheckBox;,Landroid/widget/EditText;,Landroid/widget/TextView;,Landroid/widget/Button; -HSPLandroid/widget/TextView;->onPreDraw()Z -HSPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V -HSPLandroid/widget/TextView;->onResolveDrawables(I)V -HSPLandroid/widget/TextView;->onRestoreInstanceState(Landroid/os/Parcelable;)V -HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/TextView;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLandroid/widget/TextView;->onScreenStateChanged(I)V -HSPLandroid/widget/TextView;->onScrollChanged(IIII)V -HSPLandroid/widget/TextView;->onSelectionChanged(II)V -HSPLandroid/widget/TextView;->onTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/widget/TextView;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLandroid/widget/TextView;->onVisibilityAggregated(Z)V -HSPLandroid/widget/TextView;->onVisibilityChanged(Landroid/view/View;I)V -HSPLandroid/widget/TextView;->onWindowFocusChanged(Z)V -HSPLandroid/widget/TextView;->originalToTransformed(II)I -HSPLandroid/widget/TextView;->preloadFontCache()V -HSPLandroid/widget/TextView;->readTextAppearance(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/widget/TextView$TextAppearanceAttributes;Z)V+]Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;]Landroid/util/TypedValue;Landroid/util/TypedValue;]Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;]Landroid/content/Context;missing_types -HSPLandroid/widget/TextView;->registerForPreDraw()V -HSPLandroid/widget/TextView;->removeAdjacentSuggestionSpans(I)V -HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V -HSPLandroid/widget/TextView;->removeMisspelledSpans(Landroid/text/Spannable;)V -HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLandroid/widget/TextView;->removeTextChangedListener(Landroid/text/TextWatcher;)V -HSPLandroid/widget/TextView;->resetErrorChangedFlag()V -HSPLandroid/widget/TextView;->resetResolvedDrawables()V -HSPLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typeface;II)V -HSPLandroid/widget/TextView;->restartMarqueeIfNeeded()V -HSPLandroid/widget/TextView;->sendAccessibilityEventInternal(I)V -HSPLandroid/widget/TextView;->sendAfterTextChanged(Landroid/text/Editable;)V -HSPLandroid/widget/TextView;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V -HSPLandroid/widget/TextView;->setAllCaps(Z)V -HSPLandroid/widget/TextView;->setAutoSizeTextTypeUniformWithPresetSizes([II)V -HSPLandroid/widget/TextView;->setBreakStrategy(I)V -HSPLandroid/widget/TextView;->setCompoundDrawablePadding(I)V -HSPLandroid/widget/TextView;->setCompoundDrawableTintList(Landroid/content/res/ColorStateList;)V -HSPLandroid/widget/TextView;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/TextView;->setCompoundDrawablesRelative(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/TextView;->setCompoundDrawablesRelativeWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/TextView;->setCompoundDrawablesWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/TextView;->setCursorVisible(Z)V -HSPLandroid/widget/TextView;->setEditableFactory(Landroid/text/Editable$Factory;)V -HSPLandroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V -HSPLandroid/widget/TextView;->setEnabled(Z)V -HSPLandroid/widget/TextView;->setFilters(Landroid/text/Editable;[Landroid/text/InputFilter;)V -HSPLandroid/widget/TextView;->setFilters([Landroid/text/InputFilter;)V -HSPLandroid/widget/TextView;->setFontFeatureSettings(Ljava/lang/String;)V -HSPLandroid/widget/TextView;->setFrame(IIII)Z -HSPLandroid/widget/TextView;->setGravity(I)V -HSPLandroid/widget/TextView;->setHeight(I)V -HSPLandroid/widget/TextView;->setHighlightColor(I)V -HSPLandroid/widget/TextView;->setHint(I)V -HSPLandroid/widget/TextView;->setHint(Ljava/lang/CharSequence;)V -HSPLandroid/widget/TextView;->setHintInternal(Ljava/lang/CharSequence;)V -HSPLandroid/widget/TextView;->setHintTextColor(I)V -HSPLandroid/widget/TextView;->setHintTextColor(Landroid/content/res/ColorStateList;)V -HSPLandroid/widget/TextView;->setHorizontallyScrolling(Z)V -HSPLandroid/widget/TextView;->setImeConsumesInput(Z)V -HSPLandroid/widget/TextView;->setImeOptions(I)V -HSPLandroid/widget/TextView;->setIncludeFontPadding(Z)V -HSPLandroid/widget/TextView;->setInputType(I)V -HSPLandroid/widget/TextView;->setInputType(IZ)V -HSPLandroid/widget/TextView;->setInputTypeFromEditor()V -HSPLandroid/widget/TextView;->setInputTypeSingleLine(Z)V -HSPLandroid/widget/TextView;->setKeyListener(Landroid/text/method/KeyListener;)V -HSPLandroid/widget/TextView;->setKeyListenerOnly(Landroid/text/method/KeyListener;)V -HSPLandroid/widget/TextView;->setLetterSpacing(F)V -HSPLandroid/widget/TextView;->setLineHeight(I)V -HSPLandroid/widget/TextView;->setLineSpacing(FF)V -HSPLandroid/widget/TextView;->setLines(I)V -HSPLandroid/widget/TextView;->setLinkTextColor(Landroid/content/res/ColorStateList;)V -HSPLandroid/widget/TextView;->setMarqueeRepeatLimit(I)V -HSPLandroid/widget/TextView;->setMaxLines(I)V -HSPLandroid/widget/TextView;->setMaxWidth(I)V -HSPLandroid/widget/TextView;->setMinHeight(I)V -HSPLandroid/widget/TextView;->setMinLines(I)V -HSPLandroid/widget/TextView;->setMinWidth(I)V -HSPLandroid/widget/TextView;->setMovementMethod(Landroid/text/method/MovementMethod;)V -HSPLandroid/widget/TextView;->setOnEditorActionListener(Landroid/widget/TextView$OnEditorActionListener;)V -HSPLandroid/widget/TextView;->setPadding(IIII)V -HSPLandroid/widget/TextView;->setPaddingRelative(IIII)V -HSPLandroid/widget/TextView;->setPrivateImeOptions(Ljava/lang/String;)V -HSPLandroid/widget/TextView;->setRawInputType(I)V -HSPLandroid/widget/TextView;->setRawTextSize(FZ)V -HSPLandroid/widget/TextView;->setRelativeDrawablesIfNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/TextView;->setSelected(Z)V -HSPLandroid/widget/TextView;->setShadowLayer(FFFI)V -HSPLandroid/widget/TextView;->setSingleLine()V -HSPLandroid/widget/TextView;->setSingleLine(Z)V -HSPLandroid/widget/TextView;->setText(I)V -HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V -HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V -HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V+]Landroid/text/Editable$Factory;Landroid/text/Editable$Factory;]Landroid/text/method/MovementMethod;Landroid/text/method/ArrowKeyMovementMethod;,Landroid/text/method/ScrollingMovementMethod;]Landroid/text/method/TransformationMethod;Landroid/text/method/SingleLineTransformationMethod;]Landroid/widget/Editor;Landroid/widget/Editor;]Landroid/text/InputFilter;Landroid/text/InputFilter$LengthFilter;]Landroid/text/TextPaint;Landroid/text/TextPaint;]Landroid/text/Spanned;Landroid/text/SpannableString;]Landroid/text/Spannable$Factory;Landroid/text/Spannable$Factory;]Ljava/lang/CharSequence;Ljava/lang/String;,Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString;]Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager;]Landroid/text/Spannable;Landroid/text/SpannableStringBuilder;,Landroid/text/SpannableString; -HSPLandroid/widget/TextView;->setTextAppearance(I)V -HSPLandroid/widget/TextView;->setTextAppearance(Landroid/content/Context;I)V -HSPLandroid/widget/TextView;->setTextColor(I)V -HSPLandroid/widget/TextView;->setTextColor(Landroid/content/res/ColorStateList;)V -HSPLandroid/widget/TextView;->setTextInternal(Ljava/lang/CharSequence;)V -HSPLandroid/widget/TextView;->setTextIsSelectable(Z)V -HSPLandroid/widget/TextView;->setTextSize(F)V -HSPLandroid/widget/TextView;->setTextSize(IF)V -HSPLandroid/widget/TextView;->setTextSizeInternal(IFZ)V -HSPLandroid/widget/TextView;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V -HSPLandroid/widget/TextView;->setTransformationMethodInternal(Landroid/text/method/TransformationMethod;Z)V -HSPLandroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V -HSPLandroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;I)V -HSPLandroid/widget/TextView;->setTypefaceFromAttrs(Landroid/graphics/Typeface;Ljava/lang/String;III)V -HSPLandroid/widget/TextView;->setupAutoSizeText()Z -HSPLandroid/widget/TextView;->setupAutoSizeUniformPresetSizesConfiguration()Z -HSPLandroid/widget/TextView;->shouldAdvanceFocusOnEnter()Z -HSPLandroid/widget/TextView;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V -HSPLandroid/widget/TextView;->startMarquee()V -HSPLandroid/widget/TextView;->startStopMarquee(Z)V -HSPLandroid/widget/TextView;->stopMarquee()V -HSPLandroid/widget/TextView;->stopTextActionMode()V -HSPLandroid/widget/TextView;->suggestedSizeFitsInSpace(ILandroid/graphics/RectF;)Z -HSPLandroid/widget/TextView;->supportsAutoSizeText()Z -HSPLandroid/widget/TextView;->textCanBeSelected()Z -HSPLandroid/widget/TextView;->unregisterForPreDraw()V -HSPLandroid/widget/TextView;->updateAfterEdit()V -HSPLandroid/widget/TextView;->updateCursorVisibleInternal()V -HSPLandroid/widget/TextView;->updateTextColors()V -HSPLandroid/widget/TextView;->useDynamicLayout()Z -HSPLandroid/widget/TextView;->validateAndSetAutoSizeTextTypeUniformConfiguration(FFF)V -HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z -HSPLandroid/widget/TextView;->viewClicked(Landroid/view/inputmethod/InputMethodManager;)V -HSPLandroid/widget/TextView;->viewportToContentHorizontalOffset()I -HSPLandroid/widget/TextView;->viewportToContentVerticalOffset()I -HSPLandroid/widget/TextViewOnReceiveContentListener;-><init>()V -HSPLandroid/widget/TextViewOnReceiveContentListener;->clearInputConnectionInfo()V -HSPLandroid/widget/TextViewOnReceiveContentListener;->getFallbackMimeTypesForAutofill(Landroid/widget/TextView;)[Ljava/lang/String; -HSPLandroid/widget/TextViewOnReceiveContentListener;->isUsageOfImeCommitContentEnabled(Landroid/view/View;)Z -HSPLandroid/widget/TextViewOnReceiveContentListener;->setInputConnectionInfo(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V -HSPLandroid/widget/Toast$CallbackBinder;->getCallbacks()Ljava/util/List; -HSPLandroid/widget/Toast$CallbackBinder;->onToastHidden()V -HSPLandroid/widget/Toast$CallbackBinder;->onToastShown()V -HSPLandroid/widget/Toast$TN;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Binder;Ljava/util/List;Landroid/os/Looper;)V -HSPLandroid/widget/Toast;-><init>(Landroid/content/Context;Landroid/os/Looper;)V -HSPLandroid/widget/Toast;->makeText(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/CharSequence;I)Landroid/widget/Toast; -HSPLandroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; -HSPLandroid/widget/Toast;->show()V -HSPLandroid/widget/ToastPresenter;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;Landroid/app/INotificationManager;Ljava/lang/String;)V -HSPLandroid/widget/ToastPresenter;->adjustLayoutParams(Landroid/view/WindowManager$LayoutParams;Landroid/os/IBinder;IIIIFFZ)V -HSPLandroid/widget/ToastPresenter;->createLayoutParams()Landroid/view/WindowManager$LayoutParams; -HSPLandroid/widget/ToastPresenter;->hide(Landroid/app/ITransientNotificationCallback;)V -HSPLandroid/widget/ToastPresenter;->show(Landroid/view/View;Landroid/os/IBinder;Landroid/os/IBinder;IIIIFFLandroid/app/ITransientNotificationCallback;Z)V -HSPLandroid/widget/ToastPresenter;->trySendAccessibilityEvent(Landroid/view/View;Ljava/lang/String;)V -HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V -HSPLandroid/widget/Toolbar;->addSystemView(Landroid/view/View;Z)V -HSPLandroid/widget/Toolbar;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z -HSPLandroid/widget/Toolbar;->ensureNavButtonView()V -HSPLandroid/widget/Toolbar;->generateDefaultLayoutParams()Landroid/widget/Toolbar$LayoutParams; -HSPLandroid/widget/Toolbar;->getContentInsetEnd()I -HSPLandroid/widget/Toolbar;->getContentInsetStart()I -HSPLandroid/widget/Toolbar;->getCurrentContentInsetEnd()I -HSPLandroid/widget/Toolbar;->getCurrentContentInsetStart()I -HSPLandroid/widget/Toolbar;->getNavigationIcon()Landroid/graphics/drawable/Drawable; -HSPLandroid/widget/Toolbar;->measureChildCollapseMargins(Landroid/view/View;IIII[I)I -HSPLandroid/widget/Toolbar;->measureChildConstrained(Landroid/view/View;IIIII)V -HSPLandroid/widget/Toolbar;->onAttachedToWindow()V -HSPLandroid/widget/Toolbar;->onMeasure(II)V -HSPLandroid/widget/Toolbar;->onRtlPropertiesChanged(I)V -HSPLandroid/widget/Toolbar;->setNavigationContentDescription(Ljava/lang/CharSequence;)V -HSPLandroid/widget/Toolbar;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V -HSPLandroid/widget/Toolbar;->setNavigationOnClickListener(Landroid/view/View$OnClickListener;)V -HSPLandroid/widget/Toolbar;->setPopupTheme(I)V -HSPLandroid/widget/Toolbar;->setTitle(Ljava/lang/CharSequence;)V -HSPLandroid/widget/Toolbar;->shouldCollapse()Z -HSPLandroid/widget/ViewAnimator;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ViewAnimator;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/ViewAnimator;->initViewAnimator(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLandroid/widget/ViewAnimator;->setAnimateFirstView(Z)V -HSPLandroid/widget/ViewAnimator;->setDisplayedChild(I)V -HSPLandroid/widget/ViewAnimator;->showOnly(I)V -HSPLandroid/widget/ViewAnimator;->showOnly(IZ)V -HSPLandroid/widget/ViewSwitcher;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V -HSPLandroid/widget/inline/InlinePresentationSpec$1;-><init>()V -HSPLandroid/widget/inline/InlinePresentationSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/inline/InlinePresentationSpec; -HSPLandroid/widget/inline/InlinePresentationSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/widget/inline/InlinePresentationSpec;-><clinit>()V -HSPLandroid/widget/inline/InlinePresentationSpec;-><init>(Landroid/os/Parcel;)V -HSPLandroid/widget/inline/InlinePresentationSpec;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/window/BackProgressAnimator;-><init>()V+]Lcom/android/internal/dynamicanimation/animation/SpringAnimation;Lcom/android/internal/dynamicanimation/animation/SpringAnimation;]Lcom/android/internal/dynamicanimation/animation/SpringForce;Lcom/android/internal/dynamicanimation/animation/SpringForce; -HSPLandroid/window/ClientWindowFrames$1;-><init>()V -HSPLandroid/window/ClientWindowFrames$1;->createFromParcel(Landroid/os/Parcel;)Landroid/window/ClientWindowFrames; -HSPLandroid/window/ClientWindowFrames$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/window/ClientWindowFrames;-><clinit>()V -HSPLandroid/window/ClientWindowFrames;-><init>()V -HSPLandroid/window/ClientWindowFrames;-><init>(Landroid/os/Parcel;)V -HSPLandroid/window/ClientWindowFrames;->readFromParcel(Landroid/os/Parcel;)V -HSPLandroid/window/ConfigurationHelper;->freeTextLayoutCachesIfNeeded(I)V -HSPLandroid/window/ConfigurationHelper;->isDifferentDisplay(II)Z -HSPLandroid/window/ConfigurationHelper;->isDisplayRotationChanged(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z -HSPLandroid/window/ConfigurationHelper;->shouldUpdateResources(Landroid/os/IBinder;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/Configuration;ZLjava/lang/Boolean;)Z -HSPLandroid/window/ConfigurationHelper;->shouldUpdateWindowMetricsBounds(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Z -HSPLandroid/window/IOnBackInvokedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/window/IOnBackInvokedCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLandroid/window/IOnBackInvokedCallback$Stub;-><init>()V -HSPLandroid/window/IOnBackInvokedCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/window/IOnBackInvokedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/window/IOnBackInvokedCallback; -HSPLandroid/window/IOnBackInvokedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLandroid/window/IRemoteTransition$Stub;->asInterface(Landroid/os/IBinder;)Landroid/window/IRemoteTransition; -HSPLandroid/window/ISurfaceSyncGroup$Stub;-><init>()V -HSPLandroid/window/ISurfaceSyncGroup$Stub;->asBinder()Landroid/os/IBinder; -HSPLandroid/window/ITransactionReadyCallback$Stub;-><init>()V -HSPLandroid/window/ITrustedPresentationListener$Stub;-><init>()V -HSPLandroid/window/IWindowContainerToken$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLandroid/window/IWindowContainerToken$Stub;->asInterface(Landroid/os/IBinder;)Landroid/window/IWindowContainerToken; -HSPLandroid/window/ImeOnBackInvokedDispatcher$1;-><init>(Landroid/window/ImeOnBackInvokedDispatcher;Landroid/os/Handler;)V -HSPLandroid/window/ImeOnBackInvokedDispatcher$1;->onReceiveResult(ILandroid/os/Bundle;)V -HSPLandroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;->-$$Nest$mgetId(Landroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;)I -HSPLandroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;-><init>(Landroid/window/IOnBackInvokedCallback;II)V -HSPLandroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback;->getId()I -HSPLandroid/window/ImeOnBackInvokedDispatcher;->clear()V -HSPLandroid/window/ImeOnBackInvokedDispatcher;->switchRootView(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl;)V -HSPLandroid/window/ImeOnBackInvokedDispatcher;->unregisterReceivedCallback(ILandroid/window/OnBackInvokedDispatcher;)V -HSPLandroid/window/ImeOnBackInvokedDispatcher;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/window/OnBackInvokedCallbackInfo$1;-><init>()V -HSPLandroid/window/OnBackInvokedCallbackInfo;-><clinit>()V -HSPLandroid/window/OnBackInvokedCallbackInfo;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/window/ProxyOnBackInvokedDispatcher$$ExternalSyntheticLambda0;-><init>(Landroid/window/OnBackInvokedCallback;)V -HSPLandroid/window/ProxyOnBackInvokedDispatcher;->clearCallbacksOnDispatcher()V -HSPLandroid/window/ProxyOnBackInvokedDispatcher;->registerOnBackInvokedCallback(ILandroid/window/OnBackInvokedCallback;)V -HSPLandroid/window/ProxyOnBackInvokedDispatcher;->setActualDispatcher(Landroid/window/OnBackInvokedDispatcher;)V -HSPLandroid/window/ProxyOnBackInvokedDispatcher;->transferCallbacksToDispatcher()V -HSPLandroid/window/ProxyOnBackInvokedDispatcher;->unregisterOnBackInvokedCallback(Landroid/window/OnBackInvokedCallback;)V -HSPLandroid/window/SizeConfigurationBuckets$1;-><init>()V -HSPLandroid/window/SizeConfigurationBuckets;-><clinit>()V -HSPLandroid/window/SizeConfigurationBuckets;-><init>([Landroid/content/res/Configuration;)V -HSPLandroid/window/SizeConfigurationBuckets;->writeToParcel(Landroid/os/Parcel;I)V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda3;->accept(Ljava/lang/Object;)V -HSPLandroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda5;->accept(Ljava/lang/Object;)V -HSPLandroid/window/SurfaceSyncGroup$2;-><init>(Landroid/window/SurfaceSyncGroup;Z)V -HSPLandroid/window/SurfaceSyncGroup$2;->onTransactionReady(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl;->getSurfaceSyncGroup()Landroid/window/SurfaceSyncGroup; -HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmLock(Landroid/window/SurfaceSyncGroup;)Ljava/lang/Object; -HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmPendingSyncs(Landroid/window/SurfaceSyncGroup;)Landroid/util/ArraySet; -HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$fgetmTransaction(Landroid/window/SurfaceSyncGroup;)Landroid/view/SurfaceControl$Transaction; -HSPLandroid/window/SurfaceSyncGroup;->-$$Nest$mcheckIfSyncIsComplete(Landroid/window/SurfaceSyncGroup;)V -HSPLandroid/window/SurfaceSyncGroup;-><clinit>()V -HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/lang/String;)V -HSPLandroid/window/SurfaceSyncGroup;-><init>(Ljava/lang/String;Ljava/util/function/Consumer;)V -HSPLandroid/window/SurfaceSyncGroup;->add(Landroid/window/ISurfaceSyncGroup;ZLjava/lang/Runnable;)Z -HSPLandroid/window/SurfaceSyncGroup;->addLocalSync(Landroid/window/ISurfaceSyncGroup;Z)Z -HSPLandroid/window/SurfaceSyncGroup;->addSyncCompleteCallback(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V -HSPLandroid/window/SurfaceSyncGroup;->addTimeout()V -HSPLandroid/window/SurfaceSyncGroup;->checkIfSyncIsComplete()V -HSPLandroid/window/SurfaceSyncGroup;->createTransactionReadyCallback(Z)Landroid/window/ITransactionReadyCallback; -HSPLandroid/window/SurfaceSyncGroup;->getSurfaceSyncGroup(Landroid/window/ISurfaceSyncGroup;)Landroid/window/SurfaceSyncGroup; -HSPLandroid/window/SurfaceSyncGroup;->invokeSyncCompleteCallbacks()V -HSPLandroid/window/SurfaceSyncGroup;->isLocalBinder(Landroid/os/IBinder;)Z -HSPLandroid/window/SurfaceSyncGroup;->lambda$invokeSyncCompleteCallbacks$2(Landroid/util/Pair;)V -HSPLandroid/window/SurfaceSyncGroup;->lambda$new$0(Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/window/SurfaceSyncGroup;->lambda$new$1(Ljava/util/function/Consumer;Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/window/SurfaceSyncGroup;->lambda$setTransactionCallbackFromParent$5(Landroid/window/ITransactionReadyCallback;Ljava/util/function/Consumer;Landroid/view/SurfaceControl$Transaction;)V -HSPLandroid/window/SurfaceSyncGroup;->markSyncReady()V -HSPLandroid/window/SurfaceSyncGroup;->setTransactionCallbackFromParent(Landroid/window/ISurfaceSyncGroup;Landroid/window/ITransactionReadyCallback;)V -HSPLandroid/window/TaskAppearedInfo;-><init>(Landroid/app/ActivityManager$RunningTaskInfo;Landroid/view/SurfaceControl;)V -HSPLandroid/window/TaskSnapshot;->getAppearance()I -HSPLandroid/window/TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace; -HSPLandroid/window/TaskSnapshot;->getContentInsets()Landroid/graphics/Rect; -HSPLandroid/window/TaskSnapshot;->getHardwareBuffer()Landroid/hardware/HardwareBuffer; -HSPLandroid/window/TaskSnapshot;->getId()J -HSPLandroid/window/TaskSnapshot;->getOrientation()I -HSPLandroid/window/TaskSnapshot;->getRotation()I -HSPLandroid/window/TaskSnapshot;->getTaskSize()Landroid/graphics/Point; -HSPLandroid/window/TaskSnapshot;->getWindowingMode()I -HSPLandroid/window/TaskSnapshot;->isRealSnapshot()Z -HSPLandroid/window/TaskSnapshot;->isTranslucent()Z -HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel;)Landroid/window/WindowContainerToken; -HSPLandroid/window/WindowContainerToken$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLandroid/window/WindowContainerToken;-><init>(Landroid/os/Parcel;)V -HSPLandroid/window/WindowContainerToken;->asBinder()Landroid/os/IBinder; -HSPLandroid/window/WindowContext;-><init>(Landroid/content/Context;ILandroid/os/Bundle;)V -HSPLandroid/window/WindowContext;->attachToDisplayArea()V -HSPLandroid/window/WindowContext;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLandroid/window/WindowContext;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; -HSPLandroid/window/WindowContext;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V -HSPLandroid/window/WindowContextController;-><init>(Landroid/window/WindowTokenClient;)V -HSPLandroid/window/WindowContextController;->attachToDisplayArea(IILandroid/os/Bundle;)V -HSPLandroid/window/WindowMetricsController$$ExternalSyntheticLambda0;-><init>(Landroid/window/WindowMetricsController;Landroid/os/IBinder;Landroid/graphics/Rect;ZI)V -HSPLandroid/window/WindowMetricsController$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLandroid/window/WindowMetricsController;-><init>(Landroid/content/Context;)V -HSPLandroid/window/WindowMetricsController;->getWindowInsetsFromServerForDisplay(ILandroid/os/IBinder;Landroid/graphics/Rect;ZI)Landroid/view/WindowInsets; -HSPLandroid/window/WindowMetricsController;->getWindowMetricsInternal(Z)Landroid/view/WindowMetrics; -HSPLandroid/window/WindowMetricsController;->lambda$getWindowMetricsInternal$0(Landroid/os/IBinder;Landroid/graphics/Rect;ZI)Landroid/view/WindowInsets; -HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->-$$Nest$mgetContext(Landroid/window/WindowOnBackInvokedDispatcher$Checker;)Landroid/content/Context; -HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;-><init>(Landroid/content/Context;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->checkApplicationCallbackRegistration(ILandroid/window/OnBackInvokedCallback;)Z -HSPLandroid/window/WindowOnBackInvokedDispatcher$Checker;->getContext()Landroid/content/Context; -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;-><init>(Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0;->run()V -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda2;->run()V -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda3;->run()V -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$CallbackRef;-><init>(Landroid/window/OnBackInvokedCallback;Z)V -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;->getBackAnimationCallback()Landroid/window/OnBackAnimationCallback; -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;->onBackCancelled()V -HSPLandroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper;->onBackInvoked()V -HSPLandroid/window/WindowOnBackInvokedDispatcher;-><clinit>()V -HSPLandroid/window/WindowOnBackInvokedDispatcher;-><init>(Landroid/content/Context;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->attachToWindow(Landroid/view/IWindowSession;Landroid/view/IWindow;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->clear()V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->detachFromWindow()V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->getTopCallback()Landroid/window/OnBackInvokedCallback; -HSPLandroid/window/WindowOnBackInvokedDispatcher;->hasImeOnBackInvokedDispatcher()Z -HSPLandroid/window/WindowOnBackInvokedDispatcher;->isOnBackInvokedCallbackEnabled()Z -HSPLandroid/window/WindowOnBackInvokedDispatcher;->isOnBackInvokedCallbackEnabled(Landroid/content/Context;)Z -HSPLandroid/window/WindowOnBackInvokedDispatcher;->registerOnBackInvokedCallback(ILandroid/window/OnBackInvokedCallback;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->registerOnBackInvokedCallbackUnchecked(Landroid/window/OnBackInvokedCallback;I)V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->setTopOnBackInvokedCallback(Landroid/window/OnBackInvokedCallback;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->unregisterOnBackInvokedCallback(Landroid/window/OnBackInvokedCallback;)V -HSPLandroid/window/WindowOnBackInvokedDispatcher;->updateContext(Landroid/content/Context;)V -HSPLandroid/window/WindowOrganizer;-><init>()V -HSPLandroid/window/WindowTokenClient;-><clinit>()V -HSPLandroid/window/WindowTokenClient;-><init>()V -HSPLandroid/window/WindowTokenClient;->attachContext(Landroid/content/Context;)V -HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;I)V -HSPLandroid/window/WindowTokenClient;->onConfigurationChanged(Landroid/content/res/Configuration;IZ)V -HSPLcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;->getCountryCodeToRegionCodeMap()Ljava/util/Map; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->buildNationalNumberForParsing(Ljava/lang/String;Ljava/lang/StringBuilder;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->checkRegionForParsing(Ljava/lang/CharSequence;Ljava/lang/String;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->chooseFormattingPatternForNumber(Ljava/util/List;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->createInstance(Lcom/android/i18n/phonenumbers/MetadataLoader;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractCountryCode(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractPossibleNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatInOriginalFormat(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsn(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsnUsingPattern(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getCountryCodeForValidRegion(Ljava/lang/String;)I -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getInstance()Lcom/android/i18n/phonenumbers/PhoneNumberUtil; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegionOrCallingCode(ILjava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNationalSignificantNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberDescByType(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberTypeHelper(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;+]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumberFromRegionList(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/List;)Ljava/lang/String;+]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;]Ljava/util/List;Ljava/util/ArrayList;]Lcom/android/i18n/phonenumbers/PhoneNumberUtil;Lcom/android/i18n/phonenumbers/PhoneNumberUtil;]Ljava/util/Iterator;Ljava/util/ArrayList$Itr; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasFormattingPatternForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNumberMatchingDesc(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/internal/MatcherApi;Lcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;]Ljava/util/List;Ljava/util/ArrayList; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumberForRegion(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidRegionCode(Ljava/lang/String;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isViablePhoneNumber(Ljava/lang/CharSequence;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeAppendFormattedExtension(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeExtractCountryCode(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;ZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)I -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripExtension(Ljava/lang/StringBuilder;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripInternationalPrefixAndNormalize(Ljava/lang/StringBuilder;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripNationalPrefixAndCarrierCode(Ljava/lang/StringBuilder;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalize(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDiallableCharsOnly(Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigitsOnly(Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeHelper(Ljava/lang/CharSequence;Ljava/util/Map;Z)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseAndKeepRawInput(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseAndKeepRawInput(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseHelper(Ljava/lang/CharSequence;Ljava/lang/String;ZZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parsePrefixAsIdd(Ljava/util/regex/Pattern;Ljava/lang/StringBuilder;)Z -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->prefixNumberWithCountryCallingCode(ILcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->setInstance(Lcom/android/i18n/phonenumbers/PhoneNumberUtil;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->setItalianLeadingZerosForPhoneNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult; -HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;-><init>()V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getFormat()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getLeadingDigitsPattern(I)Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getLeadingDigitsPatternCount()I -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getNationalPrefixFormattingRule()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getPattern()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->readExternal(Ljava/io/ObjectInput;)V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setFormat(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setNationalPrefixFormattingRule(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setNationalPrefixOptionalWhenFormatting(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setPattern(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;-><init>()V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getCountryCode()I -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getFixedLine()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getGeneralDesc()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getInternationalPrefix()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getIntlNumberFormatList()Ljava/util/List; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getLeadingDigits()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getMobile()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixForParsing()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixTransformRule()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNumberFormatList()Ljava/util/List; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPager()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPersonalNumber()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPremiumRate()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSameMobileAndFixedLinePattern()Z -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSharedCost()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getTollFree()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getUan()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoicemail()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoip()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasLeadingDigits()Z -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->readExternal(Ljava/io/ObjectInput;)V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setCountryCode(I)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setFixedLine(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setGeneralDesc(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setId(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setInternationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setLeadingDigits(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMainCountryForCode(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMobile(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMobileNumberPortableRegion(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefixForParsing(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefixTransformRule(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNoInternationalDialling(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPager(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPersonalNumber(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPreferredExtnPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPremiumRate(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setSameMobileAndFixedLinePattern(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setSharedCost(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setTollFree(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setUan(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setVoicemail(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setVoip(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;-><init>()V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->getMetadataList()Ljava/util/List; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->readExternal(Ljava/io/ObjectInput;)V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;-><init>()V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getNationalNumberPattern()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getPossibleLengthList()Ljava/util/List; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getPossibleLengthLocalOnlyList()Ljava/util/List; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->readExternal(Ljava/io/ObjectInput;)V -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->setExampleNumber(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->setNationalNumberPattern(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;-><init>()V -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCode()I -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCodeSource()Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource; -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getNationalNumber()J -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getRawInput()Ljava/lang/String; -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasCountryCodeSource()Z -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasExtension()Z -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasRawInput()Z -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->isItalianLeadingZero()Z -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCode(I)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCodeSource(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNationalNumber(J)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setRawInput(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->match(Ljava/lang/CharSequence;Ljava/util/regex/Pattern;Z)Z+]Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;]Ljava/util/regex/Pattern;Ljava/util/regex/Pattern; -HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;]Lcom/android/i18n/phonenumbers/internal/RegexCache;Lcom/android/i18n/phonenumbers/internal/RegexCache; -HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z -HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLcom/android/i18n/phonenumbers/internal/RegexCache;-><init>(I)V -HSPLcom/android/i18n/phonenumbers/internal/RegexCache;->getPatternForRegex(Ljava/lang/String;)Ljava/util/regex/Pattern; -HSPLcom/android/i18n/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V -HSPLcom/android/i18n/system/ZygoteHooks;->handleCompatChangesBeforeBindingApplication()V -HSPLcom/android/i18n/system/ZygoteHooks;->onEndPreload()V -HSPLcom/android/i18n/timezone/WallTime;->checked32BitAdd(JI)I -HSPLcom/android/i18n/timezone/WallTime;->copyFieldsFromCalendar()V -HSPLcom/android/i18n/timezone/WallTime;->getGmtOffset()I -HSPLcom/android/i18n/timezone/WallTime;->getHour()I -HSPLcom/android/i18n/timezone/WallTime;->getIsDst()I -HSPLcom/android/i18n/timezone/WallTime;->getMinute()I -HSPLcom/android/i18n/timezone/WallTime;->getMonth()I -HSPLcom/android/i18n/timezone/WallTime;->getMonthDay()I -HSPLcom/android/i18n/timezone/WallTime;->getSecond()I -HSPLcom/android/i18n/timezone/WallTime;->getWeekDay()I -HSPLcom/android/i18n/timezone/WallTime;->getYear()I -HSPLcom/android/i18n/timezone/WallTime;->getYearDay()I -HSPLcom/android/i18n/timezone/WallTime;->localtime(ILcom/android/i18n/timezone/ZoneInfoData;)V -HSPLcom/android/i18n/timezone/WallTime;->setGmtOffset(I)V -HSPLcom/android/i18n/timezone/WallTime;->setHour(I)V -HSPLcom/android/i18n/timezone/WallTime;->setIsDst(I)V -HSPLcom/android/i18n/timezone/WallTime;->setMinute(I)V -HSPLcom/android/i18n/timezone/WallTime;->setMonth(I)V -HSPLcom/android/i18n/timezone/WallTime;->setMonthDay(I)V -HSPLcom/android/i18n/timezone/WallTime;->setSecond(I)V -HSPLcom/android/i18n/timezone/WallTime;->setWeekDay(I)V -HSPLcom/android/i18n/timezone/WallTime;->setYear(I)V -HSPLcom/android/i18n/timezone/WallTime;->setYearDay(I)V -HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;)V -HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;I)V -HSPLcom/android/i18n/timezone/ZoneInfoData;-><init>(Ljava/lang/String;[J[B[I[B)V -HSPLcom/android/i18n/timezone/ZoneInfoData;->checkTzifVersionAcceptable(Ljava/lang/String;B)V -HSPLcom/android/i18n/timezone/ZoneInfoData;->findOffsetIndexForTimeInMilliseconds(J)I -HSPLcom/android/i18n/timezone/ZoneInfoData;->findOffsetIndexForTimeInSeconds(J)I -HSPLcom/android/i18n/timezone/ZoneInfoData;->findTransitionIndex(J)I -HSPLcom/android/i18n/timezone/ZoneInfoData;->getID()Ljava/lang/String; -HSPLcom/android/i18n/timezone/ZoneInfoData;->getLatestDstSavingsMillis(J)Ljava/lang/Integer; -HSPLcom/android/i18n/timezone/ZoneInfoData;->getOffset(J)I -HSPLcom/android/i18n/timezone/ZoneInfoData;->getOffsetsByUtcTime(J[I)I+]Lcom/android/i18n/timezone/ZoneInfoData;Lcom/android/i18n/timezone/ZoneInfoData; -HSPLcom/android/i18n/timezone/ZoneInfoData;->getRawOffset()I -HSPLcom/android/i18n/timezone/ZoneInfoData;->getTransitions()[J -HSPLcom/android/i18n/timezone/ZoneInfoData;->hashCode()I -HSPLcom/android/i18n/timezone/ZoneInfoData;->isInDaylightTime(J)Z -HSPLcom/android/i18n/timezone/ZoneInfoData;->read64BitData(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)Lcom/android/i18n/timezone/ZoneInfoData; -HSPLcom/android/i18n/timezone/ZoneInfoData;->readTimeZone(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)Lcom/android/i18n/timezone/ZoneInfoData; -HSPLcom/android/i18n/timezone/ZoneInfoData;->roundDownMillisToSeconds(J)J -HSPLcom/android/i18n/timezone/ZoneInfoData;->roundUpMillisToSeconds(J)J -HSPLcom/android/i18n/timezone/ZoneInfoData;->skipOver32BitData(Ljava/lang/String;Lcom/android/i18n/timezone/internal/BufferIterator;)V -HSPLcom/android/i18n/timezone/ZoneInfoDb$1;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/i18n/timezone/ZoneInfoDb$1;->create(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData; -HSPLcom/android/i18n/timezone/ZoneInfoDb;->checkNotClosed()V -HSPLcom/android/i18n/timezone/ZoneInfoDb;->close()V -HSPLcom/android/i18n/timezone/ZoneInfoDb;->finalize()V -HSPLcom/android/i18n/timezone/ZoneInfoDb;->getAvailableIDs()[Ljava/lang/String; -HSPLcom/android/i18n/timezone/ZoneInfoDb;->getBufferIterator(Ljava/lang/String;)Lcom/android/i18n/timezone/internal/BufferIterator; -HSPLcom/android/i18n/timezone/ZoneInfoDb;->getInstance()Lcom/android/i18n/timezone/ZoneInfoDb; -HSPLcom/android/i18n/timezone/ZoneInfoDb;->makeZoneInfoData(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData; -HSPLcom/android/i18n/timezone/ZoneInfoDb;->makeZoneInfoDataUncached(Ljava/lang/String;)Lcom/android/i18n/timezone/ZoneInfoData; -HSPLcom/android/i18n/timezone/internal/BasicLruCache$CacheMap;->removeEldestEntry(Ljava/util/Map$Entry;)Z -HSPLcom/android/i18n/timezone/internal/BasicLruCache;->evictAll()V -HSPLcom/android/i18n/timezone/internal/BasicLruCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/i18n/timezone/internal/BufferIterator;-><init>()V -HSPLcom/android/i18n/timezone/internal/Memory;->peekInt(JZ)I -HSPLcom/android/i18n/timezone/internal/MemoryMappedFile;->bigEndianIterator()Lcom/android/i18n/timezone/internal/BufferIterator; -HSPLcom/android/i18n/timezone/internal/MemoryMappedFile;->checkNotClosed()V -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;-><init>(Lcom/android/i18n/timezone/internal/MemoryMappedFile;JIZ)V -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->checkArrayBounds(III)V -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->checkReadBounds(III)V -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readByte()B -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readByteArray([BII)V -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readInt()I -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->readLongArray([JII)V -HSPLcom/android/i18n/timezone/internal/NioBufferIterator;->skip(I)V -HSPLcom/android/icu/charset/CharsetDecoderICU;-><init>(Ljava/nio/charset/Charset;FJ)V -HSPLcom/android/icu/charset/CharsetDecoderICU;->decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; -HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/ByteBuffer;)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; -HSPLcom/android/icu/charset/CharsetDecoderICU;->getArray(Ljava/nio/CharBuffer;)I+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; -HSPLcom/android/icu/charset/CharsetDecoderICU;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;+]Lcom/android/icu/charset/CharsetDecoderICU;Lcom/android/icu/charset/CharsetDecoderICU; -HSPLcom/android/icu/charset/CharsetDecoderICU;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V -HSPLcom/android/icu/charset/CharsetDecoderICU;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V -HSPLcom/android/icu/charset/CharsetDecoderICU;->implReplaceWith(Ljava/lang/String;)V -HSPLcom/android/icu/charset/CharsetDecoderICU;->implReset()V -HSPLcom/android/icu/charset/CharsetDecoderICU;->newInstance(Ljava/nio/charset/Charset;Ljava/lang/String;)Lcom/android/icu/charset/CharsetDecoderICU; -HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/ByteBuffer;)V -HSPLcom/android/icu/charset/CharsetDecoderICU;->setPosition(Ljava/nio/CharBuffer;)V -HSPLcom/android/icu/charset/CharsetDecoderICU;->updateCallback()V -HSPLcom/android/icu/charset/CharsetEncoderICU;-><init>(Ljava/nio/charset/Charset;FF[BJ)V -HSPLcom/android/icu/charset/CharsetEncoderICU;->encodeLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; -HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/ByteBuffer;)I+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; -HSPLcom/android/icu/charset/CharsetEncoderICU;->getArray(Ljava/nio/CharBuffer;)I+]Ljava/nio/CharBuffer;Ljava/nio/HeapCharBuffer; -HSPLcom/android/icu/charset/CharsetEncoderICU;->implFlush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; -HSPLcom/android/icu/charset/CharsetEncoderICU;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V -HSPLcom/android/icu/charset/CharsetEncoderICU;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V -HSPLcom/android/icu/charset/CharsetEncoderICU;->implReset()V -HSPLcom/android/icu/charset/CharsetEncoderICU;->makeReplacement(Ljava/lang/String;J)[B -HSPLcom/android/icu/charset/CharsetEncoderICU;->newInstance(Ljava/nio/charset/Charset;Ljava/lang/String;)Lcom/android/icu/charset/CharsetEncoderICU; -HSPLcom/android/icu/charset/CharsetEncoderICU;->setPosition(Ljava/nio/ByteBuffer;)V+]Ljava/nio/ByteBuffer;Ljava/nio/HeapByteBuffer; -HSPLcom/android/icu/charset/CharsetEncoderICU;->setPosition(Ljava/nio/CharBuffer;)V -HSPLcom/android/icu/charset/CharsetEncoderICU;->updateCallback()V -HSPLcom/android/icu/charset/CharsetFactory;->create(Ljava/lang/String;)Ljava/nio/charset/Charset; -HSPLcom/android/icu/charset/CharsetICU;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V -HSPLcom/android/icu/charset/CharsetICU;->newDecoder()Ljava/nio/charset/CharsetDecoder; -HSPLcom/android/icu/charset/CharsetICU;->newEncoder()Ljava/nio/charset/CharsetEncoder; -HSPLcom/android/icu/charset/NativeConverter;->U_FAILURE(I)Z -HSPLcom/android/icu/charset/NativeConverter;->registerConverter(Ljava/lang/Object;J)V -HSPLcom/android/icu/charset/NativeConverter;->setCallbackDecode(JLjava/nio/charset/CharsetDecoder;)V -HSPLcom/android/icu/charset/NativeConverter;->setCallbackEncode(JLjava/nio/charset/CharsetEncoder;)V -HSPLcom/android/icu/charset/NativeConverter;->translateCodingErrorAction(Ljava/nio/charset/CodingErrorAction;)I -HSPLcom/android/icu/text/CompatibleDecimalFormatFactory;->create(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/text/DecimalFormat; -HSPLcom/android/icu/text/ExtendedDecimalFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V -HSPLcom/android/icu/text/ExtendedDecimalFormatSymbols;->getInstance(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)Lcom/android/icu/text/ExtendedDecimalFormatSymbols; -HSPLcom/android/icu/text/ExtendedDecimalFormatSymbols;->getLocalizedPatternSeparator()Ljava/lang/String; -HSPLcom/android/icu/text/ExtendedIDNA;->convertIDNToASCII(Ljava/lang/String;I)Ljava/lang/StringBuffer; -HSPLcom/android/icu/text/ExtendedTimeZoneNames;-><clinit>()V -HSPLcom/android/icu/text/ExtendedTimeZoneNames;-><init>(Landroid/icu/util/ULocale;)V -HSPLcom/android/icu/text/ExtendedTimeZoneNames;->getInstance(Landroid/icu/util/ULocale;)Lcom/android/icu/text/ExtendedTimeZoneNames; -HSPLcom/android/icu/text/ExtendedTimeZoneNames;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames; -HSPLcom/android/icu/util/CaseMapperNative;->toLowerCase(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; -HSPLcom/android/icu/util/ExtendedCalendar;-><init>(Landroid/icu/util/ULocale;)V -HSPLcom/android/icu/util/ExtendedCalendar;->getDateTimePattern(II)Ljava/lang/String; -HSPLcom/android/icu/util/ExtendedCalendar;->getInstance(Landroid/icu/util/ULocale;)Lcom/android/icu/util/ExtendedCalendar; -HSPLcom/android/icu/util/ExtendedTimeZone;-><init>(Ljava/lang/String;)V -HSPLcom/android/icu/util/ExtendedTimeZone;->clearDefaultTimeZone()V -HSPLcom/android/icu/util/ExtendedTimeZone;->createZoneOffsetTransitionRule(Landroid/icu/util/AnnualTimeZoneRule;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransitionRule; -HSPLcom/android/icu/util/ExtendedTimeZone;->createZoneRules()Ljava/time/zone/ZoneRules; -HSPLcom/android/icu/util/ExtendedTimeZone;->dayOfWeek(Landroid/icu/util/DateTimeRule;)Ljava/time/DayOfWeek; -HSPLcom/android/icu/util/ExtendedTimeZone;->fullOffset(Landroid/icu/util/TimeZoneRule;)Ljava/time/ZoneOffset; -HSPLcom/android/icu/util/ExtendedTimeZone;->getInstance(Ljava/lang/String;)Lcom/android/icu/util/ExtendedTimeZone; -HSPLcom/android/icu/util/ExtendedTimeZone;->localDateTime(JLjava/time/ZoneOffset;)Ljava/time/LocalDateTime; -HSPLcom/android/icu/util/ExtendedTimeZone;->standardOffset(Landroid/icu/util/TimeZoneRule;)Ljava/time/ZoneOffset; -HSPLcom/android/icu/util/ExtendedTimeZone;->timeDefinition(Landroid/icu/util/AnnualTimeZoneRule;)Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition; -HSPLcom/android/icu/util/ExtendedTimeZone;->toOffset(I)Ljava/time/ZoneOffset; -HSPLcom/android/icu/util/ExtendedTimeZone;->utcStartTime(JLandroid/icu/util/TimeArrayTimeZoneRule;)J -HSPLcom/android/icu/util/LocaleNative;->getDisplayCountry(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String; -HSPLcom/android/icu/util/LocaleNative;->getDisplayLanguage(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String; -HSPLcom/android/icu/util/LocaleNative;->setDefault(Ljava/lang/String;)V -HSPLcom/android/icu/util/regex/MatcherNative;-><init>(Lcom/android/icu/util/regex/PatternNative;)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry;]Lcom/android/icu/util/regex/PatternNative;Lcom/android/icu/util/regex/PatternNative; -HSPLcom/android/icu/util/regex/MatcherNative;->create(Lcom/android/icu/util/regex/PatternNative;)Lcom/android/icu/util/regex/MatcherNative; -HSPLcom/android/icu/util/regex/MatcherNative;->find(I[I)Z -HSPLcom/android/icu/util/regex/MatcherNative;->findNext([I)Z -HSPLcom/android/icu/util/regex/MatcherNative;->groupCount()I -HSPLcom/android/icu/util/regex/MatcherNative;->hitEnd()Z -HSPLcom/android/icu/util/regex/MatcherNative;->lookingAt([I)Z -HSPLcom/android/icu/util/regex/MatcherNative;->matches([I)Z -HSPLcom/android/icu/util/regex/MatcherNative;->requireEnd()Z -HSPLcom/android/icu/util/regex/MatcherNative;->setInput(Ljava/lang/String;II)V -HSPLcom/android/icu/util/regex/MatcherNative;->useAnchoringBounds(Z)V -HSPLcom/android/icu/util/regex/MatcherNative;->useTransparentBounds(Z)V -HSPLcom/android/icu/util/regex/PatternNative;-><init>(Ljava/lang/String;I)V+]Llibcore/util/NativeAllocationRegistry;Llibcore/util/NativeAllocationRegistry; -HSPLcom/android/icu/util/regex/PatternNative;->create(Ljava/lang/String;I)Lcom/android/icu/util/regex/PatternNative; -HSPLcom/android/icu/util/regex/PatternNative;->openMatcher()J -HSPLcom/android/internal/app/AlertController;-><init>(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)V -HSPLcom/android/internal/app/AlertController;->create(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)Lcom/android/internal/app/AlertController; -HSPLcom/android/internal/app/AlertController;->installContent()V -HSPLcom/android/internal/app/AlertController;->resolvePanel(Landroid/view/View;Landroid/view/View;)Landroid/view/ViewGroup; -HSPLcom/android/internal/app/AlertController;->setBackground(Landroid/content/res/TypedArray;Landroid/view/View;Landroid/view/View;Landroid/view/View;Landroid/view/View;ZZZ)V -HSPLcom/android/internal/app/AlertController;->setupButtons(Landroid/view/ViewGroup;)V -HSPLcom/android/internal/app/AlertController;->setupContent(Landroid/view/ViewGroup;)V -HSPLcom/android/internal/app/AlertController;->setupCustomContent(Landroid/view/ViewGroup;)V -HSPLcom/android/internal/app/AlertController;->setupTitle(Landroid/view/ViewGroup;)V -HSPLcom/android/internal/app/AlertController;->setupView()V -HSPLcom/android/internal/app/AssistUtils;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/app/AssistUtils;->getAssistComponentForUser(I)Landroid/content/ComponentName; -HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;-><init>()V -HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;-><init>()V -HSPLcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V -HSPLcom/android/internal/app/IAppOpsCallback$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->extractAsyncOps(Ljava/lang/String;)Ljava/util/List; -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List; -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteOperation(IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Z)Landroid/app/SyncNotedAppOp; -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->reportRuntimeAppOpAccessMessageAndGetConfig(Ljava/lang/String;Landroid/app/SyncNotedAppOp;Ljava/lang/String;)Lcom/android/internal/app/MessageSamplingConfig; -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->shouldCollectNotes(I)Z -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingAsyncNoted(Ljava/lang/String;Lcom/android/internal/app/IAppOpsAsyncNotedCallback;)V -HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V -HSPLcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService; -HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->isCharging()Z -HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler; -HSPLcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats; -HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->notifyActivityEventChanged(Landroid/os/IBinder;I)V -HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService; -HSPLcom/android/internal/app/IVoiceInteractor$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractor; -HSPLcom/android/internal/app/MessageSamplingConfig$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/app/MessageSamplingConfig; -HSPLcom/android/internal/app/MessageSamplingConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLcom/android/internal/app/MessageSamplingConfig;-><init>(Landroid/os/Parcel;)V -HSPLcom/android/internal/app/MessageSamplingConfig;->getAcceptableLeftDistance()I -HSPLcom/android/internal/app/MessageSamplingConfig;->getExpirationTimeSinceBootMillis()J -HSPLcom/android/internal/app/MessageSamplingConfig;->getSampledOpCode()I -HSPLcom/android/internal/app/ProcessMap;->get(Ljava/lang/String;I)Ljava/lang/Object; -HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->getAssociationState()Lcom/android/internal/app/procstats/AssociationState; -HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->startActive(J)V -HSPLcom/android/internal/app/procstats/AssociationState$SourceState;->trackProcState(IIJ)V -HSPLcom/android/internal/app/procstats/AssociationState;->getProcess()Lcom/android/internal/app/procstats/ProcessState; -HSPLcom/android/internal/app/procstats/ProcessState;->getCombinedState()I -HSPLcom/android/internal/app/procstats/ProcessStats;->splitAndParseNumbers(Ljava/lang/String;)[I -HSPLcom/android/internal/app/procstats/ProcessStats;->updateTrackingAssociationsLocked(IJ)V -HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->assertConsistency()V -HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetIds(Landroid/content/ComponentName;)[I -HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getInstalledProvidersForProfile(IILjava/lang/String;)Landroid/content/pm/ParceledListSlice; -HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->notifyProviderInheritance([Landroid/content/ComponentName;)V -HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService; -HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I -HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z -HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;-><init>(JI)V -HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Lcom/android/internal/compat/ChangeReporter$ChangeReport; -HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->hashCode()I -HSPLcom/android/internal/compat/ChangeReporter;-><init>(I)V -HSPLcom/android/internal/compat/ChangeReporter;->debugLog(IJI)V -HSPLcom/android/internal/compat/ChangeReporter;->isAlreadyReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)Z+]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashSet; -HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V+]Ljava/util/Map;Ljava/util/HashMap;]Ljava/util/Set;Ljava/util/HashSet; -HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V+]Lcom/android/internal/compat/ChangeReporter;Lcom/android/internal/compat/ChangeReporter; -HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToDebug(IJI)Z -HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToStatsLog(IJI)Z -HSPLcom/android/internal/compat/ChangeReporter;->stateToString(I)Ljava/lang/String; -HSPLcom/android/internal/compat/IPlatformCompat$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/compat/IPlatformCompat; -HSPLcom/android/internal/content/PackageMonitor;-><init>()V -HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/content/ReferrerIntent; -HSPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLcom/android/internal/display/BrightnessSynchronizer;-><clinit>()V -HSPLcom/android/internal/display/BrightnessSynchronizer;->floatEquals(FF)Z -HSPLcom/android/internal/dynamicanimation/animation/DynamicAnimation;-><init>(Ljava/lang/Object;Landroid/util/FloatProperty;)V -HSPLcom/android/internal/dynamicanimation/animation/SpringForce;-><init>()V -HSPLcom/android/internal/graphics/ColorUtils;->HSLToColor([F)I -HSPLcom/android/internal/graphics/ColorUtils;->RGBToHSL(III[F)V -HSPLcom/android/internal/graphics/ColorUtils;->colorToHSL(I[F)V -HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>()V -HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->getFrameTime()J -HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V -HSPLcom/android/internal/graphics/cam/Cam;-><init>(FFFFFFFFF)V -HSPLcom/android/internal/graphics/cam/Cam;->fromInt(I)Lcom/android/internal/graphics/cam/Cam; -HSPLcom/android/internal/graphics/cam/Cam;->fromIntInFrame(ILcom/android/internal/graphics/cam/Frame;)Lcom/android/internal/graphics/cam/Cam; -HSPLcom/android/internal/graphics/cam/Cam;->getChroma()F -HSPLcom/android/internal/graphics/cam/Cam;->getHue()F -HSPLcom/android/internal/graphics/cam/CamUtils;-><clinit>()V -HSPLcom/android/internal/graphics/cam/CamUtils;->linearized(I)F -HSPLcom/android/internal/graphics/cam/CamUtils;->xyzFromInt(I)[F -HSPLcom/android/internal/graphics/cam/Frame;-><clinit>()V -HSPLcom/android/internal/graphics/cam/Frame;-><init>(FFFFFF[FFFF)V -HSPLcom/android/internal/graphics/cam/Frame;->getAw()F -HSPLcom/android/internal/graphics/cam/Frame;->getC()F -HSPLcom/android/internal/graphics/cam/Frame;->getFl()F -HSPLcom/android/internal/graphics/cam/Frame;->getFlRoot()F -HSPLcom/android/internal/graphics/cam/Frame;->getN()F -HSPLcom/android/internal/graphics/cam/Frame;->getNbb()F -HSPLcom/android/internal/graphics/cam/Frame;->getNc()F -HSPLcom/android/internal/graphics/cam/Frame;->getNcb()F -HSPLcom/android/internal/graphics/cam/Frame;->getRgbD()[F -HSPLcom/android/internal/graphics/cam/Frame;->getZ()F -HSPLcom/android/internal/graphics/cam/Frame;->make([FFFFZ)Lcom/android/internal/graphics/cam/Frame; -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;Landroid/content/res/Resources;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->addDrawable(Landroid/graphics/drawable/Drawable;)I -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->canApplyTheme()Z -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->getCurrentDrawableIndexBasedOnScale()I -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->mutate()V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable; -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;-><init>()V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Landroid/content/res/Resources;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Landroid/content/res/Resources;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable-IA;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->clearMutated()V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->mutate()Landroid/graphics/drawable/Drawable; -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->onStateChange([I)Z -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->start()V -HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->stop()V -HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;-><init>(Landroid/view/ViewRootImpl;)V -HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;->hasRegions()Z -HSPLcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator;->hasUpdates()Z -HSPLcom/android/internal/infra/AndroidFuture$1;->complete(Lcom/android/internal/infra/AndroidFuture;)V -HSPLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/infra/AndroidFuture; -HSPLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLcom/android/internal/infra/AndroidFuture;-><init>()V -HSPLcom/android/internal/infra/AndroidFuture;-><init>(Landroid/os/Parcel;)V -HSPLcom/android/internal/infra/AndroidFuture;->cancelTimeout()Lcom/android/internal/infra/AndroidFuture; -HSPLcom/android/internal/infra/AndroidFuture;->complete(Ljava/lang/Object;)Z -HSPLcom/android/internal/infra/AndroidFuture;->getMainHandler()Landroid/os/Handler; -HSPLcom/android/internal/infra/AndroidFuture;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V -HSPLcom/android/internal/infra/AndroidFuture;->writeToParcel(Landroid/os/Parcel;I)V -HSPLcom/android/internal/infra/IAndroidFuture$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/infra/IAndroidFuture$Stub$Proxy;->complete(Lcom/android/internal/infra/AndroidFuture;)V -HSPLcom/android/internal/infra/IAndroidFuture$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/inputmethod/EditableInputConnection;-><init>(Landroid/widget/TextView;)V -HSPLcom/android/internal/inputmethod/EditableInputConnection;->beginBatchEdit()Z -HSPLcom/android/internal/inputmethod/EditableInputConnection;->closeConnection()V -HSPLcom/android/internal/inputmethod/EditableInputConnection;->commitText(Ljava/lang/CharSequence;I)Z -HSPLcom/android/internal/inputmethod/EditableInputConnection;->endBatchEdit()Z -HSPLcom/android/internal/inputmethod/EditableInputConnection;->endComposingRegionEditInternal()V -HSPLcom/android/internal/inputmethod/EditableInputConnection;->getEditable()Landroid/text/Editable; -HSPLcom/android/internal/inputmethod/EditableInputConnection;->setImeConsumesInput(Z)Z -HSPLcom/android/internal/inputmethod/IImeTracker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/inputmethod/IImeTracker$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IImeTracker$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/inputmethod/IImeTracker; -HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->getMaxTransactionId()I -HSPLcom/android/internal/inputmethod/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->finishInput()V -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V -HSPLcom/android/internal/inputmethod/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/inputmethod/IInputMethodSession; -HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;-><init>()V -HSPLcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IRemoteInputConnection$Stub;-><init>()V -HSPLcom/android/internal/inputmethod/IRemoteInputConnection$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/inputmethod/IRemoteInputConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/inputmethod/ImeTracing;-><clinit>()V -HSPLcom/android/internal/inputmethod/ImeTracing;-><init>()V -HSPLcom/android/internal/inputmethod/ImeTracing;->getInstance()Lcom/android/internal/inputmethod/ImeTracing; -HSPLcom/android/internal/inputmethod/ImeTracing;->isEnabled()Z -HSPLcom/android/internal/inputmethod/ImeTracing;->isSystemProcess()Z -HSPLcom/android/internal/inputmethod/ImeTracingClientImpl;-><init>()V -HSPLcom/android/internal/inputmethod/ImeTracingClientImpl;->triggerClientDump(Ljava/lang/String;Landroid/view/inputmethod/InputMethodManager;[B)V -HSPLcom/android/internal/inputmethod/InputBindResult$1;-><init>()V -HSPLcom/android/internal/inputmethod/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/inputmethod/InputBindResult; -HSPLcom/android/internal/inputmethod/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLcom/android/internal/inputmethod/InputBindResult;-><clinit>()V -HSPLcom/android/internal/inputmethod/InputBindResult;-><init>(Landroid/os/Parcel;)V -HSPLcom/android/internal/inputmethod/InputBindResult;-><init>(Landroid/os/Parcel;Lcom/android/internal/inputmethod/InputBindResult-IA;)V -HSPLcom/android/internal/inputmethod/InputBindResult;->error(I)Lcom/android/internal/inputmethod/InputBindResult; -HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader$1;-><init>()V -HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/inputmethod/InputConnectionCommandHeader; -HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader;-><clinit>()V -HSPLcom/android/internal/inputmethod/InputConnectionCommandHeader;-><init>(I)V -HSPLcom/android/internal/inputmethod/InputMethodDebug;->softInputDisplayReasonToString(I)Ljava/lang/String; -HSPLcom/android/internal/inputmethod/SubtypeLocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale; -HSPLcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;-><init>()V -HSPLcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;->getMetric(I)J -HSPLcom/android/internal/jank/FrameTracker$FrameMetricsWrapper;->getTiming()[J -HSPLcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;-><init>(Landroid/view/ThreadedRenderer;)V -HSPLcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;->addObserver(Landroid/graphics/HardwareRendererObserver;)V -HSPLcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper;->removeObserver(Landroid/graphics/HardwareRendererObserver;)V -HSPLcom/android/internal/jank/FrameTracker;->begin()V -HSPLcom/android/internal/jank/FrameTracker;->onFrameMetricsAvailable(I)V -HSPLcom/android/internal/jank/InteractionJankMonitor$InstanceHolder;-><clinit>()V -HSPLcom/android/internal/jank/InteractionJankMonitor;->-$$Nest$sfgetDEFAULT_WORKER_NAME()Ljava/lang/String; -HSPLcom/android/internal/jank/InteractionJankMonitor;-><clinit>()V -HSPLcom/android/internal/jank/InteractionJankMonitor;-><init>(Landroid/os/HandlerThread;)V -HSPLcom/android/internal/jank/InteractionJankMonitor;->cancel(I)Z -HSPLcom/android/internal/jank/InteractionJankMonitor;->end(I)Z -HSPLcom/android/internal/jank/InteractionJankMonitor;->getInstance()Lcom/android/internal/jank/InteractionJankMonitor; -HSPLcom/android/internal/jank/InteractionJankMonitor;->postEventLogToWorkerThread(Lcom/android/internal/jank/InteractionJankMonitor$TimeFunction;)V -HSPLcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;-><init>(Ljava/lang/Object;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;)V -HSPLcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0;->run()V -HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onComplete(Z)V -HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onPostExecute(Z)V -HSPLcom/android/internal/listeners/ListenerExecutor$ListenerOperation;->onPreExecute()V -HSPLcom/android/internal/listeners/ListenerExecutor;->executeSafely(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;)V -HSPLcom/android/internal/listeners/ListenerExecutor;->executeSafely(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;)V -HSPLcom/android/internal/listeners/ListenerExecutor;->lambda$executeSafely$0(Ljava/lang/Object;Ljava/util/function/Supplier;Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation;Lcom/android/internal/listeners/ListenerExecutor$FailureCallback;)V -HSPLcom/android/internal/logging/AndroidConfig;-><init>()V -HSPLcom/android/internal/logging/AndroidHandler$1;->format(Ljava/util/logging/LogRecord;)Ljava/lang/String; -HSPLcom/android/internal/logging/AndroidHandler;-><init>()V -HSPLcom/android/internal/logging/AndroidHandler;->getAndroidLevel(Ljava/util/logging/Level;)I -HSPLcom/android/internal/logging/AndroidHandler;->loggerNameToTag(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/logging/AndroidHandler;->publish(Ljava/util/logging/LogRecord;)V -HSPLcom/android/internal/logging/EventLogTags;->writeSysuiMultiAction([Ljava/lang/Object;)V -HSPLcom/android/internal/logging/InstanceId$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/logging/InstanceId; -HSPLcom/android/internal/logging/InstanceId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object; -HSPLcom/android/internal/logging/InstanceId;-><init>(I)V -HSPLcom/android/internal/logging/InstanceId;->getId()I -HSPLcom/android/internal/logging/InstanceIdSequence;-><init>(I)V -HSPLcom/android/internal/logging/InstanceIdSequence;->newInstanceId()Lcom/android/internal/logging/InstanceId; -HSPLcom/android/internal/logging/InstanceIdSequence;->newInstanceIdInternal(I)Lcom/android/internal/logging/InstanceId; -HSPLcom/android/internal/logging/MetricsLogger;-><init>()V -HSPLcom/android/internal/logging/MetricsLogger;->action(II)V -HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;II)V -HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/metrics/LogMaker;)V -HSPLcom/android/internal/logging/MetricsLogger;->count(Landroid/content/Context;Ljava/lang/String;I)V -HSPLcom/android/internal/logging/MetricsLogger;->count(Ljava/lang/String;I)V -HSPLcom/android/internal/logging/MetricsLogger;->getLogger()Lcom/android/internal/logging/MetricsLogger; -HSPLcom/android/internal/logging/MetricsLogger;->hidden(I)V -HSPLcom/android/internal/logging/MetricsLogger;->histogram(Ljava/lang/String;I)V -HSPLcom/android/internal/logging/MetricsLogger;->saveLog(Landroid/metrics/LogMaker;)V -HSPLcom/android/internal/logging/MetricsLogger;->visible(I)V -HSPLcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V -HSPLcom/android/internal/logging/UiEventLoggerImpl;-><init>()V -HSPLcom/android/internal/logging/UiEventLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;)V -HSPLcom/android/internal/logging/UiEventLoggerImpl;->log(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;ILjava/lang/String;)V -HSPLcom/android/internal/logging/UiEventLoggerImpl;->logWithInstanceId(Lcom/android/internal/logging/UiEventLogger$UiEventEnum;ILjava/lang/String;Lcom/android/internal/logging/InstanceId;)V -HSPLcom/android/internal/net/NetworkUtilsInternal;-><clinit>()V -HSPLcom/android/internal/os/AndroidPrintStream;-><init>(ILjava/lang/String;)V -HSPLcom/android/internal/os/AndroidPrintStream;->log(Ljava/lang/String;)V -HSPLcom/android/internal/os/BackgroundThread;-><init>()V -HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V -HSPLcom/android/internal/os/BackgroundThread;->getExecutor()Ljava/util/concurrent/Executor; -HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler; -HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/internal/os/BinderCallsStats;)V -HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->configureLatencyObserver(Landroid/util/KeyValueListParser;Lcom/android/internal/os/BinderLatencyObserver;)V -HSPLcom/android/internal/os/BinderCallsStats$SettingsObserver;->onChange()V -HSPLcom/android/internal/os/BinderCallsStats;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V -HSPLcom/android/internal/os/BinderCallsStats;->callStarted(Landroid/os/Binder;II)Lcom/android/internal/os/BinderInternal$CallSession; -HSPLcom/android/internal/os/BinderCallsStats;->canCollect()Z -HSPLcom/android/internal/os/BinderCallsStats;->getElapsedRealtimeMicro()J -HSPLcom/android/internal/os/BinderCallsStats;->getNativeTid()I -HSPLcom/android/internal/os/BinderCallsStats;->noteBinderThreadNativeIds()V -HSPLcom/android/internal/os/BinderCallsStats;->noteNativeThreadId()V -HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V -HSPLcom/android/internal/os/BinderCallsStats;->shouldRecordDetailedData()Z -HSPLcom/android/internal/os/BinderDeathDispatcher;->linkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)I -HSPLcom/android/internal/os/BinderInternal$GcWatcher;-><init>()V -HSPLcom/android/internal/os/BinderInternal$GcWatcher;->finalize()V -HSPLcom/android/internal/os/BinderInternal;->addGcWatcher(Ljava/lang/Runnable;)V -HSPLcom/android/internal/os/BinderInternal;->forceBinderGc()V -HSPLcom/android/internal/os/BinderInternal;->forceGc(Ljava/lang/String;)V -HSPLcom/android/internal/os/BinderLatencyBuckets;-><init>(IIF)V -HSPLcom/android/internal/os/BinderLatencyBuckets;->sampleToBucket(I)I -HSPLcom/android/internal/os/BinderLatencyObserver$1;-><init>(Lcom/android/internal/os/BinderLatencyObserver;)V -HSPLcom/android/internal/os/BinderLatencyObserver$Injector;-><init>()V -HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getHandler()Landroid/os/Handler; -HSPLcom/android/internal/os/BinderLatencyObserver$Injector;->getRandomGenerator()Ljava/util/Random; -HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;-><init>(Ljava/lang/Class;I)V -HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->create(Ljava/lang/Class;I)Lcom/android/internal/os/BinderLatencyObserver$LatencyDims; -HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->equals(Ljava/lang/Object;)Z -HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getBinderClass()Ljava/lang/Class; -HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->getTransactionCode()I -HSPLcom/android/internal/os/BinderLatencyObserver$LatencyDims;->hashCode()I -HSPLcom/android/internal/os/BinderLatencyObserver;-><init>(Lcom/android/internal/os/BinderLatencyObserver$Injector;I)V -HSPLcom/android/internal/os/BinderLatencyObserver;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;)V -HSPLcom/android/internal/os/BinderLatencyObserver;->getElapsedRealtimeMicro()J -HSPLcom/android/internal/os/BinderLatencyObserver;->noteLatencyDelayed()V -HSPLcom/android/internal/os/BinderLatencyObserver;->reset()V -HSPLcom/android/internal/os/BinderLatencyObserver;->setHistogramBucketsParams(IIF)V -HSPLcom/android/internal/os/BinderLatencyObserver;->setPushInterval(I)V -HSPLcom/android/internal/os/BinderLatencyObserver;->setSamplingInterval(I)V -HSPLcom/android/internal/os/BinderLatencyObserver;->setShardingModulo(I)V -HSPLcom/android/internal/os/BinderLatencyObserver;->shouldCollect(Lcom/android/internal/os/BinderLatencyObserver$LatencyDims;)Z -HSPLcom/android/internal/os/BinderLatencyObserver;->shouldKeepSample()Z -HSPLcom/android/internal/os/CachedDeviceState$Readonly;->isCharging()Z -HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; -HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/ClassLoader; -HSPLcom/android/internal/os/ClassLoaderFactory;->isPathClassLoaderName(Ljava/lang/String;)Z -HSPLcom/android/internal/os/HandlerCaller$MyHandler;-><init>(Lcom/android/internal/os/HandlerCaller;Landroid/os/Looper;Z)V -HSPLcom/android/internal/os/HandlerCaller$MyHandler;->handleMessage(Landroid/os/Message;)V -HSPLcom/android/internal/os/HandlerCaller;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/os/HandlerCaller$Callback;Z)V -HSPLcom/android/internal/os/HandlerCaller;->obtainMessage(I)Landroid/os/Message; -HSPLcom/android/internal/os/HandlerCaller;->obtainMessageI(II)Landroid/os/Message; -HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIOO(IILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/os/HandlerCaller;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/os/HandlerCaller;->obtainMessageOO(ILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService; -HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V -HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V -HSPLcom/android/internal/os/IResultReceiver$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver; -HSPLcom/android/internal/os/IResultReceiver$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLcom/android/internal/os/IResultReceiver$Stub;->getMaxTransactionId()I -HSPLcom/android/internal/os/IResultReceiver$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLcom/android/internal/os/IResultReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->nextLine()Ljava/nio/CharBuffer; -HSPLcom/android/internal/os/KernelCpuProcStringReader;->asLongs(Ljava/nio/CharBuffer;[J)I -HSPLcom/android/internal/os/KernelCpuProcStringReader;->isNumber(C)Z -HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->copyToCurTimes()V -HSPLcom/android/internal/os/LoggingPrintStream$1;-><init>()V -HSPLcom/android/internal/os/LoggingPrintStream;-><init>()V -HSPLcom/android/internal/os/LoggingPrintStream;->flush(Z)V -HSPLcom/android/internal/os/LoggingPrintStream;->println(Ljava/lang/Object;)V -HSPLcom/android/internal/os/LoggingPrintStream;->println(Ljava/lang/String;)V -HSPLcom/android/internal/os/LooperStats;->deviceStateAllowsCollection()Z -HSPLcom/android/internal/os/LooperStats;->messageDispatchStarting()Ljava/lang/Object; -HSPLcom/android/internal/os/LooperStats;->messageDispatched(Ljava/lang/Object;Landroid/os/Message;)V -HSPLcom/android/internal/os/ProcStatsUtil;->readTerminatedProcFile(Ljava/lang/String;B)Ljava/lang/String; -HSPLcom/android/internal/os/ProcTimeInStateReader;->initializeTimeInStateFormat(Ljava/nio/file/Path;)V -HSPLcom/android/internal/os/ProcessCpuTracker$Stats;-><init>(IIZ)V -HSPLcom/android/internal/os/ProcessCpuTracker$Stats;->getUid(Ljava/lang/String;)I -HSPLcom/android/internal/os/ProcessCpuTracker;->collectStats(Ljava/lang/String;IZ[ILjava/util/ArrayList;)[I -HSPLcom/android/internal/os/ProcessCpuTracker;->getName(Lcom/android/internal/os/ProcessCpuTracker$Stats;Ljava/lang/String;)V -HSPLcom/android/internal/os/ProcessCpuTracker;->onMeasureProcessName(Ljava/lang/String;)I -HSPLcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda1;-><init>()V -HSPLcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda1;->get()Ljava/lang/Object; -HSPLcom/android/internal/os/RuntimeInit$Arguments;-><init>([Ljava/lang/String;)V -HSPLcom/android/internal/os/RuntimeInit$Arguments;->parseArgs([Ljava/lang/String;)V -HSPLcom/android/internal/os/RuntimeInit$KillApplicationHandler;-><init>(Lcom/android/internal/os/RuntimeInit$LoggingHandler;)V -HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;-><init>()V -HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;-><init>(Lcom/android/internal/os/RuntimeInit$LoggingHandler-IA;)V -HSPLcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;-><init>(Ljava/lang/reflect/Method;[Ljava/lang/String;)V -HSPLcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;->run()V -HSPLcom/android/internal/os/RuntimeInit;->applicationInit(I[J[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/RuntimeInit;->commonInit()V -HSPLcom/android/internal/os/RuntimeInit;->findStaticMain(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/RuntimeInit;->getApplicationObject()Landroid/os/IBinder; -HSPLcom/android/internal/os/RuntimeInit;->getDefaultUserAgent()Ljava/lang/String; -HSPLcom/android/internal/os/RuntimeInit;->lambda$commonInit$0()Ljava/lang/String; -HSPLcom/android/internal/os/RuntimeInit;->redirectLogStreams()V -HSPLcom/android/internal/os/RuntimeInit;->setApplicationObject(Landroid/os/IBinder;)V -HSPLcom/android/internal/os/RuntimeInit;->wtf(Ljava/lang/String;Ljava/lang/Throwable;Z)V -HSPLcom/android/internal/os/SafeZipPathValidatorCallback;-><init>()V -HSPLcom/android/internal/os/SafeZipPathValidatorCallback;->onZipEntryAccess(Ljava/lang/String;)V -HSPLcom/android/internal/os/SomeArgs;-><init>()V -HSPLcom/android/internal/os/SomeArgs;->clear()V -HSPLcom/android/internal/os/SomeArgs;->obtain()Lcom/android/internal/os/SomeArgs; -HSPLcom/android/internal/os/SomeArgs;->recycle()V -HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->getInstance()Lcom/android/internal/os/StatsdHiddenApiUsageLogger; -HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V -HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->newLogUsage(Ljava/lang/String;IZ)V -HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->setHiddenApiAccessLogSampleRates(II)V -HSPLcom/android/internal/os/Zygote;->applyDebuggerSystemProperty(Lcom/android/internal/os/ZygoteArguments;)V -HSPLcom/android/internal/os/Zygote;->applyInvokeWithSecurityPolicy(Lcom/android/internal/os/ZygoteArguments;Landroid/net/Credentials;)V -HSPLcom/android/internal/os/Zygote;->applyInvokeWithSystemProperty(Lcom/android/internal/os/ZygoteArguments;)V -HSPLcom/android/internal/os/Zygote;->applyUidSecurityPolicy(Lcom/android/internal/os/ZygoteArguments;Landroid/net/Credentials;)V -HSPLcom/android/internal/os/Zygote;->callPostForkChildHooks(IZZLjava/lang/String;)V -HSPLcom/android/internal/os/Zygote;->containsInetGid([I)Z -HSPLcom/android/internal/os/Zygote;->createManagedSocketFromInitSocket(Ljava/lang/String;)Landroid/net/LocalServerSocket; -HSPLcom/android/internal/os/Zygote;->forkAndSpecialize(II[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;[Ljava/lang/String;ZZZ)I -HSPLcom/android/internal/os/Zygote;->forkSystemServer(II[II[[IJJ)I -HSPLcom/android/internal/os/Zygote;->getConfigurationProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/os/Zygote;->getUsapPoolEventFD()Ljava/io/FileDescriptor; -HSPLcom/android/internal/os/Zygote;->getWrapProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/os/Zygote;->initNativeState(Z)V -HSPLcom/android/internal/os/Zygote;->minChildUid(Landroid/net/Credentials;)I -HSPLcom/android/internal/os/Zygote;->setAppProcessName(Lcom/android/internal/os/ZygoteArguments;Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteArguments;-><init>(Lcom/android/internal/os/ZygoteCommandBuffer;I)V -HSPLcom/android/internal/os/ZygoteArguments;->getAssignmentList(Ljava/lang/String;)[Ljava/lang/String; -HSPLcom/android/internal/os/ZygoteArguments;->getAssignmentValue(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/os/ZygoteArguments;->getInstance(Lcom/android/internal/os/ZygoteCommandBuffer;)Lcom/android/internal/os/ZygoteArguments; -HSPLcom/android/internal/os/ZygoteArguments;->parseArgs(Lcom/android/internal/os/ZygoteCommandBuffer;I)V -HSPLcom/android/internal/os/ZygoteCommandBuffer;-><init>(Landroid/net/LocalSocket;)V -HSPLcom/android/internal/os/ZygoteCommandBuffer;-><init>([Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteCommandBuffer;->close()V -HSPLcom/android/internal/os/ZygoteCommandBuffer;->getCount()I -HSPLcom/android/internal/os/ZygoteCommandBuffer;->nextArg()Ljava/lang/String; -HSPLcom/android/internal/os/ZygoteCommandBuffer;->setCommand([Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteConfig;->getDeviceConfig(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/os/ZygoteConfig;->getInt(Ljava/lang/String;I)I -HSPLcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda0;-><init>(II)V -HSPLcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda0;->run()V -HSPLcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda1;->run()V -HSPLcom/android/internal/os/ZygoteConnection;-><init>(Landroid/net/LocalSocket;Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteConnection;->canPreloadApp()Z -HSPLcom/android/internal/os/ZygoteConnection;->closeSocket()V -HSPLcom/android/internal/os/ZygoteConnection;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLcom/android/internal/os/ZygoteConnection;->handleAbiListQuery()V -HSPLcom/android/internal/os/ZygoteConnection;->handleApiDenylistExemptions(Lcom/android/internal/os/ZygoteServer;[Ljava/lang/String;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteConnection;->handleBootCompleted()V -HSPLcom/android/internal/os/ZygoteConnection;->handleChildProc(Lcom/android/internal/os/ZygoteArguments;Ljava/io/FileDescriptor;Z)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteConnection;->handleHiddenApiAccessLogSampleRate(Lcom/android/internal/os/ZygoteServer;II)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteConnection;->handleParentProc(ILjava/io/FileDescriptor;)V -HSPLcom/android/internal/os/ZygoteConnection;->isClosedByPeer()Z -HSPLcom/android/internal/os/ZygoteConnection;->lambda$handleApiDenylistExemptions$0([Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteConnection;->lambda$handleHiddenApiAccessLogSampleRate$1(II)V -HSPLcom/android/internal/os/ZygoteConnection;->processCommand(Lcom/android/internal/os/ZygoteServer;Z)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteConnection;->setChildPgid(I)V -HSPLcom/android/internal/os/ZygoteConnection;->stateChangeWithUsapPoolReset(Lcom/android/internal/os/ZygoteServer;Ljava/lang/Runnable;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteInit;->cacheNonBootClasspathClassLoaders()V -HSPLcom/android/internal/os/ZygoteInit;->endPreload()V -HSPLcom/android/internal/os/ZygoteInit;->forkSystemServer(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/os/ZygoteServer;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteInit;->gcAndFinalize()V -HSPLcom/android/internal/os/ZygoteInit;->isExperimentEnabled(Ljava/lang/String;)Z -HSPLcom/android/internal/os/ZygoteInit;->main([Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteInit;->maybePreloadGraphicsDriver()V -HSPLcom/android/internal/os/ZygoteInit;->posixCapabilitiesAsBits([I)J -HSPLcom/android/internal/os/ZygoteInit;->preload(Landroid/util/TimingsTraceLog;)V -HSPLcom/android/internal/os/ZygoteInit;->preloadClasses()V -HSPLcom/android/internal/os/ZygoteInit;->preloadSharedLibraries()V -HSPLcom/android/internal/os/ZygoteInit;->preloadTextResources()V -HSPLcom/android/internal/os/ZygoteInit;->setApiDenylistExemptions([Ljava/lang/String;)V -HSPLcom/android/internal/os/ZygoteInit;->setHiddenApiAccessLogSampleRate(I)V -HSPLcom/android/internal/os/ZygoteInit;->setHiddenApiUsageLogger(Ldalvik/system/VMRuntime$HiddenApiUsageLogger;)V -HSPLcom/android/internal/os/ZygoteInit;->shouldProfileSystemServer()Z -HSPLcom/android/internal/os/ZygoteInit;->warmUpJcaProviders()V -HSPLcom/android/internal/os/ZygoteInit;->zygoteInit(I[J[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteServer;-><init>(Z)V -HSPLcom/android/internal/os/ZygoteServer;->acceptCommandPeer(Ljava/lang/String;)Lcom/android/internal/os/ZygoteConnection; -HSPLcom/android/internal/os/ZygoteServer;->closeServerSocket()V -HSPLcom/android/internal/os/ZygoteServer;->createNewConnection(Landroid/net/LocalSocket;Ljava/lang/String;)Lcom/android/internal/os/ZygoteConnection; -HSPLcom/android/internal/os/ZygoteServer;->fetchUsapPoolPolicyProps()V -HSPLcom/android/internal/os/ZygoteServer;->fetchUsapPoolPolicyPropsWithMinInterval()V -HSPLcom/android/internal/os/ZygoteServer;->getZygoteSocketFileDescriptor()Ljava/io/FileDescriptor; -HSPLcom/android/internal/os/ZygoteServer;->isUsapPoolEnabled()Z -HSPLcom/android/internal/os/ZygoteServer;->runSelectLoop(Ljava/lang/String;)Ljava/lang/Runnable; -HSPLcom/android/internal/os/ZygoteServer;->setForkChild()V -HSPLcom/android/internal/policy/DecorContext;-><init>(Landroid/content/Context;Lcom/android/internal/policy/PhoneWindow;)V -HSPLcom/android/internal/policy/DecorContext;->getAutofillOptions()Landroid/content/AutofillOptions; -HSPLcom/android/internal/policy/DecorContext;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions; -HSPLcom/android/internal/policy/DecorContext;->getResources()Landroid/content/res/Resources;+]Ljava/lang/ref/WeakReference;Ljava/lang/ref/WeakReference; -HSPLcom/android/internal/policy/DecorContext;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; -HSPLcom/android/internal/policy/DecorContext;->isUiContext()Z -HSPLcom/android/internal/policy/DecorContext;->setPhoneWindow(Lcom/android/internal/policy/PhoneWindow;)V -HSPLcom/android/internal/policy/DecorView$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/policy/DecorView;)V -HSPLcom/android/internal/policy/DecorView$2;->getPadding(Landroid/graphics/Rect;)Z -HSPLcom/android/internal/policy/DecorView$3;-><init>(Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView$ColorViewState;)V -HSPLcom/android/internal/policy/DecorView$3;->run()V -HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isPresent(ZIZ)Z -HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isVisible(ZIIZ)Z -HSPLcom/android/internal/policy/DecorView$ColorViewState;-><init>(Lcom/android/internal/policy/DecorView$ColorViewAttributes;)V -HSPLcom/android/internal/policy/DecorView;-><init>(Landroid/content/Context;ILcom/android/internal/policy/PhoneWindow;Landroid/view/WindowManager$LayoutParams;)V -HSPLcom/android/internal/policy/DecorView;->calculateNavigationBarColor(I)I+]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow; -HSPLcom/android/internal/policy/DecorView;->calculateStatusBarColor(I)I+]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow; -HSPLcom/android/internal/policy/DecorView;->createDecorCaptionView(Landroid/view/LayoutInflater;)Lcom/android/internal/widget/DecorCaptionView; -HSPLcom/android/internal/policy/DecorView;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/DecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/DecorView;->draw(Landroid/graphics/Canvas;)V -HSPLcom/android/internal/policy/DecorView;->drawLegacyNavigationBarBackground(Landroid/graphics/RecordingCanvas;)V -HSPLcom/android/internal/policy/DecorView;->drawableChanged()V -HSPLcom/android/internal/policy/DecorView;->enableCaption(Z)V -HSPLcom/android/internal/policy/DecorView;->enforceNonTranslucentBackground(Landroid/graphics/drawable/Drawable;Z)Landroid/graphics/drawable/Drawable; -HSPLcom/android/internal/policy/DecorView;->finishChanging()V -HSPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Landroid/graphics/Region;)Z -HSPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Lcom/android/internal/policy/DecorView$ColorViewState;Landroid/graphics/Region;)Z -HSPLcom/android/internal/policy/DecorView;->getAccessibilityViewId()I -HSPLcom/android/internal/policy/DecorView;->getBackground()Landroid/graphics/drawable/Drawable; -HSPLcom/android/internal/policy/DecorView;->getCaptionHeight()I -HSPLcom/android/internal/policy/DecorView;->getCaptionInsetsHeight()I -HSPLcom/android/internal/policy/DecorView;->getNavBarSize(III)I -HSPLcom/android/internal/policy/DecorView;->getResources()Landroid/content/res/Resources;+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;,Lcom/android/internal/policy/DecorContext; -HSPLcom/android/internal/policy/DecorView;->getTitleSuffix(Landroid/view/WindowManager$LayoutParams;)Ljava/lang/String;+]Ljava/lang/String;Ljava/lang/String;]Landroid/view/WindowManager$LayoutParams;Landroid/view/WindowManager$LayoutParams;]Ljava/lang/CharSequence;Ljava/lang/String; -HSPLcom/android/internal/policy/DecorView;->getWindowInsetsController()Landroid/view/WindowInsetsController;+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView; -HSPLcom/android/internal/policy/DecorView;->initializeElevation()V -HSPLcom/android/internal/policy/DecorView;->isNavBarToLeftEdge(II)Z -HSPLcom/android/internal/policy/DecorView;->isNavBarToRightEdge(II)Z -HSPLcom/android/internal/policy/DecorView;->isResizing()Z -HSPLcom/android/internal/policy/DecorView;->isShowingCaption()Z -HSPLcom/android/internal/policy/DecorView;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLcom/android/internal/policy/DecorView;->onAttachedToWindow()V -HSPLcom/android/internal/policy/DecorView;->onCloseSystemDialogs(Ljava/lang/String;)V -HSPLcom/android/internal/policy/DecorView;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLcom/android/internal/policy/DecorView;->onContentDrawn(IIII)Z -HSPLcom/android/internal/policy/DecorView;->onDetachedFromWindow()V -HSPLcom/android/internal/policy/DecorView;->onDraw(Landroid/graphics/Canvas;)V+]Lcom/android/internal/widget/BackgroundFallback;Lcom/android/internal/widget/BackgroundFallback; -HSPLcom/android/internal/policy/DecorView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/DecorView;->onLayout(ZIIII)V -HSPLcom/android/internal/policy/DecorView;->onMeasure(II)V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/content/Context;Landroid/view/ContextThemeWrapper;,Lcom/android/internal/policy/DecorContext;]Landroid/content/res/Resources;Landroid/content/res/Resources; -HSPLcom/android/internal/policy/DecorView;->onPostDraw(Landroid/graphics/RecordingCanvas;)V -HSPLcom/android/internal/policy/DecorView;->onResourcesLoaded(Landroid/view/LayoutInflater;I)V -HSPLcom/android/internal/policy/DecorView;->onRootViewScrollYChanged(I)V -HSPLcom/android/internal/policy/DecorView;->onSystemBarAppearanceChanged(I)V -HSPLcom/android/internal/policy/DecorView;->onTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/DecorView;->onWindowFocusChanged(Z)V -HSPLcom/android/internal/policy/DecorView;->onWindowSystemUiVisibilityChanged(I)V -HSPLcom/android/internal/policy/DecorView;->providePendingInsetsController()Landroid/view/PendingInsetsController; -HSPLcom/android/internal/policy/DecorView;->releaseThreadedRenderer()V -HSPLcom/android/internal/policy/DecorView;->removeBackgroundBlurDrawable()V -HSPLcom/android/internal/policy/DecorView;->sendAccessibilityEvent(I)V -HSPLcom/android/internal/policy/DecorView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLcom/android/internal/policy/DecorView;->setBackgroundFallback(Landroid/graphics/drawable/Drawable;)V -HSPLcom/android/internal/policy/DecorView;->setColor(Landroid/view/View;IIZZ)V -HSPLcom/android/internal/policy/DecorView;->setFrame(IIII)Z+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/ColorDrawable; -HSPLcom/android/internal/policy/DecorView;->setWindow(Lcom/android/internal/policy/PhoneWindow;)V -HSPLcom/android/internal/policy/DecorView;->setWindowBackground(Landroid/graphics/drawable/Drawable;)V -HSPLcom/android/internal/policy/DecorView;->setWindowFrame(Landroid/graphics/drawable/Drawable;)V -HSPLcom/android/internal/policy/DecorView;->startChanging()V -HSPLcom/android/internal/policy/DecorView;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/DecorView;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/DecorView;->updateBackgroundBlurRadius()V -HSPLcom/android/internal/policy/DecorView;->updateBackgroundDrawable()V+]Landroid/graphics/Insets;Landroid/graphics/Insets; -HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIZZIZZI)V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow;]Landroid/view/View;Landroid/view/View;]Landroid/view/ViewPropertyAnimator;Landroid/view/ViewPropertyAnimator;]Lcom/android/internal/policy/DecorView$ColorViewAttributes;Lcom/android/internal/policy/DecorView$ColorViewAttributes; -HSPLcom/android/internal/policy/DecorView;->updateColorViewTranslations()V -HSPLcom/android/internal/policy/DecorView;->updateColorViews(Landroid/view/WindowInsets;Z)Landroid/view/WindowInsets;+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Lcom/android/internal/policy/PhoneWindow;Lcom/android/internal/policy/PhoneWindow;]Landroid/view/ViewGroup;Landroid/widget/LinearLayout;]Landroid/view/WindowInsetsController;Landroid/view/InsetsController;,Landroid/view/PendingInsetsController;]Landroid/view/WindowInsets;Landroid/view/WindowInsets;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLcom/android/internal/policy/DecorView;->updateDecorCaptionStatus(Landroid/content/res/Configuration;)V -HSPLcom/android/internal/policy/DecorView;->updateElevation()V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView;]Landroid/content/res/Resources;Landroid/content/res/Resources;]Landroid/app/WindowConfiguration;Landroid/app/WindowConfiguration; -HSPLcom/android/internal/policy/DecorView;->updateLogTag(Landroid/view/WindowManager$LayoutParams;)V+]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder; -HSPLcom/android/internal/policy/DecorView;->updateStatusGuard(Landroid/view/WindowInsets;)Landroid/view/WindowInsets; -HSPLcom/android/internal/policy/DecorView;->willYouTakeTheInputQueue()Landroid/view/InputQueue$Callback; -HSPLcom/android/internal/policy/DecorView;->willYouTakeTheSurface()Landroid/view/SurfaceHolder$Callback2; -HSPLcom/android/internal/policy/GestureNavigationSettingsObserver$1;-><init>(Lcom/android/internal/policy/GestureNavigationSettingsObserver;)V -HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;-><init>(Landroid/os/Handler;Landroid/content/Context;Ljava/lang/Runnable;)V -HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->areNavigationButtonForcedVisible()Z -HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->getLeftSensitivity(Landroid/content/res/Resources;)I -HSPLcom/android/internal/policy/GestureNavigationSettingsObserver;->getRightSensitivity(Landroid/content/res/Resources;)I -HSPLcom/android/internal/policy/IKeyguardLockedStateListener$Stub;-><init>()V -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->getAudioManager()Landroid/media/AudioManager; -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyDown(ILandroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyUp(ILandroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->preDispatchKeyEvent(Landroid/view/KeyEvent;)V -HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->setView(Landroid/view/View;)V -HSPLcom/android/internal/policy/PhoneLayoutInflater;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/policy/PhoneLayoutInflater;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V -HSPLcom/android/internal/policy/PhoneLayoutInflater;->cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater; -HSPLcom/android/internal/policy/PhoneLayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View; -HSPLcom/android/internal/policy/PhoneWindow$1;-><init>(Lcom/android/internal/policy/PhoneWindow;)V -HSPLcom/android/internal/policy/PhoneWindow$1;->run()V -HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;->writeToParcel(Landroid/os/Parcel;I)V -HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;-><init>(I)V -HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->onSaveInstanceState()Landroid/os/Parcelable; -HSPLcom/android/internal/policy/PhoneWindow$PhoneWindowMenuCallback;-><init>(Lcom/android/internal/policy/PhoneWindow;)V -HSPLcom/android/internal/policy/PhoneWindow;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/policy/PhoneWindow;-><init>(Landroid/content/Context;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;)V -HSPLcom/android/internal/policy/PhoneWindow;->alwaysReadCloseOnTouchAttr()V -HSPLcom/android/internal/policy/PhoneWindow;->applyDecorFitsSystemWindows()V -HSPLcom/android/internal/policy/PhoneWindow;->closeAllPanels()V -HSPLcom/android/internal/policy/PhoneWindow;->closeContextMenu()V -HSPLcom/android/internal/policy/PhoneWindow;->closePanel(Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;Z)V -HSPLcom/android/internal/policy/PhoneWindow;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView; -HSPLcom/android/internal/policy/PhoneWindow;->doInvalidatePanelMenu(I)V -HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/internal/policy/DecorView; -HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup; -HSPLcom/android/internal/policy/PhoneWindow;->getCurrentFocus()Landroid/view/View; -HSPLcom/android/internal/policy/PhoneWindow;->getDecorView()Landroid/view/View; -HSPLcom/android/internal/policy/PhoneWindow;->getLayoutInflater()Landroid/view/LayoutInflater; -HSPLcom/android/internal/policy/PhoneWindow;->getNavigationBarColor()I -HSPLcom/android/internal/policy/PhoneWindow;->getOnBackInvokedDispatcher()Landroid/window/OnBackInvokedDispatcher; -HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZ)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState; -HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZLcom/android/internal/policy/PhoneWindow$PanelFeatureState;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState; -HSPLcom/android/internal/policy/PhoneWindow;->getTransition(Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition; -HSPLcom/android/internal/policy/PhoneWindow;->getViewRootImplOrNull()Landroid/view/ViewRootImpl; -HSPLcom/android/internal/policy/PhoneWindow;->getVolumeControlStream()I -HSPLcom/android/internal/policy/PhoneWindow;->installDecor()V -HSPLcom/android/internal/policy/PhoneWindow;->invalidatePanelMenu(I)V -HSPLcom/android/internal/policy/PhoneWindow;->isFloating()Z -HSPLcom/android/internal/policy/PhoneWindow;->isShowingWallpaper()Z -HSPLcom/android/internal/policy/PhoneWindow;->isTranslucent()Z -HSPLcom/android/internal/policy/PhoneWindow;->lambda$static$0(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/util/Pair; -HSPLcom/android/internal/policy/PhoneWindow;->onActive()V -HSPLcom/android/internal/policy/PhoneWindow;->onConfigurationChanged(Landroid/content/res/Configuration;)V -HSPLcom/android/internal/policy/PhoneWindow;->onDestroy()V -HSPLcom/android/internal/policy/PhoneWindow;->onKeyDown(IILandroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/PhoneWindow;->onKeyUp(IILandroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/PhoneWindow;->onViewRootImplSet(Landroid/view/ViewRootImpl;)V -HSPLcom/android/internal/policy/PhoneWindow;->openPanelsAfterRestore()V -HSPLcom/android/internal/policy/PhoneWindow;->peekDecorView()Landroid/view/View; -HSPLcom/android/internal/policy/PhoneWindow;->requestFeature(I)Z -HSPLcom/android/internal/policy/PhoneWindow;->restoreHierarchyState(Landroid/os/Bundle;)V -HSPLcom/android/internal/policy/PhoneWindow;->saveHierarchyState()Landroid/os/Bundle; -HSPLcom/android/internal/policy/PhoneWindow;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V+]Lcom/android/internal/policy/DecorView;Lcom/android/internal/policy/DecorView; -HSPLcom/android/internal/policy/PhoneWindow;->setBackgroundBlurRadius(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLcom/android/internal/policy/PhoneWindow;->setContentView(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;)V -HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V -HSPLcom/android/internal/policy/PhoneWindow;->setDecorFitsSystemWindows(Z)V -HSPLcom/android/internal/policy/PhoneWindow;->setDefaultWindowFormat(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarColor(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarContrastEnforced(Z)V -HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarDividerColor(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setStatusBarColor(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setTheme(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;)V -HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;Z)V -HSPLcom/android/internal/policy/PhoneWindow;->setTitleColor(I)V -HSPLcom/android/internal/policy/PhoneWindow;->setVolumeControlStream(I)V -HSPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z -HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z -HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z -HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService; -HSPLcom/android/internal/statusbar/NotificationVisibility;->recycle()V -HSPLcom/android/internal/telecom/ClientTransactionalServiceRepository;-><clinit>()V -HSPLcom/android/internal/telecom/ClientTransactionalServiceRepository;-><init>()V -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallStateUsingPackage(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService; -HSPLcom/android/internal/telecom/IVideoProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoProvider; -HSPLcom/android/internal/telephony/CarrierAppUtils$AssociatedAppInfo;-><init>(Landroid/content/pm/ApplicationInfo;I)V -HSPLcom/android/internal/telephony/CarrierAppUtils;->disableCarrierAppsUntilPrivileged(Ljava/lang/String;Landroid/telephony/TelephonyManager;Landroid/content/ContentResolver;ILjava/util/Set;Ljava/util/Map;Landroid/content/Context;)V -HSPLcom/android/internal/telephony/CarrierAppUtils;->getApplicationInfoIfSystemApp(ILjava/lang/String;Landroid/content/Context;)Landroid/content/pm/ApplicationInfo; -HSPLcom/android/internal/telephony/CarrierAppUtils;->getContentResolverForUser(Landroid/content/Context;I)Landroid/content/ContentResolver; -HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAppCandidatesHelper(ILjava/util/Set;Landroid/content/Context;)Ljava/util/List; -HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAssociatedAppsHelper(ILjava/util/Map;Landroid/content/Context;)Ljava/util/Map; -HSPLcom/android/internal/telephony/CarrierAppUtils;->isUpdatedSystemApp(Landroid/content/pm/ApplicationInfo;)Z -HSPLcom/android/internal/telephony/CellBroadcastUtils;->getDefaultCellBroadcastReceiverPackageName(Landroid/content/Context;)Ljava/lang/String; -HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigForSubIdWithFeature(ILjava/lang/String;Ljava/lang/String;)Landroid/os/PersistableBundle; -HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader; -HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V -HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->getMaxTransactionId()I -HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getMaxTransactionId()I -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->getTransactionName(I)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getGroupIdLevel1ForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSerialNumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1NumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getSubscriberIdForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneSubInfo; -HSPLcom/android/internal/telephony/ISms$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveDataSubscriptionId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubIdList(Z)[I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCountMax()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfo(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo; -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoForSimSlotIndex(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo; -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getAvailableSubscriptionInfoList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultDataSubId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSmsSubId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubIdAsUser(I)I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getPhoneId(I)I -HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getSlotIndex(I)I -HSPLcom/android/internal/telephony/ISub$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISub; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActivePhoneTypeForSlot(I)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCardIdForDefaultEuicc(ILjava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatus(I)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceIdWithFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImeiForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisplay(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(I)Ljava/lang/String; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSignalStrength(I)Landroid/telephony/SignalStrength; -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSimStateForSlotIndex(I)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionCarrierId(I)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSubscriptionSpecificCarrierId(I)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isDataEnabledForReason(II)Z -HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isEmergencyNumber(Ljava/lang/String;Z)Z -HSPLcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony; -HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V -HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->listenWithEventList(ZZILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;[IZ)V -HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry; -HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->-$$Nest$fgetmSmsReceiverClass(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String; -HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;-><init>(Ljava/lang/String;I)V -HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->isComplete()Z -HSPLcom/android/internal/telephony/SmsApplication;->getApplication(Landroid/content/Context;ZI)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData; -HSPLcom/android/internal/telephony/SmsApplication;->getApplicationCollectionInternal(Landroid/content/Context;I)Ljava/util/Collection; -HSPLcom/android/internal/telephony/SmsApplication;->getApplicationForPackage(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData; -HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName; -HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplicationAsUser(Landroid/content/Context;ZLandroid/os/UserHandle;)Landroid/content/ComponentName; -HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsPackage(Landroid/content/Context;I)Ljava/lang/String; -HSPLcom/android/internal/telephony/SmsApplication;->tryFixExclusiveSmsAppops(Landroid/content/Context;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Z)Z -HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneState(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfUseIccAuthWithDeviceIdentifier(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCarrierPrivilegeForSubId(Landroid/content/Context;I)Z -HSPLcom/android/internal/telephony/TelephonyPermissions;->checkReadPhoneState(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/internal/telephony/TelephonyPermissions;->getCarrierPrivilegeStatus(Landroid/content/Context;II)I -HSPLcom/android/internal/telephony/TelephonyPermissions;->reportAccessDeniedToReadIdentifiers(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String; -HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V -HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V -HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V -HSPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V -HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V -HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellChecker(ILjava/lang/String;)Landroid/view/textservice/SpellCheckerInfo; -HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype; -HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getSpellCheckerService(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;I)V -HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled(I)Z -HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z -HSPLcom/android/internal/transition/EpicenterTranslateClipReveal;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;JLjava/lang/String;J)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/NonNull;Ljava/lang/Object;)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;I)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;J)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Object;)V -HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Ljava/lang/annotation/Annotation;Ljava/lang/Object;[Ljava/lang/Object;)V -HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->appendInt([IIZ)[I -HSPLcom/android/internal/util/ArrayUtils;->checkBounds(II)V -HSPLcom/android/internal/util/ArrayUtils;->cloneOrNull([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->contains(Ljava/util/Collection;Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->contains([II)Z -HSPLcom/android/internal/util/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->containsAll([Ljava/lang/Object;[Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->containsAny([Ljava/lang/Object;[Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->convertToIntArray(Ljava/util/List;)[I -HSPLcom/android/internal/util/ArrayUtils;->deepToString(Ljava/lang/Object;)Ljava/lang/String; -HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/io/File;)[Ljava/io/File; -HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/lang/String;)[Ljava/lang/String; -HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/Class;]Ljava/lang/Class;Ljava/lang/Class; -HSPLcom/android/internal/util/ArrayUtils;->emptyIfNull([Ljava/lang/Object;Ljava/lang/Class;)[Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->filter([Ljava/lang/Object;Ljava/util/function/IntFunction;Ljava/util/function/Predicate;)[Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->getOrNull([Ljava/lang/Object;I)Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I -HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z -HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z -HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object;+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedBooleanArray(I)[Z -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedByteArray(I)[B -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedCharArray(I)[C+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J -HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedObjectArray(I)[Ljava/lang/Object;+]Ldalvik/system/VMRuntime;Ldalvik/system/VMRuntime; -HSPLcom/android/internal/util/ArrayUtils;->remove(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList; -HSPLcom/android/internal/util/ArrayUtils;->removeElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object; -HSPLcom/android/internal/util/ArrayUtils;->size([Ljava/lang/Object;)I -HSPLcom/android/internal/util/ArrayUtils;->throwsIfOutOfBounds(III)V -HSPLcom/android/internal/util/ArrayUtils;->unstableRemoveIf(Ljava/util/ArrayList;Ljava/util/function/Predicate;)I -HSPLcom/android/internal/util/AsyncChannel;-><init>()V -HSPLcom/android/internal/util/AsyncChannel;->connected(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V -HSPLcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V -HSPLcom/android/internal/util/BitUtils;->packBits([I)J -HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I -HSPLcom/android/internal/util/CollectionUtils;->add(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List; -HSPLcom/android/internal/util/CollectionUtils;->emptyIfNull(Ljava/util/Set;)Ljava/util/Set; -HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/List;)Ljava/lang/Object; -HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z -HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Collection;)I -HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Map;)I -HSPLcom/android/internal/util/ConcurrentUtils$DirectExecutor;->execute(Ljava/lang/Runnable;)V -HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;-><init>(I)V -HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->add(I)V -HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->log(Ljava/lang/String;Ljava/lang/CharSequence;)V -HSPLcom/android/internal/util/FastMath;->round(F)I -HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>()V -HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>(Lcom/android/internal/util/FastPrintWriter$DummyWriter-IA;)V -HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;)V -HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;ZI)V -HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;ZI)V -HSPLcom/android/internal/util/FastPrintWriter;->appendLocked(C)V -HSPLcom/android/internal/util/FastPrintWriter;->appendLocked(Ljava/lang/String;II)V -HSPLcom/android/internal/util/FastPrintWriter;->appendLocked([CII)V -HSPLcom/android/internal/util/FastPrintWriter;->close()V -HSPLcom/android/internal/util/FastPrintWriter;->flush()V -HSPLcom/android/internal/util/FastPrintWriter;->flushBytesLocked()V -HSPLcom/android/internal/util/FastPrintWriter;->flushLocked()V -HSPLcom/android/internal/util/FastPrintWriter;->initDefaultEncoder()V -HSPLcom/android/internal/util/FastPrintWriter;->print(C)V -HSPLcom/android/internal/util/FastPrintWriter;->print(I)V -HSPLcom/android/internal/util/FastPrintWriter;->print(J)V -HSPLcom/android/internal/util/FastPrintWriter;->print(Ljava/lang/String;)V -HSPLcom/android/internal/util/FastPrintWriter;->println()V -HSPLcom/android/internal/util/FastPrintWriter;->write(I)V -HSPLcom/android/internal/util/FastPrintWriter;->write(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; -HSPLcom/android/internal/util/FastPrintWriter;->write([CII)V -HSPLcom/android/internal/util/FastXmlSerializer;-><init>()V -HSPLcom/android/internal/util/FastXmlSerializer;-><init>(I)V -HSPLcom/android/internal/util/FastXmlSerializer;->append(C)V -HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; -HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String;]Lcom/android/internal/util/FastXmlSerializer;Lcom/android/internal/util/FastXmlSerializer; -HSPLcom/android/internal/util/FastXmlSerializer;->appendIndent(I)V+]Ljava/lang/String;Ljava/lang/String; -HSPLcom/android/internal/util/FastXmlSerializer;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/FastXmlSerializer;->endDocument()V -HSPLcom/android/internal/util/FastXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/FastXmlSerializer;->escapeAndAppendString(Ljava/lang/String;)V+]Ljava/lang/String;Ljava/lang/String; -HSPLcom/android/internal/util/FastXmlSerializer;->flush()V -HSPLcom/android/internal/util/FastXmlSerializer;->flushBytes()V -HSPLcom/android/internal/util/FastXmlSerializer;->setFeature(Ljava/lang/String;Z)V -HSPLcom/android/internal/util/FastXmlSerializer;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V -HSPLcom/android/internal/util/FastXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V -HSPLcom/android/internal/util/FastXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/FrameworkStatsLog;->write(III)V -HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIII)V -HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIILjava/lang/String;I)V -HSPLcom/android/internal/util/FrameworkStatsLog;->write(IIJII)V -HSPLcom/android/internal/util/FrameworkStatsLog;->write(IILjava/lang/String;IZ)V -HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;I)V -HSPLcom/android/internal/util/FrameworkStatsLog;->write(ILjava/lang/String;IIF)V -HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I -HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J -HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;+]Ljava/lang/Object;missing_types]Ljava/lang/Class;Ljava/lang/Class; -HSPLcom/android/internal/util/GrowingArrayUtils;->append([ZIZ)[Z -HSPLcom/android/internal/util/GrowingArrayUtils;->growSize(I)I -HSPLcom/android/internal/util/GrowingArrayUtils;->insert([IIII)[I -HSPLcom/android/internal/util/GrowingArrayUtils;->insert([JIIJ)[J -HSPLcom/android/internal/util/GrowingArrayUtils;->insert([Ljava/lang/Object;IILjava/lang/Object;)[Ljava/lang/Object;+]Ljava/lang/Object;[Ljava/lang/Object;]Ljava/lang/Class;Ljava/lang/Class; -HSPLcom/android/internal/util/GrowingArrayUtils;->insert([ZIIZ)[Z -HSPLcom/android/internal/util/IndentingPrintWriter;->decreaseIndent()Lcom/android/internal/util/IndentingPrintWriter; -HSPLcom/android/internal/util/IndentingPrintWriter;->increaseIndent()Lcom/android/internal/util/IndentingPrintWriter; -HSPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter; -HSPLcom/android/internal/util/IntPair;->first(J)I -HSPLcom/android/internal/util/IntPair;->of(II)J -HSPLcom/android/internal/util/IntPair;->second(J)I -HSPLcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda0;-><init>(Lcom/android/internal/util/LatencyTracker;I)V -HSPLcom/android/internal/util/LatencyTracker$Session;-><init>(ILjava/lang/String;)V -HSPLcom/android/internal/util/LatencyTracker$Session;->begin(Ljava/lang/Runnable;)V -HSPLcom/android/internal/util/LatencyTracker$Session;->traceName()Ljava/lang/String; -HSPLcom/android/internal/util/LatencyTracker;->-$$Nest$smgetTraceNameOfAction(ILjava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/util/LatencyTracker;-><init>()V -HSPLcom/android/internal/util/LatencyTracker;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker; -HSPLcom/android/internal/util/LatencyTracker;->getNameOfAction(I)Ljava/lang/String; -HSPLcom/android/internal/util/LatencyTracker;->getTraceNameOfAction(ILjava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/util/LatencyTracker;->isEnabled()Z -HSPLcom/android/internal/util/LatencyTracker;->logAction(II)V -HSPLcom/android/internal/util/LatencyTracker;->onActionEnd(I)V -HSPLcom/android/internal/util/LatencyTracker;->onActionStart(ILjava/lang/String;)V -HSPLcom/android/internal/util/LatencyTracker;->updateProperties(Landroid/provider/DeviceConfig$Properties;)V -HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;I)V -HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;II)V -HSPLcom/android/internal/util/LineBreakBufferedWriter;->ensureCapacity(I)V -HSPLcom/android/internal/util/LineBreakBufferedWriter;->flush()V -HSPLcom/android/internal/util/LineBreakBufferedWriter;->println()V -HSPLcom/android/internal/util/LineBreakBufferedWriter;->write(Ljava/lang/String;II)V+]Ljava/lang/String;Ljava/lang/String; -HSPLcom/android/internal/util/LineBreakBufferedWriter;->writeBuffer(I)V -HSPLcom/android/internal/util/MemInfoReader;-><init>()V -HSPLcom/android/internal/util/MemInfoReader;->getTotalSize()J -HSPLcom/android/internal/util/MemInfoReader;->readMemInfo()V -HSPLcom/android/internal/util/MessageUtils;->findMessageNames([Ljava/lang/Class;[Ljava/lang/String;)Landroid/util/SparseArray; -HSPLcom/android/internal/util/NotificationMessagingUtil;->isImportantMessaging(Landroid/service/notification/StatusBarNotification;I)Z -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;-><init>()V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;->parcel(Ljava/lang/Boolean;Landroid/os/Parcel;I)V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForBoolean;->unparcel(Landroid/os/Parcel;)Ljava/lang/Boolean; -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedString;-><init>()V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringArray;-><init>()V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringList;-><init>()V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringValueMap;-><init>()V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;-><init>()V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;->parcel(Ljava/util/Set;Landroid/os/Parcel;I)V -HSPLcom/android/internal/util/Parcelling$BuiltIn$ForStringSet;->unparcel(Landroid/os/Parcel;)Ljava/util/Set; -HSPLcom/android/internal/util/Parcelling$Cache;->get(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling; -HSPLcom/android/internal/util/Parcelling$Cache;->getOrCreate(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling; -HSPLcom/android/internal/util/Parcelling$Cache;->put(Lcom/android/internal/util/Parcelling;)Lcom/android/internal/util/Parcelling; -HSPLcom/android/internal/util/Preconditions;->checkArgument(Z)V -HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V -HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V -HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(FFFLjava/lang/String;)F -HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(IIILjava/lang/String;)I -HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(JJJLjava/lang/String;)J -HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(I)I -HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I -HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(J)J -HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(JLjava/lang/String;)J -HSPLcom/android/internal/util/Preconditions;->checkArgumentPositive(ILjava/lang/String;)I -HSPLcom/android/internal/util/Preconditions;->checkArrayElementsNotNull([Ljava/lang/Object;Ljava/lang/String;)[Ljava/lang/Object; -HSPLcom/android/internal/util/Preconditions;->checkCollectionElementsNotNull(Ljava/util/Collection;Ljava/lang/String;)Ljava/util/Collection; -HSPLcom/android/internal/util/Preconditions;->checkFlagsArgument(II)I -HSPLcom/android/internal/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/util/Preconditions;->checkState(Z)V -HSPLcom/android/internal/util/Preconditions;->checkState(ZLjava/lang/String;)V -HSPLcom/android/internal/util/Preconditions;->checkStringNotEmpty(Ljava/lang/CharSequence;)Ljava/lang/CharSequence; -HSPLcom/android/internal/util/Preconditions;->checkStringNotEmpty(Ljava/lang/CharSequence;Ljava/lang/Object;)Ljava/lang/CharSequence; -HSPLcom/android/internal/util/ProcFileReader;->finishLine()V -HSPLcom/android/internal/util/ScreenshotHelper;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/util/StatLogger;->getTime()J -HSPLcom/android/internal/util/StatLogger;->logDurationStat(IJ)J -HSPLcom/android/internal/util/State;-><init>()V -HSPLcom/android/internal/util/State;->enter()V -HSPLcom/android/internal/util/StateMachine$LogRecords;->add(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V -HSPLcom/android/internal/util/StateMachine$LogRecords;->logOnlyTransitions()Z -HSPLcom/android/internal/util/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcom/android/internal/util/StateMachine;)V -HSPLcom/android/internal/util/StateMachine$SmHandler;->addState(Lcom/android/internal/util/State;Lcom/android/internal/util/State;)Lcom/android/internal/util/StateMachine$SmHandler$StateInfo; -HSPLcom/android/internal/util/StateMachine$SmHandler;->completeConstruction()V -HSPLcom/android/internal/util/StateMachine$SmHandler;->handleMessage(Landroid/os/Message;)V -HSPLcom/android/internal/util/StateMachine$SmHandler;->invokeEnterMethods(I)V -HSPLcom/android/internal/util/StateMachine$SmHandler;->moveTempStateStackToStateStack()I -HSPLcom/android/internal/util/StateMachine$SmHandler;->performTransitions(Lcom/android/internal/util/State;Landroid/os/Message;)V -HSPLcom/android/internal/util/StateMachine$SmHandler;->processMsg(Landroid/os/Message;)Lcom/android/internal/util/State; -HSPLcom/android/internal/util/StateMachine$SmHandler;->setInitialState(Lcom/android/internal/util/State;)V -HSPLcom/android/internal/util/StateMachine$SmHandler;->setupInitialStateStack()V -HSPLcom/android/internal/util/StateMachine;->addState(Lcom/android/internal/util/State;)V -HSPLcom/android/internal/util/StateMachine;->getLogRecString(Landroid/os/Message;)Ljava/lang/String; -HSPLcom/android/internal/util/StateMachine;->initStateMachine(Ljava/lang/String;Landroid/os/Looper;)V -HSPLcom/android/internal/util/StateMachine;->recordLogRec(Landroid/os/Message;)Z -HSPLcom/android/internal/util/StateMachine;->setInitialState(Lcom/android/internal/util/State;)V -HSPLcom/android/internal/util/StateMachine;->start()V -HSPLcom/android/internal/util/StringPool;-><init>()V -HSPLcom/android/internal/util/StringPool;->get([CII)Ljava/lang/String; -HSPLcom/android/internal/util/SyncResultReceiver;-><init>(I)V -HSPLcom/android/internal/util/SyncResultReceiver;->getIntResult()I -HSPLcom/android/internal/util/SyncResultReceiver;->getParcelableResult()Landroid/os/Parcelable; -HSPLcom/android/internal/util/SyncResultReceiver;->send(ILandroid/os/Bundle;)V -HSPLcom/android/internal/util/SyncResultReceiver;->waitResult()V -HSPLcom/android/internal/util/TraceBuffer$ProtoOutputStreamProvider;-><init>()V -HSPLcom/android/internal/util/TraceBuffer;-><init>(ILcom/android/internal/util/TraceBuffer$ProtoProvider;Ljava/util/function/Consumer;)V -HSPLcom/android/internal/util/TraceBuffer;->resetBuffer()V -HSPLcom/android/internal/util/VirtualRefBasePtr;-><init>(J)V -HSPLcom/android/internal/util/VirtualRefBasePtr;->finalize()V -HSPLcom/android/internal/util/VirtualRefBasePtr;->get()J -HSPLcom/android/internal/util/VirtualRefBasePtr;->release()V -HSPLcom/android/internal/util/XmlPullParserWrapper;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V -HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeCount()I -HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeName(I)Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeValue(I)Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->getEventType()I -HSPLcom/android/internal/util/XmlPullParserWrapper;->getName()Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->getText()Ljava/lang/String; -HSPLcom/android/internal/util/XmlPullParserWrapper;->next()I -HSPLcom/android/internal/util/XmlPullParserWrapper;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V -HSPLcom/android/internal/util/XmlSerializerWrapper;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V -HSPLcom/android/internal/util/XmlSerializerWrapper;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlSerializerWrapper;->endDocument()V -HSPLcom/android/internal/util/XmlSerializerWrapper;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlSerializerWrapper;->setFeature(Ljava/lang/String;Z)V -HSPLcom/android/internal/util/XmlSerializerWrapper;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V -HSPLcom/android/internal/util/XmlSerializerWrapper;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V -HSPLcom/android/internal/util/XmlSerializerWrapper;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlSerializerWrapper;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeBoolean(I)Z -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeFloat(I)F -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeInt(I)I -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;->getAttributeLong(I)J -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeBoolean(Ljava/lang/String;Ljava/lang/String;Z)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeFloat(Ljava/lang/String;Ljava/lang/String;F)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeInt(Ljava/lang/String;Ljava/lang/String;I)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;->attributeLong(Ljava/lang/String;Ljava/lang/String;J)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/internal/util/XmlUtils;->beginDocument(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V -HSPLcom/android/internal/util/XmlUtils;->makeTyped(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/modules/utils/TypedXmlPullParser; -HSPLcom/android/internal/util/XmlUtils;->makeTyped(Lorg/xmlpull/v1/XmlSerializer;)Lcom/android/modules/utils/TypedXmlSerializer; -HSPLcom/android/internal/util/XmlUtils;->nextElement(Lorg/xmlpull/v1/XmlPullParser;)V -HSPLcom/android/internal/util/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z -HSPLcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z -HSPLcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I -HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J -HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J -HSPLcom/android/internal/util/XmlUtils;->readMapXml(Ljava/io/InputStream;)Ljava/util/HashMap; -HSPLcom/android/internal/util/XmlUtils;->readStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/internal/util/XmlUtils;->readThisMapXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap;+]Ljava/util/HashMap;Ljava/util/HashMap;]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/internal/util/XmlUtils;->readThisSetXml(Lcom/android/modules/utils/TypedXmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/util/HashSet; -HSPLcom/android/internal/util/XmlUtils;->readThisValueXml(Lcom/android/modules/utils/TypedXmlPullParser;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/lang/Object;+]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser;]Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;]Lcom/android/internal/util/XmlUtils$ReadMapCallback;Landroid/os/PersistableBundle$MyReadMapCallback; -HSPLcom/android/internal/util/XmlUtils;->readValueXml(Lcom/android/modules/utils/TypedXmlPullParser;[Ljava/lang/String;)Ljava/lang/Object; -HSPLcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V -HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V -HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/io/OutputStream;)V -HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;)V -HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V -HSPLcom/android/internal/util/XmlUtils;->writeSetXml(Ljava/util/Set;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;)V -HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;)V -HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V+]Ljava/lang/Integer;Ljava/lang/Integer;]Lcom/android/modules/utils/TypedXmlSerializer;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlSerializer;]Ljava/lang/Object;Ljava/lang/String;]Ljava/lang/Boolean;Ljava/lang/Boolean;]Ljava/lang/Long;Ljava/lang/Long;]Ljava/lang/Float;Ljava/lang/Float; -HSPLcom/android/internal/util/function/pooled/OmniFunction;->run()V -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/HexConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/QuintConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Ljava/util/function/Consumer;Ljava/lang/Object;)Landroid/os/Message; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable; -HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->decodeArgCount(I)I -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->decodeReturnType(I)I -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->encode(II)I -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->-$$Nest$smunmask(II)I -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;)Lcom/android/internal/util/function/pooled/PooledLambdaImpl; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Ljava/lang/Object;IIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledLambda; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->checkNotRecycled()V -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doInvoke()Ljava/lang/Object; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doRecycle()V -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->fillInArg(Ljava/lang/Object;)Z -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getFlags(I)I -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isInvocationArgAtIndex(I)Z -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isRecycleOnUse()Z -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isRecycled()Z -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->mask(II)I -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->popArg(I)Ljava/lang/Object; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycleOnUse()Lcom/android/internal/util/function/pooled/OmniFunction; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycleOnUse()Lcom/android/internal/util/function/pooled/PooledRunnable; -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setFlags(II)V -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setIfInBounds([Ljava/lang/Object;ILjava/lang/Object;)V -HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->unmask(II)I -HSPLcom/android/internal/view/AppearanceRegion;->equals(Ljava/lang/Object;)Z -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->addClient(Lcom/android/internal/inputmethod/IInputMethodClient;Lcom/android/internal/inputmethod/IRemoteInputConnection;I)V -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->asBinder()Landroid/os/IBinder; -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodList(I)Ljava/util/List; -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getImeTrackerService()Lcom/android/internal/inputmethod/IImeTracker; -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->isImeTraceEnabled()Z -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->removeImeSurfaceFromWindowAsync(Landroid/os/IBinder;)V -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->reportPerceptibleAsync(Landroid/os/IBinder;Z)V -HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->startInputOrWindowGainedFocus(ILcom/android/internal/inputmethod/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/inputmethod/IRemoteInputConnection;Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection;IILandroid/window/ImeOnBackInvokedDispatcher;)Lcom/android/internal/inputmethod/InputBindResult; -HSPLcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager; -HSPLcom/android/internal/view/RotationPolicy;->isRotationLockToggleVisible(Landroid/content/Context;)Z -HSPLcom/android/internal/view/RotationPolicy;->isRotationSupported(Landroid/content/Context;)Z -HSPLcom/android/internal/view/SurfaceCallbackHelper$1;-><init>(Lcom/android/internal/view/SurfaceCallbackHelper;)V -HSPLcom/android/internal/view/SurfaceCallbackHelper$1;->run()V -HSPLcom/android/internal/view/SurfaceCallbackHelper;-><init>(Ljava/lang/Runnable;)V -HSPLcom/android/internal/view/SurfaceCallbackHelper;->dispatchSurfaceRedrawNeededAsync(Landroid/view/SurfaceHolder;[Landroid/view/SurfaceHolder$Callback;)V -HSPLcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/view/menu/MenuBuilder;->add(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; -HSPLcom/android/internal/view/menu/MenuBuilder;->addInternal(IIILjava/lang/CharSequence;)Landroid/view/MenuItem; -HSPLcom/android/internal/view/menu/MenuBuilder;->close(Z)V -HSPLcom/android/internal/view/menu/MenuBuilder;->dispatchPresenterUpdate(Z)V -HSPLcom/android/internal/view/menu/MenuBuilder;->findItem(I)Landroid/view/MenuItem; -HSPLcom/android/internal/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList; -HSPLcom/android/internal/view/menu/MenuBuilder;->hasVisibleItems()Z -HSPLcom/android/internal/view/menu/MenuBuilder;->onItemActionRequestChanged(Lcom/android/internal/view/menu/MenuItemImpl;)V -HSPLcom/android/internal/view/menu/MenuBuilder;->onItemsChanged(Z)V -HSPLcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V -HSPLcom/android/internal/view/menu/MenuBuilder;->size()I -HSPLcom/android/internal/view/menu/MenuItemImpl;-><init>(Lcom/android/internal/view/menu/MenuBuilder;IIIILjava/lang/CharSequence;I)V -HSPLcom/android/internal/view/menu/MenuItemImpl;->getContentDescription()Ljava/lang/CharSequence; -HSPLcom/android/internal/view/menu/MenuItemImpl;->getIcon()Landroid/graphics/drawable/Drawable; -HSPLcom/android/internal/view/menu/MenuItemImpl;->getItemId()I -HSPLcom/android/internal/view/menu/MenuItemImpl;->getTitle()Ljava/lang/CharSequence; -HSPLcom/android/internal/view/menu/MenuItemImpl;->hasSubMenu()Z -HSPLcom/android/internal/view/menu/MenuItemImpl;->isEnabled()Z -HSPLcom/android/internal/view/menu/MenuItemImpl;->isVisible()Z -HSPLcom/android/internal/view/menu/MenuItemImpl;->requiresActionButton()Z -HSPLcom/android/internal/view/menu/MenuItemImpl;->setCheckable(Z)Landroid/view/MenuItem; -HSPLcom/android/internal/view/menu/MenuItemImpl;->setChecked(Z)Landroid/view/MenuItem; -HSPLcom/android/internal/view/menu/MenuItemImpl;->setShowAsAction(I)V -HSPLcom/android/internal/view/menu/MenuItemImpl;->setVisible(Z)Landroid/view/MenuItem; -HSPLcom/android/internal/widget/AlertDialogLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLcom/android/internal/widget/AlertDialogLayout;->forceUniformWidth(II)V -HSPLcom/android/internal/widget/AlertDialogLayout;->onLayout(ZIIII)V -HSPLcom/android/internal/widget/AlertDialogLayout;->onMeasure(II)V -HSPLcom/android/internal/widget/AlertDialogLayout;->setChildFrame(Landroid/view/View;IIII)V -HSPLcom/android/internal/widget/AlertDialogLayout;->tryOnMeasure(II)Z -HSPLcom/android/internal/widget/BackgroundFallback;-><init>()V -HSPLcom/android/internal/widget/BackgroundFallback;->draw(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/graphics/Canvas;Landroid/view/View;Landroid/view/View;Landroid/view/View;)V+]Lcom/android/internal/widget/BackgroundFallback;Lcom/android/internal/widget/BackgroundFallback; -HSPLcom/android/internal/widget/BackgroundFallback;->hasFallback()Z -HSPLcom/android/internal/widget/BackgroundFallback;->setDrawable(Landroid/graphics/drawable/Drawable;)V -HSPLcom/android/internal/widget/ButtonBarLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLcom/android/internal/widget/DialogTitle;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V -HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getBoolean(Ljava/lang/String;ZI)Z -HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getCredentialType(I)I -HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; -HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings; -HSPLcom/android/internal/widget/LockPatternUtils$1;-><init>(Lcom/android/internal/widget/LockPatternUtils;)V -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onIsNonStrongBiometricAllowedChanged(ZI)V -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onStrongAuthRequiredChanged(II)V -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;->handleMessage(Landroid/os/Message;)V -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->getStrongAuthForUser(I)I -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleIsNonStrongBiometricAllowedChanged(ZI)V -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleStrongAuthRequiredChanged(II)V -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isNonStrongBiometricAllowedAfterIdleTimeout(I)Z -HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->onIsNonStrongBiometricAllowedChanged(I)V -HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;)V -HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;Lcom/android/internal/widget/ILockSettings;)V+]Landroid/content/Context;Landroid/app/ContextImpl;,Landroid/app/ReceiverRestrictedContext; -HSPLcom/android/internal/widget/LockPatternUtils;->credentialTypeToPasswordQuality(I)I -HSPLcom/android/internal/widget/LockPatternUtils;->getBoolean(Ljava/lang/String;ZI)Z -HSPLcom/android/internal/widget/LockPatternUtils;->getCredentialTypeForUser(I)I -HSPLcom/android/internal/widget/LockPatternUtils;->getDevicePolicyManager()Landroid/app/admin/DevicePolicyManager; -HSPLcom/android/internal/widget/LockPatternUtils;->getEnabledTrustAgents(I)Ljava/util/List; -HSPLcom/android/internal/widget/LockPatternUtils;->getKeyguardStoredPasswordQuality(I)I -HSPLcom/android/internal/widget/LockPatternUtils;->getLockSettings()Lcom/android/internal/widget/ILockSettings; -HSPLcom/android/internal/widget/LockPatternUtils;->getPowerButtonInstantlyLocks(I)Z -HSPLcom/android/internal/widget/LockPatternUtils;->getString(Ljava/lang/String;I)Ljava/lang/String; -HSPLcom/android/internal/widget/LockPatternUtils;->hasSeparateChallenge(I)Z -HSPLcom/android/internal/widget/LockPatternUtils;->isManagedProfile(I)Z -HSPLcom/android/internal/widget/LockPatternUtils;->isOwnerInfoEnabled(I)Z -HSPLcom/android/internal/widget/LockPatternUtils;->isSecure(I)Z -HSPLcom/android/internal/widget/LockPatternUtils;->isSeparateProfileChallengeEnabled(I)Z -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeBoolean(Ljava/lang/String;Ljava/lang/String;)Z+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeFloat(Ljava/lang/String;Ljava/lang/String;)F -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndex(Ljava/lang/String;Ljava/lang/String;)I+]Ljava/lang/Object;Ljava/lang/String;]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeIndexOrThrow(Ljava/lang/String;Ljava/lang/String;)I+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeInt(Ljava/lang/String;Ljava/lang/String;)I+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/modules/utils/TypedXmlPullParser;->getAttributeLong(Ljava/lang/String;Ljava/lang/String;)J+]Lcom/android/modules/utils/TypedXmlPullParser;Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalAddresses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z -HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalDnses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z -HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalHttpProxy(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z -HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalInterfaceName(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z -HSPLcom/android/net/module/util/LinkPropertiesUtils;->isIdenticalRoutes(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)Z -HSPLcom/android/net/module/util/MacAddressUtils;->isMacAddress([B)Z -HSPLcom/android/net/module/util/MacAddressUtils;->longAddrFromByteAddr([B)J -HSPLcom/android/net/module/util/NetUtils;->maskRawAddress([BI)V -HSPLcom/android/net/module/util/NetworkCapabilitiesUtils;-><clinit>()V -HSPLcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V -HSPLcom/android/okhttp/Address;->equals(Ljava/lang/Object;)Z -HSPLcom/android/okhttp/Address;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner; -HSPLcom/android/okhttp/Address;->getConnectionSpecs()Ljava/util/List; -HSPLcom/android/okhttp/Address;->getDns()Lcom/android/okhttp/Dns; -HSPLcom/android/okhttp/Address;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier; -HSPLcom/android/okhttp/Address;->getProtocols()Ljava/util/List; -HSPLcom/android/okhttp/Address;->getProxy()Ljava/net/Proxy; -HSPLcom/android/okhttp/Address;->getProxySelector()Ljava/net/ProxySelector; -HSPLcom/android/okhttp/Address;->getSocketFactory()Ljavax/net/SocketFactory; -HSPLcom/android/okhttp/Address;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory; -HSPLcom/android/okhttp/Address;->getUriHost()Ljava/lang/String; -HSPLcom/android/okhttp/Address;->getUriPort()I -HSPLcom/android/okhttp/Address;->hashCode()I -HSPLcom/android/okhttp/Address;->url()Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/CacheControl;-><init>(ZZIIZZZIIZZLjava/lang/String;)V -HSPLcom/android/okhttp/CacheControl;->onlyIfCached()Z -HSPLcom/android/okhttp/CacheControl;->parse(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/CacheControl; -HSPLcom/android/okhttp/ConfigAwareConnectionPool$1;-><init>(Lcom/android/okhttp/ConfigAwareConnectionPool;)V -HSPLcom/android/okhttp/ConfigAwareConnectionPool$1;->onNetworkConfigurationChanged()V -HSPLcom/android/okhttp/ConfigAwareConnectionPool;->access$002(Lcom/android/okhttp/ConfigAwareConnectionPool;Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/ConnectionPool; -HSPLcom/android/okhttp/ConfigAwareConnectionPool;->get()Lcom/android/okhttp/ConnectionPool; -HSPLcom/android/okhttp/ConfigAwareConnectionPool;->getInstance()Lcom/android/okhttp/ConfigAwareConnectionPool; -HSPLcom/android/okhttp/ConnectionPool$1;-><init>(Lcom/android/okhttp/ConnectionPool;)V -HSPLcom/android/okhttp/ConnectionPool$1;->run()V -HSPLcom/android/okhttp/ConnectionPool;-><init>(IJ)V -HSPLcom/android/okhttp/ConnectionPool;-><init>(IJLjava/util/concurrent/TimeUnit;)V -HSPLcom/android/okhttp/ConnectionPool;->cleanup(J)J -HSPLcom/android/okhttp/ConnectionPool;->connectionBecameIdle(Lcom/android/okhttp/internal/io/RealConnection;)Z -HSPLcom/android/okhttp/ConnectionPool;->get(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection; -HSPLcom/android/okhttp/ConnectionPool;->pruneAndGetAllocationCount(Lcom/android/okhttp/internal/io/RealConnection;J)I -HSPLcom/android/okhttp/ConnectionPool;->put(Lcom/android/okhttp/internal/io/RealConnection;)V -HSPLcom/android/okhttp/ConnectionSpec$Builder;-><init>(Lcom/android/okhttp/ConnectionSpec;)V -HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$000(Lcom/android/okhttp/ConnectionSpec$Builder;)Z -HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$100(Lcom/android/okhttp/ConnectionSpec$Builder;)[Ljava/lang/String; -HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$200(Lcom/android/okhttp/ConnectionSpec$Builder;)[Ljava/lang/String; -HSPLcom/android/okhttp/ConnectionSpec$Builder;->access$300(Lcom/android/okhttp/ConnectionSpec$Builder;)Z -HSPLcom/android/okhttp/ConnectionSpec$Builder;->build()Lcom/android/okhttp/ConnectionSpec; -HSPLcom/android/okhttp/ConnectionSpec$Builder;->cipherSuites([Ljava/lang/String;)Lcom/android/okhttp/ConnectionSpec$Builder; -HSPLcom/android/okhttp/ConnectionSpec$Builder;->tlsVersions([Ljava/lang/String;)Lcom/android/okhttp/ConnectionSpec$Builder; -HSPLcom/android/okhttp/ConnectionSpec;-><init>(Lcom/android/okhttp/ConnectionSpec$Builder;)V -HSPLcom/android/okhttp/ConnectionSpec;-><init>(Lcom/android/okhttp/ConnectionSpec$Builder;Lcom/android/okhttp/ConnectionSpec$1;)V -HSPLcom/android/okhttp/ConnectionSpec;->access$400(Lcom/android/okhttp/ConnectionSpec;)Z -HSPLcom/android/okhttp/ConnectionSpec;->access$500(Lcom/android/okhttp/ConnectionSpec;)[Ljava/lang/String; -HSPLcom/android/okhttp/ConnectionSpec;->access$600(Lcom/android/okhttp/ConnectionSpec;)[Ljava/lang/String; -HSPLcom/android/okhttp/ConnectionSpec;->access$700(Lcom/android/okhttp/ConnectionSpec;)Z -HSPLcom/android/okhttp/ConnectionSpec;->apply(Ljavax/net/ssl/SSLSocket;Z)V -HSPLcom/android/okhttp/ConnectionSpec;->equals(Ljava/lang/Object;)Z -HSPLcom/android/okhttp/ConnectionSpec;->hashCode()I -HSPLcom/android/okhttp/ConnectionSpec;->isCompatible(Ljavax/net/ssl/SSLSocket;)Z -HSPLcom/android/okhttp/ConnectionSpec;->supportedSpec(Ljavax/net/ssl/SSLSocket;Z)Lcom/android/okhttp/ConnectionSpec; -HSPLcom/android/okhttp/ConnectionSpec;->supportsTlsExtensions()Z -HSPLcom/android/okhttp/Dispatcher;-><init>()V -HSPLcom/android/okhttp/Dns$1;->lookup(Ljava/lang/String;)Ljava/util/List; -HSPLcom/android/okhttp/Handshake;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V -HSPLcom/android/okhttp/Handshake;->get(Ljavax/net/ssl/SSLSession;)Lcom/android/okhttp/Handshake; -HSPLcom/android/okhttp/Headers$Builder;-><init>()V -HSPLcom/android/okhttp/Headers$Builder;->access$000(Lcom/android/okhttp/Headers$Builder;)Ljava/util/List; -HSPLcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Headers$Builder;->addLenient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Headers$Builder;->build()Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/Headers$Builder;->checkNameAndValue(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/Headers$Builder;->get(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/Headers$Builder;->removeAll(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Headers$Builder;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Headers;-><init>(Lcom/android/okhttp/Headers$Builder;)V -HSPLcom/android/okhttp/Headers;-><init>(Lcom/android/okhttp/Headers$Builder;Lcom/android/okhttp/Headers$1;)V -HSPLcom/android/okhttp/Headers;->get(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/Headers;->get([Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/Headers;->name(I)Ljava/lang/String; -HSPLcom/android/okhttp/Headers;->newBuilder()Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Headers;->size()I -HSPLcom/android/okhttp/Headers;->value(I)Ljava/lang/String; -HSPLcom/android/okhttp/HttpHandler$CleartextURLFilter;->checkURLPermitted(Ljava/net/URL;)V -HSPLcom/android/okhttp/HttpHandler;-><init>()V -HSPLcom/android/okhttp/HttpHandler;->createHttpOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory; -HSPLcom/android/okhttp/HttpHandler;->newOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory; -HSPLcom/android/okhttp/HttpHandler;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection; -HSPLcom/android/okhttp/HttpUrl$Builder;-><init>()V -HSPLcom/android/okhttp/HttpUrl$Builder;->build()Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/HttpUrl$Builder;->canonicalizeHost(Ljava/lang/String;II)Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl$Builder;->containsInvalidHostnameAsciiCodes(Ljava/lang/String;)Z -HSPLcom/android/okhttp/HttpUrl$Builder;->domainToAscii(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl$Builder;->effectivePort()I -HSPLcom/android/okhttp/HttpUrl$Builder;->encodedQuery(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder; -HSPLcom/android/okhttp/HttpUrl$Builder;->host(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder; -HSPLcom/android/okhttp/HttpUrl$Builder;->isDot(Ljava/lang/String;)Z -HSPLcom/android/okhttp/HttpUrl$Builder;->isDotDot(Ljava/lang/String;)Z -HSPLcom/android/okhttp/HttpUrl$Builder;->parse(Lcom/android/okhttp/HttpUrl;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult; -HSPLcom/android/okhttp/HttpUrl$Builder;->parsePort(Ljava/lang/String;II)I -HSPLcom/android/okhttp/HttpUrl$Builder;->port(I)Lcom/android/okhttp/HttpUrl$Builder; -HSPLcom/android/okhttp/HttpUrl$Builder;->portColonOffset(Ljava/lang/String;II)I -HSPLcom/android/okhttp/HttpUrl$Builder;->push(Ljava/lang/String;IIZZ)V -HSPLcom/android/okhttp/HttpUrl$Builder;->reencodeForUri()Lcom/android/okhttp/HttpUrl$Builder; -HSPLcom/android/okhttp/HttpUrl$Builder;->resolvePath(Ljava/lang/String;II)V -HSPLcom/android/okhttp/HttpUrl$Builder;->scheme(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder; -HSPLcom/android/okhttp/HttpUrl$Builder;->schemeDelimiterOffset(Ljava/lang/String;II)I -HSPLcom/android/okhttp/HttpUrl$Builder;->skipLeadingAsciiWhitespace(Ljava/lang/String;II)I -HSPLcom/android/okhttp/HttpUrl$Builder;->skipTrailingAsciiWhitespace(Ljava/lang/String;II)I -HSPLcom/android/okhttp/HttpUrl$Builder;->slashCount(Ljava/lang/String;II)I -HSPLcom/android/okhttp/HttpUrl$Builder;->toString()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;)V -HSPLcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;Lcom/android/okhttp/HttpUrl$1;)V -HSPLcom/android/okhttp/HttpUrl;->access$200(Ljava/lang/String;IILjava/lang/String;)I -HSPLcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;IILjava/lang/String;ZZZZ)Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;Ljava/lang/String;ZZZZ)Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->decodeHexDigit(C)I -HSPLcom/android/okhttp/HttpUrl;->defaultPort(Ljava/lang/String;)I -HSPLcom/android/okhttp/HttpUrl;->delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I -HSPLcom/android/okhttp/HttpUrl;->encodedFragment()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->encodedPassword()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->encodedPath()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->encodedPathSegments()Ljava/util/List; -HSPLcom/android/okhttp/HttpUrl;->encodedQuery()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->encodedUsername()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->equals(Ljava/lang/Object;)Z -HSPLcom/android/okhttp/HttpUrl;->getChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/HttpUrl;->hashCode()I -HSPLcom/android/okhttp/HttpUrl;->host()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->isHttps()Z -HSPLcom/android/okhttp/HttpUrl;->namesAndValuesToQueryString(Ljava/lang/StringBuilder;Ljava/util/List;)V -HSPLcom/android/okhttp/HttpUrl;->newBuilder()Lcom/android/okhttp/HttpUrl$Builder; -HSPLcom/android/okhttp/HttpUrl;->pathSegmentsToString(Ljava/lang/StringBuilder;Ljava/util/List;)V -HSPLcom/android/okhttp/HttpUrl;->percentDecode(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IIZ)V -HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;IIZ)Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/lang/String;Z)Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/util/List;Z)Ljava/util/List; -HSPLcom/android/okhttp/HttpUrl;->port()I -HSPLcom/android/okhttp/HttpUrl;->queryStringToNamesAndValues(Ljava/lang/String;)Ljava/util/List; -HSPLcom/android/okhttp/HttpUrl;->scheme()Ljava/lang/String; -HSPLcom/android/okhttp/HttpUrl;->uri()Ljava/net/URI; -HSPLcom/android/okhttp/HttpUrl;->url()Ljava/net/URL; -HSPLcom/android/okhttp/HttpsHandler;-><init>()V -HSPLcom/android/okhttp/HttpsHandler;->createHttpsOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory; -HSPLcom/android/okhttp/HttpsHandler;->newOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory; -HSPLcom/android/okhttp/OkHttpClient$1;->addLenient(Lcom/android/okhttp/Headers$Builder;Ljava/lang/String;)V -HSPLcom/android/okhttp/OkHttpClient$1;->apply(Lcom/android/okhttp/ConnectionSpec;Ljavax/net/ssl/SSLSocket;Z)V -HSPLcom/android/okhttp/OkHttpClient$1;->connectionBecameIdle(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/internal/io/RealConnection;)Z -HSPLcom/android/okhttp/OkHttpClient$1;->get(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/http/StreamAllocation;)Lcom/android/okhttp/internal/io/RealConnection; -HSPLcom/android/okhttp/OkHttpClient$1;->getHttpUrlChecked(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/OkHttpClient$1;->internalCache(Lcom/android/okhttp/OkHttpClient;)Lcom/android/okhttp/internal/InternalCache; -HSPLcom/android/okhttp/OkHttpClient$1;->put(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/internal/io/RealConnection;)V -HSPLcom/android/okhttp/OkHttpClient$1;->routeDatabase(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/internal/RouteDatabase; -HSPLcom/android/okhttp/OkHttpClient;-><init>()V -HSPLcom/android/okhttp/OkHttpClient;-><init>(Lcom/android/okhttp/OkHttpClient;)V -HSPLcom/android/okhttp/OkHttpClient;->copyWithDefaults()Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->getAuthenticator()Lcom/android/okhttp/Authenticator; -HSPLcom/android/okhttp/OkHttpClient;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner; -HSPLcom/android/okhttp/OkHttpClient;->getConnectTimeout()I -HSPLcom/android/okhttp/OkHttpClient;->getConnectionPool()Lcom/android/okhttp/ConnectionPool; -HSPLcom/android/okhttp/OkHttpClient;->getConnectionSpecs()Ljava/util/List; -HSPLcom/android/okhttp/OkHttpClient;->getCookieHandler()Ljava/net/CookieHandler; -HSPLcom/android/okhttp/OkHttpClient;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory; -HSPLcom/android/okhttp/OkHttpClient;->getDns()Lcom/android/okhttp/Dns; -HSPLcom/android/okhttp/OkHttpClient;->getFollowRedirects()Z -HSPLcom/android/okhttp/OkHttpClient;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier; -HSPLcom/android/okhttp/OkHttpClient;->getProtocols()Ljava/util/List; -HSPLcom/android/okhttp/OkHttpClient;->getProxy()Ljava/net/Proxy; -HSPLcom/android/okhttp/OkHttpClient;->getProxySelector()Ljava/net/ProxySelector; -HSPLcom/android/okhttp/OkHttpClient;->getReadTimeout()I -HSPLcom/android/okhttp/OkHttpClient;->getRetryOnConnectionFailure()Z -HSPLcom/android/okhttp/OkHttpClient;->getSocketFactory()Ljavax/net/SocketFactory; -HSPLcom/android/okhttp/OkHttpClient;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory; -HSPLcom/android/okhttp/OkHttpClient;->getWriteTimeout()I -HSPLcom/android/okhttp/OkHttpClient;->internalCache()Lcom/android/okhttp/internal/InternalCache; -HSPLcom/android/okhttp/OkHttpClient;->setCertificatePinner(Lcom/android/okhttp/CertificatePinner;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setConnectTimeout(JLjava/util/concurrent/TimeUnit;)V -HSPLcom/android/okhttp/OkHttpClient;->setConnectionPool(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setConnectionSpecs(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setDns(Lcom/android/okhttp/Dns;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setFollowRedirects(Z)V -HSPLcom/android/okhttp/OkHttpClient;->setFollowSslRedirects(Z)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setProtocols(Ljava/util/List;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setProxy(Ljava/net/Proxy;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setReadTimeout(JLjava/util/concurrent/TimeUnit;)V -HSPLcom/android/okhttp/OkHttpClient;->setSocketFactory(Ljavax/net/SocketFactory;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setSslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkHttpClient;->setWriteTimeout(JLjava/util/concurrent/TimeUnit;)V -HSPLcom/android/okhttp/OkUrlFactories;->open(Lcom/android/okhttp/OkUrlFactory;Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/HttpURLConnection; -HSPLcom/android/okhttp/OkUrlFactories;->setUrlFilter(Lcom/android/okhttp/OkUrlFactory;Lcom/android/okhttp/internal/URLFilter;)V -HSPLcom/android/okhttp/OkUrlFactory;-><init>(Lcom/android/okhttp/OkHttpClient;)V -HSPLcom/android/okhttp/OkUrlFactory;->client()Lcom/android/okhttp/OkHttpClient; -HSPLcom/android/okhttp/OkUrlFactory;->open(Ljava/net/URL;)Ljava/net/HttpURLConnection; -HSPLcom/android/okhttp/OkUrlFactory;->open(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/HttpURLConnection; -HSPLcom/android/okhttp/OkUrlFactory;->setUrlFilter(Lcom/android/okhttp/internal/URLFilter;)V -HSPLcom/android/okhttp/Protocol;->get(Ljava/lang/String;)Lcom/android/okhttp/Protocol; -HSPLcom/android/okhttp/Protocol;->toString()Ljava/lang/String; -HSPLcom/android/okhttp/Request$Builder;-><init>()V -HSPLcom/android/okhttp/Request$Builder;-><init>(Lcom/android/okhttp/Request;)V -HSPLcom/android/okhttp/Request$Builder;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Request$1;)V -HSPLcom/android/okhttp/Request$Builder;->access$000(Lcom/android/okhttp/Request$Builder;)Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/Request$Builder;->access$100(Lcom/android/okhttp/Request$Builder;)Ljava/lang/String; -HSPLcom/android/okhttp/Request$Builder;->access$200(Lcom/android/okhttp/Request$Builder;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Request$Builder;->access$300(Lcom/android/okhttp/Request$Builder;)Lcom/android/okhttp/RequestBody; -HSPLcom/android/okhttp/Request$Builder;->access$400(Lcom/android/okhttp/Request$Builder;)Ljava/lang/Object; -HSPLcom/android/okhttp/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder; -HSPLcom/android/okhttp/Request$Builder;->build()Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/Request$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder; -HSPLcom/android/okhttp/Request$Builder;->method(Ljava/lang/String;Lcom/android/okhttp/RequestBody;)Lcom/android/okhttp/Request$Builder; -HSPLcom/android/okhttp/Request$Builder;->url(Lcom/android/okhttp/HttpUrl;)Lcom/android/okhttp/Request$Builder; -HSPLcom/android/okhttp/Request;-><init>(Lcom/android/okhttp/Request$Builder;)V -HSPLcom/android/okhttp/Request;-><init>(Lcom/android/okhttp/Request$Builder;Lcom/android/okhttp/Request$1;)V -HSPLcom/android/okhttp/Request;->access$1000(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/Request;->access$600(Lcom/android/okhttp/Request;)Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/Request;->access$700(Lcom/android/okhttp/Request;)Ljava/lang/String; -HSPLcom/android/okhttp/Request;->access$800(Lcom/android/okhttp/Request;)Lcom/android/okhttp/RequestBody; -HSPLcom/android/okhttp/Request;->access$900(Lcom/android/okhttp/Request;)Ljava/lang/Object; -HSPLcom/android/okhttp/Request;->cacheControl()Lcom/android/okhttp/CacheControl; -HSPLcom/android/okhttp/Request;->header(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/Request;->headers()Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/Request;->httpUrl()Lcom/android/okhttp/HttpUrl; -HSPLcom/android/okhttp/Request;->isHttps()Z -HSPLcom/android/okhttp/Request;->method()Ljava/lang/String; -HSPLcom/android/okhttp/Request;->newBuilder()Lcom/android/okhttp/Request$Builder; -HSPLcom/android/okhttp/Request;->url()Ljava/net/URL; -HSPLcom/android/okhttp/Response$Builder;-><init>()V -HSPLcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;)V -HSPLcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response$1;)V -HSPLcom/android/okhttp/Response$Builder;->access$000(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/Response$Builder;->access$100(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Protocol; -HSPLcom/android/okhttp/Response$Builder;->access$200(Lcom/android/okhttp/Response$Builder;)I -HSPLcom/android/okhttp/Response$Builder;->access$300(Lcom/android/okhttp/Response$Builder;)Ljava/lang/String; -HSPLcom/android/okhttp/Response$Builder;->access$400(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Handshake; -HSPLcom/android/okhttp/Response$Builder;->access$500(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Headers$Builder; -HSPLcom/android/okhttp/Response$Builder;->access$600(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/ResponseBody; -HSPLcom/android/okhttp/Response$Builder;->access$700(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response$Builder;->access$800(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response$Builder;->access$900(Lcom/android/okhttp/Response$Builder;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response$Builder;->body(Lcom/android/okhttp/ResponseBody;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->build()Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response$Builder;->cacheResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->checkSupportResponse(Ljava/lang/String;Lcom/android/okhttp/Response;)V -HSPLcom/android/okhttp/Response$Builder;->code(I)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->handshake(Lcom/android/okhttp/Handshake;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->header(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->headers(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->message(Ljava/lang/String;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->networkResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->priorResponse(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->protocol(Lcom/android/okhttp/Protocol;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response$Builder;->request(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response;-><init>(Lcom/android/okhttp/Response$Builder;)V -HSPLcom/android/okhttp/Response;-><init>(Lcom/android/okhttp/Response$Builder;Lcom/android/okhttp/Response$1;)V -HSPLcom/android/okhttp/Response;->access$1100(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/Response;->access$1200(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Protocol; -HSPLcom/android/okhttp/Response;->access$1300(Lcom/android/okhttp/Response;)I -HSPLcom/android/okhttp/Response;->access$1400(Lcom/android/okhttp/Response;)Ljava/lang/String; -HSPLcom/android/okhttp/Response;->access$1500(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Handshake; -HSPLcom/android/okhttp/Response;->access$1600(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/Response;->access$1700(Lcom/android/okhttp/Response;)Lcom/android/okhttp/ResponseBody; -HSPLcom/android/okhttp/Response;->access$1800(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response;->access$1900(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response;->access$2000(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response;->body()Lcom/android/okhttp/ResponseBody; -HSPLcom/android/okhttp/Response;->cacheResponse()Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response;->code()I -HSPLcom/android/okhttp/Response;->header(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/Response;->headers()Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/Response;->message()Ljava/lang/String; -HSPLcom/android/okhttp/Response;->networkResponse()Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/Response;->newBuilder()Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/Response;->protocol()Lcom/android/okhttp/Protocol; -HSPLcom/android/okhttp/Response;->request()Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/ResponseBody;-><init>()V -HSPLcom/android/okhttp/ResponseBody;->byteStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/Route;-><init>(Lcom/android/okhttp/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V -HSPLcom/android/okhttp/Route;->equals(Ljava/lang/Object;)Z -HSPLcom/android/okhttp/Route;->getAddress()Lcom/android/okhttp/Address; -HSPLcom/android/okhttp/Route;->getProxy()Ljava/net/Proxy; -HSPLcom/android/okhttp/Route;->getSocketAddress()Ljava/net/InetSocketAddress; -HSPLcom/android/okhttp/Route;->hashCode()I -HSPLcom/android/okhttp/Route;->requiresTunnel()Z -HSPLcom/android/okhttp/internal/ConnectionSpecSelector;-><init>(Ljava/util/List;)V -HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->configureSecureSocket(Ljavax/net/ssl/SSLSocket;)Lcom/android/okhttp/ConnectionSpec; -HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->connectionFailed(Ljava/io/IOException;)Z -HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->isFallbackPossible(Ljavax/net/ssl/SSLSocket;)Z -HSPLcom/android/okhttp/internal/OptionalMethod;->getMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLcom/android/okhttp/internal/OptionalMethod;->getPublicMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLcom/android/okhttp/internal/OptionalMethod;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/okhttp/internal/OptionalMethod;->invokeOptional(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/okhttp/internal/OptionalMethod;->invokeOptionalWithoutCheckedException(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/okhttp/internal/OptionalMethod;->invokeWithoutCheckedException(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; -HSPLcom/android/okhttp/internal/OptionalMethod;->isSupported(Ljava/lang/Object;)Z -HSPLcom/android/okhttp/internal/Platform;->afterHandshake(Ljavax/net/ssl/SSLSocket;)V -HSPLcom/android/okhttp/internal/Platform;->concatLengthPrefixed(Ljava/util/List;)[B -HSPLcom/android/okhttp/internal/Platform;->configureTlsExtensions(Ljavax/net/ssl/SSLSocket;Ljava/lang/String;Ljava/util/List;)V -HSPLcom/android/okhttp/internal/Platform;->connectSocket(Ljava/net/Socket;Ljava/net/InetSocketAddress;I)V -HSPLcom/android/okhttp/internal/Platform;->get()Lcom/android/okhttp/internal/Platform; -HSPLcom/android/okhttp/internal/Platform;->getProtocolIds(Ljava/util/List;)[Ljava/lang/String; -HSPLcom/android/okhttp/internal/Platform;->getSelectedProtocol(Ljavax/net/ssl/SSLSocket;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/Platform;->isPlatformSocket(Ljavax/net/ssl/SSLSocket;)Z -HSPLcom/android/okhttp/internal/RouteDatabase;-><init>()V -HSPLcom/android/okhttp/internal/RouteDatabase;->connected(Lcom/android/okhttp/Route;)V -HSPLcom/android/okhttp/internal/RouteDatabase;->failed(Lcom/android/okhttp/Route;)V -HSPLcom/android/okhttp/internal/RouteDatabase;->shouldPostpone(Lcom/android/okhttp/Route;)Z -HSPLcom/android/okhttp/internal/Util$1;-><init>(Ljava/lang/String;Z)V -HSPLcom/android/okhttp/internal/Util$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -HSPLcom/android/okhttp/internal/Util;->checkOffsetAndCount(JJJ)V -HSPLcom/android/okhttp/internal/Util;->closeQuietly(Ljava/io/Closeable;)V -HSPLcom/android/okhttp/internal/Util;->closeQuietly(Ljava/net/Socket;)V -HSPLcom/android/okhttp/internal/Util;->discard(Lcom/android/okhttp/okio/Source;ILjava/util/concurrent/TimeUnit;)Z -HSPLcom/android/okhttp/internal/Util;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLcom/android/okhttp/internal/Util;->hostHeader(Lcom/android/okhttp/HttpUrl;Z)Ljava/lang/String; -HSPLcom/android/okhttp/internal/Util;->immutableList(Ljava/util/List;)Ljava/util/List; -HSPLcom/android/okhttp/internal/Util;->immutableList([Ljava/lang/Object;)Ljava/util/List; -HSPLcom/android/okhttp/internal/Util;->skipAll(Lcom/android/okhttp/okio/Source;ILjava/util/concurrent/TimeUnit;)Z -HSPLcom/android/okhttp/internal/Util;->threadFactory(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory; -HSPLcom/android/okhttp/internal/Util;->toHumanReadableAscii(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;-><init>(JLcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V -HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;->get()Lcom/android/okhttp/internal/http/CacheStrategy; -HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;->getCandidate()Lcom/android/okhttp/internal/http/CacheStrategy; -HSPLcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V -HSPLcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;Lcom/android/okhttp/internal/http/CacheStrategy$1;)V -HSPLcom/android/okhttp/internal/http/HeaderParser;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I -HSPLcom/android/okhttp/internal/http/HeaderParser;->skipWhitespace(Ljava/lang/String;I)I -HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;)V -HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/Http1xStream$1;)V -HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->endOfInput()V -HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->timeout()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->unexpectedEndOfInput()V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;)V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/Http1xStream$1;)V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->close()V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->flush()V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/HttpEngine;)V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->close()V -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->readChunkSize()V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;J)V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;JLcom/android/okhttp/internal/http/Http1xStream$1;)V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;->close()V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;->flush()V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;J)V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;->close()V -HSPLcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/internal/http/Http1xStream;-><init>(Lcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/okio/BufferedSource;Lcom/android/okhttp/okio/BufferedSink;)V -HSPLcom/android/okhttp/internal/http/Http1xStream;->access$300(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/internal/http/Http1xStream;->access$400(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/okio/ForwardingTimeout;)V -HSPLcom/android/okhttp/internal/http/Http1xStream;->access$500(Lcom/android/okhttp/internal/http/Http1xStream;)I -HSPLcom/android/okhttp/internal/http/Http1xStream;->access$502(Lcom/android/okhttp/internal/http/Http1xStream;I)I -HSPLcom/android/okhttp/internal/http/Http1xStream;->access$600(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/okio/BufferedSource; -HSPLcom/android/okhttp/internal/http/Http1xStream;->access$700(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/internal/http/StreamAllocation; -HSPLcom/android/okhttp/internal/http/Http1xStream;->cancel()V -HSPLcom/android/okhttp/internal/http/Http1xStream;->createRequestBody(Lcom/android/okhttp/Request;J)Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/internal/http/Http1xStream;->detachTimeout(Lcom/android/okhttp/okio/ForwardingTimeout;)V -HSPLcom/android/okhttp/internal/http/Http1xStream;->finishRequest()V -HSPLcom/android/okhttp/internal/http/Http1xStream;->getTransferStream(Lcom/android/okhttp/Response;)Lcom/android/okhttp/okio/Source; -HSPLcom/android/okhttp/internal/http/Http1xStream;->newChunkedSink()Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/internal/http/Http1xStream;->newChunkedSource(Lcom/android/okhttp/internal/http/HttpEngine;)Lcom/android/okhttp/okio/Source; -HSPLcom/android/okhttp/internal/http/Http1xStream;->newFixedLengthSink(J)Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/internal/http/Http1xStream;->newFixedLengthSource(J)Lcom/android/okhttp/okio/Source; -HSPLcom/android/okhttp/internal/http/Http1xStream;->openResponseBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/ResponseBody; -HSPLcom/android/okhttp/internal/http/Http1xStream;->readHeaders()Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/internal/http/Http1xStream;->readResponse()Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/internal/http/Http1xStream;->readResponseHeaders()Lcom/android/okhttp/Response$Builder; -HSPLcom/android/okhttp/internal/http/Http1xStream;->setHttpEngine(Lcom/android/okhttp/internal/http/HttpEngine;)V -HSPLcom/android/okhttp/internal/http/Http1xStream;->writeRequest(Lcom/android/okhttp/Headers;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/http/Http1xStream;->writeRequestBody(Lcom/android/okhttp/internal/http/RetryableSink;)V -HSPLcom/android/okhttp/internal/http/Http1xStream;->writeRequestHeaders(Lcom/android/okhttp/Request;)V -HSPLcom/android/okhttp/internal/http/HttpEngine;-><init>(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;ZZZLcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)V -HSPLcom/android/okhttp/internal/http/HttpEngine;->cacheWritingResponse(Lcom/android/okhttp/internal/http/CacheRequest;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/internal/http/HttpEngine;->cancel()V -HSPLcom/android/okhttp/internal/http/HttpEngine;->close()Lcom/android/okhttp/internal/http/StreamAllocation; -HSPLcom/android/okhttp/internal/http/HttpEngine;->connect()Lcom/android/okhttp/internal/http/HttpStream; -HSPLcom/android/okhttp/internal/http/HttpEngine;->createAddress(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;)Lcom/android/okhttp/Address; -HSPLcom/android/okhttp/internal/http/HttpEngine;->followUpRequest()Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/internal/http/HttpEngine;->getBufferedRequestBody()Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/internal/http/HttpEngine;->getConnection()Lcom/android/okhttp/Connection; -HSPLcom/android/okhttp/internal/http/HttpEngine;->getRequest()Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/internal/http/HttpEngine;->getRequestBody()Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/internal/http/HttpEngine;->getResponse()Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/internal/http/HttpEngine;->hasBody(Lcom/android/okhttp/Response;)Z -HSPLcom/android/okhttp/internal/http/HttpEngine;->hasResponse()Z -HSPLcom/android/okhttp/internal/http/HttpEngine;->maybeCache()V -HSPLcom/android/okhttp/internal/http/HttpEngine;->networkRequest(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Request; -HSPLcom/android/okhttp/internal/http/HttpEngine;->permitsRequestBody(Lcom/android/okhttp/Request;)Z -HSPLcom/android/okhttp/internal/http/HttpEngine;->readNetworkResponse()Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/internal/http/HttpEngine;->readResponse()V -HSPLcom/android/okhttp/internal/http/HttpEngine;->receiveHeaders(Lcom/android/okhttp/Headers;)V -HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine; -HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;)Lcom/android/okhttp/internal/http/HttpEngine; -HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/internal/http/HttpEngine; -HSPLcom/android/okhttp/internal/http/HttpEngine;->releaseStreamAllocation()V -HSPLcom/android/okhttp/internal/http/HttpEngine;->sendRequest()V -HSPLcom/android/okhttp/internal/http/HttpEngine;->stripBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/internal/http/HttpEngine;->unzip(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response; -HSPLcom/android/okhttp/internal/http/HttpEngine;->writingRequestHeaders()V -HSPLcom/android/okhttp/internal/http/HttpMethod;->permitsRequestBody(Ljava/lang/String;)Z -HSPLcom/android/okhttp/internal/http/HttpMethod;->requiresRequestBody(Ljava/lang/String;)Z -HSPLcom/android/okhttp/internal/http/OkHeaders$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLcom/android/okhttp/internal/http/OkHeaders$1;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Headers;)J -HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Request;)J -HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Response;)J -HSPLcom/android/okhttp/internal/http/OkHeaders;->stringToLong(Ljava/lang/String;)J -HSPLcom/android/okhttp/internal/http/OkHeaders;->toMultimap(Lcom/android/okhttp/Headers;Ljava/lang/String;)Ljava/util/Map; -HSPLcom/android/okhttp/internal/http/RealResponseBody;-><init>(Lcom/android/okhttp/Headers;Lcom/android/okhttp/okio/BufferedSource;)V -HSPLcom/android/okhttp/internal/http/RealResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource; -HSPLcom/android/okhttp/internal/http/RequestLine;->get(Lcom/android/okhttp/Request;Ljava/net/Proxy$Type;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/http/RequestLine;->includeAuthorityInRequestLine(Lcom/android/okhttp/Request;Ljava/net/Proxy$Type;)Z -HSPLcom/android/okhttp/internal/http/RequestLine;->requestPath(Lcom/android/okhttp/HttpUrl;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/http/RetryableSink;-><init>()V -HSPLcom/android/okhttp/internal/http/RetryableSink;-><init>(I)V -HSPLcom/android/okhttp/internal/http/RetryableSink;->close()V -HSPLcom/android/okhttp/internal/http/RetryableSink;->contentLength()J -HSPLcom/android/okhttp/internal/http/RetryableSink;->flush()V -HSPLcom/android/okhttp/internal/http/RetryableSink;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/internal/http/RetryableSink;->writeToSocket(Lcom/android/okhttp/okio/Sink;)V -HSPLcom/android/okhttp/internal/http/RouteException;-><init>(Ljava/io/IOException;)V -HSPLcom/android/okhttp/internal/http/RouteException;->getLastConnectException()Ljava/io/IOException; -HSPLcom/android/okhttp/internal/http/RouteSelector;-><init>(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/RouteDatabase;)V -HSPLcom/android/okhttp/internal/http/RouteSelector;->connectFailed(Lcom/android/okhttp/Route;Ljava/io/IOException;)V -HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNext()Z -HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextInetSocketAddress()Z -HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextPostponed()Z -HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextProxy()Z -HSPLcom/android/okhttp/internal/http/RouteSelector;->next()Lcom/android/okhttp/Route; -HSPLcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddress()Ljava/net/InetSocketAddress; -HSPLcom/android/okhttp/internal/http/RouteSelector;->nextPostponed()Lcom/android/okhttp/Route; -HSPLcom/android/okhttp/internal/http/RouteSelector;->nextProxy()Ljava/net/Proxy; -HSPLcom/android/okhttp/internal/http/RouteSelector;->resetNextInetSocketAddress(Ljava/net/Proxy;)V -HSPLcom/android/okhttp/internal/http/RouteSelector;->resetNextProxy(Lcom/android/okhttp/HttpUrl;Ljava/net/Proxy;)V -HSPLcom/android/okhttp/internal/http/StatusLine;-><init>(Lcom/android/okhttp/Protocol;ILjava/lang/String;)V -HSPLcom/android/okhttp/internal/http/StatusLine;->get(Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/StatusLine; -HSPLcom/android/okhttp/internal/http/StatusLine;->parse(Ljava/lang/String;)Lcom/android/okhttp/internal/http/StatusLine; -HSPLcom/android/okhttp/internal/http/StatusLine;->toString()Ljava/lang/String; -HSPLcom/android/okhttp/internal/http/StreamAllocation;-><init>(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;)V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->acquire(Lcom/android/okhttp/internal/io/RealConnection;)V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->cancel()V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->connection()Lcom/android/okhttp/internal/io/RealConnection; -HSPLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed()V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed(Ljava/io/IOException;)V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->deallocate(ZZZ)V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->findConnection(IIIZ)Lcom/android/okhttp/internal/io/RealConnection; -HSPLcom/android/okhttp/internal/http/StreamAllocation;->findHealthyConnection(IIIZZ)Lcom/android/okhttp/internal/io/RealConnection; -HSPLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z -HSPLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Ljava/io/IOException;)Z -HSPLcom/android/okhttp/internal/http/StreamAllocation;->newStream(IIIZZ)Lcom/android/okhttp/internal/http/HttpStream; -HSPLcom/android/okhttp/internal/http/StreamAllocation;->noNewStreams()V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z -HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Z -HSPLcom/android/okhttp/internal/http/StreamAllocation;->release()V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase; -HSPLcom/android/okhttp/internal/http/StreamAllocation;->streamFinished(Lcom/android/okhttp/internal/http/HttpStream;)V -HSPLcom/android/okhttp/internal/http/StreamAllocation;->toString()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;-><init>(Ljava/net/HttpURLConnection;)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->connect()V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->disconnect()V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentEncoding()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentLength()I -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentType()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getErrorStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFields()Ljava/util/Map; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getInputStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getOutputStream()Ljava/io/OutputStream; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestMethod()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperties()Ljava/util/Map; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseCode()I -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseMessage()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getURL()Ljava/net/URL; -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setChunkedStreamingMode(I)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setConnectTimeout(I)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDefaultUseCaches(Z)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDoInput(Z)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDoOutput(Z)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setFixedLengthStreamingMode(I)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setInstanceFollowRedirects(Z)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setReadTimeout(I)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setRequestMethod(Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setUseCaches(Z)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;-><init>(Ljava/net/URL;Lcom/android/okhttp/OkHttpClient;)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;-><init>(Ljava/net/URL;Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/internal/URLFilter;)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->connect()V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->defaultUserAgent()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->disconnect()V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->execute(Z)Z -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getErrorStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderFields()Ljava/util/Map; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaders()Lcom/android/okhttp/Headers; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getInputStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getRequestProperties()Ljava/util/Map; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponse()Lcom/android/okhttp/internal/http/HttpEngine; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponseCode()I -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getResponseMessage()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->initHttpEngine()V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->newHttpEngine(Ljava/lang/String;Lcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/HttpEngine; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->responseSourceHeader(Lcom/android/okhttp/Response;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setConnectTimeout(I)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setFixedLengthStreamingMode(I)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setFixedLengthStreamingMode(J)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setInstanceFollowRedirects(Z)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setReadTimeout(I)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setRequestMethod(Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;-><init>(Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;-><init>(Ljava/net/URL;Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/internal/URLFilter;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->connect()V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->disconnect()V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentEncoding()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentLength()I -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentType()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getErrorStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFields()Ljava/util/Map; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getInputStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestMethod()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperties()Ljava/util/Map; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseCode()I -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseMessage()Ljava/lang/String; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getURL()Ljava/net/URL; -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setChunkedStreamingMode(I)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setConnectTimeout(I)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDefaultUseCaches(Z)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDoInput(Z)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDoOutput(Z)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setFixedLengthStreamingMode(I)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setInstanceFollowRedirects(Z)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setReadTimeout(I)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setRequestMethod(Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V -HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setUseCaches(Z)V -HSPLcom/android/okhttp/internal/io/RealConnection;-><init>(Lcom/android/okhttp/Route;)V -HSPLcom/android/okhttp/internal/io/RealConnection;->allocationLimit()I -HSPLcom/android/okhttp/internal/io/RealConnection;->cancel()V -HSPLcom/android/okhttp/internal/io/RealConnection;->connect(IIILjava/util/List;Z)V -HSPLcom/android/okhttp/internal/io/RealConnection;->connectSocket(IIILcom/android/okhttp/internal/ConnectionSpecSelector;)V -HSPLcom/android/okhttp/internal/io/RealConnection;->connectTls(IILcom/android/okhttp/internal/ConnectionSpecSelector;)V -HSPLcom/android/okhttp/internal/io/RealConnection;->getHandshake()Lcom/android/okhttp/Handshake; -HSPLcom/android/okhttp/internal/io/RealConnection;->getRoute()Lcom/android/okhttp/Route; -HSPLcom/android/okhttp/internal/io/RealConnection;->getSocket()Ljava/net/Socket; -HSPLcom/android/okhttp/internal/io/RealConnection;->isHealthy(Z)Z -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->getSubjectAltNames(Ljava/security/cert/X509Certificate;I)Ljava/util/List; -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->isPrintableAscii(Ljava/lang/String;)Z -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyAsIpAddress(Ljava/lang/String;)Z -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyHostName(Ljava/lang/String;Ljava/lang/String;)Z -HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyHostName(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;-><init>(Lcom/android/okhttp/internalandroidapi/Dns;)V -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->hashCode()I -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->lookup(Ljava/lang/String;)Ljava/util/List; -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;-><init>()V -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->internalOpenConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection; -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->openConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection; -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->setDns(Lcom/android/okhttp/internalandroidapi/Dns;)V -HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->setNewConnectionPool(IJLjava/util/concurrent/TimeUnit;)V -HSPLcom/android/okhttp/okio/AsyncTimeout$1;-><init>(Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Sink;)V -HSPLcom/android/okhttp/okio/AsyncTimeout$1;->flush()V -HSPLcom/android/okhttp/okio/AsyncTimeout$1;->timeout()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/AsyncTimeout$1;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/okio/AsyncTimeout$2;-><init>(Lcom/android/okhttp/okio/AsyncTimeout;Lcom/android/okhttp/okio/Source;)V -HSPLcom/android/okhttp/okio/AsyncTimeout$2;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/okio/AsyncTimeout$2;->timeout()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/AsyncTimeout$Watchdog;-><init>()V -HSPLcom/android/okhttp/okio/AsyncTimeout$Watchdog;->run()V -HSPLcom/android/okhttp/okio/AsyncTimeout;-><init>()V -HSPLcom/android/okhttp/okio/AsyncTimeout;->access$000()Lcom/android/okhttp/okio/AsyncTimeout; -HSPLcom/android/okhttp/okio/AsyncTimeout;->awaitTimeout()Lcom/android/okhttp/okio/AsyncTimeout; -HSPLcom/android/okhttp/okio/AsyncTimeout;->cancelScheduledTimeout(Lcom/android/okhttp/okio/AsyncTimeout;)Z -HSPLcom/android/okhttp/okio/AsyncTimeout;->enter()V -HSPLcom/android/okhttp/okio/AsyncTimeout;->exit()Z -HSPLcom/android/okhttp/okio/AsyncTimeout;->exit(Ljava/io/IOException;)Ljava/io/IOException; -HSPLcom/android/okhttp/okio/AsyncTimeout;->exit(Z)V -HSPLcom/android/okhttp/okio/AsyncTimeout;->remainingNanos(J)J -HSPLcom/android/okhttp/okio/AsyncTimeout;->scheduleTimeout(Lcom/android/okhttp/okio/AsyncTimeout;JZ)V -HSPLcom/android/okhttp/okio/AsyncTimeout;->sink(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/okio/AsyncTimeout;->source(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/Source; -HSPLcom/android/okhttp/okio/Buffer;-><init>()V -HSPLcom/android/okhttp/okio/Buffer;->clear()V -HSPLcom/android/okhttp/okio/Buffer;->completeSegmentByteCount()J -HSPLcom/android/okhttp/okio/Buffer;->copyTo(Lcom/android/okhttp/okio/Buffer;JJ)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/Buffer;->exhausted()Z -HSPLcom/android/okhttp/okio/Buffer;->getByte(J)B -HSPLcom/android/okhttp/okio/Buffer;->indexOf(BJ)J -HSPLcom/android/okhttp/okio/Buffer;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/okio/Buffer;->read([BII)I -HSPLcom/android/okhttp/okio/Buffer;->readByte()B -HSPLcom/android/okhttp/okio/Buffer;->readByteArray()[B -HSPLcom/android/okhttp/okio/Buffer;->readByteArray(J)[B -HSPLcom/android/okhttp/okio/Buffer;->readByteString()Lcom/android/okhttp/okio/ByteString; -HSPLcom/android/okhttp/okio/Buffer;->readFully([B)V -HSPLcom/android/okhttp/okio/Buffer;->readHexadecimalUnsignedLong()J -HSPLcom/android/okhttp/okio/Buffer;->readInt()I -HSPLcom/android/okhttp/okio/Buffer;->readIntLe()I -HSPLcom/android/okhttp/okio/Buffer;->readShort()S -HSPLcom/android/okhttp/okio/Buffer;->readString(JLjava/nio/charset/Charset;)Ljava/lang/String; -HSPLcom/android/okhttp/okio/Buffer;->readUtf8()Ljava/lang/String; -HSPLcom/android/okhttp/okio/Buffer;->readUtf8(J)Ljava/lang/String; -HSPLcom/android/okhttp/okio/Buffer;->readUtf8Line(J)Ljava/lang/String; -HSPLcom/android/okhttp/okio/Buffer;->size()J -HSPLcom/android/okhttp/okio/Buffer;->skip(J)V -HSPLcom/android/okhttp/okio/Buffer;->writableSegment(I)Lcom/android/okhttp/okio/Segment; -HSPLcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/ByteString;-><init>([B)V -HSPLcom/android/okhttp/okio/ByteString;->hex()Ljava/lang/String; -HSPLcom/android/okhttp/okio/ForwardingTimeout;-><init>(Lcom/android/okhttp/okio/Timeout;)V -HSPLcom/android/okhttp/okio/ForwardingTimeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/ForwardingTimeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/ForwardingTimeout;->delegate()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/ForwardingTimeout;->hasDeadline()Z -HSPLcom/android/okhttp/okio/ForwardingTimeout;->setDelegate(Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/ForwardingTimeout; -HSPLcom/android/okhttp/okio/GzipSource;-><init>(Lcom/android/okhttp/okio/Source;)V -HSPLcom/android/okhttp/okio/GzipSource;->checkEqual(Ljava/lang/String;II)V -HSPLcom/android/okhttp/okio/GzipSource;->close()V -HSPLcom/android/okhttp/okio/GzipSource;->consumeHeader()V -HSPLcom/android/okhttp/okio/GzipSource;->consumeTrailer()V -HSPLcom/android/okhttp/okio/GzipSource;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/okio/GzipSource;->updateCrc(Lcom/android/okhttp/okio/Buffer;JJ)V -HSPLcom/android/okhttp/okio/InflaterSource;-><init>(Lcom/android/okhttp/okio/BufferedSource;Ljava/util/zip/Inflater;)V -HSPLcom/android/okhttp/okio/InflaterSource;->close()V -HSPLcom/android/okhttp/okio/InflaterSource;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/okio/InflaterSource;->refill()Z -HSPLcom/android/okhttp/okio/InflaterSource;->releaseInflatedBytes()V -HSPLcom/android/okhttp/okio/Okio$1;-><init>(Lcom/android/okhttp/okio/Timeout;Ljava/io/OutputStream;)V -HSPLcom/android/okhttp/okio/Okio$1;->flush()V -HSPLcom/android/okhttp/okio/Okio$1;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/okio/Okio$2;-><init>(Lcom/android/okhttp/okio/Timeout;Ljava/io/InputStream;)V -HSPLcom/android/okhttp/okio/Okio$2;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/okio/Okio$3;-><init>(Ljava/net/Socket;)V -HSPLcom/android/okhttp/okio/Okio$3;->newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException; -HSPLcom/android/okhttp/okio/Okio$3;->timedOut()V -HSPLcom/android/okhttp/okio/Okio;->buffer(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/okio/Okio;->buffer(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/BufferedSource; -HSPLcom/android/okhttp/okio/Okio;->sink(Ljava/io/OutputStream;Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/okio/Okio;->sink(Ljava/net/Socket;)Lcom/android/okhttp/okio/Sink; -HSPLcom/android/okhttp/okio/Okio;->source(Ljava/io/InputStream;Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/Source; -HSPLcom/android/okhttp/okio/Okio;->source(Ljava/net/Socket;)Lcom/android/okhttp/okio/Source; -HSPLcom/android/okhttp/okio/Okio;->timeout(Ljava/net/Socket;)Lcom/android/okhttp/okio/AsyncTimeout; -HSPLcom/android/okhttp/okio/RealBufferedSink$1;-><init>(Lcom/android/okhttp/okio/RealBufferedSink;)V -HSPLcom/android/okhttp/okio/RealBufferedSink$1;->close()V -HSPLcom/android/okhttp/okio/RealBufferedSink$1;->flush()V -HSPLcom/android/okhttp/okio/RealBufferedSink$1;->write([BII)V -HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/Sink;)V -HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/Sink;Lcom/android/okhttp/okio/Buffer;)V -HSPLcom/android/okhttp/okio/RealBufferedSink;->access$000(Lcom/android/okhttp/okio/RealBufferedSink;)Z -HSPLcom/android/okhttp/okio/RealBufferedSink;->buffer()Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/RealBufferedSink;->close()V -HSPLcom/android/okhttp/okio/RealBufferedSink;->emit()Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/okio/RealBufferedSink;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/okio/RealBufferedSink;->flush()V -HSPLcom/android/okhttp/okio/RealBufferedSink;->outputStream()Ljava/io/OutputStream; -HSPLcom/android/okhttp/okio/RealBufferedSink;->timeout()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/RealBufferedSink;->write(Lcom/android/okhttp/okio/Buffer;J)V -HSPLcom/android/okhttp/okio/RealBufferedSink;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/okio/RealBufferedSink;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink; -HSPLcom/android/okhttp/okio/RealBufferedSource$1;-><init>(Lcom/android/okhttp/okio/RealBufferedSource;)V -HSPLcom/android/okhttp/okio/RealBufferedSource$1;->available()I -HSPLcom/android/okhttp/okio/RealBufferedSource$1;->close()V -HSPLcom/android/okhttp/okio/RealBufferedSource$1;->read()I -HSPLcom/android/okhttp/okio/RealBufferedSource$1;->read([BII)I -HSPLcom/android/okhttp/okio/RealBufferedSource;-><init>(Lcom/android/okhttp/okio/Source;)V -HSPLcom/android/okhttp/okio/RealBufferedSource;-><init>(Lcom/android/okhttp/okio/Source;Lcom/android/okhttp/okio/Buffer;)V -HSPLcom/android/okhttp/okio/RealBufferedSource;->access$000(Lcom/android/okhttp/okio/RealBufferedSource;)Z -HSPLcom/android/okhttp/okio/RealBufferedSource;->buffer()Lcom/android/okhttp/okio/Buffer; -HSPLcom/android/okhttp/okio/RealBufferedSource;->close()V -HSPLcom/android/okhttp/okio/RealBufferedSource;->exhausted()Z -HSPLcom/android/okhttp/okio/RealBufferedSource;->indexOf(B)J -HSPLcom/android/okhttp/okio/RealBufferedSource;->indexOf(BJ)J -HSPLcom/android/okhttp/okio/RealBufferedSource;->inputStream()Ljava/io/InputStream; -HSPLcom/android/okhttp/okio/RealBufferedSource;->read(Lcom/android/okhttp/okio/Buffer;J)J -HSPLcom/android/okhttp/okio/RealBufferedSource;->readHexadecimalUnsignedLong()J -HSPLcom/android/okhttp/okio/RealBufferedSource;->readIntLe()I -HSPLcom/android/okhttp/okio/RealBufferedSource;->readShort()S -HSPLcom/android/okhttp/okio/RealBufferedSource;->readUtf8LineStrict()Ljava/lang/String; -HSPLcom/android/okhttp/okio/RealBufferedSource;->request(J)Z -HSPLcom/android/okhttp/okio/RealBufferedSource;->require(J)V -HSPLcom/android/okhttp/okio/RealBufferedSource;->skip(J)V -HSPLcom/android/okhttp/okio/RealBufferedSource;->timeout()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/Segment;-><init>()V -HSPLcom/android/okhttp/okio/Segment;-><init>(Lcom/android/okhttp/okio/Segment;)V -HSPLcom/android/okhttp/okio/Segment;-><init>([BII)V -HSPLcom/android/okhttp/okio/Segment;->compact()V -HSPLcom/android/okhttp/okio/Segment;->pop()Lcom/android/okhttp/okio/Segment; -HSPLcom/android/okhttp/okio/Segment;->push(Lcom/android/okhttp/okio/Segment;)Lcom/android/okhttp/okio/Segment; -HSPLcom/android/okhttp/okio/Segment;->split(I)Lcom/android/okhttp/okio/Segment; -HSPLcom/android/okhttp/okio/Segment;->writeTo(Lcom/android/okhttp/okio/Segment;I)V -HSPLcom/android/okhttp/okio/SegmentPool;->recycle(Lcom/android/okhttp/okio/Segment;)V -HSPLcom/android/okhttp/okio/SegmentPool;->take()Lcom/android/okhttp/okio/Segment; -HSPLcom/android/okhttp/okio/Timeout;-><init>()V -HSPLcom/android/okhttp/okio/Timeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/Timeout;->clearTimeout()Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/Timeout;->deadlineNanoTime()J -HSPLcom/android/okhttp/okio/Timeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/Timeout;->hasDeadline()Z -HSPLcom/android/okhttp/okio/Timeout;->throwIfReached()V -HSPLcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout; -HSPLcom/android/okhttp/okio/Timeout;->timeoutNanos()J -HSPLcom/android/okhttp/okio/Util;->checkOffsetAndCount(JJJ)V -HSPLcom/android/okhttp/okio/Util;->reverseBytesInt(I)I -HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;-><init>([BI)V -HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;-><init>()V -HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;-><init>(I)V -HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->add(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->get(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable; -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>(Ljava/io/InputStream;IZ)V -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;-><init>([B)V -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildObject(III)Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->createPrimitiveDERObject(ILcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->getBuffer(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readLength(Ljava/io/InputStream;IZ)I -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readVector(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;)Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector; -HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>(Ljava/math/BigInteger;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;Z)V -HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encodedLength()I -HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Integer; -HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getValue()Ljava/math/BigInteger; -HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->isMalformed([B)Z -HSPLcom/android/org/bouncycastle/asn1/ASN1Object;->getEncoded()[B -HSPLcom/android/org/bouncycastle/asn1/ASN1Object;->getEncoded(Ljava/lang/String;)[B -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;-><init>([B)V -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;->equals(Ljava/lang/Object;)Z -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;->hashCode()I -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;-><init>([B)V -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->asn1Equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->doOutput(Ljava/io/ByteArrayOutputStream;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;Z)V -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encodedLength()I -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getBody()[B -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->hashCode()I -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->toString()Ljava/lang/String; -HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->writeField(Ljava/io/ByteArrayOutputStream;J)V -HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write(I)V -HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write([BII)V -HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeEncoded(ZI[B)V -HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeLength(I)V -HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeObject(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z -HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->fromByteArray([B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence$1;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence$1;->nextElement()Ljava/lang/Object; -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>()V -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Sequence; -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getObjectAt(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable; -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getObjects()Ljava/util/Enumeration; -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->size()I -HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/ASN1Set;-><init>()V -HSPLcom/android/org/bouncycastle/asn1/ASN1Set;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;Z)V -HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Set; -HSPLcom/android/org/bouncycastle/asn1/DERBitString;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/DERBitString; -HSPLcom/android/org/bouncycastle/asn1/DERNull;->encodedLength()I -HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;->getDERSubStream()Lcom/android/org/bouncycastle/asn1/DEROutputStream; -HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;Z)V -HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encodedLength()I -HSPLcom/android/org/bouncycastle/asn1/DERSequence;->getBodyLength()I -HSPLcom/android/org/bouncycastle/asn1/DERSequence;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/DLFactory;-><clinit>()V -HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read()I -HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read([BII)I -HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->toByteArray()[B -HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->calculateBodyLength(I)I -HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->findLimit(Ljava/io/InputStream;)I -HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier; -HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo; -HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->reset()V -HSPLcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar;->getSecureRandom()Ljava/security/SecureRandom; -HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->PKCS12PasswordToBytes([C)[B -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1;-><init>()V -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;-><init>(Ljava/lang/String;I)V -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->doFinal([BI)I -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getByteLength()I -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getDigestSize()I -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->reset()V -HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->update([BII)V -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;-><init>()V -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getAlgorithmName()Ljava/lang/String; -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getBlockSize()I -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->packBlock([BI)V -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->reset()V -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->shift(II)I -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->subWord(I)I -HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->unpackBlock([BI)V -HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;-><clinit>()V -HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;-><init>()V -HSPLcom/android/org/bouncycastle/crypto/engines/DESEngine;->generateWorkingKey(Z[B)[I -HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->generateDerivedKey(II)[B -HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><clinit>()V -HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getMacSize()I -HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->init(Lcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->update([BII)V -HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V -HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->getBlockSize()I -HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher;->reset()V -HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->init(Ljava/security/SecureRandom;)V -HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->padCount([B)I -HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;Lcom/android/org/bouncycastle/crypto/paddings/BlockCipherPadding;)V -HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->doFinal([BI)I -HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->getOutputSize(I)I -HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->getUpdateOutputSize(I)I -HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/crypto/params/AsymmetricKeyParameter;-><init>(Z)V -HSPLcom/android/org/bouncycastle/crypto/params/DSAKeyParameters;-><init>(ZLcom/android/org/bouncycastle/crypto/params/DSAParameters;)V -HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V -HSPLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;-><init>(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/crypto/params/DSAParameters;)V -HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([B)V -HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;-><init>(Lcom/android/org/bouncycastle/crypto/CipherParameters;[BII)V -HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/DSA$Mappings;->configure(Lcom/android/org/bouncycastle/jcajce/provider/config/ConfigurableProvider;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getParams()Ljava/security/interfaces/DSAParams; -HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getY()Ljava/math/BigInteger; -HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->hashCode()I -HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->readObject(Ljava/io/ObjectInputStream;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;->toDSAParameters(Ljava/security/interfaces/DSAParams;)Lcom/android/org/bouncycastle/crypto/params/DSAParameters; -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$Std;-><init>()V -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;Ljava/lang/String;Ljava/security/cert/Certificate;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;-><init>(I)V -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineAliases()Ljava/util/Enumeration; -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate; -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineLoad(Ljava/io/InputStream;[C)V -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSetCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSize()I -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB;-><init>()V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/PBES2AlgorithmParameters$Mappings;->configure(Lcom/android/org/bouncycastle/jcajce/provider/config/ConfigurableProvider;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;IIIILjavax/crypto/spec/PBEKeySpec;Lcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getEncoded()[B -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->isDestroyed()Z -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->doFinal([BI)I -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getOutputSize(I)I -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineDoFinal([BII)[B -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineGetOutputSize(I)I -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher;-><init>()V -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->convertPassword(ILjavax/crypto/spec/PBEKeySpec;)[B -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEGenerator(II)Lcom/android/org/bouncycastle/crypto/PBEParametersGenerator; -HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEMacParameters(Ljavax/crypto/spec/PBEKeySpec;III)Lcom/android/org/bouncycastle/crypto/CipherParameters; -HSPLcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;-><init>()V -HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->addAlgorithm(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)V -HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->addAlgorithm(Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->addAttributes(Ljava/lang/String;Ljava/util/Map;)V -HSPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->loadAlgorithms([Ljava/lang/String;Ljava/lang/String;)V -HSPLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V -HSPLcom/android/org/bouncycastle/util/Arrays;->areEqual([B[B)Z -HSPLcom/android/org/bouncycastle/util/Arrays;->clone([B)[B -HSPLcom/android/org/bouncycastle/util/Arrays;->constantTimeAreEqual([B[B)Z -HSPLcom/android/org/bouncycastle/util/Arrays;->fill([BB)V -HSPLcom/android/org/bouncycastle/util/Arrays;->hashCode([B)I -HSPLcom/android/org/bouncycastle/util/BigIntegers;-><clinit>()V -HSPLcom/android/org/bouncycastle/util/Integers;->valueOf(I)Ljava/lang/Integer; -HSPLcom/android/org/bouncycastle/util/Pack;->littleEndianToInt([BI)I -HSPLcom/android/org/bouncycastle/util/Properties$1;->run()Ljava/lang/Object; -HSPLcom/android/org/bouncycastle/util/Properties;->isOverrideSet(Ljava/lang/String;)Z -HSPLcom/android/org/bouncycastle/util/Strings;->toUpperCase(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;-><init>()V -HSPLcom/android/org/kxml2/io/KXmlParser;->adjustNsp()Z -HSPLcom/android/org/kxml2/io/KXmlParser;->close()V -HSPLcom/android/org/kxml2/io/KXmlParser;->ensureCapacity([Ljava/lang/String;I)[Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->fillBuffer(I)Z -HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeCount()I -HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeName(I)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeValue(I)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->getColumnNumber()I -HSPLcom/android/org/kxml2/io/KXmlParser;->getDepth()I -HSPLcom/android/org/kxml2/io/KXmlParser;->getEventType()I -HSPLcom/android/org/kxml2/io/KXmlParser;->getLineNumber()I -HSPLcom/android/org/kxml2/io/KXmlParser;->getName()Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespace()Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespace(Ljava/lang/String;)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespaceCount(I)I -HSPLcom/android/org/kxml2/io/KXmlParser;->getText()Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->keepNamespaceAttributes()V -HSPLcom/android/org/kxml2/io/KXmlParser;->next()I -HSPLcom/android/org/kxml2/io/KXmlParser;->next(Z)I -HSPLcom/android/org/kxml2/io/KXmlParser;->nextTag()I -HSPLcom/android/org/kxml2/io/KXmlParser;->nextToken()I -HSPLcom/android/org/kxml2/io/KXmlParser;->parseStartTag(ZZ)V -HSPLcom/android/org/kxml2/io/KXmlParser;->peekCharacter()I -HSPLcom/android/org/kxml2/io/KXmlParser;->peekType(Z)I -HSPLcom/android/org/kxml2/io/KXmlParser;->read(C)V -HSPLcom/android/org/kxml2/io/KXmlParser;->read([C)V -HSPLcom/android/org/kxml2/io/KXmlParser;->readComment(Z)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->readEndTag()V -HSPLcom/android/org/kxml2/io/KXmlParser;->readEntity(Ljava/lang/StringBuilder;ZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)V -HSPLcom/android/org/kxml2/io/KXmlParser;->readName()Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->readUntil([CZ)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->readValue(CZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)Ljava/lang/String; -HSPLcom/android/org/kxml2/io/KXmlParser;->readXmlDeclaration()V -HSPLcom/android/org/kxml2/io/KXmlParser;->require(ILjava/lang/String;Ljava/lang/String;)V -HSPLcom/android/org/kxml2/io/KXmlParser;->setFeature(Ljava/lang/String;Z)V -HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V -HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/Reader;)V -HSPLcom/android/org/kxml2/io/KXmlParser;->skip()V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(C)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;II)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/org/kxml2/io/KXmlSerializer;->check(Z)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->endDocument()V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/org/kxml2/io/KXmlSerializer;->flush()V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->flushBuffer()V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/Writer;)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V -HSPLcom/android/org/kxml2/io/KXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer; -HSPLcom/android/org/kxml2/io/KXmlSerializer;->writeEscaped(Ljava/lang/String;I)V -HSPLcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object; -HSPLcom/android/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/telephony/Rlog;->log(ILjava/lang/String;Ljava/lang/String;)I -HSPLcom/android/telephony/Rlog;->pii(ZLjava/lang/Object;)Ljava/lang/String; -HSPLcom/android/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I -HSPLcom/android/text/flags/FeatureFlagsImpl;-><init>()V -HSPLcom/android/text/flags/Flags;-><clinit>()V -HSPLcom/android/window/flags/FeatureFlagsImpl;-><init>()V -HSPLcom/android/window/flags/FeatureFlagsImpl;->bundleClientTransactionFlag()Z -HSPLcom/android/window/flags/Flags;-><clinit>()V -HSPLcom/android/window/flags/Flags;->bundleClientTransactionFlag()Z+]Lcom/android/window/flags/FeatureFlags;Lcom/android/window/flags/FeatureFlagsImpl; -HSPLcom/google/android/collect/Lists;->newArrayList()Ljava/util/ArrayList; -HSPLcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; -HSPLcom/google/android/collect/Maps;->newHashMap()Ljava/util/HashMap; -HSPLcom/google/android/collect/Sets;->newHashSet()Ljava/util/HashSet; -HSPLcom/google/android/collect/Sets;->newHashSet([Ljava/lang/Object;)Ljava/util/HashSet; -HSPLcom/google/android/gles_jni/EGLConfigImpl;-><init>(J)V -HSPLcom/google/android/gles_jni/EGLContextImpl;->equals(Ljava/lang/Object;)Z -HSPLcom/google/android/gles_jni/EGLDisplayImpl;->equals(Ljava/lang/Object;)Z -HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext; -HSPLcom/google/android/gles_jni/EGLImpl;->eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface; -HSPLcom/google/android/gles_jni/EGLImpl;->eglGetCurrentContext()Ljavax/microedition/khronos/egl/EGLContext; -HSPLcom/google/android/gles_jni/EGLImpl;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay; -HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V -HSPLdalvik/system/AppSpecializationHooks;->handleCompatChangesBeforeBindingApplication()V -HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V -HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V -HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;Z)V -HSPLdalvik/system/BaseDexClassLoader;->addNativePath(Ljava/util/Collection;)V -HSPLdalvik/system/BaseDexClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLdalvik/system/BaseDexClassLoader;->findLibrary(Ljava/lang/String;)Ljava/lang/String; -HSPLdalvik/system/BaseDexClassLoader;->findResource(Ljava/lang/String;)Ljava/net/URL; -HSPLdalvik/system/BaseDexClassLoader;->findResources(Ljava/lang/String;)Ljava/util/Enumeration; -HSPLdalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String; -HSPLdalvik/system/BaseDexClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package; -HSPLdalvik/system/BaseDexClassLoader;->reportClassLoaderChain()V -HSPLdalvik/system/BaseDexClassLoader;->setReporter(Ldalvik/system/BaseDexClassLoader$Reporter;)V -HSPLdalvik/system/BaseDexClassLoader;->toString()Ljava/lang/String; -HSPLdalvik/system/BlockGuard$1;->onExplicitGc()V -HSPLdalvik/system/BlockGuard$1;->onNetwork()V -HSPLdalvik/system/BlockGuard$1;->onReadFromDisk()V -HSPLdalvik/system/BlockGuard$1;->onUnbufferedIO()V -HSPLdalvik/system/BlockGuard$1;->onWriteToDisk()V -HSPLdalvik/system/BlockGuard$2;->onPathAccess(Ljava/lang/String;)V -HSPLdalvik/system/BlockGuard$3;->initialValue()Ldalvik/system/BlockGuard$Policy; -HSPLdalvik/system/BlockGuard$3;->initialValue()Ljava/lang/Object; -HSPLdalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; -HSPLdalvik/system/BlockGuard;->getVmPolicy()Ldalvik/system/BlockGuard$VmPolicy; -HSPLdalvik/system/BlockGuard;->setThreadPolicy(Ldalvik/system/BlockGuard$Policy;)V -HSPLdalvik/system/BlockGuard;->setVmPolicy(Ldalvik/system/BlockGuard$VmPolicy;)V -HSPLdalvik/system/CloseGuard;-><init>()V -HSPLdalvik/system/CloseGuard;->close()V -HSPLdalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; -HSPLdalvik/system/CloseGuard;->getReporter()Ldalvik/system/CloseGuard$Reporter; -HSPLdalvik/system/CloseGuard;->open(Ljava/lang/String;)V -HSPLdalvik/system/CloseGuard;->openWithCallSite(Ljava/lang/String;Ljava/lang/String;)V -HSPLdalvik/system/CloseGuard;->setEnabled(Z)V -HSPLdalvik/system/CloseGuard;->setReporter(Ldalvik/system/CloseGuard$Reporter;)V -HSPLdalvik/system/CloseGuard;->warnIfOpen()V -HSPLdalvik/system/DelegateLastClassLoader;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLdalvik/system/DelegateLastClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)V -HSPLdalvik/system/DelegateLastClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class; -HSPLdalvik/system/DexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLdalvik/system/DexFile;-><init>(Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V -HSPLdalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V -HSPLdalvik/system/DexFile;->defineClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;Ljava/util/List;)Ljava/lang/Class; -HSPLdalvik/system/DexFile;->finalize()V -HSPLdalvik/system/DexFile;->isBackedByOatFile()Z -HSPLdalvik/system/DexFile;->loadClassBinaryName(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class; -HSPLdalvik/system/DexFile;->openDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object; -HSPLdalvik/system/DexFile;->verifyInBackground(Ljava/lang/ClassLoader;)V -HSPLdalvik/system/DexPathList$Element;->-$$Nest$fgetdexFile(Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile; -HSPLdalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;Ljava/io/File;)V -HSPLdalvik/system/DexPathList$Element;-><init>(Ljava/io/File;)V -HSPLdalvik/system/DexPathList$Element;->findClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class; -HSPLdalvik/system/DexPathList$Element;->findResource(Ljava/lang/String;)Ljava/net/URL; -HSPLdalvik/system/DexPathList$Element;->maybeInit()V -HSPLdalvik/system/DexPathList$Element;->toString()Ljava/lang/String; -HSPLdalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;)V -HSPLdalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;Ljava/lang/String;)V -HSPLdalvik/system/DexPathList$NativeLibraryElement;->equals(Ljava/lang/Object;)Z -HSPLdalvik/system/DexPathList$NativeLibraryElement;->findNativeLibrary(Ljava/lang/String;)Ljava/lang/String; -HSPLdalvik/system/DexPathList$NativeLibraryElement;->maybeInit()V -HSPLdalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Z)V -HSPLdalvik/system/DexPathList;->addNativePath(Ljava/util/Collection;)V -HSPLdalvik/system/DexPathList;->findClass(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Class; -HSPLdalvik/system/DexPathList;->findLibrary(Ljava/lang/String;)Ljava/lang/String; -HSPLdalvik/system/DexPathList;->findResource(Ljava/lang/String;)Ljava/net/URL; -HSPLdalvik/system/DexPathList;->findResources(Ljava/lang/String;)Ljava/util/Enumeration; -HSPLdalvik/system/DexPathList;->getAllNativeLibraryDirectories()Ljava/util/List; -HSPLdalvik/system/DexPathList;->getNativeLibraryDirectories()Ljava/util/List; -HSPLdalvik/system/DexPathList;->loadDexFile(Ljava/io/File;Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile; -HSPLdalvik/system/DexPathList;->makeDexElements(Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/lang/ClassLoader;Z)[Ldalvik/system/DexPathList$Element; -HSPLdalvik/system/DexPathList;->makePathElements(Ljava/util/List;)[Ldalvik/system/DexPathList$NativeLibraryElement; -HSPLdalvik/system/DexPathList;->maybeRunBackgroundVerification(Ljava/lang/ClassLoader;)V -HSPLdalvik/system/DexPathList;->splitDexPath(Ljava/lang/String;)Ljava/util/List; -HSPLdalvik/system/DexPathList;->splitPaths(Ljava/lang/String;Z)Ljava/util/List; -HSPLdalvik/system/DexPathList;->toString()Ljava/lang/String; -HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V -HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V -HSPLdalvik/system/RuntimeHooks;->getTimeZoneIdSupplier()Ljava/util/function/Supplier; -HSPLdalvik/system/RuntimeHooks;->setTimeZoneIdSupplier(Ljava/util/function/Supplier;)V -HSPLdalvik/system/RuntimeHooks;->setUncaughtExceptionPreHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V -HSPLdalvik/system/SocketTagger;-><init>()V -HSPLdalvik/system/SocketTagger;->get()Ldalvik/system/SocketTagger; -HSPLdalvik/system/SocketTagger;->set(Ldalvik/system/SocketTagger;)V -HSPLdalvik/system/SocketTagger;->tag(Ljava/net/Socket;)V -HSPLdalvik/system/SocketTagger;->untag(Ljava/net/Socket;)V -HSPLdalvik/system/VMRuntime$SdkVersionContainer;->-$$Nest$sfgetsdkVersion()I -HSPLdalvik/system/VMRuntime;->getInstructionSet(Ljava/lang/String;)Ljava/lang/String; -HSPLdalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime; -HSPLdalvik/system/VMRuntime;->getSdkVersion()I -HSPLdalvik/system/VMRuntime;->getTargetSdkVersion()I -HSPLdalvik/system/VMRuntime;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V -HSPLdalvik/system/VMRuntime;->notifyNativeAllocation()V -HSPLdalvik/system/VMRuntime;->registerNativeAllocation(I)V -HSPLdalvik/system/VMRuntime;->registerNativeFree(I)V -HSPLdalvik/system/VMRuntime;->runFinalization(J)V -HSPLdalvik/system/VMRuntime;->runFinalizationSync()V -HSPLdalvik/system/VMRuntime;->setDisabledCompatChanges([J)V -HSPLdalvik/system/VMRuntime;->setHiddenApiUsageLogger(Ldalvik/system/VMRuntime$HiddenApiUsageLogger;)V -HSPLdalvik/system/VMRuntime;->setNonSdkApiUsageConsumer(Ljava/util/function/Consumer;)V -HSPLdalvik/system/VMRuntime;->setTargetSdkVersion(I)V -HSPLdalvik/system/ZipPathValidator$Callback;->onZipEntryAccess(Ljava/lang/String;)V -HSPLdalvik/system/ZipPathValidator;->clearCallback()V -HSPLdalvik/system/ZipPathValidator;->getInstance()Ldalvik/system/ZipPathValidator$Callback; -HSPLdalvik/system/ZipPathValidator;->isClear()Z -HSPLdalvik/system/ZipPathValidator;->setCallback(Ldalvik/system/ZipPathValidator$Callback;)V -HSPLdalvik/system/ZygoteHooks;->cleanLocaleCaches()V -HSPLdalvik/system/ZygoteHooks;->gcAndFinalize()V -HSPLdalvik/system/ZygoteHooks;->isIndefiniteThreadSuspensionSafe()Z -HSPLdalvik/system/ZygoteHooks;->onEndPreload()V -HSPLdalvik/system/ZygoteHooks;->postForkChild(IZZLjava/lang/String;)V -HSPLdalvik/system/ZygoteHooks;->postForkCommon()V -HSPLdalvik/system/ZygoteHooks;->preFork()V -HSPLjava/io/Bits;->getBoolean([BI)Z -HSPLjava/io/Bits;->getDouble([BI)D -HSPLjava/io/Bits;->getFloat([BI)F -HSPLjava/io/Bits;->getInt([BI)I -HSPLjava/io/Bits;->getLong([BI)J -HSPLjava/io/Bits;->getShort([BI)S -HSPLjava/io/Bits;->putBoolean([BIZ)V -HSPLjava/io/Bits;->putDouble([BID)V -HSPLjava/io/Bits;->putFloat([BIF)V -HSPLjava/io/Bits;->putInt([BII)V -HSPLjava/io/Bits;->putLong([BIJ)V -HSPLjava/io/Bits;->putShort([BIS)V -HSPLjava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V -HSPLjava/io/BufferedInputStream;->available()I -HSPLjava/io/BufferedInputStream;->close()V -HSPLjava/io/BufferedInputStream;->fill()V -HSPLjava/io/BufferedInputStream;->getBufIfOpen()[B -HSPLjava/io/BufferedInputStream;->getInIfOpen()Ljava/io/InputStream; -HSPLjava/io/BufferedInputStream;->mark(I)V -HSPLjava/io/BufferedInputStream;->markSupported()Z -HSPLjava/io/BufferedInputStream;->read()I -HSPLjava/io/BufferedInputStream;->read([BII)I -HSPLjava/io/BufferedInputStream;->read1([BII)I -HSPLjava/io/BufferedInputStream;->reset()V -HSPLjava/io/BufferedInputStream;->skip(J)J -HSPLjava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;I)V -HSPLjava/io/BufferedOutputStream;->flush()V -HSPLjava/io/BufferedOutputStream;->flushBuffer()V -HSPLjava/io/BufferedOutputStream;->write(I)V -HSPLjava/io/BufferedOutputStream;->write([BII)V -HSPLjava/io/BufferedReader;-><init>(Ljava/io/Reader;)V -HSPLjava/io/BufferedReader;-><init>(Ljava/io/Reader;I)V -HSPLjava/io/BufferedReader;->close()V -HSPLjava/io/BufferedReader;->ensureOpen()V -HSPLjava/io/BufferedReader;->fill()V -HSPLjava/io/BufferedReader;->read()I -HSPLjava/io/BufferedReader;->read([CII)I -HSPLjava/io/BufferedReader;->read1([CII)I -HSPLjava/io/BufferedReader;->readLine()Ljava/lang/String; -HSPLjava/io/BufferedReader;->readLine(Z)Ljava/lang/String; -HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V -HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;I)V -HSPLjava/io/BufferedWriter;->close()V -HSPLjava/io/BufferedWriter;->ensureOpen()V -HSPLjava/io/BufferedWriter;->flush()V -HSPLjava/io/BufferedWriter;->flushBuffer()V -HSPLjava/io/BufferedWriter;->min(II)I -HSPLjava/io/BufferedWriter;->newLine()V -HSPLjava/io/BufferedWriter;->write(I)V -HSPLjava/io/BufferedWriter;->write(Ljava/lang/String;II)V -HSPLjava/io/BufferedWriter;->write([CII)V -HSPLjava/io/ByteArrayInputStream;-><init>([B)V -HSPLjava/io/ByteArrayInputStream;-><init>([BII)V -HSPLjava/io/ByteArrayInputStream;->available()I -HSPLjava/io/ByteArrayInputStream;->close()V -HSPLjava/io/ByteArrayInputStream;->mark(I)V -HSPLjava/io/ByteArrayInputStream;->markSupported()Z -HSPLjava/io/ByteArrayInputStream;->read()I -HSPLjava/io/ByteArrayInputStream;->read([BII)I -HSPLjava/io/ByteArrayInputStream;->reset()V -HSPLjava/io/ByteArrayInputStream;->skip(J)J -HSPLjava/io/ByteArrayOutputStream;-><init>()V -HSPLjava/io/ByteArrayOutputStream;-><init>(I)V -HSPLjava/io/ByteArrayOutputStream;->close()V -HSPLjava/io/ByteArrayOutputStream;->ensureCapacity(I)V -HSPLjava/io/ByteArrayOutputStream;->grow(I)V -HSPLjava/io/ByteArrayOutputStream;->reset()V -HSPLjava/io/ByteArrayOutputStream;->size()I -HSPLjava/io/ByteArrayOutputStream;->toByteArray()[B -HSPLjava/io/ByteArrayOutputStream;->toString()Ljava/lang/String; -HSPLjava/io/ByteArrayOutputStream;->toString(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/io/ByteArrayOutputStream;->write(I)V -HSPLjava/io/ByteArrayOutputStream;->write([BII)V -HSPLjava/io/ByteArrayOutputStream;->writeTo(Ljava/io/OutputStream;)V -HSPLjava/io/CharArrayWriter;-><init>()V -HSPLjava/io/CharArrayWriter;-><init>(I)V -HSPLjava/io/CharArrayWriter;->flush()V -HSPLjava/io/CharArrayWriter;->reset()V -HSPLjava/io/CharArrayWriter;->toCharArray()[C -HSPLjava/io/CharArrayWriter;->toString()Ljava/lang/String; -HSPLjava/io/CharArrayWriter;->write(I)V -HSPLjava/io/CharArrayWriter;->write([CII)V -HSPLjava/io/DataInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/io/DataInputStream;->read([B)I -HSPLjava/io/DataInputStream;->read([BII)I -HSPLjava/io/DataInputStream;->readBoolean()Z -HSPLjava/io/DataInputStream;->readByte()B -HSPLjava/io/DataInputStream;->readFully([B)V -HSPLjava/io/DataInputStream;->readFully([BII)V -HSPLjava/io/DataInputStream;->readInt()I -HSPLjava/io/DataInputStream;->readLong()J -HSPLjava/io/DataInputStream;->readShort()S -HSPLjava/io/DataInputStream;->readUTF()Ljava/lang/String; -HSPLjava/io/DataInputStream;->readUTF(Ljava/io/DataInput;)Ljava/lang/String; -HSPLjava/io/DataInputStream;->readUnsignedByte()I -HSPLjava/io/DataInputStream;->readUnsignedShort()I -HSPLjava/io/DataInputStream;->skipBytes(I)I -HSPLjava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/DataOutputStream;->flush()V -HSPLjava/io/DataOutputStream;->incCount(I)V -HSPLjava/io/DataOutputStream;->write(I)V -HSPLjava/io/DataOutputStream;->write([BII)V -HSPLjava/io/DataOutputStream;->writeBoolean(Z)V -HSPLjava/io/DataOutputStream;->writeByte(I)V -HSPLjava/io/DataOutputStream;->writeInt(I)V -HSPLjava/io/DataOutputStream;->writeLong(J)V -HSPLjava/io/DataOutputStream;->writeShort(I)V -HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;)V -HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I -HSPLjava/io/EOFException;-><init>()V -HSPLjava/io/EOFException;-><init>(Ljava/lang/String;)V -HSPLjava/io/ExpiringCache;->clear()V -HSPLjava/io/File$TempDirectory;->generateFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; -HSPLjava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V -HSPLjava/io/File;-><init>(Ljava/lang/String;)V -HSPLjava/io/File;-><init>(Ljava/lang/String;I)V -HSPLjava/io/File;-><init>(Ljava/lang/String;Ljava/io/File;)V -HSPLjava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/io/File;->canExecute()Z -HSPLjava/io/File;->canRead()Z -HSPLjava/io/File;->canWrite()Z -HSPLjava/io/File;->compareTo(Ljava/io/File;)I -HSPLjava/io/File;->compareTo(Ljava/lang/Object;)I -HSPLjava/io/File;->createNewFile()Z -HSPLjava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File; -HSPLjava/io/File;->delete()Z -HSPLjava/io/File;->equals(Ljava/lang/Object;)Z -HSPLjava/io/File;->exists()Z -HSPLjava/io/File;->getAbsoluteFile()Ljava/io/File; -HSPLjava/io/File;->getAbsolutePath()Ljava/lang/String; -HSPLjava/io/File;->getCanonicalFile()Ljava/io/File; -HSPLjava/io/File;->getCanonicalPath()Ljava/lang/String; -HSPLjava/io/File;->getFreeSpace()J -HSPLjava/io/File;->getName()Ljava/lang/String; -HSPLjava/io/File;->getParent()Ljava/lang/String; -HSPLjava/io/File;->getParentFile()Ljava/io/File; -HSPLjava/io/File;->getPath()Ljava/lang/String; -HSPLjava/io/File;->getPrefixLength()I -HSPLjava/io/File;->getTotalSpace()J -HSPLjava/io/File;->getUsableSpace()J -HSPLjava/io/File;->hashCode()I -HSPLjava/io/File;->isAbsolute()Z -HSPLjava/io/File;->isDirectory()Z -HSPLjava/io/File;->isFile()Z -HSPLjava/io/File;->isInvalid()Z -HSPLjava/io/File;->lastModified()J -HSPLjava/io/File;->length()J -HSPLjava/io/File;->list()[Ljava/lang/String; -HSPLjava/io/File;->list(Ljava/io/FilenameFilter;)[Ljava/lang/String; -HSPLjava/io/File;->listFiles()[Ljava/io/File; -HSPLjava/io/File;->listFiles(Ljava/io/FileFilter;)[Ljava/io/File; -HSPLjava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File; -HSPLjava/io/File;->mkdir()Z -HSPLjava/io/File;->mkdirs()Z -HSPLjava/io/File;->renameTo(Ljava/io/File;)Z -HSPLjava/io/File;->setExecutable(Z)Z -HSPLjava/io/File;->setExecutable(ZZ)Z -HSPLjava/io/File;->setLastModified(J)Z -HSPLjava/io/File;->setReadable(Z)Z -HSPLjava/io/File;->setReadable(ZZ)Z -HSPLjava/io/File;->setWritable(Z)Z -HSPLjava/io/File;->setWritable(ZZ)Z -HSPLjava/io/File;->slashify(Ljava/lang/String;Z)Ljava/lang/String; -HSPLjava/io/File;->toPath()Ljava/nio/file/Path; -HSPLjava/io/File;->toString()Ljava/lang/String; -HSPLjava/io/File;->toURI()Ljava/net/URI; -HSPLjava/io/FileDescriptor$1;->set(Ljava/io/FileDescriptor;I)V -HSPLjava/io/FileDescriptor;-><init>()V -HSPLjava/io/FileDescriptor;->cloneForFork()V -HSPLjava/io/FileDescriptor;->getInt$()I -HSPLjava/io/FileDescriptor;->getOwnerId$()J -HSPLjava/io/FileDescriptor;->isSocket$()Z -HSPLjava/io/FileDescriptor;->release$()Ljava/io/FileDescriptor; -HSPLjava/io/FileDescriptor;->setInt$(I)V -HSPLjava/io/FileDescriptor;->setOwnerId$(J)V -HSPLjava/io/FileDescriptor;->valid()Z -HSPLjava/io/FileInputStream;-><init>(Ljava/io/File;)V -HSPLjava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;)V -HSPLjava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;Z)V -HSPLjava/io/FileInputStream;-><init>(Ljava/lang/String;)V -HSPLjava/io/FileInputStream;->available()I -HSPLjava/io/FileInputStream;->close()V -HSPLjava/io/FileInputStream;->finalize()V -HSPLjava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel; -HSPLjava/io/FileInputStream;->getFD()Ljava/io/FileDescriptor; -HSPLjava/io/FileInputStream;->read()I -HSPLjava/io/FileInputStream;->read([B)I -HSPLjava/io/FileInputStream;->read([BII)I -HSPLjava/io/FileInputStream;->skip(J)J -HSPLjava/io/FileNotFoundException;-><init>(Ljava/lang/String;)V -HSPLjava/io/FileOutputStream;-><init>(Ljava/io/File;)V -HSPLjava/io/FileOutputStream;-><init>(Ljava/io/File;Z)V -HSPLjava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;)V -HSPLjava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;Z)V -HSPLjava/io/FileOutputStream;-><init>(Ljava/lang/String;)V -HSPLjava/io/FileOutputStream;-><init>(Ljava/lang/String;Z)V -HSPLjava/io/FileOutputStream;->close()V -HSPLjava/io/FileOutputStream;->finalize()V -HSPLjava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel; -HSPLjava/io/FileOutputStream;->getFD()Ljava/io/FileDescriptor; -HSPLjava/io/FileOutputStream;->write(I)V -HSPLjava/io/FileOutputStream;->write([B)V -HSPLjava/io/FileOutputStream;->write([BII)V -HSPLjava/io/FileReader;-><init>(Ljava/io/File;)V -HSPLjava/io/FileReader;-><init>(Ljava/lang/String;)V -HSPLjava/io/FileWriter;-><init>(Ljava/io/File;)V -HSPLjava/io/FileWriter;-><init>(Ljava/io/File;Z)V -HSPLjava/io/FilterInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/io/FilterInputStream;->available()I -HSPLjava/io/FilterInputStream;->close()V -HSPLjava/io/FilterInputStream;->mark(I)V -HSPLjava/io/FilterInputStream;->markSupported()Z -HSPLjava/io/FilterInputStream;->read()I -HSPLjava/io/FilterInputStream;->read([B)I -HSPLjava/io/FilterInputStream;->read([BII)I -HSPLjava/io/FilterInputStream;->reset()V -HSPLjava/io/FilterInputStream;->skip(J)J -HSPLjava/io/FilterOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/FilterOutputStream;->close()V -HSPLjava/io/FilterOutputStream;->flush()V -HSPLjava/io/FilterOutputStream;->write([B)V -HSPLjava/io/FilterReader;-><init>(Ljava/io/Reader;)V -HSPLjava/io/FilterReader;->read()I -HSPLjava/io/IOException;-><init>()V -HSPLjava/io/IOException;-><init>(Ljava/lang/String;)V -HSPLjava/io/IOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/io/IOException;-><init>(Ljava/lang/Throwable;)V -HSPLjava/io/InputStream;-><init>()V -HSPLjava/io/InputStream;->available()I -HSPLjava/io/InputStream;->close()V -HSPLjava/io/InputStream;->markSupported()Z -HSPLjava/io/InputStream;->read([B)I -HSPLjava/io/InputStream;->read([BII)I -HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V -HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V -HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V -HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)V -HSPLjava/io/InputStreamReader;->close()V -HSPLjava/io/InputStreamReader;->read()I -HSPLjava/io/InputStreamReader;->read([CII)I -HSPLjava/io/InputStreamReader;->ready()Z -HSPLjava/io/InterruptedIOException;-><init>()V -HSPLjava/io/InterruptedIOException;-><init>(Ljava/lang/String;)V -HSPLjava/io/ObjectInputStream$BlockDataInputStream;-><init>(Ljava/io/ObjectInputStream;Ljava/io/InputStream;)V -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->close()V -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->currentBlockRemaining()I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->getBlockDataMode()Z -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->peek()I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->peekByte()B -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read()I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read([BII)I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read([BIIZ)I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBlockHeader(Z)I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBoolean()Z -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readByte()B -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFloat()F -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFully([BIIZ)V -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readInt()I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readLong()J -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readShort()S -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTF()Ljava/lang/String; -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFBody(J)Ljava/lang/String; -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFChar(Ljava/lang/StringBuilder;J)I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFSpan(Ljava/lang/StringBuilder;J)J -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUnsignedShort()I -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->refill()V -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->setBlockDataMode(Z)Z -HSPLjava/io/ObjectInputStream$BlockDataInputStream;->skipBlockData()V -HSPLjava/io/ObjectInputStream$GetField;-><init>()V -HSPLjava/io/ObjectInputStream$GetFieldImpl;-><init>(Ljava/io/ObjectInputStream;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;D)D -HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;I)I -HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;J)J -HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream$GetFieldImpl;->get(Ljava/lang/String;Z)Z -HSPLjava/io/ObjectInputStream$GetFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I -HSPLjava/io/ObjectInputStream$GetFieldImpl;->readFields()V -HSPLjava/io/ObjectInputStream$HandleTable$HandleList;-><init>()V -HSPLjava/io/ObjectInputStream$HandleTable$HandleList;->add(I)V -HSPLjava/io/ObjectInputStream$HandleTable;-><init>(I)V -HSPLjava/io/ObjectInputStream$HandleTable;->assign(Ljava/lang/Object;)I -HSPLjava/io/ObjectInputStream$HandleTable;->clear()V -HSPLjava/io/ObjectInputStream$HandleTable;->finish(I)V -HSPLjava/io/ObjectInputStream$HandleTable;->grow()V -HSPLjava/io/ObjectInputStream$HandleTable;->lookupException(I)Ljava/lang/ClassNotFoundException; -HSPLjava/io/ObjectInputStream$HandleTable;->lookupObject(I)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream$HandleTable;->markDependency(II)V -HSPLjava/io/ObjectInputStream$HandleTable;->setObject(ILjava/lang/Object;)V -HSPLjava/io/ObjectInputStream$HandleTable;->size()I -HSPLjava/io/ObjectInputStream$PeekInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/io/ObjectInputStream$PeekInputStream;->close()V -HSPLjava/io/ObjectInputStream$PeekInputStream;->peek()I -HSPLjava/io/ObjectInputStream$PeekInputStream;->read()I -HSPLjava/io/ObjectInputStream$PeekInputStream;->read([BII)I -HSPLjava/io/ObjectInputStream$PeekInputStream;->readFully([BII)V -HSPLjava/io/ObjectInputStream$ValidationList;-><init>()V -HSPLjava/io/ObjectInputStream$ValidationList;->clear()V -HSPLjava/io/ObjectInputStream$ValidationList;->doCallbacks()V -HSPLjava/io/ObjectInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/io/ObjectInputStream;->checkResolve(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->clear()V -HSPLjava/io/ObjectInputStream;->close()V -HSPLjava/io/ObjectInputStream;->defaultReadFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectInputStream;->defaultReadObject()V -HSPLjava/io/ObjectInputStream;->isCustomSubclass()Z -HSPLjava/io/ObjectInputStream;->latestUserDefinedLoader()Ljava/lang/ClassLoader; -HSPLjava/io/ObjectInputStream;->readArray(Z)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->readBoolean()Z -HSPLjava/io/ObjectInputStream;->readByte()B -HSPLjava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass; -HSPLjava/io/ObjectInputStream;->readClassDescriptor()Ljava/io/ObjectStreamClass; -HSPLjava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum; -HSPLjava/io/ObjectInputStream;->readFields()Ljava/io/ObjectInputStream$GetField; -HSPLjava/io/ObjectInputStream;->readFloat()F -HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->readInt()I -HSPLjava/io/ObjectInputStream;->readLong()J -HSPLjava/io/ObjectInputStream;->readNonProxyDesc(Z)Ljava/io/ObjectStreamClass; -HSPLjava/io/ObjectInputStream;->readNull()Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->readObject()Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->readObject0(Z)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->readOrdinaryObject(Z)Ljava/lang/Object; -HSPLjava/io/ObjectInputStream;->readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectInputStream;->readShort()S -HSPLjava/io/ObjectInputStream;->readStreamHeader()V -HSPLjava/io/ObjectInputStream;->readString(Z)Ljava/lang/String; -HSPLjava/io/ObjectInputStream;->readTypeString()Ljava/lang/String; -HSPLjava/io/ObjectInputStream;->readUTF()Ljava/lang/String; -HSPLjava/io/ObjectInputStream;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class; -HSPLjava/io/ObjectInputStream;->skipCustomData()V -HSPLjava/io/ObjectInputStream;->verifySubclass()V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->close()V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->drain()V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->flush()V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->getUTFLength(Ljava/lang/String;)J -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->setBlockDataMode(Z)Z -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->warnIfClosed()V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->write([BIIZ)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeBlockHeader(I)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeByte(I)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeBytes(Ljava/lang/String;)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloat(F)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeInt(I)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeLong(J)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeShort(I)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;)V -HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;J)V -HSPLjava/io/ObjectOutputStream$HandleTable;-><init>(IF)V -HSPLjava/io/ObjectOutputStream$HandleTable;->assign(Ljava/lang/Object;)I -HSPLjava/io/ObjectOutputStream$HandleTable;->clear()V -HSPLjava/io/ObjectOutputStream$HandleTable;->growEntries()V -HSPLjava/io/ObjectOutputStream$HandleTable;->growSpine()V -HSPLjava/io/ObjectOutputStream$HandleTable;->hash(Ljava/lang/Object;)I -HSPLjava/io/ObjectOutputStream$HandleTable;->insert(Ljava/lang/Object;I)V -HSPLjava/io/ObjectOutputStream$HandleTable;->lookup(Ljava/lang/Object;)I -HSPLjava/io/ObjectOutputStream$PutField;-><init>()V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;-><init>(Ljava/io/ObjectOutputStream;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;D)V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;I)V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;J)V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;Ljava/lang/Object;)V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->put(Ljava/lang/String;Z)V -HSPLjava/io/ObjectOutputStream$PutFieldImpl;->writeFields()V -HSPLjava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V -HSPLjava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/io/ObjectOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/ObjectOutputStream;->annotateClass(Ljava/lang/Class;)V -HSPLjava/io/ObjectOutputStream;->close()V -HSPLjava/io/ObjectOutputStream;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectOutputStream;->defaultWriteObject()V -HSPLjava/io/ObjectOutputStream;->flush()V -HSPLjava/io/ObjectOutputStream;->isCustomSubclass()Z -HSPLjava/io/ObjectOutputStream;->putFields()Ljava/io/ObjectOutputStream$PutField; -HSPLjava/io/ObjectOutputStream;->verifySubclass()V -HSPLjava/io/ObjectOutputStream;->writeArray(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectOutputStream;->writeByte(I)V -HSPLjava/io/ObjectOutputStream;->writeClassDesc(Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectOutputStream;->writeClassDescriptor(Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectOutputStream;->writeEnum(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectOutputStream;->writeFields()V -HSPLjava/io/ObjectOutputStream;->writeFloat(F)V -HSPLjava/io/ObjectOutputStream;->writeHandle(I)V -HSPLjava/io/ObjectOutputStream;->writeInt(I)V -HSPLjava/io/ObjectOutputStream;->writeLong(J)V -HSPLjava/io/ObjectOutputStream;->writeNonProxyDesc(Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectOutputStream;->writeNull()V -HSPLjava/io/ObjectOutputStream;->writeObject(Ljava/lang/Object;)V -HSPLjava/io/ObjectOutputStream;->writeObject0(Ljava/lang/Object;Z)V -HSPLjava/io/ObjectOutputStream;->writeOrdinaryObject(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectOutputStream;->writeSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectOutputStream;->writeShort(I)V -HSPLjava/io/ObjectOutputStream;->writeStreamHeader()V -HSPLjava/io/ObjectOutputStream;->writeString(Ljava/lang/String;Z)V -HSPLjava/io/ObjectOutputStream;->writeTypeString(Ljava/lang/String;)V -HSPLjava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V -HSPLjava/io/ObjectStreamClass$1;-><init>(Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectStreamClass$1;->run()Ljava/lang/Long; -HSPLjava/io/ObjectStreamClass$1;->run()Ljava/lang/Object; -HSPLjava/io/ObjectStreamClass$2;-><init>(Ljava/io/ObjectStreamClass;Ljava/lang/Class;)V -HSPLjava/io/ObjectStreamClass$2;->run()Ljava/lang/Object; -HSPLjava/io/ObjectStreamClass$2;->run()Ljava/lang/Void; -HSPLjava/io/ObjectStreamClass$3;-><init>()V -HSPLjava/io/ObjectStreamClass$3;->compare(Ljava/io/ObjectStreamClass$MemberSignature;Ljava/io/ObjectStreamClass$MemberSignature;)I -HSPLjava/io/ObjectStreamClass$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/io/ObjectStreamClass$4;-><init>()V -HSPLjava/io/ObjectStreamClass$4;->compare(Ljava/io/ObjectStreamClass$MemberSignature;Ljava/io/ObjectStreamClass$MemberSignature;)I -HSPLjava/io/ObjectStreamClass$4;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/io/ObjectStreamClass$5;-><init>()V -HSPLjava/io/ObjectStreamClass$5;->compare(Ljava/io/ObjectStreamClass$MemberSignature;Ljava/io/ObjectStreamClass$MemberSignature;)I -HSPLjava/io/ObjectStreamClass$5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/io/ObjectStreamClass$Caches;->-$$Nest$sfgetlocalDescsQueue()Ljava/lang/ref/ReferenceQueue; -HSPLjava/io/ObjectStreamClass$Caches;->-$$Nest$sfgetreflectorsQueue()Ljava/lang/ref/ReferenceQueue; -HSPLjava/io/ObjectStreamClass$ClassDataSlot;-><init>(Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectStreamClass$EntryFuture;-><init>()V -HSPLjava/io/ObjectStreamClass$EntryFuture;-><init>(Ljava/io/ObjectStreamClass$EntryFuture-IA;)V -HSPLjava/io/ObjectStreamClass$EntryFuture;->get()Ljava/lang/Object; -HSPLjava/io/ObjectStreamClass$EntryFuture;->getOwner()Ljava/lang/Thread; -HSPLjava/io/ObjectStreamClass$EntryFuture;->set(Ljava/lang/Object;)Z -HSPLjava/io/ObjectStreamClass$ExceptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/io/ObjectStreamClass$FieldReflector;-><init>([Ljava/io/ObjectStreamField;)V -HSPLjava/io/ObjectStreamClass$FieldReflector;->getFields()[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass$FieldReflector;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V -HSPLjava/io/ObjectStreamClass$FieldReflector;->getPrimFieldValues(Ljava/lang/Object;[B)V -HSPLjava/io/ObjectStreamClass$FieldReflector;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V -HSPLjava/io/ObjectStreamClass$FieldReflector;->setPrimFieldValues(Ljava/lang/Object;[B)V -HSPLjava/io/ObjectStreamClass$FieldReflectorKey;-><init>(Ljava/lang/Class;[Ljava/io/ObjectStreamField;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/io/ObjectStreamClass$FieldReflectorKey;->equals(Ljava/lang/Object;)Z -HSPLjava/io/ObjectStreamClass$FieldReflectorKey;->hashCode()I -HSPLjava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Constructor;)V -HSPLjava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Field;)V -HSPLjava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Method;)V -HSPLjava/io/ObjectStreamClass$WeakClassKey;-><init>(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/io/ObjectStreamClass$WeakClassKey;->equals(Ljava/lang/Object;)Z -HSPLjava/io/ObjectStreamClass$WeakClassKey;->hashCode()I -HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetexternalizable(Ljava/io/ObjectStreamClass;)Z -HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetisEnum(Ljava/io/ObjectStreamClass;)Z -HSPLjava/io/ObjectStreamClass;->-$$Nest$fgetwriteObjectMethod(Ljava/io/ObjectStreamClass;)Ljava/lang/reflect/Method; -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputcons(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Constructor;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputfields(Ljava/io/ObjectStreamClass;[Ljava/io/ObjectStreamField;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputhasWriteObjectData(Ljava/io/ObjectStreamClass;Z)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputreadObjectMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputreadObjectNoDataMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputreadResolveMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputsuid(Ljava/io/ObjectStreamClass;Ljava/lang/Long;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputwriteObjectMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$fputwriteReplaceMethod(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$mcomputeFieldOffsets(Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long; -HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->-$$Nest$smgetSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -HSPLjava/io/ObjectStreamClass;-><init>()V -HSPLjava/io/ObjectStreamClass;-><init>(Ljava/lang/Class;)V -HSPLjava/io/ObjectStreamClass;->checkDefaultSerialize()V -HSPLjava/io/ObjectStreamClass;->checkDeserialize()V -HSPLjava/io/ObjectStreamClass;->checkSerialize()V -HSPLjava/io/ObjectStreamClass;->classNamesEqual(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/io/ObjectStreamClass;->computeDefaultSUID(Ljava/lang/Class;)J -HSPLjava/io/ObjectStreamClass;->computeFieldOffsets()V -HSPLjava/io/ObjectStreamClass;->forClass()Ljava/lang/Class; -HSPLjava/io/ObjectStreamClass;->getClassDataLayout()[Ljava/io/ObjectStreamClass$ClassDataSlot; -HSPLjava/io/ObjectStreamClass;->getClassDataLayout0()[Ljava/io/ObjectStreamClass$ClassDataSlot; -HSPLjava/io/ObjectStreamClass;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String; -HSPLjava/io/ObjectStreamClass;->getDeclaredSUID(Ljava/lang/Class;)Ljava/lang/Long; -HSPLjava/io/ObjectStreamClass;->getDeclaredSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->getDefaultSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->getField(Ljava/lang/String;Ljava/lang/Class;)Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->getFields(Z)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->getInheritableMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/io/ObjectStreamClass;->getMethodSignature([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String; -HSPLjava/io/ObjectStreamClass;->getName()Ljava/lang/String; -HSPLjava/io/ObjectStreamClass;->getNumObjFields()I -HSPLjava/io/ObjectStreamClass;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V -HSPLjava/io/ObjectStreamClass;->getPackageName(Ljava/lang/Class;)Ljava/lang/String; -HSPLjava/io/ObjectStreamClass;->getPrimDataSize()I -HSPLjava/io/ObjectStreamClass;->getPrimFieldValues(Ljava/lang/Object;[B)V -HSPLjava/io/ObjectStreamClass;->getPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/io/ObjectStreamClass;->getReflector([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)Ljava/io/ObjectStreamClass$FieldReflector; -HSPLjava/io/ObjectStreamClass;->getResolveException()Ljava/lang/ClassNotFoundException; -HSPLjava/io/ObjectStreamClass;->getSerialFields(Ljava/lang/Class;)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->getSerialVersionUID()J -HSPLjava/io/ObjectStreamClass;->getSerializableConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -HSPLjava/io/ObjectStreamClass;->getSuperDesc()Ljava/io/ObjectStreamClass; -HSPLjava/io/ObjectStreamClass;->getVariantFor(Ljava/lang/Class;)Ljava/io/ObjectStreamClass; -HSPLjava/io/ObjectStreamClass;->hasReadObjectMethod()Z -HSPLjava/io/ObjectStreamClass;->hasReadResolveMethod()Z -HSPLjava/io/ObjectStreamClass;->hasWriteObjectData()Z -HSPLjava/io/ObjectStreamClass;->hasWriteObjectMethod()Z -HSPLjava/io/ObjectStreamClass;->hasWriteReplaceMethod()Z -HSPLjava/io/ObjectStreamClass;->initNonProxy(Ljava/io/ObjectStreamClass;Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/ObjectStreamClass;->invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V -HSPLjava/io/ObjectStreamClass;->invokeReadResolve(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/io/ObjectStreamClass;->invokeWriteObject(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V -HSPLjava/io/ObjectStreamClass;->invokeWriteReplace(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/io/ObjectStreamClass;->isEnum()Z -HSPLjava/io/ObjectStreamClass;->isExternalizable()Z -HSPLjava/io/ObjectStreamClass;->isInstantiable()Z -HSPLjava/io/ObjectStreamClass;->isProxy()Z -HSPLjava/io/ObjectStreamClass;->isRecord()Z -HSPLjava/io/ObjectStreamClass;->lookup(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass; -HSPLjava/io/ObjectStreamClass;->matchFields([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)[Ljava/io/ObjectStreamField; -HSPLjava/io/ObjectStreamClass;->newInstance()Ljava/lang/Object; -HSPLjava/io/ObjectStreamClass;->packageEquals(Ljava/lang/Class;Ljava/lang/Class;)Z -HSPLjava/io/ObjectStreamClass;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V -HSPLjava/io/ObjectStreamClass;->readNonProxy(Ljava/io/ObjectInputStream;)V -HSPLjava/io/ObjectStreamClass;->requireInitialized()V -HSPLjava/io/ObjectStreamClass;->setObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V -HSPLjava/io/ObjectStreamClass;->setPrimFieldValues(Ljava/lang/Object;[B)V -HSPLjava/io/ObjectStreamClass;->writeNonProxy(Ljava/io/ObjectOutputStream;)V -HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/Class;)V -HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/Class;Z)V -HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V -HSPLjava/io/ObjectStreamField;-><init>(Ljava/lang/reflect/Field;ZZ)V -HSPLjava/io/ObjectStreamField;->appendClassSignature(Ljava/lang/StringBuilder;Ljava/lang/Class;)Ljava/lang/StringBuilder; -HSPLjava/io/ObjectStreamField;->compareTo(Ljava/lang/Object;)I -HSPLjava/io/ObjectStreamField;->getClassSignature(Ljava/lang/Class;)Ljava/lang/String; -HSPLjava/io/ObjectStreamField;->getField()Ljava/lang/reflect/Field; -HSPLjava/io/ObjectStreamField;->getName()Ljava/lang/String; -HSPLjava/io/ObjectStreamField;->getOffset()I -HSPLjava/io/ObjectStreamField;->getPrimitiveSignature(Ljava/lang/Class;)Ljava/lang/String; -HSPLjava/io/ObjectStreamField;->getSignature()Ljava/lang/String; -HSPLjava/io/ObjectStreamField;->getType()Ljava/lang/Class; -HSPLjava/io/ObjectStreamField;->getTypeCode()C -HSPLjava/io/ObjectStreamField;->getTypeString()Ljava/lang/String; -HSPLjava/io/ObjectStreamField;->isPrimitive()Z -HSPLjava/io/ObjectStreamField;->isUnshared()Z -HSPLjava/io/ObjectStreamField;->setOffset(I)V -HSPLjava/io/OutputStream;-><init>()V -HSPLjava/io/OutputStream;->close()V -HSPLjava/io/OutputStream;->flush()V -HSPLjava/io/OutputStream;->write([B)V -HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;)V -HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V -HSPLjava/io/OutputStreamWriter;->close()V -HSPLjava/io/OutputStreamWriter;->flush()V -HSPLjava/io/OutputStreamWriter;->write(I)V -HSPLjava/io/OutputStreamWriter;->write(Ljava/lang/String;II)V -HSPLjava/io/OutputStreamWriter;->write([CII)V -HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;Z)V -HSPLjava/io/PrintStream;-><init>(ZLjava/io/OutputStream;)V -HSPLjava/io/PrintStream;->close()V -HSPLjava/io/PrintStream;->ensureOpen()V -HSPLjava/io/PrintStream;->flush()V -HSPLjava/io/PrintStream;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; -HSPLjava/io/PrintWriter;-><init>(Ljava/io/OutputStream;)V -HSPLjava/io/PrintWriter;-><init>(Ljava/io/OutputStream;Z)V -HSPLjava/io/PrintWriter;-><init>(Ljava/io/Writer;)V -HSPLjava/io/PrintWriter;-><init>(Ljava/io/Writer;Z)V -HSPLjava/io/PrintWriter;->append(C)Ljava/io/PrintWriter; -HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter; -HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable; -HSPLjava/io/PrintWriter;->close()V -HSPLjava/io/PrintWriter;->ensureOpen()V -HSPLjava/io/PrintWriter;->flush()V -HSPLjava/io/PrintWriter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter; -HSPLjava/io/PrintWriter;->newLine()V -HSPLjava/io/PrintWriter;->print(C)V -HSPLjava/io/PrintWriter;->print(I)V -HSPLjava/io/PrintWriter;->print(J)V -HSPLjava/io/PrintWriter;->print(Ljava/lang/String;)V -HSPLjava/io/PrintWriter;->print(Z)V -HSPLjava/io/PrintWriter;->printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter; -HSPLjava/io/PrintWriter;->println()V -HSPLjava/io/PrintWriter;->println(I)V -HSPLjava/io/PrintWriter;->println(Ljava/lang/Object;)V -HSPLjava/io/PrintWriter;->println(Ljava/lang/String;)V -HSPLjava/io/PrintWriter;->write(I)V -HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V -HSPLjava/io/PrintWriter;->write(Ljava/lang/String;II)V -HSPLjava/io/PrintWriter;->write([CII)V -HSPLjava/io/PushbackInputStream;-><init>(Ljava/io/InputStream;I)V -HSPLjava/io/PushbackInputStream;->close()V -HSPLjava/io/PushbackInputStream;->ensureOpen()V -HSPLjava/io/PushbackInputStream;->markSupported()Z -HSPLjava/io/PushbackInputStream;->read()I -HSPLjava/io/PushbackInputStream;->read([BII)I -HSPLjava/io/PushbackInputStream;->unread([BII)V -HSPLjava/io/PushbackReader;-><init>(Ljava/io/Reader;I)V -HSPLjava/io/PushbackReader;->ensureOpen()V -HSPLjava/io/PushbackReader;->read()I -HSPLjava/io/PushbackReader;->unread(I)V -HSPLjava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V -HSPLjava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;Z)V -HSPLjava/io/RandomAccessFile;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/io/RandomAccessFile;->close()V -HSPLjava/io/RandomAccessFile;->finalize()V -HSPLjava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel; -HSPLjava/io/RandomAccessFile;->getFD()Ljava/io/FileDescriptor; -HSPLjava/io/RandomAccessFile;->getFilePointer()J -HSPLjava/io/RandomAccessFile;->length()J -HSPLjava/io/RandomAccessFile;->maybeSync()V -HSPLjava/io/RandomAccessFile;->read()I -HSPLjava/io/RandomAccessFile;->read([B)I -HSPLjava/io/RandomAccessFile;->read([BII)I -HSPLjava/io/RandomAccessFile;->readByte()B -HSPLjava/io/RandomAccessFile;->readBytes([BII)I -HSPLjava/io/RandomAccessFile;->readFully([B)V -HSPLjava/io/RandomAccessFile;->readFully([BII)V -HSPLjava/io/RandomAccessFile;->readInt()I -HSPLjava/io/RandomAccessFile;->readLine()Ljava/lang/String; -HSPLjava/io/RandomAccessFile;->seek(J)V -HSPLjava/io/RandomAccessFile;->setLength(J)V -HSPLjava/io/RandomAccessFile;->write(I)V -HSPLjava/io/RandomAccessFile;->write([B)V -HSPLjava/io/RandomAccessFile;->write([BII)V -HSPLjava/io/RandomAccessFile;->writeBytes([BII)V -HSPLjava/io/RandomAccessFile;->writeInt(I)V -HSPLjava/io/RandomAccessFile;->writeUTF(Ljava/lang/String;)V -HSPLjava/io/Reader;-><init>()V -HSPLjava/io/Reader;-><init>(Ljava/lang/Object;)V -HSPLjava/io/Reader;->read(Ljava/nio/CharBuffer;)I -HSPLjava/io/Reader;->read([C)I -HSPLjava/io/SequenceInputStream;-><init>(Ljava/io/InputStream;Ljava/io/InputStream;)V -HSPLjava/io/SequenceInputStream;->close()V -HSPLjava/io/SequenceInputStream;->nextStream()V -HSPLjava/io/SequenceInputStream;->read()I -HSPLjava/io/SequenceInputStream;->read([BII)I -HSPLjava/io/SerialCallbackContext;-><init>(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V -HSPLjava/io/SerialCallbackContext;->check()V -HSPLjava/io/SerialCallbackContext;->checkAndSetUsed()V -HSPLjava/io/SerialCallbackContext;->getDesc()Ljava/io/ObjectStreamClass; -HSPLjava/io/SerialCallbackContext;->getObj()Ljava/lang/Object; -HSPLjava/io/SerialCallbackContext;->setUsed()V -HSPLjava/io/StringReader;-><init>(Ljava/lang/String;)V -HSPLjava/io/StringReader;->close()V -HSPLjava/io/StringReader;->ensureOpen()V -HSPLjava/io/StringReader;->read()I -HSPLjava/io/StringReader;->read([CII)I -HSPLjava/io/StringWriter;-><init>()V -HSPLjava/io/StringWriter;-><init>(I)V -HSPLjava/io/StringWriter;->append(C)Ljava/io/StringWriter; -HSPLjava/io/StringWriter;->append(C)Ljava/io/Writer; -HSPLjava/io/StringWriter;->append(Ljava/lang/CharSequence;)Ljava/io/StringWriter; -HSPLjava/io/StringWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; -HSPLjava/io/StringWriter;->close()V -HSPLjava/io/StringWriter;->flush()V -HSPLjava/io/StringWriter;->getBuffer()Ljava/lang/StringBuffer; -HSPLjava/io/StringWriter;->toString()Ljava/lang/String; -HSPLjava/io/StringWriter;->write(I)V -HSPLjava/io/StringWriter;->write(Ljava/lang/String;)V -HSPLjava/io/StringWriter;->write(Ljava/lang/String;II)V -HSPLjava/io/StringWriter;->write([CII)V -HSPLjava/io/UnixFileSystem;->canonicalize(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->checkAccess(Ljava/io/File;I)Z -HSPLjava/io/UnixFileSystem;->compare(Ljava/io/File;Ljava/io/File;)I -HSPLjava/io/UnixFileSystem;->createDirectory(Ljava/io/File;)Z -HSPLjava/io/UnixFileSystem;->createFileExclusively(Ljava/lang/String;)Z -HSPLjava/io/UnixFileSystem;->delete(Ljava/io/File;)Z -HSPLjava/io/UnixFileSystem;->getBooleanAttributes(Ljava/io/File;)I -HSPLjava/io/UnixFileSystem;->getDefaultParent()Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->getLastModifiedTime(Ljava/io/File;)J -HSPLjava/io/UnixFileSystem;->getLength(Ljava/io/File;)J -HSPLjava/io/UnixFileSystem;->getSpace(Ljava/io/File;I)J -HSPLjava/io/UnixFileSystem;->hashCode(Ljava/io/File;)I -HSPLjava/io/UnixFileSystem;->isAbsolute(Ljava/io/File;)Z -HSPLjava/io/UnixFileSystem;->list(Ljava/io/File;)[Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->normalize(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->prefixLength(Ljava/lang/String;)I -HSPLjava/io/UnixFileSystem;->rename(Ljava/io/File;Ljava/io/File;)Z -HSPLjava/io/UnixFileSystem;->resolve(Ljava/io/File;)Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->resolve(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/io/UnixFileSystem;->setLastModifiedTime(Ljava/io/File;J)Z -HSPLjava/io/UnixFileSystem;->setPermission(Ljava/io/File;IZZ)Z -HSPLjava/io/Writer;-><init>()V -HSPLjava/io/Writer;-><init>(Ljava/lang/Object;)V -HSPLjava/io/Writer;->append(C)Ljava/io/Writer; -HSPLjava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; -HSPLjava/io/Writer;->write(Ljava/lang/String;)V -HSPLjava/lang/AbstractStringBuilder;-><init>(I)V -HSPLjava/lang/AbstractStringBuilder;->append(C)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(D)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(F)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(I)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(J)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/StringBuffer;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append(Z)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->append([CII)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->appendChars(Ljava/lang/CharSequence;II)V -HSPLjava/lang/AbstractStringBuilder;->appendChars([CII)V -HSPLjava/lang/AbstractStringBuilder;->appendCodePoint(I)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->charAt(I)C -HSPLjava/lang/AbstractStringBuilder;->checkRange(III)V -HSPLjava/lang/AbstractStringBuilder;->checkRangeSIOOBE(III)V -HSPLjava/lang/AbstractStringBuilder;->codePointAt(I)I -HSPLjava/lang/AbstractStringBuilder;->delete(II)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->deleteCharAt(I)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->ensureCapacity(I)V -HSPLjava/lang/AbstractStringBuilder;->ensureCapacityInternal(I)V -HSPLjava/lang/AbstractStringBuilder;->getBytes([BIB)V -HSPLjava/lang/AbstractStringBuilder;->getChars(II[CI)V -HSPLjava/lang/AbstractStringBuilder;->getCoder()B -HSPLjava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;)I -HSPLjava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;I)I -HSPLjava/lang/AbstractStringBuilder;->inflate()V -HSPLjava/lang/AbstractStringBuilder;->insert(IC)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->insert(II)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->isLatin1()Z -HSPLjava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;I)I -HSPLjava/lang/AbstractStringBuilder;->length()I -HSPLjava/lang/AbstractStringBuilder;->newCapacity(I)I -HSPLjava/lang/AbstractStringBuilder;->putStringAt(ILjava/lang/String;)V -HSPLjava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->reverse()Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/AbstractStringBuilder;->setCharAt(IC)V -HSPLjava/lang/AbstractStringBuilder;->setLength(I)V -HSPLjava/lang/AbstractStringBuilder;->shift(II)V -HSPLjava/lang/AbstractStringBuilder;->subSequence(II)Ljava/lang/CharSequence; -HSPLjava/lang/AbstractStringBuilder;->substring(I)Ljava/lang/String; -HSPLjava/lang/AbstractStringBuilder;->substring(II)Ljava/lang/String; -HSPLjava/lang/ArrayIndexOutOfBoundsException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Boolean;-><init>(Z)V -HSPLjava/lang/Boolean;->booleanValue()Z -HSPLjava/lang/Boolean;->compare(ZZ)I -HSPLjava/lang/Boolean;->compareTo(Ljava/lang/Boolean;)I -HSPLjava/lang/Boolean;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/Boolean;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z -HSPLjava/lang/Boolean;->hashCode()I -HSPLjava/lang/Boolean;->hashCode(Z)I -HSPLjava/lang/Boolean;->parseBoolean(Ljava/lang/String;)Z -HSPLjava/lang/Boolean;->toString()Ljava/lang/String; -HSPLjava/lang/Boolean;->toString(Z)Ljava/lang/String; -HSPLjava/lang/Boolean;->valueOf(Ljava/lang/String;)Ljava/lang/Boolean; -HSPLjava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; -HSPLjava/lang/BootClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLjava/lang/BootClassLoader;->findResource(Ljava/lang/String;)Ljava/net/URL; -HSPLjava/lang/BootClassLoader;->findResources(Ljava/lang/String;)Ljava/util/Enumeration; -HSPLjava/lang/BootClassLoader;->getInstance()Ljava/lang/BootClassLoader; -HSPLjava/lang/BootClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL; -HSPLjava/lang/BootClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration; -HSPLjava/lang/BootClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class; -HSPLjava/lang/Byte;-><init>(B)V -HSPLjava/lang/Byte;->byteValue()B -HSPLjava/lang/Byte;->compare(BB)I -HSPLjava/lang/Byte;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Byte;->hashCode()I -HSPLjava/lang/Byte;->hashCode(B)I -HSPLjava/lang/Byte;->parseByte(Ljava/lang/String;I)B -HSPLjava/lang/Byte;->toString()Ljava/lang/String; -HSPLjava/lang/Byte;->toString(B)Ljava/lang/String; -HSPLjava/lang/Byte;->toUnsignedInt(B)I -HSPLjava/lang/Byte;->valueOf(B)Ljava/lang/Byte; -HSPLjava/lang/CaseMapper;->toLowerCase(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/CaseMapper;->toUpperCase(Ljava/util/Locale;Ljava/lang/String;I)Ljava/lang/String; -HSPLjava/lang/CaseMapper;->upperIndex(I)I -HSPLjava/lang/Character$Subset;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Character$Subset;->hashCode()I -HSPLjava/lang/Character$UnicodeBlock;->of(I)Ljava/lang/Character$UnicodeBlock; -HSPLjava/lang/Character;-><init>(C)V -HSPLjava/lang/Character;->charCount(I)I -HSPLjava/lang/Character;->charValue()C -HSPLjava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I -HSPLjava/lang/Character;->codePointAtImpl([CII)I -HSPLjava/lang/Character;->codePointBefore(Ljava/lang/CharSequence;I)I -HSPLjava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I -HSPLjava/lang/Character;->digit(CI)I -HSPLjava/lang/Character;->digit(II)I -HSPLjava/lang/Character;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Character;->forDigit(II)C -HSPLjava/lang/Character;->getDirectionality(C)B -HSPLjava/lang/Character;->getDirectionality(I)B -HSPLjava/lang/Character;->getNumericValue(C)I -HSPLjava/lang/Character;->getNumericValue(I)I -HSPLjava/lang/Character;->getType(I)I -HSPLjava/lang/Character;->hashCode()I -HSPLjava/lang/Character;->hashCode(C)I -HSPLjava/lang/Character;->highSurrogate(I)C -HSPLjava/lang/Character;->isBmpCodePoint(I)Z -HSPLjava/lang/Character;->isDigit(C)Z -HSPLjava/lang/Character;->isDigit(I)Z -HSPLjava/lang/Character;->isHighSurrogate(C)Z -HSPLjava/lang/Character;->isISOControl(I)Z -HSPLjava/lang/Character;->isJavaIdentifierPart(C)Z -HSPLjava/lang/Character;->isJavaIdentifierPart(I)Z -HSPLjava/lang/Character;->isJavaIdentifierStart(I)Z -HSPLjava/lang/Character;->isLetter(C)Z -HSPLjava/lang/Character;->isLetter(I)Z -HSPLjava/lang/Character;->isLetterOrDigit(C)Z -HSPLjava/lang/Character;->isLetterOrDigit(I)Z -HSPLjava/lang/Character;->isLowSurrogate(C)Z -HSPLjava/lang/Character;->isLowerCase(C)Z -HSPLjava/lang/Character;->isLowerCase(I)Z -HSPLjava/lang/Character;->isSpaceChar(C)Z -HSPLjava/lang/Character;->isSpaceChar(I)Z -HSPLjava/lang/Character;->isSupplementaryCodePoint(I)Z -HSPLjava/lang/Character;->isSurrogate(C)Z -HSPLjava/lang/Character;->isSurrogatePair(CC)Z -HSPLjava/lang/Character;->isUpperCase(C)Z -HSPLjava/lang/Character;->isUpperCase(I)Z -HSPLjava/lang/Character;->isValidCodePoint(I)Z -HSPLjava/lang/Character;->isWhitespace(C)Z -HSPLjava/lang/Character;->isWhitespace(I)Z -HSPLjava/lang/Character;->lowSurrogate(I)C -HSPLjava/lang/Character;->toChars(I)[C -HSPLjava/lang/Character;->toChars(I[CI)I -HSPLjava/lang/Character;->toCodePoint(CC)I -HSPLjava/lang/Character;->toLowerCase(C)C -HSPLjava/lang/Character;->toLowerCase(I)I -HSPLjava/lang/Character;->toString()Ljava/lang/String; -HSPLjava/lang/Character;->toString(C)Ljava/lang/String; -HSPLjava/lang/Character;->toSurrogates(I[CI)V -HSPLjava/lang/Character;->toUpperCase(C)C -HSPLjava/lang/Character;->toUpperCase(I)I -HSPLjava/lang/Character;->valueOf(C)Ljava/lang/Character; -HSPLjava/lang/Class;->asSubclass(Ljava/lang/Class;)Ljava/lang/Class; -HSPLjava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/Class;->classNameImpliesTopLevel()Z -HSPLjava/lang/Class;->desiredAssertionStatus()Z -HSPLjava/lang/Class;->findInterfaceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; -HSPLjava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class; -HSPLjava/lang/Class;->getAccessFlags()I -HSPLjava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; -HSPLjava/lang/Class;->getCanonicalName()Ljava/lang/String; -HSPLjava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; -HSPLjava/lang/Class;->getComponentType()Ljava/lang/Class; -HSPLjava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -HSPLjava/lang/Class;->getConstructor0([Ljava/lang/Class;I)Ljava/lang/reflect/Constructor; -HSPLjava/lang/Class;->getConstructors()[Ljava/lang/reflect/Constructor; -HSPLjava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -HSPLjava/lang/Class;->getDeclaredConstructors()[Ljava/lang/reflect/Constructor; -HSPLjava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getEnclosingConstructor()Ljava/lang/reflect/Constructor; -HSPLjava/lang/Class;->getEnclosingMethod()Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getEnumConstants()[Ljava/lang/Object; -HSPLjava/lang/Class;->getEnumConstantsShared()[Ljava/lang/Object; -HSPLjava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field; -HSPLjava/lang/Class;->getFields()[Ljava/lang/reflect/Field; -HSPLjava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type; -HSPLjava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type; -HSPLjava/lang/Class;->getInterfaces()[Ljava/lang/Class; -HSPLjava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getMethods()[Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getModifiers()I -HSPLjava/lang/Class;->getName()Ljava/lang/String; -HSPLjava/lang/Class;->getPackage()Ljava/lang/Package; -HSPLjava/lang/Class;->getPackageName()Ljava/lang/String; -HSPLjava/lang/Class;->getProtectionDomain()Ljava/security/ProtectionDomain; -HSPLjava/lang/Class;->getPublicFieldsRecursive(Ljava/util/List;)V -HSPLjava/lang/Class;->getPublicMethodRecursive(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; -HSPLjava/lang/Class;->getPublicMethodsInternal(Ljava/util/List;)V -HSPLjava/lang/Class;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; -HSPLjava/lang/Class;->getSignatureAttribute()Ljava/lang/String; -HSPLjava/lang/Class;->getSimpleName()Ljava/lang/String; -HSPLjava/lang/Class;->getSuperclass()Ljava/lang/Class; -HSPLjava/lang/Class;->getTypeName()Ljava/lang/String; -HSPLjava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable; -HSPLjava/lang/Class;->isAnnotation()Z -HSPLjava/lang/Class;->isAnnotationPresent(Ljava/lang/Class;)Z -HSPLjava/lang/Class;->isArray()Z -HSPLjava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z -HSPLjava/lang/Class;->isEnum()Z -HSPLjava/lang/Class;->isInstance(Ljava/lang/Object;)Z -HSPLjava/lang/Class;->isInterface()Z -HSPLjava/lang/Class;->isLocalClass()Z -HSPLjava/lang/Class;->isLocalOrAnonymousClass()Z -HSPLjava/lang/Class;->isMemberClass()Z -HSPLjava/lang/Class;->isPrimitive()Z -HSPLjava/lang/Class;->isProxy()Z -HSPLjava/lang/Class;->resolveName(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/Class;->toString()Ljava/lang/String; -HSPLjava/lang/ClassCastException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/ClassLoader;-><init>()V -HSPLjava/lang/ClassLoader;-><init>(Ljava/lang/ClassLoader;)V -HSPLjava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/String;Ljava/lang/ClassLoader;)V -HSPLjava/lang/ClassLoader;->checkCreateClassLoader()Ljava/lang/Void; -HSPLjava/lang/ClassLoader;->checkCreateClassLoader(Ljava/lang/String;)Ljava/lang/Void; -HSPLjava/lang/ClassLoader;->definePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package; -HSPLjava/lang/ClassLoader;->findLoadedClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLjava/lang/ClassLoader;->getClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader; -HSPLjava/lang/ClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package; -HSPLjava/lang/ClassLoader;->getParent()Ljava/lang/ClassLoader; -HSPLjava/lang/ClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL; -HSPLjava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream; -HSPLjava/lang/ClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration; -HSPLjava/lang/ClassLoader;->getSystemClassLoader()Ljava/lang/ClassLoader; -HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class; -HSPLjava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/Daemons$Daemon;->interrupt(Ljava/lang/Thread;)V -HSPLjava/lang/Daemons$Daemon;->isRunning()Z -HSPLjava/lang/Daemons$Daemon;->run()V -HSPLjava/lang/Daemons$Daemon;->start()V -HSPLjava/lang/Daemons$Daemon;->startInternal()V -HSPLjava/lang/Daemons$Daemon;->stop()V -HSPLjava/lang/Daemons$FinalizerDaemon;->-$$Nest$fgetprogressCounter(Ljava/lang/Daemons$FinalizerDaemon;)Ljava/util/concurrent/atomic/AtomicInteger; -HSPLjava/lang/Daemons$FinalizerDaemon;->-$$Nest$sfgetINSTANCE()Ljava/lang/Daemons$FinalizerDaemon; -HSPLjava/lang/Daemons$FinalizerDaemon;->doFinalize(Ljava/lang/ref/FinalizerReference;)V -HSPLjava/lang/Daemons$FinalizerDaemon;->processReference(Ljava/lang/Object;)V -HSPLjava/lang/Daemons$FinalizerDaemon;->runInternal()V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$mmonitoringNeeded(Ljava/lang/Daemons$FinalizerWatchdogDaemon;I)V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$mmonitoringNotNeeded(Ljava/lang/Daemons$FinalizerWatchdogDaemon;I)V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->-$$Nest$sfgetINSTANCE()Ljava/lang/Daemons$FinalizerWatchdogDaemon; -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->isActive(I)Z -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->monitoringNeeded(I)V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->monitoringNotNeeded(I)V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->resetTimeouts()V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->runInternal()V -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->sleepForNanos(J)Z -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->sleepUntilNeeded()Z -HSPLjava/lang/Daemons$FinalizerWatchdogDaemon;->waitForProgress()Ljava/util/concurrent/TimeoutException; -HSPLjava/lang/Daemons$HeapTaskDaemon;->interrupt(Ljava/lang/Thread;)V -HSPLjava/lang/Daemons$HeapTaskDaemon;->runInternal()V -HSPLjava/lang/Daemons$ReferenceQueueDaemon;->-$$Nest$fgetprogressCounter(Ljava/lang/Daemons$ReferenceQueueDaemon;)Ljava/util/concurrent/atomic/AtomicInteger; -HSPLjava/lang/Daemons$ReferenceQueueDaemon;->-$$Nest$sfgetINSTANCE()Ljava/lang/Daemons$ReferenceQueueDaemon; -HSPLjava/lang/Daemons$ReferenceQueueDaemon;->runInternal()V -HSPLjava/lang/Daemons;->-$$Nest$sfgetpostZygoteFork()Z -HSPLjava/lang/Daemons;->-$$Nest$sfgetzygoteStartLatch()Ljava/util/concurrent/CountDownLatch; -HSPLjava/lang/Daemons;->start()V -HSPLjava/lang/Daemons;->startPostZygoteFork()V -HSPLjava/lang/Daemons;->stop()V -HSPLjava/lang/Double;-><init>(D)V -HSPLjava/lang/Double;->compare(DD)I -HSPLjava/lang/Double;->compareTo(Ljava/lang/Double;)I -HSPLjava/lang/Double;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/Double;->doubleToLongBits(D)J -HSPLjava/lang/Double;->doubleValue()D -HSPLjava/lang/Double;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Double;->floatValue()F -HSPLjava/lang/Double;->hashCode()I -HSPLjava/lang/Double;->hashCode(D)I -HSPLjava/lang/Double;->intValue()I -HSPLjava/lang/Double;->isInfinite(D)Z -HSPLjava/lang/Double;->isNaN()Z -HSPLjava/lang/Double;->isNaN(D)Z -HSPLjava/lang/Double;->longValue()J -HSPLjava/lang/Double;->parseDouble(Ljava/lang/String;)D -HSPLjava/lang/Double;->toString()Ljava/lang/String; -HSPLjava/lang/Double;->toString(D)Ljava/lang/String; -HSPLjava/lang/Double;->valueOf(D)Ljava/lang/Double; -HSPLjava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double; -HSPLjava/lang/Enum$1;->create(Ljava/lang/Class;)[Ljava/lang/Object; -HSPLjava/lang/Enum$1;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/Enum;->-$$Nest$smenumValues(Ljava/lang/Class;)[Ljava/lang/Object; -HSPLjava/lang/Enum;-><init>(Ljava/lang/String;I)V -HSPLjava/lang/Enum;->compareTo(Ljava/lang/Enum;)I -HSPLjava/lang/Enum;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/Enum;->enumValues(Ljava/lang/Class;)[Ljava/lang/Object; -HSPLjava/lang/Enum;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Enum;->getDeclaringClass()Ljava/lang/Class; -HSPLjava/lang/Enum;->getSharedConstants(Ljava/lang/Class;)[Ljava/lang/Enum; -HSPLjava/lang/Enum;->hashCode()I -HSPLjava/lang/Enum;->name()Ljava/lang/String; -HSPLjava/lang/Enum;->ordinal()I -HSPLjava/lang/Enum;->toString()Ljava/lang/String; -HSPLjava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum; -HSPLjava/lang/Error;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Exception;-><init>()V -HSPLjava/lang/Exception;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V -HSPLjava/lang/Exception;-><init>(Ljava/lang/Throwable;)V -HSPLjava/lang/Float;-><init>(F)V -HSPLjava/lang/Float;->compare(FF)I -HSPLjava/lang/Float;->compareTo(Ljava/lang/Float;)I -HSPLjava/lang/Float;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/Float;->doubleValue()D -HSPLjava/lang/Float;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Float;->floatToIntBits(F)I -HSPLjava/lang/Float;->floatValue()F -HSPLjava/lang/Float;->hashCode()I -HSPLjava/lang/Float;->hashCode(F)I -HSPLjava/lang/Float;->intValue()I -HSPLjava/lang/Float;->isFinite(F)Z -HSPLjava/lang/Float;->isInfinite(F)Z -HSPLjava/lang/Float;->isNaN(F)Z -HSPLjava/lang/Float;->parseFloat(Ljava/lang/String;)F -HSPLjava/lang/Float;->toString()Ljava/lang/String; -HSPLjava/lang/Float;->toString(F)Ljava/lang/String; -HSPLjava/lang/Float;->valueOf(F)Ljava/lang/Float; -HSPLjava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float; -HSPLjava/lang/IllegalAccessException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/IllegalArgumentException;-><init>()V -HSPLjava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/IllegalStateException;-><init>()V -HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/IncompatibleClassChangeError;-><init>(Ljava/lang/String;)V -HSPLjava/lang/IndexOutOfBoundsException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/InheritableThreadLocal;->childValue(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/InheritableThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V -HSPLjava/lang/InheritableThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap; -HSPLjava/lang/InstantiationException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Integer;-><init>(I)V -HSPLjava/lang/Integer;->bitCount(I)I -HSPLjava/lang/Integer;->byteValue()B -HSPLjava/lang/Integer;->compare(II)I -HSPLjava/lang/Integer;->compareTo(Ljava/lang/Integer;)I -HSPLjava/lang/Integer;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/Integer;->decode(Ljava/lang/String;)Ljava/lang/Integer; -HSPLjava/lang/Integer;->divideUnsigned(II)I -HSPLjava/lang/Integer;->doubleValue()D -HSPLjava/lang/Integer;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Integer;->floatValue()F -HSPLjava/lang/Integer;->formatUnsignedInt(II[BII)V -HSPLjava/lang/Integer;->getChars(II[B)I -HSPLjava/lang/Integer;->getChars(II[C)I -HSPLjava/lang/Integer;->getInteger(Ljava/lang/String;)Ljava/lang/Integer; -HSPLjava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer; -HSPLjava/lang/Integer;->getInteger(Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer; -HSPLjava/lang/Integer;->hashCode()I -HSPLjava/lang/Integer;->hashCode(I)I -HSPLjava/lang/Integer;->highestOneBit(I)I -HSPLjava/lang/Integer;->intValue()I -HSPLjava/lang/Integer;->longValue()J -HSPLjava/lang/Integer;->lowestOneBit(I)I -HSPLjava/lang/Integer;->max(II)I -HSPLjava/lang/Integer;->min(II)I -HSPLjava/lang/Integer;->numberOfLeadingZeros(I)I -HSPLjava/lang/Integer;->numberOfTrailingZeros(I)I -HSPLjava/lang/Integer;->parseInt(Ljava/lang/String;)I -HSPLjava/lang/Integer;->parseInt(Ljava/lang/String;I)I -HSPLjava/lang/Integer;->reverse(I)I -HSPLjava/lang/Integer;->reverseBytes(I)I -HSPLjava/lang/Integer;->rotateLeft(II)I -HSPLjava/lang/Integer;->rotateRight(II)I -HSPLjava/lang/Integer;->shortValue()S -HSPLjava/lang/Integer;->signum(I)I -HSPLjava/lang/Integer;->stringSize(I)I -HSPLjava/lang/Integer;->sum(II)I -HSPLjava/lang/Integer;->toBinaryString(I)Ljava/lang/String; -HSPLjava/lang/Integer;->toHexString(I)Ljava/lang/String; -HSPLjava/lang/Integer;->toString()Ljava/lang/String; -HSPLjava/lang/Integer;->toString(I)Ljava/lang/String; -HSPLjava/lang/Integer;->toString(II)Ljava/lang/String; -HSPLjava/lang/Integer;->toUnsignedLong(I)J -HSPLjava/lang/Integer;->toUnsignedString0(II)Ljava/lang/String; -HSPLjava/lang/Integer;->valueOf(I)Ljava/lang/Integer; -HSPLjava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer; -HSPLjava/lang/Integer;->valueOf(Ljava/lang/String;I)Ljava/lang/Integer; -HSPLjava/lang/InterruptedException;-><init>()V -HSPLjava/lang/Iterable;->forEach(Ljava/util/function/Consumer;)V+]Ljava/lang/Iterable;megamorphic_types]Ljava/util/Iterator;megamorphic_types]Ljava/util/function/Consumer;missing_types -HSPLjava/lang/LinkageError;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Long;-><init>(J)V -HSPLjava/lang/Long;->bitCount(J)I -HSPLjava/lang/Long;->compare(JJ)I -HSPLjava/lang/Long;->compareTo(Ljava/lang/Long;)I -HSPLjava/lang/Long;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/Long;->compareUnsigned(JJ)I -HSPLjava/lang/Long;->decode(Ljava/lang/String;)Ljava/lang/Long; -HSPLjava/lang/Long;->divideUnsigned(JJ)J -HSPLjava/lang/Long;->doubleValue()D -HSPLjava/lang/Long;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Long;->formatUnsignedLong0(JI[BII)V -HSPLjava/lang/Long;->getChars(JI[B)I -HSPLjava/lang/Long;->getChars(JI[C)I -HSPLjava/lang/Long;->getLong(Ljava/lang/String;J)Ljava/lang/Long; -HSPLjava/lang/Long;->getLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long; -HSPLjava/lang/Long;->hashCode()I -HSPLjava/lang/Long;->hashCode(J)I -HSPLjava/lang/Long;->highestOneBit(J)J -HSPLjava/lang/Long;->intValue()I -HSPLjava/lang/Long;->longValue()J -HSPLjava/lang/Long;->lowestOneBit(J)J -HSPLjava/lang/Long;->numberOfLeadingZeros(J)I -HSPLjava/lang/Long;->numberOfTrailingZeros(J)I -HSPLjava/lang/Long;->parseLong(Ljava/lang/CharSequence;III)J -HSPLjava/lang/Long;->parseLong(Ljava/lang/String;)J -HSPLjava/lang/Long;->parseLong(Ljava/lang/String;I)J -HSPLjava/lang/Long;->reverse(J)J -HSPLjava/lang/Long;->reverseBytes(J)J -HSPLjava/lang/Long;->rotateLeft(JI)J -HSPLjava/lang/Long;->rotateRight(JI)J -HSPLjava/lang/Long;->signum(J)I -HSPLjava/lang/Long;->stringSize(J)I -HSPLjava/lang/Long;->sum(JJ)J -HSPLjava/lang/Long;->toHexString(J)Ljava/lang/String; -HSPLjava/lang/Long;->toString()Ljava/lang/String; -HSPLjava/lang/Long;->toString(J)Ljava/lang/String; -HSPLjava/lang/Long;->toString(JI)Ljava/lang/String; -HSPLjava/lang/Long;->toUnsignedString0(JI)Ljava/lang/String; -HSPLjava/lang/Long;->valueOf(J)Ljava/lang/Long; -HSPLjava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long; -HSPLjava/lang/Long;->valueOf(Ljava/lang/String;I)Ljava/lang/Long; -HSPLjava/lang/Math;->abs(D)D -HSPLjava/lang/Math;->abs(F)F -HSPLjava/lang/Math;->abs(I)I -HSPLjava/lang/Math;->abs(J)J -HSPLjava/lang/Math;->addExact(JJ)J -HSPLjava/lang/Math;->copySign(DD)D -HSPLjava/lang/Math;->copySign(FF)F -HSPLjava/lang/Math;->floorDiv(II)I -HSPLjava/lang/Math;->floorDiv(JI)J -HSPLjava/lang/Math;->floorDiv(JJ)J -HSPLjava/lang/Math;->floorMod(II)I -HSPLjava/lang/Math;->floorMod(JI)I -HSPLjava/lang/Math;->floorMod(JJ)J -HSPLjava/lang/Math;->fma(DDD)D -HSPLjava/lang/Math;->fma(FFF)F -HSPLjava/lang/Math;->getExponent(D)I -HSPLjava/lang/Math;->getExponent(F)I -HSPLjava/lang/Math;->max(DD)D -HSPLjava/lang/Math;->max(FF)F -HSPLjava/lang/Math;->max(II)I -HSPLjava/lang/Math;->max(JJ)J -HSPLjava/lang/Math;->min(DD)D -HSPLjava/lang/Math;->min(FF)F -HSPLjava/lang/Math;->min(II)I -HSPLjava/lang/Math;->min(JJ)J -HSPLjava/lang/Math;->multiplyExact(II)I -HSPLjava/lang/Math;->multiplyExact(JI)J -HSPLjava/lang/Math;->multiplyExact(JJ)J -HSPLjava/lang/Math;->multiplyHigh(JJ)J -HSPLjava/lang/Math;->nextAfter(DD)D -HSPLjava/lang/Math;->powerOfTwoD(I)D -HSPLjava/lang/Math;->powerOfTwoF(I)F -HSPLjava/lang/Math;->random()D -HSPLjava/lang/Math;->randomLongInternal()J -HSPLjava/lang/Math;->round(D)J -HSPLjava/lang/Math;->round(F)I -HSPLjava/lang/Math;->scalb(FI)F -HSPLjava/lang/Math;->setRandomSeedInternal(J)V -HSPLjava/lang/Math;->signum(F)F -HSPLjava/lang/Math;->subtractExact(JJ)J -HSPLjava/lang/Math;->toDegrees(D)D -HSPLjava/lang/Math;->toIntExact(J)I -HSPLjava/lang/Math;->toRadians(D)D -HSPLjava/lang/Math;->ulp(F)F -HSPLjava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;)V -HSPLjava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/NoSuchMethodError;-><init>(Ljava/lang/String;)V -HSPLjava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/NullPointerException;-><init>()V -HSPLjava/lang/NullPointerException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Number;-><init>()V -HSPLjava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/NumberFormatException;->forInputString(Ljava/lang/String;I)Ljava/lang/NumberFormatException; -HSPLjava/lang/Object;-><init>()V -HSPLjava/lang/Object;->clone()Ljava/lang/Object; -HSPLjava/lang/Object;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/Object;->finalize()V -HSPLjava/lang/Object;->getClass()Ljava/lang/Class; -HSPLjava/lang/Object;->hashCode()I -HSPLjava/lang/Object;->identityHashCode(Ljava/lang/Object;)I -HSPLjava/lang/Object;->toString()Ljava/lang/String; -HSPLjava/lang/Object;->wait()V -HSPLjava/lang/Object;->wait(J)V -HSPLjava/lang/Package;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;)V -HSPLjava/lang/Package;->getName()Ljava/lang/String; -HSPLjava/lang/Process;-><init>()V -HSPLjava/lang/ProcessBuilder$NullInputStream;->available()I -HSPLjava/lang/ProcessBuilder$NullInputStream;->read()I -HSPLjava/lang/ProcessBuilder;-><init>([Ljava/lang/String;)V -HSPLjava/lang/ProcessBuilder;->directory(Ljava/io/File;)Ljava/lang/ProcessBuilder; -HSPLjava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder; -HSPLjava/lang/ProcessBuilder;->start()Ljava/lang/Process; -HSPLjava/lang/ProcessEnvironment;->toEnvironmentBlock(Ljava/util/Map;[I)[B -HSPLjava/lang/ProcessImpl;->start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process; -HSPLjava/lang/ProcessImpl;->toCString(Ljava/lang/String;)[B -HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/Throwable;)V -HSPLjava/lang/Runtime;->addShutdownHook(Ljava/lang/Thread;)V -HSPLjava/lang/Runtime;->availableProcessors()I -HSPLjava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process; -HSPLjava/lang/Runtime;->exec(Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process; -HSPLjava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process; -HSPLjava/lang/Runtime;->exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process; -HSPLjava/lang/Runtime;->gc()V -HSPLjava/lang/Runtime;->getLibPaths()[Ljava/lang/String; -HSPLjava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; -HSPLjava/lang/Runtime;->load0(Ljava/lang/Class;Ljava/lang/String;)V -HSPLjava/lang/Runtime;->loadLibrary0(Ljava/lang/Class;Ljava/lang/String;)V -HSPLjava/lang/Runtime;->loadLibrary0(Ljava/lang/ClassLoader;Ljava/lang/Class;Ljava/lang/String;)V -HSPLjava/lang/Runtime;->nativeLoad(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/String; -HSPLjava/lang/Runtime;->runFinalization()V -HSPLjava/lang/RuntimeException;-><init>()V -HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V -HSPLjava/lang/SecurityException;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Short;-><init>(S)V -HSPLjava/lang/Short;->hashCode()I -HSPLjava/lang/Short;->hashCode(S)I -HSPLjava/lang/Short;->parseShort(Ljava/lang/String;I)S -HSPLjava/lang/Short;->reverseBytes(S)S -HSPLjava/lang/Short;->shortValue()S -HSPLjava/lang/Short;->toUnsignedInt(S)I -HSPLjava/lang/Short;->valueOf(Ljava/lang/String;)Ljava/lang/Short; -HSPLjava/lang/Short;->valueOf(Ljava/lang/String;I)Ljava/lang/Short; -HSPLjava/lang/Short;->valueOf(S)Ljava/lang/Short; -HSPLjava/lang/StackTraceElement;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V -HSPLjava/lang/StackTraceElement;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/StackTraceElement;->getClassName()Ljava/lang/String; -HSPLjava/lang/StackTraceElement;->getFileName()Ljava/lang/String; -HSPLjava/lang/StackTraceElement;->getLineNumber()I -HSPLjava/lang/StackTraceElement;->getMethodName()Ljava/lang/String; -HSPLjava/lang/StackTraceElement;->hashCode()I -HSPLjava/lang/StackTraceElement;->isNativeMethod()Z -HSPLjava/lang/StackTraceElement;->toString()Ljava/lang/String; -HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLjava/lang/String;->checkBoundsBeginEnd(III)V -HSPLjava/lang/String;->checkBoundsOffCount(III)V -HSPLjava/lang/String;->checkIndex(II)V -HSPLjava/lang/String;->checkOffset(II)V -HSPLjava/lang/String;->codePointAt(I)I -HSPLjava/lang/String;->codePointCount(II)I -HSPLjava/lang/String;->coder()B -HSPLjava/lang/String;->compareTo(Ljava/lang/Object;)I -HSPLjava/lang/String;->compareToIgnoreCase(Ljava/lang/String;)I -HSPLjava/lang/String;->contains(Ljava/lang/CharSequence;)Z -HSPLjava/lang/String;->contentEquals(Ljava/lang/CharSequence;)Z -HSPLjava/lang/String;->copyValueOf([C)Ljava/lang/String; -HSPLjava/lang/String;->endsWith(Ljava/lang/String;)Z -HSPLjava/lang/String;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z -HSPLjava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/lang/String;->getBytes()[B -HSPLjava/lang/String;->getBytes(Ljava/lang/String;)[B -HSPLjava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B -HSPLjava/lang/String;->getBytes([BIB)V -HSPLjava/lang/String;->getChars(II[CI)V -HSPLjava/lang/String;->getChars([CI)V -HSPLjava/lang/String;->hashCode()I -HSPLjava/lang/String;->indexOf(I)I -HSPLjava/lang/String;->indexOf(II)I -HSPLjava/lang/String;->indexOf(Ljava/lang/String;)I -HSPLjava/lang/String;->indexOf(Ljava/lang/String;I)I -HSPLjava/lang/String;->indexOf(Ljava/lang/String;Ljava/lang/String;I)I -HSPLjava/lang/String;->indexOf([BBILjava/lang/String;I)I -HSPLjava/lang/String;->isEmpty()Z -HSPLjava/lang/String;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String; -HSPLjava/lang/String;->join(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLjava/lang/String;->lastIndexOf(I)I -HSPLjava/lang/String;->lastIndexOf(II)I -HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;)I -HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;I)I -HSPLjava/lang/String;->lastIndexOf(Ljava/lang/String;Ljava/lang/String;I)I -HSPLjava/lang/String;->lastIndexOf([BBILjava/lang/String;I)I -HSPLjava/lang/String;->lastIndexOf([CII[CIII)I -HSPLjava/lang/String;->length()I -HSPLjava/lang/String;->matches(Ljava/lang/String;)Z -HSPLjava/lang/String;->regionMatches(ILjava/lang/String;II)Z -HSPLjava/lang/String;->regionMatches(ZILjava/lang/String;II)Z -HSPLjava/lang/String;->replace(CC)Ljava/lang/String; -HSPLjava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; -HSPLjava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; -HSPLjava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; -HSPLjava/lang/String;->startsWith(Ljava/lang/String;)Z -HSPLjava/lang/String;->startsWith(Ljava/lang/String;I)Z -HSPLjava/lang/String;->subSequence(II)Ljava/lang/CharSequence; -HSPLjava/lang/String;->substring(I)Ljava/lang/String; -HSPLjava/lang/String;->substring(II)Ljava/lang/String; -HSPLjava/lang/String;->toLowerCase()Ljava/lang/String; -HSPLjava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String; -HSPLjava/lang/String;->toString()Ljava/lang/String; -HSPLjava/lang/String;->toUpperCase()Ljava/lang/String; -HSPLjava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; -HSPLjava/lang/String;->trim()Ljava/lang/String; -HSPLjava/lang/String;->valueOf(C)Ljava/lang/String; -HSPLjava/lang/String;->valueOf(D)Ljava/lang/String; -HSPLjava/lang/String;->valueOf(F)Ljava/lang/String; -HSPLjava/lang/String;->valueOf(I)Ljava/lang/String; -HSPLjava/lang/String;->valueOf(J)Ljava/lang/String; -HSPLjava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/lang/String;->valueOf(Z)Ljava/lang/String; -HSPLjava/lang/String;->valueOf([C)Ljava/lang/String; -HSPLjava/lang/StringBuffer;-><init>()V -HSPLjava/lang/StringBuffer;-><init>(I)V -HSPLjava/lang/StringBuffer;-><init>(Ljava/lang/String;)V -HSPLjava/lang/StringBuffer;->append(C)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(I)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(J)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/AbstractStringBuilder;)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append(Z)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->append([CII)Ljava/lang/StringBuffer; -HSPLjava/lang/StringBuffer;->charAt(I)C -HSPLjava/lang/StringBuffer;->codePointAt(I)I -HSPLjava/lang/StringBuffer;->getBytes([BIB)V -HSPLjava/lang/StringBuffer;->getChars(II[CI)V -HSPLjava/lang/StringBuffer;->length()I -HSPLjava/lang/StringBuffer;->setLength(I)V -HSPLjava/lang/StringBuffer;->toString()Ljava/lang/String; -HSPLjava/lang/StringBuilder;-><init>()V -HSPLjava/lang/StringBuilder;-><init>(I)V -HSPLjava/lang/StringBuilder;-><init>(Ljava/lang/CharSequence;)V -HSPLjava/lang/StringBuilder;-><init>(Ljava/lang/String;)V -HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/Appendable; -HSPLjava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append([C)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->charAt(I)C -HSPLjava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->ensureCapacity(I)V -HSPLjava/lang/StringBuilder;->getChars(II[CI)V -HSPLjava/lang/StringBuilder;->indexOf(Ljava/lang/String;)I -HSPLjava/lang/StringBuilder;->indexOf(Ljava/lang/String;I)I -HSPLjava/lang/StringBuilder;->insert(IC)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->insert(II)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder; -HSPLjava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->lastIndexOf(Ljava/lang/String;I)I -HSPLjava/lang/StringBuilder;->length()I -HSPLjava/lang/StringBuilder;->replace(IILjava/lang/String;)Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->reverse()Ljava/lang/StringBuilder; -HSPLjava/lang/StringBuilder;->setCharAt(IC)V -HSPLjava/lang/StringBuilder;->setLength(I)V -HSPLjava/lang/StringBuilder;->subSequence(II)Ljava/lang/CharSequence; -HSPLjava/lang/StringBuilder;->substring(I)Ljava/lang/String; -HSPLjava/lang/StringBuilder;->substring(II)Ljava/lang/String; -HSPLjava/lang/StringBuilder;->toString()Ljava/lang/String; -HSPLjava/lang/StringFactory;->newEmptyString()Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([B)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([BI)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([BII)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([BIILjava/lang/String;)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([BIILjava/nio/charset/Charset;)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([BLjava/lang/String;)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromBytes([BLjava/nio/charset/Charset;)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromChars([C)Ljava/lang/String; -HSPLjava/lang/StringFactory;->newStringFromChars([CII)Ljava/lang/String; -HSPLjava/lang/StringLatin1;->canEncode(I)Z -HSPLjava/lang/StringLatin1;->indexOf([BILjava/lang/String;II)I -HSPLjava/lang/StringLatin1;->inflate([BI[BII)V -HSPLjava/lang/StringLatin1;->lastIndexOf([BILjava/lang/String;II)I -HSPLjava/lang/StringLatin1;->newString([BII)Ljava/lang/String; -HSPLjava/lang/StringUTF16;->checkBoundsBeginEnd(II[B)V -HSPLjava/lang/StringUTF16;->checkBoundsOffCount(II[B)V -HSPLjava/lang/StringUTF16;->checkIndex(I[B)V -HSPLjava/lang/StringUTF16;->getChar([BI)C -HSPLjava/lang/StringUTF16;->getChars(II[B)I -HSPLjava/lang/StringUTF16;->getChars([BII[CI)V -HSPLjava/lang/StringUTF16;->inflate([BI[BII)V -HSPLjava/lang/StringUTF16;->length([B)I -HSPLjava/lang/StringUTF16;->newBytesFor(I)[B -HSPLjava/lang/StringUTF16;->newString([BII)Ljava/lang/String; -HSPLjava/lang/StringUTF16;->putChar([BII)V -HSPLjava/lang/StringUTF16;->putCharSB([BII)V -HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/System;->arraycopy([BI[BII)V -HSPLjava/lang/System;->arraycopy([CI[CII)V -HSPLjava/lang/System;->arraycopy([DI[DII)V -HSPLjava/lang/System;->arraycopy([FI[FII)V -HSPLjava/lang/System;->arraycopy([II[III)V -HSPLjava/lang/System;->arraycopy([JI[JII)V -HSPLjava/lang/System;->arraycopy([ZI[ZII)V -HSPLjava/lang/System;->checkKey(Ljava/lang/String;)V -HSPLjava/lang/System;->clearProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/System;->gc()V -HSPLjava/lang/System;->getProperties()Ljava/util/Properties; -HSPLjava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/System;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/System;->getSecurityManager()Ljava/lang/SecurityManager; -HSPLjava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/System;->identityHashCode(Ljava/lang/Object;)I -HSPLjava/lang/System;->lineSeparator()Ljava/lang/String; -HSPLjava/lang/System;->load(Ljava/lang/String;)V -HSPLjava/lang/System;->loadLibrary(Ljava/lang/String;)V -HSPLjava/lang/System;->logE(Ljava/lang/String;)V -HSPLjava/lang/System;->logW(Ljava/lang/String;)V -HSPLjava/lang/System;->runFinalization()V -HSPLjava/lang/System;->setErr(Ljava/io/PrintStream;)V -HSPLjava/lang/System;->setOut(Ljava/io/PrintStream;)V -HSPLjava/lang/System;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/lang/Thread$State;->values()[Ljava/lang/Thread$State; -HSPLjava/lang/Thread;-><init>()V -HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JLjava/security/AccessControlContext;Z)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V -HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;IZ)V -HSPLjava/lang/Thread;->activeCount()I -HSPLjava/lang/Thread;->blockedOn(Lsun/nio/ch/Interruptible;)V -HSPLjava/lang/Thread;->checkAccess()V -HSPLjava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader; -HSPLjava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler; -HSPLjava/lang/Thread;->getId()J -HSPLjava/lang/Thread;->getName()Ljava/lang/String; -HSPLjava/lang/Thread;->getPriority()I -HSPLjava/lang/Thread;->getStackTrace()[Ljava/lang/StackTraceElement; -HSPLjava/lang/Thread;->getState()Ljava/lang/Thread$State; -HSPLjava/lang/Thread;->getThreadGroup()Ljava/lang/ThreadGroup; -HSPLjava/lang/Thread;->getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler; -HSPLjava/lang/Thread;->init2(Ljava/lang/Thread;Z)V -HSPLjava/lang/Thread;->interrupt()V -HSPLjava/lang/Thread;->isAlive()Z -HSPLjava/lang/Thread;->isDaemon()Z -HSPLjava/lang/Thread;->join()V -HSPLjava/lang/Thread;->join(J)V -HSPLjava/lang/Thread;->nextThreadID()J -HSPLjava/lang/Thread;->nextThreadNum()I -HSPLjava/lang/Thread;->onSpinWait()V -HSPLjava/lang/Thread;->run()V -HSPLjava/lang/Thread;->setContextClassLoader(Ljava/lang/ClassLoader;)V -HSPLjava/lang/Thread;->setDaemon(Z)V -HSPLjava/lang/Thread;->setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V -HSPLjava/lang/Thread;->setName(Ljava/lang/String;)V -HSPLjava/lang/Thread;->setPriority(I)V -HSPLjava/lang/Thread;->setSystemDaemon(Z)V -HSPLjava/lang/Thread;->setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V -HSPLjava/lang/Thread;->setUncaughtExceptionPreHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V -HSPLjava/lang/Thread;->sleep(J)V -HSPLjava/lang/Thread;->sleep(JI)V -HSPLjava/lang/Thread;->start()V -HSPLjava/lang/Thread;->toString()Ljava/lang/String; -HSPLjava/lang/ThreadGroup;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V -HSPLjava/lang/ThreadGroup;-><init>(Ljava/lang/Void;Ljava/lang/ThreadGroup;Ljava/lang/String;)V -HSPLjava/lang/ThreadGroup;->activeCount()I -HSPLjava/lang/ThreadGroup;->activeGroupCount()I -HSPLjava/lang/ThreadGroup;->add(Ljava/lang/Thread;)V -HSPLjava/lang/ThreadGroup;->add(Ljava/lang/ThreadGroup;)V -HSPLjava/lang/ThreadGroup;->addUnstarted()V -HSPLjava/lang/ThreadGroup;->checkAccess()V -HSPLjava/lang/ThreadGroup;->checkParentAccess(Ljava/lang/ThreadGroup;)Ljava/lang/Void; -HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;)I -HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;IZ)I -HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;)I -HSPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/ThreadGroup;IZ)I -HSPLjava/lang/ThreadGroup;->getMaxPriority()I -HSPLjava/lang/ThreadGroup;->getName()Ljava/lang/String; -HSPLjava/lang/ThreadGroup;->remove(Ljava/lang/Thread;)V -HSPLjava/lang/ThreadGroup;->threadTerminated(Ljava/lang/Thread;)V -HSPLjava/lang/ThreadLocal$SuppliedThreadLocal;-><init>(Ljava/util/function/Supplier;)V -HSPLjava/lang/ThreadLocal$SuppliedThreadLocal;->initialValue()Ljava/lang/Object; -HSPLjava/lang/ThreadLocal$ThreadLocalMap$Entry;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->-$$Nest$mgetEntry(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->-$$Nest$mremove(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->-$$Nest$mset(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;Ljava/lang/Object;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->cleanSomeSlots(II)Z -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntries()V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntry(I)I -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntryAfterMiss(Ljava/lang/ThreadLocal;ILjava/lang/ThreadLocal$ThreadLocalMap$Entry;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->nextIndex(II)I -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->prevIndex(II)I -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->rehash()V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->remove(Ljava/lang/ThreadLocal;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->replaceStaleEntry(Ljava/lang/ThreadLocal;Ljava/lang/Object;I)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->resize()V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->set(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V -HSPLjava/lang/ThreadLocal$ThreadLocalMap;->setThreshold(I)V -HSPLjava/lang/ThreadLocal;->-$$Nest$fgetthreadLocalHashCode(Ljava/lang/ThreadLocal;)I -HSPLjava/lang/ThreadLocal;-><init>()V -HSPLjava/lang/ThreadLocal;->createInheritedMap(Ljava/lang/ThreadLocal$ThreadLocalMap;)Ljava/lang/ThreadLocal$ThreadLocalMap; -HSPLjava/lang/ThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V -HSPLjava/lang/ThreadLocal;->get()Ljava/lang/Object; -HSPLjava/lang/ThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap; -HSPLjava/lang/ThreadLocal;->initialValue()Ljava/lang/Object; -HSPLjava/lang/ThreadLocal;->nextHashCode()I -HSPLjava/lang/ThreadLocal;->remove()V -HSPLjava/lang/ThreadLocal;->set(Ljava/lang/Object;)V -HSPLjava/lang/ThreadLocal;->setInitialValue()Ljava/lang/Object; -HSPLjava/lang/ThreadLocal;->withInitial(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal; -HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>()V -HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>(Ljava/lang/Throwable$PrintStreamOrWriter-IA;)V -HSPLjava/lang/Throwable$WrappedPrintStream;-><init>(Ljava/io/PrintStream;)V -HSPLjava/lang/Throwable$WrappedPrintStream;->lock()Ljava/lang/Object; -HSPLjava/lang/Throwable$WrappedPrintStream;->println(Ljava/lang/Object;)V -HSPLjava/lang/Throwable$WrappedPrintWriter;-><init>(Ljava/io/PrintWriter;)V -HSPLjava/lang/Throwable$WrappedPrintWriter;->lock()Ljava/lang/Object; -HSPLjava/lang/Throwable$WrappedPrintWriter;->println(Ljava/lang/Object;)V -HSPLjava/lang/Throwable;-><init>()V -HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;)V -HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/lang/Throwable;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V -HSPLjava/lang/Throwable;-><init>(Ljava/lang/Throwable;)V -HSPLjava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V -HSPLjava/lang/Throwable;->fillInStackTrace()Ljava/lang/Throwable; -HSPLjava/lang/Throwable;->getCause()Ljava/lang/Throwable; -HSPLjava/lang/Throwable;->getLocalizedMessage()Ljava/lang/String; -HSPLjava/lang/Throwable;->getMessage()Ljava/lang/String; -HSPLjava/lang/Throwable;->getOurStackTrace()[Ljava/lang/StackTraceElement; -HSPLjava/lang/Throwable;->getStackTrace()[Ljava/lang/StackTraceElement; -HSPLjava/lang/Throwable;->getSuppressed()[Ljava/lang/Throwable; -HSPLjava/lang/Throwable;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; -HSPLjava/lang/Throwable;->printEnclosedStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;[Ljava/lang/StackTraceElement;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V -HSPLjava/lang/Throwable;->printStackTrace()V -HSPLjava/lang/Throwable;->printStackTrace(Ljava/io/PrintStream;)V -HSPLjava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V -HSPLjava/lang/Throwable;->printStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;)V -HSPLjava/lang/Throwable;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/lang/Throwable;->setStackTrace([Ljava/lang/StackTraceElement;)V -HSPLjava/lang/Throwable;->toString()Ljava/lang/String; -HSPLjava/lang/Throwable;->writeObject(Ljava/io/ObjectOutputStream;)V -HSPLjava/lang/UNIXProcess$2;-><init>(Ljava/lang/UNIXProcess;[I)V -HSPLjava/lang/UNIXProcess$2;->run()Ljava/lang/Object; -HSPLjava/lang/UNIXProcess$2;->run()Ljava/lang/Void; -HSPLjava/lang/UNIXProcess$3;-><init>(Ljava/lang/UNIXProcess;)V -HSPLjava/lang/UNIXProcess$3;->run()V -HSPLjava/lang/UNIXProcess$ProcessPipeInputStream;-><init>(I)V -HSPLjava/lang/UNIXProcess$ProcessPipeInputStream;->drainInputStream(Ljava/io/InputStream;)[B -HSPLjava/lang/UNIXProcess$ProcessPipeInputStream;->processExited()V -HSPLjava/lang/UNIXProcess$ProcessPipeOutputStream;-><init>(I)V -HSPLjava/lang/UNIXProcess$ProcessPipeOutputStream;->processExited()V -HSPLjava/lang/UNIXProcess$ProcessReaperThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -HSPLjava/lang/UNIXProcess;-><init>([B[BI[BI[B[IZ)V -HSPLjava/lang/UNIXProcess;->destroy()V -HSPLjava/lang/UNIXProcess;->exitValue()I -HSPLjava/lang/UNIXProcess;->getErrorStream()Ljava/io/InputStream; -HSPLjava/lang/UNIXProcess;->getInputStream()Ljava/io/InputStream; -HSPLjava/lang/UNIXProcess;->initStreams([I)V -HSPLjava/lang/UNIXProcess;->newFileDescriptor(I)Ljava/io/FileDescriptor; -HSPLjava/lang/UNIXProcess;->processExited(I)V -HSPLjava/lang/UNIXProcess;->waitFor()I -HSPLjava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V -HSPLjava/lang/UnsupportedOperationException;-><init>()V -HSPLjava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V -HPLjava/lang/VMClassLoader;->createBootClassPathUrlHandlers()[Llibcore/io/ClassPathURLStreamHandler; -HSPLjava/lang/VMClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL; -HSPLjava/lang/VMClassLoader;->getResources(Ljava/lang/String;)Ljava/util/List; -HSPLjava/lang/invoke/FieldVarHandle;-><init>(Ljava/lang/reflect/Field;Ljava/lang/Class;)V -HSPLjava/lang/invoke/FieldVarHandle;->create(Ljava/lang/reflect/Field;)Ljava/lang/invoke/FieldVarHandle; -HSPLjava/lang/invoke/MethodHandle;-><init>(JILjava/lang/invoke/MethodType;)V -HSPLjava/lang/invoke/MethodHandleImpl;-><init>(JILjava/lang/invoke/MethodType;)V -HSPLjava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;)V -HSPLjava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V -HSPLjava/lang/invoke/MethodHandles$Lookup;->checkAccess(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/String;)V -HSPLjava/lang/invoke/MethodHandles$Lookup;->checkUnprivilegedlookupClass(Ljava/lang/Class;I)V -HSPLjava/lang/invoke/MethodHandles$Lookup;->commonFieldChecks(Ljava/lang/reflect/Field;Ljava/lang/Class;Ljava/lang/Class;ZZ)V -HSPLjava/lang/invoke/MethodHandles$Lookup;->createMethodHandle(Ljava/lang/reflect/Method;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; -HSPLjava/lang/invoke/MethodHandles$Lookup;->findFieldOfType(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Field; -HSPLjava/lang/invoke/MethodHandles$Lookup;->findVarHandle(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle; -HSPLjava/lang/invoke/MethodHandles$Lookup;->unreflect(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle; -HSPLjava/lang/invoke/MethodHandles;->lookup()Ljava/lang/invoke/MethodHandles$Lookup; -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;)V -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->hashCode()I -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->add(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->expungeStaleElements()V -HSPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/invoke/MethodType;-><init>(Ljava/lang/Class;[Ljava/lang/Class;Z)V -HSPLjava/lang/invoke/MethodType;-><init>([Ljava/lang/Class;Ljava/lang/Class;)V -HSPLjava/lang/invoke/MethodType;->checkPtype(Ljava/lang/Class;)V -HSPLjava/lang/invoke/MethodType;->checkPtypes([Ljava/lang/Class;)I -HSPLjava/lang/invoke/MethodType;->checkRtype(Ljava/lang/Class;)V -HSPLjava/lang/invoke/MethodType;->checkSlotCount(I)V -HSPLjava/lang/invoke/MethodType;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/invoke/MethodType;->equals(Ljava/lang/invoke/MethodType;)Z -HSPLjava/lang/invoke/MethodType;->form()Ljava/lang/invoke/MethodTypeForm; -HSPLjava/lang/invoke/MethodType;->genericMethodType(I)Ljava/lang/invoke/MethodType; -HSPLjava/lang/invoke/MethodType;->genericMethodType(IZ)Ljava/lang/invoke/MethodType; -HSPLjava/lang/invoke/MethodType;->hashCode()I -HSPLjava/lang/invoke/MethodType;->insertParameterTypes(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType; -HSPLjava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType; -HSPLjava/lang/invoke/MethodType;->methodType(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType; -HSPLjava/lang/invoke/MethodType;->parameterSlotCount()I -HSPLjava/lang/invoke/MethodType;->ptypes()[Ljava/lang/Class; -HSPLjava/lang/invoke/MethodType;->returnType()Ljava/lang/Class; -HSPLjava/lang/invoke/MethodTypeForm;-><init>(Ljava/lang/invoke/MethodType;)V -HSPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/Class;I)Ljava/lang/Class; -HSPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType; -HSPLjava/lang/invoke/MethodTypeForm;->canonicalizeAll([Ljava/lang/Class;I)[Ljava/lang/Class; -HSPLjava/lang/invoke/MethodTypeForm;->findForm(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm; -HSPLjava/lang/invoke/MethodTypeForm;->pack(IIII)J -HSPLjava/lang/invoke/MethodTypeForm;->parameterSlotCount()I -HSPLjava/lang/invoke/MethodTypeForm;->unpack(JI)C -HSPLjava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;ZLjava/lang/Class;)V -HSPLjava/lang/invoke/VarHandle;->acquireFence()V -HSPLjava/lang/invoke/VarHandle;->alignedAccessModesBitMask(Ljava/lang/Class;Z)I -HSPLjava/lang/invoke/VarHandle;->fullFence()V -HSPLjava/lang/invoke/VarHandle;->loadLoadFence()V -HSPLjava/lang/invoke/VarHandle;->releaseFence()V -HSPLjava/lang/invoke/VarHandle;->storeStoreFence()V -HSPLjava/lang/ref/Cleaner$1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/ref/Cleaner$1;->apply(Ljava/lang/ref/Cleaner;)Ljdk/internal/ref/CleanerImpl; -HSPLjava/lang/ref/Cleaner;->register(Ljava/lang/Object;Ljava/lang/Runnable;)Ljava/lang/ref/Cleaner$Cleanable; -HSPLjava/lang/ref/FinalizerReference$Sentinel;-><init>()V -HSPLjava/lang/ref/FinalizerReference$Sentinel;-><init>(Ljava/lang/ref/FinalizerReference$Sentinel-IA;)V -HSPLjava/lang/ref/FinalizerReference$Sentinel;->awaitFinalization(J)V -HSPLjava/lang/ref/FinalizerReference$Sentinel;->finalize()V -HSPLjava/lang/ref/FinalizerReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/ref/FinalizerReference;->add(Ljava/lang/Object;)V -HSPLjava/lang/ref/FinalizerReference;->clear()V -HSPLjava/lang/ref/FinalizerReference;->enqueueSentinelReference(Ljava/lang/ref/FinalizerReference$Sentinel;)Z -HSPLjava/lang/ref/FinalizerReference;->finalizeAllEnqueued(J)V -HSPLjava/lang/ref/FinalizerReference;->get()Ljava/lang/Object; -HSPLjava/lang/ref/FinalizerReference;->remove(Ljava/lang/ref/FinalizerReference;)V -HSPLjava/lang/ref/PhantomReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/ref/Reference$SinkHolder;->-$$Nest$sfgetfinalize_count()I -HSPLjava/lang/ref/Reference;-><init>(Ljava/lang/Object;)V -HSPLjava/lang/ref/Reference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/ref/Reference;->clear()V -HSPLjava/lang/ref/Reference;->get()Ljava/lang/Object; -HSPLjava/lang/ref/Reference;->reachabilityFence(Ljava/lang/Object;)V -HSPLjava/lang/ref/Reference;->refersTo(Ljava/lang/Object;)Z -HSPLjava/lang/ref/ReferenceQueue;-><init>()V -HSPLjava/lang/ref/ReferenceQueue;->add(Ljava/lang/ref/Reference;)V -HSPLjava/lang/ref/ReferenceQueue;->enqueueLocked(Ljava/lang/ref/Reference;)Z -HSPLjava/lang/ref/ReferenceQueue;->enqueuePending(Ljava/lang/ref/Reference;Ljava/util/concurrent/atomic/AtomicInteger;)V -HSPLjava/lang/ref/ReferenceQueue;->poll()Ljava/lang/ref/Reference; -HSPLjava/lang/ref/ReferenceQueue;->reallyPollLocked()Ljava/lang/ref/Reference; -HSPLjava/lang/ref/ReferenceQueue;->remove()Ljava/lang/ref/Reference; -HSPLjava/lang/ref/ReferenceQueue;->remove(J)Ljava/lang/ref/Reference; -HSPLjava/lang/ref/SoftReference;-><init>(Ljava/lang/Object;)V -HSPLjava/lang/ref/SoftReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/ref/SoftReference;->get()Ljava/lang/Object; -HSPLjava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V -HSPLjava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/reflect/AccessibleObject;-><init>()V -HSPLjava/lang/reflect/AccessibleObject;->getAnnotations()[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/AccessibleObject;->isAccessible()Z -HSPLjava/lang/reflect/AccessibleObject;->setAccessible(Z)V -HSPLjava/lang/reflect/AccessibleObject;->setAccessible0(Ljava/lang/reflect/AccessibleObject;Z)V -HSPLjava/lang/reflect/Array;->get(Ljava/lang/Object;I)Ljava/lang/Object; -HSPLjava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I -HSPLjava/lang/reflect/Array;->newArray(Ljava/lang/Class;I)Ljava/lang/Object; -HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object; -HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object; -HSPLjava/lang/reflect/Array;->set(Ljava/lang/Object;ILjava/lang/Object;)V -HSPLjava/lang/reflect/Array;->setInt(Ljava/lang/Object;II)V -HSPLjava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V -HSPLjava/lang/reflect/Constructor;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Constructor;->getDeclaringClass()Ljava/lang/Class; -HSPLjava/lang/reflect/Constructor;->getGenericParameterTypes()[Ljava/lang/reflect/Type; -HSPLjava/lang/reflect/Constructor;->getModifiers()I -HSPLjava/lang/reflect/Constructor;->getName()Ljava/lang/String; -HSPLjava/lang/reflect/Constructor;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Constructor;->getParameterTypes()[Ljava/lang/Class; -HSPLjava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/reflect/Constructor;->serializationCopy(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -HSPLjava/lang/reflect/Executable$GenericInfo;-><init>(Llibcore/reflect/ListOfTypes;Llibcore/reflect/ListOfTypes;Ljava/lang/reflect/Type;[Ljava/lang/reflect/TypeVariable;)V -HSPLjava/lang/reflect/Executable;-><init>()V -HSPLjava/lang/reflect/Executable;->equalNameAndParametersInternal(Ljava/lang/reflect/Method;)Z -HSPLjava/lang/reflect/Executable;->equalParamTypes([Ljava/lang/Class;[Ljava/lang/Class;)Z -HSPLjava/lang/reflect/Executable;->fixMethodFlags(I)I -HSPLjava/lang/reflect/Executable;->getAccessFlags()I -HSPLjava/lang/reflect/Executable;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Executable;->getArtMethod()J -HSPLjava/lang/reflect/Executable;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Executable;->getDeclaringClassInternal()Ljava/lang/Class; -HSPLjava/lang/reflect/Executable;->getGenericParameterTypes()[Ljava/lang/reflect/Type; -HSPLjava/lang/reflect/Executable;->getMethodOrConstructorGenericInfoInternal()Ljava/lang/reflect/Executable$GenericInfo; -HSPLjava/lang/reflect/Executable;->getModifiersInternal()I -HSPLjava/lang/reflect/Executable;->getParameterAnnotationsInternal()[[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Executable;->getSignatureAttribute()Ljava/lang/String; -HSPLjava/lang/reflect/Executable;->isAnnotationPresent(Ljava/lang/Class;)Z -HSPLjava/lang/reflect/Executable;->isBridgeMethodInternal()Z -HSPLjava/lang/reflect/Executable;->isDefaultMethodInternal()Z -HSPLjava/lang/reflect/Executable;->isSynthetic()Z -HSPLjava/lang/reflect/Executable;->isVarArgs()Z -HSPLjava/lang/reflect/Executable;->printModifiersIfNonzero(Ljava/lang/StringBuilder;IZ)V -HSPLjava/lang/reflect/Executable;->separateWithCommas([Ljava/lang/Class;Ljava/lang/StringBuilder;)V -HSPLjava/lang/reflect/Executable;->sharedToString(IZ[Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String; -HSPLjava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class; -HSPLjava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type; -HSPLjava/lang/reflect/Field;->getModifiers()I -HSPLjava/lang/reflect/Field;->getName()Ljava/lang/String; -HSPLjava/lang/reflect/Field;->getOffset()I -HSPLjava/lang/reflect/Field;->getSignatureAttribute()Ljava/lang/String; -HSPLjava/lang/reflect/Field;->getType()Ljava/lang/Class; -HSPLjava/lang/reflect/Field;->hashCode()I -HSPLjava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z -HSPLjava/lang/reflect/Field;->isEnumConstant()Z -HSPLjava/lang/reflect/Field;->isSynthetic()Z -HSPLjava/lang/reflect/InvocationTargetException;-><init>(Ljava/lang/Throwable;)V -HSPLjava/lang/reflect/InvocationTargetException;->getCause()Ljava/lang/Throwable; -HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/lang/reflect/Method$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I -HSPLjava/lang/reflect/Method;->equalNameAndParameters(Ljava/lang/reflect/Method;)Z -HSPLjava/lang/reflect/Method;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Method;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class; -HSPLjava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type; -HSPLjava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type; -HSPLjava/lang/reflect/Method;->getModifiers()I -HSPLjava/lang/reflect/Method;->getName()Ljava/lang/String; -HSPLjava/lang/reflect/Method;->getParameterAnnotations()[[Ljava/lang/annotation/Annotation; -HSPLjava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class; -HSPLjava/lang/reflect/Method;->getReturnType()Ljava/lang/Class; -HSPLjava/lang/reflect/Method;->hashCode()I -HSPLjava/lang/reflect/Method;->isBridge()Z -HSPLjava/lang/reflect/Method;->isDefault()Z -HSPLjava/lang/reflect/Method;->isSynthetic()Z -HSPLjava/lang/reflect/Method;->isVarArgs()Z -HSPLjava/lang/reflect/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V -HSPLjava/lang/reflect/Method;->toString()Ljava/lang/String; -HSPLjava/lang/reflect/Modifier;->isAbstract(I)Z -HSPLjava/lang/reflect/Modifier;->isFinal(I)Z -HSPLjava/lang/reflect/Modifier;->isInterface(I)Z -HSPLjava/lang/reflect/Modifier;->isPrivate(I)Z -HSPLjava/lang/reflect/Modifier;->isProtected(I)Z -HSPLjava/lang/reflect/Modifier;->isPublic(I)Z -HSPLjava/lang/reflect/Modifier;->isStatic(I)Z -HSPLjava/lang/reflect/Modifier;->isSynthetic(I)Z -HSPLjava/lang/reflect/Modifier;->isTransient(I)Z -HSPLjava/lang/reflect/Modifier;->isVolatile(I)Z -HSPLjava/lang/reflect/Modifier;->methodModifiers()I -HSPLjava/lang/reflect/Modifier;->toString(I)Ljava/lang/String; -HSPLjava/lang/reflect/Proxy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/lang/reflect/Proxy$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I -HSPLjava/lang/reflect/Proxy$Key1;-><init>(Ljava/lang/Class;)V -HSPLjava/lang/reflect/Proxy$Key1;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/reflect/Proxy$Key1;->hashCode()I -HSPLjava/lang/reflect/Proxy$KeyFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Object; -HSPLjava/lang/reflect/Proxy$KeyFactory;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/reflect/Proxy$ProxyClassFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class; -HSPLjava/lang/reflect/Proxy$ProxyClassFactory;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/reflect/Proxy;->-$$Nest$sfgetORDER_BY_SIGNATURE_AND_SUBTYPE()Ljava/util/Comparator; -HSPLjava/lang/reflect/Proxy;->-$$Nest$smdeduplicateAndGetExceptions(Ljava/util/List;)Ljava/util/List; -HSPLjava/lang/reflect/Proxy;->-$$Nest$smgenerateProxy(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/reflect/Method;[[Ljava/lang/Class;)Ljava/lang/Class; -HSPLjava/lang/reflect/Proxy;->-$$Nest$smgetMethods([Ljava/lang/Class;)Ljava/util/List; -HSPLjava/lang/reflect/Proxy;->-$$Nest$smvalidateReturnTypes(Ljava/util/List;)V -HSPLjava/lang/reflect/Proxy;->deduplicateAndGetExceptions(Ljava/util/List;)Ljava/util/List; -HSPLjava/lang/reflect/Proxy;->getMethods([Ljava/lang/Class;)Ljava/util/List; -HSPLjava/lang/reflect/Proxy;->getMethodsRecursive([Ljava/lang/Class;Ljava/util/List;)V -HSPLjava/lang/reflect/Proxy;->getProxyClass0(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class; -HSPLjava/lang/reflect/Proxy;->intersectExceptions([Ljava/lang/Class;[Ljava/lang/Class;)[Ljava/lang/Class; -HSPLjava/lang/reflect/Proxy;->invoke(Ljava/lang/reflect/Proxy;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/lang/reflect/Proxy;->isProxyClass(Ljava/lang/Class;)Z -HSPLjava/lang/reflect/Proxy;->newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object; -HSPLjava/lang/reflect/Proxy;->validateReturnTypes(Ljava/util/List;)V -HSPLjava/lang/reflect/WeakCache$CacheKey;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLjava/lang/reflect/WeakCache$CacheKey;->equals(Ljava/lang/Object;)Z -HSPLjava/lang/reflect/WeakCache$CacheKey;->hashCode()I -HSPLjava/lang/reflect/WeakCache$CacheKey;->valueOf(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Ljava/lang/Object; -HSPLjava/lang/reflect/WeakCache$CacheValue;-><init>(Ljava/lang/Object;)V -HSPLjava/lang/reflect/WeakCache$CacheValue;->hashCode()I -HSPLjava/lang/reflect/WeakCache$Factory;-><init>(Ljava/lang/reflect/WeakCache;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentMap;)V -HSPLjava/lang/reflect/WeakCache$Factory;->get()Ljava/lang/Object; -HSPLjava/lang/reflect/WeakCache;->-$$Nest$fgetreverseMap(Ljava/lang/reflect/WeakCache;)Ljava/util/concurrent/ConcurrentMap; -HSPLjava/lang/reflect/WeakCache;->-$$Nest$fgetvalueFactory(Ljava/lang/reflect/WeakCache;)Ljava/util/function/BiFunction; -HSPLjava/lang/reflect/WeakCache;->expungeStaleEntries()V -HSPLjava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/math/BigDecimal;-><init>(I)V -HSPLjava/math/BigDecimal;-><init>(J)V -HSPLjava/math/BigDecimal;-><init>(Ljava/lang/String;)V -HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;)V -HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;JII)V -HSPLjava/math/BigDecimal;-><init>([CII)V -HSPLjava/math/BigDecimal;-><init>([CIILjava/math/MathContext;)V -HSPLjava/math/BigDecimal;->add(JIJI)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->add(JJ)J -HSPLjava/math/BigDecimal;->add(JJI)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->checkScale(J)I -HSPLjava/math/BigDecimal;->checkScale(JJ)I -HSPLjava/math/BigDecimal;->commonNeedIncrement(IIIZ)Z -HSPLjava/math/BigDecimal;->compactValFor(Ljava/math/BigInteger;)J -HSPLjava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I -HSPLjava/math/BigDecimal;->createAndStripZerosToMatchScale(JIJ)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->divide(JIJIII)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->divideAndRound(JJIII)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->getValueString(ILjava/lang/String;I)Ljava/lang/String; -HSPLjava/math/BigDecimal;->inflated()Ljava/math/BigInteger; -HSPLjava/math/BigDecimal;->layoutChars(Z)Ljava/lang/String; -HSPLjava/math/BigDecimal;->longCompareMagnitude(JJ)I -HSPLjava/math/BigDecimal;->longMultiplyPowerTen(JI)J -HSPLjava/math/BigDecimal;->longValueExact()J -HSPLjava/math/BigDecimal;->movePointLeft(I)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->multiply(JJ)J -HSPLjava/math/BigDecimal;->multiply(JJI)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->needIncrement(JIIJJ)Z -HSPLjava/math/BigDecimal;->scale()I -HSPLjava/math/BigDecimal;->scaleByPowerOfTen(I)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->setScale(II)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->signum()I -HSPLjava/math/BigDecimal;->stripTrailingZeros()Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->toBigInteger()Ljava/math/BigInteger; -HSPLjava/math/BigDecimal;->toBigIntegerExact()Ljava/math/BigInteger; -HSPLjava/math/BigDecimal;->toPlainString()Ljava/lang/String; -HSPLjava/math/BigDecimal;->toString()Ljava/lang/String; -HSPLjava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->valueOf(JI)Ljava/math/BigDecimal; -HSPLjava/math/BigDecimal;->zeroValueOf(I)Ljava/math/BigDecimal; -HSPLjava/math/BigInteger$UnsafeHolder;-><clinit>()V -HSPLjava/math/BigInteger;-><init>(I[B)V -HSPLjava/math/BigInteger;-><init>(I[BII)V -HSPLjava/math/BigInteger;-><init>(I[I)V -HSPLjava/math/BigInteger;-><init>(J)V -HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;)V -HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;I)V -HSPLjava/math/BigInteger;-><init>([B)V -HSPLjava/math/BigInteger;-><init>([BII)V -HSPLjava/math/BigInteger;-><init>([II)V -HSPLjava/math/BigInteger;->abs()Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->add([I[I)[I -HSPLjava/math/BigInteger;->bigEndInts2NewBN([IZ)J -HSPLjava/math/BigInteger;->bitLength()I -HSPLjava/math/BigInteger;->bitLengthForInt(I)I -HSPLjava/math/BigInteger;->bn2BigEndInts(J)[I -HSPLjava/math/BigInteger;->compareMagnitude(Ljava/math/BigInteger;)I -HSPLjava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I -HSPLjava/math/BigInteger;->destructiveMulAdd([III)V -HSPLjava/math/BigInteger;->divideAndRemainder(Ljava/math/BigInteger;)[Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->divideAndRemainderKnuth(Ljava/math/BigInteger;)[Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->equals(Ljava/lang/Object;)Z -HSPLjava/math/BigInteger;->firstNonzeroIntNum()I -HSPLjava/math/BigInteger;->getInt(I)I -HSPLjava/math/BigInteger;->getLowestSetBit()I -HSPLjava/math/BigInteger;->hashCode()I -HSPLjava/math/BigInteger;->implMultiplyToLen([II[II[I)[I -HSPLjava/math/BigInteger;->intValue()I -HSPLjava/math/BigInteger;->longValue()J -HSPLjava/math/BigInteger;->mod(Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->modPow(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->multiply(Ljava/math/BigInteger;Z)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->multiplyByInt([III)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->multiplyToLen([II[II[I)[I -HSPLjava/math/BigInteger;->padWithZeros(Ljava/lang/StringBuilder;I)V -HSPLjava/math/BigInteger;->pow(I)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/math/BigInteger;->remainder(Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->remainderKnuth(Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->reverse([I)[I -HSPLjava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->shiftLeft([II)[I -HSPLjava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->shiftRightImpl(I)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->signInt()I -HSPLjava/math/BigInteger;->signum()I -HSPLjava/math/BigInteger;->smallToString(ILjava/lang/StringBuilder;I)V -HSPLjava/math/BigInteger;->stripLeadingZeroBytes([BII)[I -HSPLjava/math/BigInteger;->stripLeadingZeroInts([I)[I -HSPLjava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger; -HSPLjava/math/BigInteger;->subtract([I[I)[I -HSPLjava/math/BigInteger;->testBit(I)Z -HSPLjava/math/BigInteger;->toByteArray()[B -HSPLjava/math/BigInteger;->toString()Ljava/lang/String; -HSPLjava/math/BigInteger;->toString(I)Ljava/lang/String; -HSPLjava/math/BigInteger;->toString(Ljava/math/BigInteger;Ljava/lang/StringBuilder;II)V -HSPLjava/math/BigInteger;->trustedStripLeadingZeroInts([I)[I -HSPLjava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger; -HSPLjava/math/MathContext;->equals(Ljava/lang/Object;)Z -HSPLjava/math/MathContext;->getPrecision()I -HSPLjava/math/MathContext;->getRoundingMode()Ljava/math/RoundingMode; -HSPLjava/math/MutableBigInteger;-><clinit>()V -HSPLjava/math/MutableBigInteger;-><init>()V -HSPLjava/math/MutableBigInteger;-><init>(I)V -HSPLjava/math/MutableBigInteger;-><init>(Ljava/math/MutableBigInteger;)V -HSPLjava/math/MutableBigInteger;-><init>([I)V -HSPLjava/math/MutableBigInteger;->clear()V -HSPLjava/math/MutableBigInteger;->compare(Ljava/math/MutableBigInteger;)I -HSPLjava/math/MutableBigInteger;->copyAndShift([III[III)V -HSPLjava/math/MutableBigInteger;->divWord(JI)J -HSPLjava/math/MutableBigInteger;->divide(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger; -HSPLjava/math/MutableBigInteger;->divide(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger; -HSPLjava/math/MutableBigInteger;->divideKnuth(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger; -HSPLjava/math/MutableBigInteger;->divideKnuth(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger; -HSPLjava/math/MutableBigInteger;->divideMagnitude(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;Z)Ljava/math/MutableBigInteger; -HSPLjava/math/MutableBigInteger;->divideOneWord(ILjava/math/MutableBigInteger;)I -HSPLjava/math/MutableBigInteger;->getLowestSetBit()I -HSPLjava/math/MutableBigInteger;->getMagnitudeArray()[I -HSPLjava/math/MutableBigInteger;->mulsub([I[IIII)I -HSPLjava/math/MutableBigInteger;->normalize()V -HSPLjava/math/MutableBigInteger;->primitiveLeftShift(I)V -HSPLjava/math/MutableBigInteger;->rightShift(I)V -HSPLjava/math/MutableBigInteger;->toBigInteger(I)Ljava/math/BigInteger; -HSPLjava/math/MutableBigInteger;->unsignedLongCompare(JJ)Z -HSPLjava/math/RoundingMode;->valueOf(I)Ljava/math/RoundingMode; -HSPLjava/math/RoundingMode;->values()[Ljava/math/RoundingMode; -HSPLjava/net/AbstractPlainDatagramSocketImpl;-><init>()V -HSPLjava/net/AbstractPlainDatagramSocketImpl;->bind(ILjava/net/InetAddress;)V -HSPLjava/net/AbstractPlainDatagramSocketImpl;->close()V -HSPLjava/net/AbstractPlainDatagramSocketImpl;->create()V -HSPLjava/net/AbstractPlainDatagramSocketImpl;->finalize()V -HSPLjava/net/AbstractPlainDatagramSocketImpl;->isClosed()Z -HSPLjava/net/AbstractPlainDatagramSocketImpl;->receive(Ljava/net/DatagramPacket;)V -HSPLjava/net/AbstractPlainDatagramSocketImpl;->setOption(ILjava/lang/Object;)V -HSPLjava/net/AbstractPlainSocketImpl;-><init>()V -HSPLjava/net/AbstractPlainSocketImpl;->accept(Ljava/net/SocketImpl;)V -HSPLjava/net/AbstractPlainSocketImpl;->acquireFD()Ljava/io/FileDescriptor; -HSPLjava/net/AbstractPlainSocketImpl;->bind(Ljava/net/InetAddress;I)V -HSPLjava/net/AbstractPlainSocketImpl;->close()V -HSPLjava/net/AbstractPlainSocketImpl;->connect(Ljava/net/SocketAddress;I)V -HSPLjava/net/AbstractPlainSocketImpl;->connectToAddress(Ljava/net/InetAddress;II)V -HSPLjava/net/AbstractPlainSocketImpl;->create(Z)V -HSPLjava/net/AbstractPlainSocketImpl;->doConnect(Ljava/net/InetAddress;II)V -HSPLjava/net/AbstractPlainSocketImpl;->finalize()V -HSPLjava/net/AbstractPlainSocketImpl;->getInputStream()Ljava/io/InputStream; -HSPLjava/net/AbstractPlainSocketImpl;->getOption(I)Ljava/lang/Object; -HSPLjava/net/AbstractPlainSocketImpl;->getOutputStream()Ljava/io/OutputStream; -HSPLjava/net/AbstractPlainSocketImpl;->getTimeout()I -HSPLjava/net/AbstractPlainSocketImpl;->isClosedOrPending()Z -HSPLjava/net/AbstractPlainSocketImpl;->isConnectionReset()Z -HSPLjava/net/AbstractPlainSocketImpl;->isConnectionResetPending()Z -HSPLjava/net/AbstractPlainSocketImpl;->listen(I)V -HSPLjava/net/AbstractPlainSocketImpl;->releaseFD()V -HSPLjava/net/AbstractPlainSocketImpl;->setOption(ILjava/lang/Object;)V -HSPLjava/net/AbstractPlainSocketImpl;->socketClose()V -HSPLjava/net/AbstractPlainSocketImpl;->socketPreClose()V -HSPLjava/net/AddressCache$AddressCacheEntry;-><init>(Ljava/lang/Object;)V -HSPLjava/net/AddressCache$AddressCacheKey;-><init>(Ljava/lang/String;I)V -HSPLjava/net/AddressCache$AddressCacheKey;->equals(Ljava/lang/Object;)Z -HSPLjava/net/AddressCache$AddressCacheKey;->hashCode()I -HSPLjava/net/AddressCache;->clear()V -HSPLjava/net/AddressCache;->get(Ljava/lang/String;I)Ljava/lang/Object; -HSPLjava/net/AddressCache;->put(Ljava/lang/String;I[Ljava/net/InetAddress;)V -HSPLjava/net/AddressCache;->putUnknownHost(Ljava/lang/String;ILjava/lang/String;)V -HSPLjava/net/ConnectException;-><init>(Ljava/lang/String;)V -HSPLjava/net/ConnectException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/net/CookieHandler;-><init>()V -HSPLjava/net/CookieHandler;->getDefault()Ljava/net/CookieHandler; -HSPLjava/net/CookieManager$CookiePathComparator;-><init>()V -HSPLjava/net/CookieManager;-><init>()V -HSPLjava/net/CookieManager;-><init>(Ljava/net/CookieStore;Ljava/net/CookiePolicy;)V -HSPLjava/net/CookieManager;->get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map; -HSPLjava/net/CookieManager;->getCookieStore()Ljava/net/CookieStore; -HSPLjava/net/CookieManager;->normalizePath(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/CookieManager;->pathMatches(Ljava/net/URI;Ljava/net/HttpCookie;)Z -HSPLjava/net/CookieManager;->put(Ljava/net/URI;Ljava/util/Map;)V -HSPLjava/net/CookieManager;->shouldAcceptInternal(Ljava/net/URI;Ljava/net/HttpCookie;)Z -HSPLjava/net/CookieManager;->sortByPath(Ljava/util/List;)Ljava/util/List; -HSPLjava/net/CookiePolicy$3;->shouldAccept(Ljava/net/URI;Ljava/net/HttpCookie;)Z -HSPLjava/net/DatagramPacket;-><init>([BI)V -HSPLjava/net/DatagramPacket;-><init>([BII)V -HSPLjava/net/DatagramPacket;-><init>([BIILjava/net/InetAddress;I)V -HSPLjava/net/DatagramPacket;-><init>([BILjava/net/InetAddress;I)V -HSPLjava/net/DatagramPacket;->getAddress()Ljava/net/InetAddress; -HSPLjava/net/DatagramPacket;->getData()[B -HSPLjava/net/DatagramPacket;->getLength()I -HSPLjava/net/DatagramPacket;->getOffset()I -HSPLjava/net/DatagramPacket;->getPort()I -HSPLjava/net/DatagramPacket;->setAddress(Ljava/net/InetAddress;)V -HSPLjava/net/DatagramPacket;->setData([BII)V -HSPLjava/net/DatagramPacket;->setPort(I)V -HSPLjava/net/DatagramPacket;->setReceivedLength(I)V -HSPLjava/net/DatagramSocket$1;-><init>(Ljava/net/DatagramSocket;)V -HSPLjava/net/DatagramSocket$1;->run()Ljava/lang/Object; -HSPLjava/net/DatagramSocket$1;->run()Ljava/lang/Void; -HSPLjava/net/DatagramSocket;-><init>()V -HSPLjava/net/DatagramSocket;-><init>(Ljava/net/SocketAddress;)V -HSPLjava/net/DatagramSocket;->bind(Ljava/net/SocketAddress;)V -HSPLjava/net/DatagramSocket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V -HSPLjava/net/DatagramSocket;->checkOldImpl()V -HSPLjava/net/DatagramSocket;->close()V -HSPLjava/net/DatagramSocket;->createImpl()V -HSPLjava/net/DatagramSocket;->getImpl()Ljava/net/DatagramSocketImpl; -HSPLjava/net/DatagramSocket;->isBound()Z -HSPLjava/net/DatagramSocket;->isClosed()Z -HSPLjava/net/DatagramSocket;->receive(Ljava/net/DatagramPacket;)V -HSPLjava/net/DatagramSocket;->send(Ljava/net/DatagramPacket;)V -HSPLjava/net/DatagramSocket;->setReuseAddress(Z)V -HSPLjava/net/DatagramSocket;->setSoTimeout(I)V -HSPLjava/net/DatagramSocketImpl;-><init>()V -HSPLjava/net/DatagramSocketImpl;->setDatagramSocket(Ljava/net/DatagramSocket;)V -HSPLjava/net/DefaultDatagramSocketImplFactory;->createDatagramSocketImpl(Z)Ljava/net/DatagramSocketImpl; -HSPLjava/net/HttpCookie$11;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie$4;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie$6;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie$8;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie$9;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie;->assignAttribute(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/HttpCookie;->domainMatches(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/net/HttpCookie;->equals(Ljava/lang/Object;)Z -HSPLjava/net/HttpCookie;->equalsIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/net/HttpCookie;->getDomain()Ljava/lang/String; -HSPLjava/net/HttpCookie;->getMaxAge()J -HSPLjava/net/HttpCookie;->getName()Ljava/lang/String; -HSPLjava/net/HttpCookie;->getPath()Ljava/lang/String; -HSPLjava/net/HttpCookie;->getPortlist()Ljava/lang/String; -HSPLjava/net/HttpCookie;->getValue()Ljava/lang/String; -HSPLjava/net/HttpCookie;->getVersion()I -HSPLjava/net/HttpCookie;->guessCookieVersion(Ljava/lang/String;)I -HSPLjava/net/HttpCookie;->hasExpired()Z -HSPLjava/net/HttpCookie;->isFullyQualifiedDomainName(Ljava/lang/String;I)Z -HSPLjava/net/HttpCookie;->isToken(Ljava/lang/String;)Z -HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;)Ljava/util/List; -HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;Z)Ljava/util/List; -HSPLjava/net/HttpCookie;->parseInternal(Ljava/lang/String;Z)Ljava/net/HttpCookie; -HSPLjava/net/HttpCookie;->setDomain(Ljava/lang/String;)V -HSPLjava/net/HttpCookie;->setHttpOnly(Z)V -HSPLjava/net/HttpCookie;->setMaxAge(J)V -HSPLjava/net/HttpCookie;->setPath(Ljava/lang/String;)V -HSPLjava/net/HttpCookie;->setSecure(Z)V -HSPLjava/net/HttpCookie;->setVersion(I)V -HSPLjava/net/HttpCookie;->startsWithIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/net/HttpCookie;->stripOffSurroundingQuote(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/HttpCookie;->toNetscapeHeaderString()Ljava/lang/String; -HSPLjava/net/HttpCookie;->toString()Ljava/lang/String; -HSPLjava/net/HttpURLConnection;-><init>(Ljava/net/URL;)V -HSPLjava/net/HttpURLConnection;->getFollowRedirects()Z -HSPLjava/net/HttpURLConnection;->getRequestMethod()Ljava/lang/String; -HSPLjava/net/HttpURLConnection;->setChunkedStreamingMode(I)V -HSPLjava/net/HttpURLConnection;->setInstanceFollowRedirects(Z)V -HSPLjava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V -HSPLjava/net/IDN;->toASCII(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/IDN;->toASCII(Ljava/lang/String;I)Ljava/lang/String; -HSPLjava/net/InMemoryCookieStore;-><init>()V -HSPLjava/net/InMemoryCookieStore;-><init>(I)V -HSPLjava/net/InMemoryCookieStore;->add(Ljava/net/URI;Ljava/net/HttpCookie;)V -HSPLjava/net/InMemoryCookieStore;->addIndex(Ljava/util/Map;Ljava/lang/Object;Ljava/net/HttpCookie;)V -HSPLjava/net/InMemoryCookieStore;->get(Ljava/net/URI;)Ljava/util/List; -HSPLjava/net/InMemoryCookieStore;->getEffectiveURI(Ljava/net/URI;)Ljava/net/URI; -HSPLjava/net/InMemoryCookieStore;->getInternal1(Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V -HSPLjava/net/InMemoryCookieStore;->getInternal2(Ljava/util/List;Ljava/util/Map;Ljava/lang/Comparable;)V -HSPLjava/net/InMemoryCookieStore;->netscapeDomainMatches(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/net/Inet4Address;-><init>()V -HSPLjava/net/Inet4Address;-><init>(Ljava/lang/String;[B)V -HSPLjava/net/Inet4Address;->equals(Ljava/lang/Object;)Z -HSPLjava/net/Inet4Address;->getAddress()[B -HSPLjava/net/Inet4Address;->getHostAddress()Ljava/lang/String; -HSPLjava/net/Inet4Address;->hashCode()I -HSPLjava/net/Inet4Address;->isAnyLocalAddress()Z -HSPLjava/net/Inet4Address;->isLinkLocalAddress()Z -HSPLjava/net/Inet4Address;->isLoopbackAddress()Z -HSPLjava/net/Inet4Address;->isMulticastAddress()Z -HSPLjava/net/Inet4Address;->numericToTextFormat([B)Ljava/lang/String; -HSPLjava/net/Inet6Address$Inet6AddressHolder;-><init>(Ljava/net/Inet6Address;)V -HSPLjava/net/Inet6Address$Inet6AddressHolder;-><init>(Ljava/net/Inet6Address;Ljava/net/Inet6Address$Inet6AddressHolder-IA;)V -HSPLjava/net/Inet6Address$Inet6AddressHolder;->equals(Ljava/lang/Object;)Z -HSPLjava/net/Inet6Address$Inet6AddressHolder;->hashCode()I -HSPLjava/net/Inet6Address$Inet6AddressHolder;->init([BI)V -HSPLjava/net/Inet6Address$Inet6AddressHolder;->isAnyLocalAddress()Z -HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z -HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLoopbackAddress()Z -HSPLjava/net/Inet6Address$Inet6AddressHolder;->isMulticastAddress()Z -HSPLjava/net/Inet6Address$Inet6AddressHolder;->setAddr([B)V -HSPLjava/net/Inet6Address;-><init>(Ljava/lang/String;[BI)V -HSPLjava/net/Inet6Address;->equals(Ljava/lang/Object;)Z -HSPLjava/net/Inet6Address;->getAddress()[B -HSPLjava/net/Inet6Address;->getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address; -HSPLjava/net/Inet6Address;->getHostAddress()Ljava/lang/String; -HSPLjava/net/Inet6Address;->getScopeId()I -HSPLjava/net/Inet6Address;->hashCode()I -HSPLjava/net/Inet6Address;->isAnyLocalAddress()Z -HSPLjava/net/Inet6Address;->isLinkLocalAddress()Z -HSPLjava/net/Inet6Address;->isLoopbackAddress()Z -HSPLjava/net/Inet6Address;->isMulticastAddress()Z -HSPLjava/net/Inet6AddressImpl;->clearAddressCache()V -HSPLjava/net/Inet6AddressImpl;->lookupAllHostAddr(Ljava/lang/String;I)[Ljava/net/InetAddress; -HSPLjava/net/Inet6AddressImpl;->lookupHostByName(Ljava/lang/String;I)[Ljava/net/InetAddress; -HSPLjava/net/InetAddress$InetAddressHolder;-><init>()V -HSPLjava/net/InetAddress$InetAddressHolder;->getAddress()I -HSPLjava/net/InetAddress$InetAddressHolder;->getHostName()Ljava/lang/String; -HSPLjava/net/InetAddress$InetAddressHolder;->init(Ljava/lang/String;I)V -HSPLjava/net/InetAddress;-><init>()V -HSPLjava/net/InetAddress;->clearDnsCache()V -HSPLjava/net/InetAddress;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress; -HSPLjava/net/InetAddress;->getAllByNameOnNet(Ljava/lang/String;I)[Ljava/net/InetAddress; -HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddress; -HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[BI)Ljava/net/InetAddress; -HSPLjava/net/InetAddress;->getByAddress([B)Ljava/net/InetAddress; -HSPLjava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress; -HSPLjava/net/InetAddress;->getHostName()Ljava/lang/String; -HSPLjava/net/InetAddress;->holder()Ljava/net/InetAddress$InetAddressHolder; -HSPLjava/net/InetAddress;->toString()Ljava/lang/String; -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;I)V -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->equals(Ljava/lang/Object;)Z -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getAddress()Ljava/net/InetAddress; -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getHostName()Ljava/lang/String; -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getHostString()Ljava/lang/String; -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getPort()I -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->hashCode()I -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->isUnresolved()Z -HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->toString()Ljava/lang/String; -HSPLjava/net/InetSocketAddress;-><init>()V -HSPLjava/net/InetSocketAddress;-><init>(I)V -HSPLjava/net/InetSocketAddress;-><init>(ILjava/lang/String;)V -HSPLjava/net/InetSocketAddress;-><init>(Ljava/lang/String;I)V -HSPLjava/net/InetSocketAddress;-><init>(Ljava/net/InetAddress;I)V -HSPLjava/net/InetSocketAddress;->checkHost(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/InetSocketAddress;->checkPort(I)I -HSPLjava/net/InetSocketAddress;->createUnresolved(Ljava/lang/String;I)Ljava/net/InetSocketAddress; -HSPLjava/net/InetSocketAddress;->equals(Ljava/lang/Object;)Z -HSPLjava/net/InetSocketAddress;->getAddress()Ljava/net/InetAddress; -HSPLjava/net/InetSocketAddress;->getHostName()Ljava/lang/String; -HSPLjava/net/InetSocketAddress;->getHostString()Ljava/lang/String; -HSPLjava/net/InetSocketAddress;->getPort()I -HSPLjava/net/InetSocketAddress;->hashCode()I -HSPLjava/net/InetSocketAddress;->isUnresolved()Z -HSPLjava/net/InetSocketAddress;->toString()Ljava/lang/String; -HSPLjava/net/InterfaceAddress;-><init>(Ljava/net/InetAddress;Ljava/net/Inet4Address;Ljava/net/InetAddress;)V -HSPLjava/net/InterfaceAddress;->countPrefixLength(Ljava/net/InetAddress;)S -HSPLjava/net/JarURLConnection;-><init>(Ljava/net/URL;)V -HSPLjava/net/JarURLConnection;->getEntryName()Ljava/lang/String; -HSPLjava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V -HSPLjava/net/MulticastSocket;-><init>(Ljava/net/SocketAddress;)V -HSPLjava/net/NetworkInterface$1checkedAddresses;-><init>(Ljava/net/NetworkInterface;)V -HSPLjava/net/NetworkInterface$1checkedAddresses;->hasMoreElements()Z -HSPLjava/net/NetworkInterface$1checkedAddresses;->nextElement()Ljava/lang/Object; -HSPLjava/net/NetworkInterface$1checkedAddresses;->nextElement()Ljava/net/InetAddress; -HSPLjava/net/NetworkInterface;-><init>(Ljava/lang/String;I[Ljava/net/InetAddress;)V -HSPLjava/net/NetworkInterface;->getAll()[Ljava/net/NetworkInterface; -HSPLjava/net/NetworkInterface;->getByName(Ljava/lang/String;)Ljava/net/NetworkInterface; -HSPLjava/net/NetworkInterface;->getFlags()I -HSPLjava/net/NetworkInterface;->getHardwareAddress()[B -HSPLjava/net/NetworkInterface;->getIndex()I -HSPLjava/net/NetworkInterface;->getInetAddresses()Ljava/util/Enumeration; -HSPLjava/net/NetworkInterface;->getName()Ljava/lang/String; -HSPLjava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration; -HSPLjava/net/NetworkInterface;->isLoopback()Z -HSPLjava/net/NetworkInterface;->isUp()Z -HSPLjava/net/Parts;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/Parts;->getPath()Ljava/lang/String; -HSPLjava/net/Parts;->getQuery()Ljava/lang/String; -HSPLjava/net/Parts;->getRef()Ljava/lang/String; -HSPLjava/net/PlainDatagramSocketImpl;-><init>()V -HSPLjava/net/PlainDatagramSocketImpl;->bind0(ILjava/net/InetAddress;)V -HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketClose()V -HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketCreate()V -HSPLjava/net/PlainDatagramSocketImpl;->doRecv(Ljava/net/DatagramPacket;I)V -HSPLjava/net/PlainDatagramSocketImpl;->receive0(Ljava/net/DatagramPacket;)V -HSPLjava/net/PlainDatagramSocketImpl;->send(Ljava/net/DatagramPacket;)V -HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption(ILjava/lang/Object;)V -HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption0(ILjava/lang/Object;)V -HSPLjava/net/PlainSocketImpl;-><init>()V -HSPLjava/net/PlainSocketImpl;->getMarkerFD()Ljava/io/FileDescriptor; -HSPLjava/net/PlainSocketImpl;->socketAccept(Ljava/net/SocketImpl;)V -HSPLjava/net/PlainSocketImpl;->socketBind(Ljava/net/InetAddress;I)V -HSPLjava/net/PlainSocketImpl;->socketClose0(Z)V -HSPLjava/net/PlainSocketImpl;->socketConnect(Ljava/net/InetAddress;II)V -HSPLjava/net/PlainSocketImpl;->socketCreate(Z)V -HSPLjava/net/PlainSocketImpl;->socketGetOption(I)Ljava/lang/Object; -HSPLjava/net/PlainSocketImpl;->socketListen(I)V -HSPLjava/net/PlainSocketImpl;->socketSetOption(ILjava/lang/Object;)V -HSPLjava/net/PlainSocketImpl;->socketSetOption0(ILjava/lang/Object;)V -HSPLjava/net/Proxy$Type;->values()[Ljava/net/Proxy$Type; -HSPLjava/net/Proxy;->address()Ljava/net/SocketAddress; -HSPLjava/net/Proxy;->equals(Ljava/lang/Object;)Z -HSPLjava/net/Proxy;->hashCode()I -HSPLjava/net/Proxy;->type()Ljava/net/Proxy$Type; -HSPLjava/net/ProxySelector;->getDefault()Ljava/net/ProxySelector; -HSPLjava/net/ProxySelector;->setDefault(Ljava/net/ProxySelector;)V -HSPLjava/net/ResponseCache;->getDefault()Ljava/net/ResponseCache; -HSPLjava/net/ServerSocket;-><init>()V -HSPLjava/net/ServerSocket;->accept()Ljava/net/Socket; -HSPLjava/net/ServerSocket;->bind(Ljava/net/SocketAddress;)V -HSPLjava/net/ServerSocket;->bind(Ljava/net/SocketAddress;I)V -HSPLjava/net/ServerSocket;->createImpl()V -HSPLjava/net/ServerSocket;->getImpl()Ljava/net/SocketImpl; -HSPLjava/net/ServerSocket;->implAccept(Ljava/net/Socket;)V -HSPLjava/net/ServerSocket;->isBound()Z -HSPLjava/net/ServerSocket;->isClosed()Z -HSPLjava/net/ServerSocket;->setBound()V -HSPLjava/net/ServerSocket;->setCreated()V -HSPLjava/net/ServerSocket;->setImpl()V -HSPLjava/net/Socket$1;-><init>(Ljava/net/Socket;)V -HSPLjava/net/Socket$1;->run()Ljava/lang/Boolean; -HSPLjava/net/Socket$1;->run()Ljava/lang/Object; -HSPLjava/net/Socket$2;-><init>(Ljava/net/Socket;)V -HSPLjava/net/Socket$2;->run()Ljava/io/InputStream; -HSPLjava/net/Socket$2;->run()Ljava/lang/Object; -HSPLjava/net/Socket$3;-><init>(Ljava/net/Socket;)V -HSPLjava/net/Socket$3;->run()Ljava/io/OutputStream; -HSPLjava/net/Socket$3;->run()Ljava/lang/Object; -HSPLjava/net/Socket;-><init>()V -HSPLjava/net/Socket;-><init>(Ljava/net/InetAddress;I)V -HSPLjava/net/Socket;-><init>(Ljava/net/SocketImpl;)V -HSPLjava/net/Socket;-><init>([Ljava/net/InetAddress;ILjava/net/SocketAddress;Z)V -HSPLjava/net/Socket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V -HSPLjava/net/Socket;->checkOldImpl()V -HSPLjava/net/Socket;->close()V -HSPLjava/net/Socket;->connect(Ljava/net/SocketAddress;)V -HSPLjava/net/Socket;->connect(Ljava/net/SocketAddress;I)V -HSPLjava/net/Socket;->createImpl(Z)V -HSPLjava/net/Socket;->getFileDescriptor$()Ljava/io/FileDescriptor; -HSPLjava/net/Socket;->getImpl()Ljava/net/SocketImpl; -HSPLjava/net/Socket;->getInetAddress()Ljava/net/InetAddress; -HSPLjava/net/Socket;->getInputStream()Ljava/io/InputStream; -HSPLjava/net/Socket;->getLocalAddress()Ljava/net/InetAddress; -HSPLjava/net/Socket;->getLocalPort()I -HSPLjava/net/Socket;->getLocalSocketAddress()Ljava/net/SocketAddress; -HSPLjava/net/Socket;->getOutputStream()Ljava/io/OutputStream; -HSPLjava/net/Socket;->getPort()I -HSPLjava/net/Socket;->getRemoteSocketAddress()Ljava/net/SocketAddress; -HSPLjava/net/Socket;->getReuseAddress()Z -HSPLjava/net/Socket;->getSoTimeout()I -HSPLjava/net/Socket;->isBound()Z -HSPLjava/net/Socket;->isClosed()Z -HSPLjava/net/Socket;->isConnected()Z -HSPLjava/net/Socket;->isInputShutdown()Z -HSPLjava/net/Socket;->isOutputShutdown()Z -HSPLjava/net/Socket;->nonNullAddress(Ljava/net/InetAddress;)[Ljava/net/InetAddress; -HSPLjava/net/Socket;->setBound()V -HSPLjava/net/Socket;->setConnected()V -HSPLjava/net/Socket;->setCreated()V -HSPLjava/net/Socket;->setImpl()V -HSPLjava/net/Socket;->setSoTimeout(I)V -HSPLjava/net/Socket;->setTcpNoDelay(Z)V -HSPLjava/net/SocketAddress;-><init>()V -HSPLjava/net/SocketException;-><init>(Ljava/lang/String;)V -HSPLjava/net/SocketException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/net/SocketImpl;-><init>()V -HSPLjava/net/SocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor; -HSPLjava/net/SocketImpl;->getInetAddress()Ljava/net/InetAddress; -HSPLjava/net/SocketImpl;->getLocalPort()I -HSPLjava/net/SocketImpl;->getPort()I -HSPLjava/net/SocketImpl;->getSocket()Ljava/net/Socket; -HSPLjava/net/SocketImpl;->setServerSocket(Ljava/net/ServerSocket;)V -HSPLjava/net/SocketImpl;->setSocket(Ljava/net/Socket;)V -HSPLjava/net/SocketInputStream;-><init>(Ljava/net/AbstractPlainSocketImpl;)V -HSPLjava/net/SocketInputStream;->finalize()V -HSPLjava/net/SocketInputStream;->read([BII)I -HSPLjava/net/SocketInputStream;->read([BIII)I -HSPLjava/net/SocketInputStream;->socketRead(Ljava/io/FileDescriptor;[BIII)I -HSPLjava/net/SocketOutputStream;-><init>(Ljava/net/AbstractPlainSocketImpl;)V -HSPLjava/net/SocketOutputStream;->finalize()V -HSPLjava/net/SocketOutputStream;->socketWrite([BII)V -HSPLjava/net/SocketOutputStream;->write([BII)V -HSPLjava/net/SocketTimeoutException;-><init>(Ljava/lang/String;)V -HSPLjava/net/SocksSocketImpl;-><init>()V -HSPLjava/net/SocksSocketImpl;->close()V -HSPLjava/net/SocksSocketImpl;->connect(Ljava/net/SocketAddress;I)V -HSPLjava/net/SocksSocketImpl;->getInetAddress()Ljava/net/InetAddress; -HSPLjava/net/SocksSocketImpl;->getLocalPort()I -HSPLjava/net/SocksSocketImpl;->getPort()I -HSPLjava/net/SocksSocketImpl;->remainingMillis(J)I -HSPLjava/net/URI$Parser;-><init>(Ljava/net/URI;Ljava/lang/String;)V -HSPLjava/net/URI$Parser;->at(IIC)Z -HSPLjava/net/URI$Parser;->charAt(I)C -HSPLjava/net/URI$Parser;->checkChar(IJJLjava/lang/String;)V -HSPLjava/net/URI$Parser;->checkChars(IIJJLjava/lang/String;)V -HSPLjava/net/URI$Parser;->parse(Z)V -HSPLjava/net/URI$Parser;->parseAuthority(II)I -HSPLjava/net/URI$Parser;->parseHierarchical(II)I -HSPLjava/net/URI$Parser;->parseHostname(II)I -HSPLjava/net/URI$Parser;->parseIPv4Address(II)I -HSPLjava/net/URI$Parser;->parseServer(II)I -HSPLjava/net/URI$Parser;->scan(IIC)I -HSPLjava/net/URI$Parser;->scan(IIJJ)I -HSPLjava/net/URI$Parser;->scan(IILjava/lang/String;Ljava/lang/String;)I -HSPLjava/net/URI$Parser;->scanByte(II)I -HSPLjava/net/URI$Parser;->scanEscape(IIC)I -HSPLjava/net/URI$Parser;->scanIPv4Address(IIZ)I -HSPLjava/net/URI$Parser;->substring(II)Ljava/lang/String; -HSPLjava/net/URI;->-$$Nest$fputpath(Ljava/net/URI;Ljava/lang/String;)V -HSPLjava/net/URI;->-$$Nest$fputscheme(Ljava/net/URI;Ljava/lang/String;)V -HSPLjava/net/URI;->-$$Nest$fputschemeSpecificPart(Ljava/net/URI;Ljava/lang/String;)V -HSPLjava/net/URI;->-$$Nest$fputstring(Ljava/net/URI;Ljava/lang/String;)V -HSPLjava/net/URI;->-$$Nest$sfgetH_ALPHA()J -HSPLjava/net/URI;->-$$Nest$sfgetH_PATH()J -HSPLjava/net/URI;->-$$Nest$sfgetH_SCHEME()J -HSPLjava/net/URI;->-$$Nest$sfgetL_PATH()J -HSPLjava/net/URI;->-$$Nest$sfgetL_SCHEME()J -HSPLjava/net/URI;->-$$Nest$smmatch(CJJ)Z -HSPLjava/net/URI;-><init>(Ljava/lang/String;)V -HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URI;->appendAuthority(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V -HSPLjava/net/URI;->appendEscape(Ljava/lang/StringBuffer;B)V -HSPLjava/net/URI;->appendFragment(Ljava/lang/StringBuffer;Ljava/lang/String;)V -HSPLjava/net/URI;->appendSchemeSpecificPart(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URI;->checkPath(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URI;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLjava/net/URI;->compareIgnoringCase(Ljava/lang/String;Ljava/lang/String;)I -HSPLjava/net/URI;->compareTo(Ljava/lang/Object;)I -HSPLjava/net/URI;->compareTo(Ljava/net/URI;)I -HSPLjava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI; -HSPLjava/net/URI;->decode(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/URI;->defineString()V -HSPLjava/net/URI;->encode(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/URI;->equal(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/net/URI;->equalIgnoringCase(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/net/URI;->equals(Ljava/lang/Object;)Z -HSPLjava/net/URI;->getAuthority()Ljava/lang/String; -HSPLjava/net/URI;->getFragment()Ljava/lang/String; -HSPLjava/net/URI;->getHost()Ljava/lang/String; -HSPLjava/net/URI;->getPath()Ljava/lang/String; -HSPLjava/net/URI;->getPort()I -HSPLjava/net/URI;->getQuery()Ljava/lang/String; -HSPLjava/net/URI;->getRawFragment()Ljava/lang/String; -HSPLjava/net/URI;->getRawPath()Ljava/lang/String; -HSPLjava/net/URI;->getRawQuery()Ljava/lang/String; -HSPLjava/net/URI;->getScheme()Ljava/lang/String; -HSPLjava/net/URI;->getUserInfo()Ljava/lang/String; -HSPLjava/net/URI;->hash(ILjava/lang/String;)I -HSPLjava/net/URI;->hashCode()I -HSPLjava/net/URI;->hashIgnoringCase(ILjava/lang/String;)I -HSPLjava/net/URI;->isAbsolute()Z -HSPLjava/net/URI;->isOpaque()Z -HSPLjava/net/URI;->match(CJJ)Z -HSPLjava/net/URI;->quote(Ljava/lang/String;JJ)Ljava/lang/String; -HSPLjava/net/URI;->toASCIIString()Ljava/lang/String; -HSPLjava/net/URI;->toLower(C)I -HSPLjava/net/URI;->toString()Ljava/lang/String; -HSPLjava/net/URI;->toString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/URI;->toURL()Ljava/net/URL; -HSPLjava/net/URL;-><init>(Ljava/lang/String;)V -HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V -HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V -HSPLjava/net/URL;-><init>(Ljava/net/URL;Ljava/lang/String;)V -HSPLjava/net/URL;-><init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V -HSPLjava/net/URL;->createBuiltinHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; -HSPLjava/net/URL;->getAuthority()Ljava/lang/String; -HSPLjava/net/URL;->getFile()Ljava/lang/String; -HSPLjava/net/URL;->getHost()Ljava/lang/String; -HSPLjava/net/URL;->getPath()Ljava/lang/String; -HSPLjava/net/URL;->getPort()I -HSPLjava/net/URL;->getProtocol()Ljava/lang/String; -HSPLjava/net/URL;->getQuery()Ljava/lang/String; -HSPLjava/net/URL;->getRef()Ljava/lang/String; -HSPLjava/net/URL;->getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler; -HSPLjava/net/URL;->getUserInfo()Ljava/lang/String; -HSPLjava/net/URL;->isValidProtocol(Ljava/lang/String;)Z -HSPLjava/net/URL;->openConnection()Ljava/net/URLConnection; -HSPLjava/net/URL;->openStream()Ljava/io/InputStream; -HSPLjava/net/URL;->set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URL;->toExternalForm()Ljava/lang/String; -HSPLjava/net/URL;->toString()Ljava/lang/String; -HSPLjava/net/URLConnection;-><init>(Ljava/net/URL;)V -HSPLjava/net/URLConnection;->getContentEncoding()Ljava/lang/String; -HSPLjava/net/URLConnection;->getContentLength()I -HSPLjava/net/URLConnection;->getContentLengthLong()J -HSPLjava/net/URLConnection;->getContentType()Ljava/lang/String; -HSPLjava/net/URLConnection;->getHeaderFieldInt(Ljava/lang/String;I)I -HSPLjava/net/URLConnection;->getHeaderFieldLong(Ljava/lang/String;J)J -HSPLjava/net/URLConnection;->getReadTimeout()I -HSPLjava/net/URLConnection;->getURL()Ljava/net/URL; -HSPLjava/net/URLConnection;->getUseCaches()Z -HSPLjava/net/URLConnection;->setDefaultUseCaches(Z)V -HSPLjava/net/URLConnection;->setDoInput(Z)V -HSPLjava/net/URLConnection;->setDoOutput(Z)V -HSPLjava/net/URLConnection;->setReadTimeout(I)V -HSPLjava/net/URLConnection;->setUseCaches(Z)V -HSPLjava/net/URLDecoder;->decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/URLDecoder;->decode(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String; -HSPLjava/net/URLDecoder;->isValidHexChar(C)Z -HSPLjava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String; -HSPLjava/net/URLStreamHandler;-><init>()V -HSPLjava/net/URLStreamHandler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V -HSPLjava/net/URLStreamHandler;->setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/net/URLStreamHandler;->toExternalForm(Ljava/net/URL;)Ljava/lang/String; -HSPLjava/net/UnknownHostException;-><init>(Ljava/lang/String;)V -HSPLjava/nio/Bits;->char0(C)B -HSPLjava/nio/Bits;->char1(C)B -HSPLjava/nio/Bits;->getFloat(Ljava/nio/ByteBuffer;IZ)F -HSPLjava/nio/Bits;->getFloatL(Ljava/nio/ByteBuffer;I)F -HSPLjava/nio/Bits;->getInt(Ljava/nio/ByteBuffer;IZ)I -HSPLjava/nio/Bits;->getIntB(Ljava/nio/ByteBuffer;I)I -HSPLjava/nio/Bits;->getIntL(Ljava/nio/ByteBuffer;I)I -HSPLjava/nio/Bits;->getLong(Ljava/nio/ByteBuffer;IZ)J -HSPLjava/nio/Bits;->getLongB(Ljava/nio/ByteBuffer;I)J -HSPLjava/nio/Bits;->getLongL(Ljava/nio/ByteBuffer;I)J -HSPLjava/nio/Bits;->getShort(Ljava/nio/ByteBuffer;IZ)S -HSPLjava/nio/Bits;->getShortB(Ljava/nio/ByteBuffer;I)S -HSPLjava/nio/Bits;->getShortL(Ljava/nio/ByteBuffer;I)S -HSPLjava/nio/Bits;->int0(I)B -HSPLjava/nio/Bits;->int1(I)B -HSPLjava/nio/Bits;->int2(I)B -HSPLjava/nio/Bits;->int3(I)B -HSPLjava/nio/Bits;->long0(J)B -HSPLjava/nio/Bits;->long1(J)B -HSPLjava/nio/Bits;->long2(J)B -HSPLjava/nio/Bits;->long3(J)B -HSPLjava/nio/Bits;->long4(J)B -HSPLjava/nio/Bits;->long5(J)B -HSPLjava/nio/Bits;->long6(J)B -HSPLjava/nio/Bits;->long7(J)B -HSPLjava/nio/Bits;->makeInt(BBBB)I -HSPLjava/nio/Bits;->makeLong(BBBBBBBB)J -HSPLjava/nio/Bits;->makeShort(BB)S -HSPLjava/nio/Bits;->pageSize()I -HSPLjava/nio/Bits;->putChar(Ljava/nio/ByteBuffer;ICZ)V -HSPLjava/nio/Bits;->putCharB(Ljava/nio/ByteBuffer;IC)V -HSPLjava/nio/Bits;->putCharL(Ljava/nio/ByteBuffer;IC)V -HSPLjava/nio/Bits;->putFloat(Ljava/nio/ByteBuffer;IFZ)V -HSPLjava/nio/Bits;->putInt(Ljava/nio/ByteBuffer;IIZ)V -HSPLjava/nio/Bits;->putIntB(Ljava/nio/ByteBuffer;II)V -HSPLjava/nio/Bits;->putIntL(Ljava/nio/ByteBuffer;II)V -HSPLjava/nio/Bits;->putLong(Ljava/nio/ByteBuffer;IJZ)V -HSPLjava/nio/Bits;->putLongB(Ljava/nio/ByteBuffer;IJ)V -HSPLjava/nio/Bits;->putLongL(Ljava/nio/ByteBuffer;IJ)V -HSPLjava/nio/Bits;->putShort(Ljava/nio/ByteBuffer;ISZ)V -HSPLjava/nio/Bits;->putShortB(Ljava/nio/ByteBuffer;IS)V -HSPLjava/nio/Bits;->putShortL(Ljava/nio/ByteBuffer;IS)V -HSPLjava/nio/Bits;->short0(S)B -HSPLjava/nio/Bits;->short1(S)B -HSPLjava/nio/Buffer;-><init>(IIIII)V -HSPLjava/nio/Buffer;->capacity()I -HSPLjava/nio/Buffer;->checkBounds(III)V -HSPLjava/nio/Buffer;->checkIndex(I)I -HSPLjava/nio/Buffer;->checkIndex(II)I -HSPLjava/nio/Buffer;->checkScope()V -HSPLjava/nio/Buffer;->clear()Ljava/nio/Buffer; -HSPLjava/nio/Buffer;->discardMark()V -HSPLjava/nio/Buffer;->flip()Ljava/nio/Buffer; -HSPLjava/nio/Buffer;->hasRemaining()Z -HSPLjava/nio/Buffer;->limit()I -HSPLjava/nio/Buffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/Buffer;->mark()Ljava/nio/Buffer; -HSPLjava/nio/Buffer;->markValue()I -HSPLjava/nio/Buffer;->nextGetIndex()I -HSPLjava/nio/Buffer;->nextGetIndex(I)I -HSPLjava/nio/Buffer;->nextPutIndex()I -HSPLjava/nio/Buffer;->nextPutIndex(I)I -HSPLjava/nio/Buffer;->position()I -HSPLjava/nio/Buffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/Buffer;->remaining()I -HSPLjava/nio/Buffer;->reset()Ljava/nio/Buffer; -HSPLjava/nio/Buffer;->rewind()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;-><init>(IIII)V -HSPLjava/nio/ByteBuffer;-><init>(IIII[BI)V -HSPLjava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->array()Ljava/lang/Object; -HSPLjava/nio/ByteBuffer;->array()[B -HSPLjava/nio/ByteBuffer;->arrayOffset()I -HSPLjava/nio/ByteBuffer;->clear()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->compare(BB)I -HSPLjava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I -HSPLjava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I -HSPLjava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z -HSPLjava/nio/ByteBuffer;->flip()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->hasArray()Z -HSPLjava/nio/ByteBuffer;->hashCode()I -HSPLjava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->mark()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->order()Ljava/nio/ByteOrder; -HSPLjava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->putBuffer(ILjava/nio/ByteBuffer;II)V+]Ljava/nio/ByteBuffer;Ljava/nio/DirectByteBuffer;,Ljava/nio/HeapByteBuffer; -HSPLjava/nio/ByteBuffer;->reset()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer; -HSPLjava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBuffer;->wrap([BII)Ljava/nio/ByteBuffer; -HSPLjava/nio/ByteBufferAsCharBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V -HSPLjava/nio/ByteBufferAsCharBuffer;->duplicate()Ljava/nio/CharBuffer; -HSPLjava/nio/ByteBufferAsCharBuffer;->get(I)C -HSPLjava/nio/ByteBufferAsCharBuffer;->get([CII)Ljava/nio/CharBuffer; -HSPLjava/nio/ByteBufferAsCharBuffer;->isDirect()Z -HSPLjava/nio/ByteBufferAsCharBuffer;->ix(I)I -HSPLjava/nio/ByteBufferAsCharBuffer;->subSequence(II)Ljava/lang/CharSequence; -HSPLjava/nio/ByteBufferAsCharBuffer;->subSequence(II)Ljava/nio/CharBuffer; -HSPLjava/nio/ByteBufferAsCharBuffer;->toString(II)Ljava/lang/String; -HSPLjava/nio/ByteBufferAsFloatBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V -HSPLjava/nio/ByteBufferAsFloatBuffer;->ix(I)I -HSPLjava/nio/ByteBufferAsFloatBuffer;->put(IF)Ljava/nio/FloatBuffer; -HSPLjava/nio/ByteBufferAsFloatBuffer;->put([FII)Ljava/nio/FloatBuffer; -HSPLjava/nio/ByteBufferAsIntBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V -HSPLjava/nio/ByteBufferAsIntBuffer;->get([III)Ljava/nio/IntBuffer; -HSPLjava/nio/ByteBufferAsIntBuffer;->ix(I)I -HSPLjava/nio/ByteBufferAsIntBuffer;->put(I)Ljava/nio/IntBuffer; -HSPLjava/nio/ByteBufferAsIntBuffer;->put(II)Ljava/nio/IntBuffer; -HSPLjava/nio/ByteBufferAsIntBuffer;->put([III)Ljava/nio/IntBuffer; -HSPLjava/nio/ByteBufferAsLongBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V -HSPLjava/nio/ByteBufferAsLongBuffer;->get([JII)Ljava/nio/LongBuffer; -HSPLjava/nio/ByteBufferAsLongBuffer;->ix(I)I -HSPLjava/nio/ByteBufferAsShortBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V -HSPLjava/nio/ByteBufferAsShortBuffer;->get([SII)Ljava/nio/ShortBuffer; -HSPLjava/nio/ByteBufferAsShortBuffer;->ix(I)I -HSPLjava/nio/ByteBufferAsShortBuffer;->put([SII)Ljava/nio/ShortBuffer; -HSPLjava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder; -HSPLjava/nio/CharBuffer;-><init>(IIII)V -HSPLjava/nio/CharBuffer;-><init>(IIII[CI)V -HSPLjava/nio/CharBuffer;->allocate(I)Ljava/nio/CharBuffer; -HSPLjava/nio/CharBuffer;->array()[C -HSPLjava/nio/CharBuffer;->arrayOffset()I -HSPLjava/nio/CharBuffer;->charAt(I)C -HSPLjava/nio/CharBuffer;->clear()Ljava/nio/Buffer; -HSPLjava/nio/CharBuffer;->flip()Ljava/nio/Buffer; -HSPLjava/nio/CharBuffer;->get([C)Ljava/nio/CharBuffer; -HSPLjava/nio/CharBuffer;->get([CII)Ljava/nio/CharBuffer; -HSPLjava/nio/CharBuffer;->hasArray()Z -HSPLjava/nio/CharBuffer;->length()I -HSPLjava/nio/CharBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/CharBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/CharBuffer;->toString()Ljava/lang/String; -HSPLjava/nio/CharBuffer;->wrap(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer; -HSPLjava/nio/CharBuffer;->wrap(Ljava/lang/CharSequence;II)Ljava/nio/CharBuffer; -HSPLjava/nio/CharBuffer;->wrap([C)Ljava/nio/CharBuffer; -HSPLjava/nio/CharBuffer;->wrap([CII)Ljava/nio/CharBuffer; -HSPLjava/nio/DirectByteBuffer$MemoryRef;-><init>(I)V -HSPLjava/nio/DirectByteBuffer$MemoryRef;-><init>(JLjava/lang/Object;)V -HSPLjava/nio/DirectByteBuffer$MemoryRef;->free()V -HSPLjava/nio/DirectByteBuffer;-><init>(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)V -HSPLjava/nio/DirectByteBuffer;-><init>(ILjava/nio/DirectByteBuffer$MemoryRef;)V -HSPLjava/nio/DirectByteBuffer;-><init>(JI)V -HSPLjava/nio/DirectByteBuffer;-><init>(Ljava/nio/DirectByteBuffer$MemoryRef;IIIIIZ)V -HSPLjava/nio/DirectByteBuffer;->address()J -HSPLjava/nio/DirectByteBuffer;->asCharBuffer()Ljava/nio/CharBuffer; -HSPLjava/nio/DirectByteBuffer;->asFloatBuffer()Ljava/nio/FloatBuffer; -HSPLjava/nio/DirectByteBuffer;->asIntBuffer()Ljava/nio/IntBuffer; -HSPLjava/nio/DirectByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer; -HSPLjava/nio/DirectByteBuffer;->cleaner()Lsun/misc/Cleaner; -HSPLjava/nio/DirectByteBuffer;->duplicate()Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->duplicate()Ljava/nio/MappedByteBuffer; -HSPLjava/nio/DirectByteBuffer;->get()B -HSPLjava/nio/DirectByteBuffer;->get(I)B -HSPLjava/nio/DirectByteBuffer;->get(J)B -HSPLjava/nio/DirectByteBuffer;->get([BII)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->getChar()C -HSPLjava/nio/DirectByteBuffer;->getChar(I)C -HSPLjava/nio/DirectByteBuffer;->getCharUnchecked(I)C -HSPLjava/nio/DirectByteBuffer;->getInt()I -HSPLjava/nio/DirectByteBuffer;->getInt(I)I -HSPLjava/nio/DirectByteBuffer;->getInt(J)I -HSPLjava/nio/DirectByteBuffer;->getLong(I)J -HSPLjava/nio/DirectByteBuffer;->getLong(J)J -HSPLjava/nio/DirectByteBuffer;->getShort()S -HSPLjava/nio/DirectByteBuffer;->getShort(I)S -HSPLjava/nio/DirectByteBuffer;->getShort(J)S -HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[CII)V -HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[III)V -HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[SII)V -HSPLjava/nio/DirectByteBuffer;->isDirect()Z -HSPLjava/nio/DirectByteBuffer;->isReadOnly()Z -HSPLjava/nio/DirectByteBuffer;->ix(I)J -HSPLjava/nio/DirectByteBuffer;->put(B)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->put(IB)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->put(JB)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->put([BII)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putDouble(JD)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putFloat(JF)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putFloatUnchecked(IF)V -HSPLjava/nio/DirectByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putInt(II)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putInt(JI)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putLong(J)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putLong(JJ)Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->putUnchecked(I[FII)V -HSPLjava/nio/DirectByteBuffer;->setAccessible(Z)V -HSPLjava/nio/DirectByteBuffer;->slice()Ljava/nio/ByteBuffer; -HSPLjava/nio/DirectByteBuffer;->slice()Ljava/nio/MappedByteBuffer; -HSPLjava/nio/FloatBuffer;-><init>(IIII)V -HSPLjava/nio/FloatBuffer;-><init>(IIII[FI)V -HSPLjava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer; -HSPLjava/nio/HeapByteBuffer;-><init>(II)V -HSPLjava/nio/HeapByteBuffer;-><init>(IIZ)V -HSPLjava/nio/HeapByteBuffer;-><init>([BII)V -HSPLjava/nio/HeapByteBuffer;-><init>([BIIIIIZ)V -HSPLjava/nio/HeapByteBuffer;-><init>([BIIZ)V -HSPLjava/nio/HeapByteBuffer;->_get(I)B -HSPLjava/nio/HeapByteBuffer;->_put(IB)V -HSPLjava/nio/HeapByteBuffer;->asIntBuffer()Ljava/nio/IntBuffer; -HSPLjava/nio/HeapByteBuffer;->asLongBuffer()Ljava/nio/LongBuffer; -HSPLjava/nio/HeapByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer; -HSPLjava/nio/HeapByteBuffer;->compact()Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->duplicate()Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->get()B -HSPLjava/nio/HeapByteBuffer;->get(I)B -HSPLjava/nio/HeapByteBuffer;->get([BII)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->getFloat()F -HSPLjava/nio/HeapByteBuffer;->getFloat(I)F -HSPLjava/nio/HeapByteBuffer;->getInt()I -HSPLjava/nio/HeapByteBuffer;->getInt(I)I -HSPLjava/nio/HeapByteBuffer;->getLong()J -HSPLjava/nio/HeapByteBuffer;->getLong(I)J -HSPLjava/nio/HeapByteBuffer;->getShort()S -HSPLjava/nio/HeapByteBuffer;->getShort(I)S -HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[III)V -HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[SII)V -HSPLjava/nio/HeapByteBuffer;->isDirect()Z -HSPLjava/nio/HeapByteBuffer;->isReadOnly()Z -HSPLjava/nio/HeapByteBuffer;->ix(I)I -HSPLjava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putFloat(F)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putInt(II)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putLong(J)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->putShort(S)Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->slice()Ljava/nio/ByteBuffer; -HSPLjava/nio/HeapByteBuffer;->throwIfReadOnly()V -HSPLjava/nio/HeapCharBuffer;-><init>(II)V -HSPLjava/nio/HeapCharBuffer;-><init>(IIZ)V -HSPLjava/nio/HeapCharBuffer;-><init>([CII)V -HSPLjava/nio/HeapCharBuffer;-><init>([CIIIIIZ)V -HSPLjava/nio/HeapCharBuffer;-><init>([CIIZ)V -HSPLjava/nio/HeapCharBuffer;->get(I)C -HSPLjava/nio/HeapCharBuffer;->ix(I)I -HSPLjava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer; -HSPLjava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer; -HSPLjava/nio/HeapCharBuffer;->slice()Ljava/nio/CharBuffer; -HSPLjava/nio/HeapCharBuffer;->throwIfReadOnly()V -HSPLjava/nio/HeapCharBuffer;->toString(II)Ljava/lang/String; -HSPLjava/nio/IntBuffer;-><init>(IIII)V -HSPLjava/nio/IntBuffer;-><init>(IIII[II)V -HSPLjava/nio/IntBuffer;->allocate(I)Ljava/nio/IntBuffer; -HSPLjava/nio/IntBuffer;->array()Ljava/lang/Object; -HSPLjava/nio/IntBuffer;->array()[I -HSPLjava/nio/IntBuffer;->arrayOffset()I -HSPLjava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer; -HSPLjava/nio/IntBuffer;->hasArray()Z -HSPLjava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/IntBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/LongBuffer;-><init>(IIII)V -HSPLjava/nio/LongBuffer;-><init>(IIII[JI)V -HSPLjava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer; -HSPLjava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/LongBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/MappedByteBuffer;-><init>(IIII)V -HSPLjava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;Z)V -HSPLjava/nio/MappedByteBuffer;-><init>(IIII[BI)V -HSPLjava/nio/MappedByteBuffer;->checkMapped()V -HSPLjava/nio/MappedByteBuffer;->clear()Ljava/nio/Buffer; -HSPLjava/nio/MappedByteBuffer;->flip()Ljava/nio/Buffer; -HSPLjava/nio/MappedByteBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer; -HSPLjava/nio/MappedByteBuffer;->mappingAddress(J)J -HSPLjava/nio/MappedByteBuffer;->mappingLength(J)J -HSPLjava/nio/MappedByteBuffer;->mappingOffset()J -HSPLjava/nio/MappedByteBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/MappedByteBuffer;->rewind()Ljava/nio/Buffer; -HSPLjava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object; -HSPLjava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I -HSPLjava/nio/NioUtils;->freeDirectBuffer(Ljava/nio/ByteBuffer;)V -HSPLjava/nio/ShortBuffer;-><init>(IIII)V -HSPLjava/nio/ShortBuffer;-><init>(IIII[SI)V -HSPLjava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer; -HSPLjava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer; -HSPLjava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer; -HSPLjava/nio/StringCharBuffer;-><init>(Ljava/lang/CharSequence;II)V -HSPLjava/nio/StringCharBuffer;->get()C -HSPLjava/nio/channels/Channels$1;-><init>(Ljava/nio/channels/WritableByteChannel;)V -HSPLjava/nio/channels/Channels$1;->write([BII)V -HSPLjava/nio/channels/Channels$WritableByteChannelImpl;-><init>(Ljava/io/OutputStream;)V -HSPLjava/nio/channels/Channels$WritableByteChannelImpl;->write(Ljava/nio/ByteBuffer;)I -HSPLjava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel; -HSPLjava/nio/channels/Channels;->newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream; -HSPLjava/nio/channels/Channels;->newOutputStream(Ljava/nio/channels/WritableByteChannel;)Ljava/io/OutputStream; -HSPLjava/nio/channels/Channels;->writeFully(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V -HSPLjava/nio/channels/Channels;->writeFullyImpl(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V -HSPLjava/nio/channels/FileChannel;-><init>()V -HSPLjava/nio/channels/FileChannel;->lock()Ljava/nio/channels/FileLock; -HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel; -HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel; -HSPLjava/nio/channels/FileChannel;->tryLock()Ljava/nio/channels/FileLock; -HSPLjava/nio/channels/FileLock;-><init>(Ljava/nio/channels/FileChannel;JJZ)V -HSPLjava/nio/channels/FileLock;->acquiredBy()Ljava/nio/channels/Channel; -HSPLjava/nio/channels/FileLock;->position()J -HSPLjava/nio/channels/FileLock;->size()J -HSPLjava/nio/channels/SelectableChannel;-><init>()V -HSPLjava/nio/channels/SelectableChannel;->register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey; -HSPLjava/nio/channels/SelectionKey;-><init>()V -HSPLjava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/nio/channels/Selector;-><init>()V -HSPLjava/nio/channels/Selector;->open()Ljava/nio/channels/Selector; -HSPLjava/nio/channels/SocketChannel;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V -HSPLjava/nio/channels/SocketChannel;->open()Ljava/nio/channels/SocketChannel; -HSPLjava/nio/channels/SocketChannel;->validOps()I -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel$1;-><init>(Ljava/nio/channels/spi/AbstractInterruptibleChannel;)V -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;-><init>()V -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->begin()V -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->blockedOn(Lsun/nio/ch/Interruptible;)V -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->close()V -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->end(Z)V -HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->isOpen()Z -HSPLjava/nio/channels/spi/AbstractSelectableChannel;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->addKey(Ljava/nio/channels/SelectionKey;)V -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->blockingLock()Ljava/lang/Object; -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->configureBlocking(Z)Ljava/nio/channels/SelectableChannel; -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->findKey(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey; -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->implCloseChannel()V -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isBlocking()Z -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isRegistered()Z -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey; -HSPLjava/nio/channels/spi/AbstractSelectableChannel;->removeKey(Ljava/nio/channels/SelectionKey;)V -HSPLjava/nio/channels/spi/AbstractSelectionKey;-><init>()V -HSPLjava/nio/channels/spi/AbstractSelectionKey;->invalidate()V -HSPLjava/nio/channels/spi/AbstractSelectionKey;->isValid()Z -HSPLjava/nio/channels/spi/AbstractSelector$1;-><init>(Ljava/nio/channels/spi/AbstractSelector;)V -HSPLjava/nio/channels/spi/AbstractSelector;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V -HSPLjava/nio/channels/spi/AbstractSelector;->begin()V -HSPLjava/nio/channels/spi/AbstractSelector;->cancelledKeys()Ljava/util/Set; -HSPLjava/nio/channels/spi/AbstractSelector;->close()V -HSPLjava/nio/channels/spi/AbstractSelector;->deregister(Ljava/nio/channels/spi/AbstractSelectionKey;)V -HSPLjava/nio/channels/spi/AbstractSelector;->end()V -HSPLjava/nio/channels/spi/AbstractSelector;->isOpen()Z -HSPLjava/nio/channels/spi/SelectorProvider$1;-><init>()V -HSPLjava/nio/channels/spi/SelectorProvider$1;->run()Ljava/lang/Object; -HSPLjava/nio/channels/spi/SelectorProvider$1;->run()Ljava/nio/channels/spi/SelectorProvider; -HSPLjava/nio/channels/spi/SelectorProvider;-><init>()V -HSPLjava/nio/channels/spi/SelectorProvider;->loadProviderAsService()Z -HSPLjava/nio/channels/spi/SelectorProvider;->loadProviderFromProperty()Z -HSPLjava/nio/channels/spi/SelectorProvider;->provider()Ljava/nio/channels/spi/SelectorProvider; -HSPLjava/nio/charset/Charset;-><init>(Ljava/lang/String;[Ljava/lang/String;)V -HSPLjava/nio/charset/Charset;->aliases()Ljava/util/Set; -HSPLjava/nio/charset/Charset;->cache(Ljava/lang/String;Ljava/nio/charset/Charset;)V -HSPLjava/nio/charset/Charset;->checkName(Ljava/lang/String;)V -HSPLjava/nio/charset/Charset;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; -HSPLjava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset; -HSPLjava/nio/charset/Charset;->displayName()Ljava/lang/String; -HSPLjava/nio/charset/Charset;->encode(Ljava/lang/String;)Ljava/nio/ByteBuffer; -HSPLjava/nio/charset/Charset;->encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; -HSPLjava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z -HSPLjava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; -HSPLjava/nio/charset/Charset;->forNameUEE(Ljava/lang/String;)Ljava/nio/charset/Charset; -HSPLjava/nio/charset/Charset;->isSupported(Ljava/lang/String;)Z -HSPLjava/nio/charset/Charset;->lookup(Ljava/lang/String;)Ljava/nio/charset/Charset; -HSPLjava/nio/charset/Charset;->lookup2(Ljava/lang/String;)Ljava/nio/charset/Charset; -HSPLjava/nio/charset/Charset;->name()Ljava/lang/String; -HSPLjava/nio/charset/CharsetDecoder;-><init>(Ljava/nio/charset/Charset;FF)V -HSPLjava/nio/charset/CharsetDecoder;-><init>(Ljava/nio/charset/Charset;FFLjava/lang/String;)V -HSPLjava/nio/charset/CharsetDecoder;->averageCharsPerByte()F -HSPLjava/nio/charset/CharsetDecoder;->charset()Ljava/nio/charset/Charset; -HSPLjava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer; -HSPLjava/nio/charset/CharsetDecoder;->decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult; -HSPLjava/nio/charset/CharsetDecoder;->flush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult; -HSPLjava/nio/charset/CharsetDecoder;->implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult; -HSPLjava/nio/charset/CharsetDecoder;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V -HSPLjava/nio/charset/CharsetDecoder;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V -HSPLjava/nio/charset/CharsetDecoder;->implReset()V -HSPLjava/nio/charset/CharsetDecoder;->malformedInputAction()Ljava/nio/charset/CodingErrorAction; -HSPLjava/nio/charset/CharsetDecoder;->maxCharsPerByte()F -HSPLjava/nio/charset/CharsetDecoder;->onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder; -HSPLjava/nio/charset/CharsetDecoder;->onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder; -HSPLjava/nio/charset/CharsetDecoder;->replaceWith(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder; -HSPLjava/nio/charset/CharsetDecoder;->replacement()Ljava/lang/String; -HSPLjava/nio/charset/CharsetDecoder;->reset()Ljava/nio/charset/CharsetDecoder; -HSPLjava/nio/charset/CharsetDecoder;->unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction; -HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF)V -HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[B)V -HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[BZ)V -HSPLjava/nio/charset/CharsetEncoder;->averageBytesPerChar()F -HSPLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/lang/CharSequence;)Z -HSPLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/nio/CharBuffer;)Z -HSPLjava/nio/charset/CharsetEncoder;->charset()Ljava/nio/charset/Charset; -HSPLjava/nio/charset/CharsetEncoder;->encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer; -HSPLjava/nio/charset/CharsetEncoder;->encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult; -HSPLjava/nio/charset/CharsetEncoder;->flush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; -HSPLjava/nio/charset/CharsetEncoder;->implFlush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; -HSPLjava/nio/charset/CharsetEncoder;->implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V -HSPLjava/nio/charset/CharsetEncoder;->implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V -HSPLjava/nio/charset/CharsetEncoder;->implReplaceWith([B)V -HSPLjava/nio/charset/CharsetEncoder;->malformedInputAction()Ljava/nio/charset/CodingErrorAction; -HSPLjava/nio/charset/CharsetEncoder;->maxBytesPerChar()F -HSPLjava/nio/charset/CharsetEncoder;->onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder; -HSPLjava/nio/charset/CharsetEncoder;->onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder; -HSPLjava/nio/charset/CharsetEncoder;->replaceWith([B)Ljava/nio/charset/CharsetEncoder; -HSPLjava/nio/charset/CharsetEncoder;->replacement()[B -HSPLjava/nio/charset/CharsetEncoder;->reset()Ljava/nio/charset/CharsetEncoder; -HSPLjava/nio/charset/CharsetEncoder;->unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction; -HSPLjava/nio/charset/CoderResult;->isError()Z -HSPLjava/nio/charset/CoderResult;->isOverflow()Z -HSPLjava/nio/charset/CoderResult;->isUnderflow()Z -HSPLjava/nio/file/AccessMode;->values()[Ljava/nio/file/AccessMode; -HSPLjava/nio/file/FileAlreadyExistsException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/nio/file/FileSystemException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/nio/file/FileSystems;->getDefault()Ljava/nio/file/FileSystem; -HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/lang/Object;)Z -HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/nio/file/Path;)Z -HSPLjava/nio/file/Files;->exists(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z -HSPLjava/nio/file/Files;->followLinks([Ljava/nio/file/LinkOption;)Z -HSPLjava/nio/file/Files;->isAccessible(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)Z -HSPLjava/nio/file/Files;->isRegularFile(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z -HSPLjava/nio/file/Files;->isWritable(Ljava/nio/file/Path;)Z -HSPLjava/nio/file/Files;->newBufferedReader(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)Ljava/io/BufferedReader; -HSPLjava/nio/file/Files;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel; -HSPLjava/nio/file/Files;->newByteChannel(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/SeekableByteChannel; -HSPLjava/nio/file/Files;->newDirectoryStream(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream; -HSPLjava/nio/file/Files;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream; -HSPLjava/nio/file/Files;->provider(Ljava/nio/file/Path;)Ljava/nio/file/spi/FileSystemProvider; -HSPLjava/nio/file/Files;->read(Ljava/io/InputStream;I)[B -HSPLjava/nio/file/Files;->readAllBytes(Ljava/nio/file/Path;)[B -HSPLjava/nio/file/Files;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes; -HSPLjava/nio/file/NoSuchFileException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/nio/file/Paths;->get(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path; -HSPLjava/nio/file/StandardOpenOption;->values()[Ljava/nio/file/StandardOpenOption; -HSPLjava/nio/file/attribute/FileTime;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/time/Instant;)V -HSPLjava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder; -HSPLjava/nio/file/attribute/FileTime;->compareTo(Ljava/nio/file/attribute/FileTime;)I -HSPLjava/nio/file/attribute/FileTime;->equals(Ljava/lang/Object;)Z -HSPLjava/nio/file/attribute/FileTime;->from(JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/attribute/FileTime; -HSPLjava/nio/file/attribute/FileTime;->toMillis()J -HSPLjava/nio/file/attribute/FileTime;->toString()Ljava/lang/String; -HSPLjava/nio/file/spi/FileSystemProvider;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream; -HSPLjava/security/AccessControlContext;-><init>([Ljava/security/ProtectionDomain;)V -HSPLjava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object; -HSPLjava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object; -HSPLjava/security/AccessController;->getContext()Ljava/security/AccessControlContext; -HSPLjava/security/AlgorithmParameters;->getInstance(Ljava/lang/String;)Ljava/security/AlgorithmParameters; -HSPLjava/security/AlgorithmParametersSpi;-><init>()V -HSPLjava/security/CodeSigner;-><init>(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V -HSPLjava/security/CodeSigner;->getSignerCertPath()Ljava/security/cert/CertPath; -HSPLjava/security/DigestInputStream;-><init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V -HSPLjava/security/DigestInputStream;->read([BII)I -HSPLjava/security/DigestInputStream;->setMessageDigest(Ljava/security/MessageDigest;)V -HSPLjava/security/GeneralSecurityException;-><init>(Ljava/lang/String;)V -HSPLjava/security/KeyFactory;-><init>(Ljava/lang/String;)V -HSPLjava/security/KeyFactory;-><init>(Ljava/security/KeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjava/security/KeyFactory;->generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey; -HSPLjava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey; -HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory; -HSPLjava/security/KeyFactory;->nextSpi(Ljava/security/KeyFactorySpi;)Ljava/security/KeyFactorySpi; -HSPLjava/security/KeyFactorySpi;-><init>()V -HSPLjava/security/KeyPair;-><init>(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V -HSPLjava/security/KeyPair;->getPrivate()Ljava/security/PrivateKey; -HSPLjava/security/KeyPair;->getPublic()Ljava/security/PublicKey; -HSPLjava/security/KeyPairGenerator;-><init>(Ljava/lang/String;)V -HSPLjava/security/KeyPairGenerator;->getInstance(Lsun/security/jca/GetInstance$Instance;Ljava/lang/String;)Ljava/security/KeyPairGenerator; -HSPLjava/security/KeyPairGeneratorSpi;-><init>()V -HSPLjava/security/KeyStore$1;-><init>()V -HSPLjava/security/KeyStore$1;->run()Ljava/lang/Object; -HSPLjava/security/KeyStore$1;->run()Ljava/lang/String; -HSPLjava/security/KeyStore$SecretKeyEntry;-><init>(Ljavax/crypto/SecretKey;)V -HSPLjava/security/KeyStore$SecretKeyEntry;->getSecretKey()Ljavax/crypto/SecretKey; -HSPLjava/security/KeyStore;-><init>(Ljava/security/KeyStoreSpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjava/security/KeyStore;->aliases()Ljava/util/Enumeration; -HSPLjava/security/KeyStore;->containsAlias(Ljava/lang/String;)Z -HSPLjava/security/KeyStore;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate; -HSPLjava/security/KeyStore;->getDefaultType()Ljava/lang/String; -HSPLjava/security/KeyStore;->getEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry; -HSPLjava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore; -HSPLjava/security/KeyStore;->getKey(Ljava/lang/String;[C)Ljava/security/Key; -HSPLjava/security/KeyStore;->getType()Ljava/lang/String; -HSPLjava/security/KeyStore;->load(Ljava/io/InputStream;[C)V -HSPLjava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V -HSPLjava/security/KeyStore;->setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V -HSPLjava/security/KeyStore;->size()I -HSPLjava/security/KeyStoreSpi;-><init>()V -HSPLjava/security/KeyStoreSpi;->engineGetEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry; -HSPLjava/security/KeyStoreSpi;->engineLoad(Ljava/io/InputStream;Ljava/security/KeyStore$LoadStoreParameter;)V -HSPLjava/security/KeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V -HSPLjava/security/MessageDigest$Delegate;-><init>(Ljava/security/MessageDigestSpi;Ljava/lang/String;)V -HSPLjava/security/MessageDigest$Delegate;->clone()Ljava/lang/Object; -HSPLjava/security/MessageDigest$Delegate;->engineDigest()[B -HSPLjava/security/MessageDigest$Delegate;->engineDigest([BII)I -HSPLjava/security/MessageDigest$Delegate;->engineGetDigestLength()I -HSPLjava/security/MessageDigest$Delegate;->engineReset()V -HSPLjava/security/MessageDigest$Delegate;->engineUpdate(B)V -HSPLjava/security/MessageDigest$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V -HSPLjava/security/MessageDigest$Delegate;->engineUpdate([BII)V -HSPLjava/security/MessageDigest;-><init>(Ljava/lang/String;)V -HSPLjava/security/MessageDigest;->digest()[B -HSPLjava/security/MessageDigest;->digest([B)[B -HSPLjava/security/MessageDigest;->digest([BII)I -HSPLjava/security/MessageDigest;->getDigestLength()I -HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; -HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest; -HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest; -HSPLjava/security/MessageDigest;->isEqual([B[B)Z -HSPLjava/security/MessageDigest;->reset()V -HSPLjava/security/MessageDigest;->update(B)V -HSPLjava/security/MessageDigest;->update(Ljava/nio/ByteBuffer;)V -HSPLjava/security/MessageDigest;->update([B)V -HSPLjava/security/MessageDigest;->update([BII)V -HSPLjava/security/MessageDigestSpi;-><init>()V -HSPLjava/security/MessageDigestSpi;->engineDigest([BII)I -HSPLjava/security/MessageDigestSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V -HSPLjava/security/NoSuchAlgorithmException;-><init>(Ljava/lang/String;)V -HSPLjava/security/Provider$EngineDescription;->getConstructorParameterClass()Ljava/lang/Class; -HSPLjava/security/Provider$Service;->-$$Nest$fputalgorithm(Ljava/security/Provider$Service;Ljava/lang/String;)V -HSPLjava/security/Provider$Service;->-$$Nest$fputclassName(Ljava/security/Provider$Service;Ljava/lang/String;)V -HSPLjava/security/Provider$Service;->-$$Nest$fputtype(Ljava/security/Provider$Service;Ljava/lang/String;)V -HSPLjava/security/Provider$Service;->-$$Nest$maddAlias(Ljava/security/Provider$Service;Ljava/lang/String;)V -HSPLjava/security/Provider$Service;->-$$Nest$misValid(Ljava/security/Provider$Service;)Z -HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;)V -HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;Ljava/security/Provider$Service-IA;)V -HSPLjava/security/Provider$Service;->addAlias(Ljava/lang/String;)V -HSPLjava/security/Provider$Service;->addAttribute(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/security/Provider$Service;->getAlgorithm()Ljava/lang/String; -HSPLjava/security/Provider$Service;->getAttribute(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/security/Provider$Service;->getClassName()Ljava/lang/String; -HSPLjava/security/Provider$Service;->getDefaultConstructor()Ljava/lang/reflect/Constructor; -HSPLjava/security/Provider$Service;->getImplClass()Ljava/lang/Class; -HSPLjava/security/Provider$Service;->getKeyClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLjava/security/Provider$Service;->getProvider()Ljava/security/Provider; -HSPLjava/security/Provider$Service;->getType()Ljava/lang/String; -HSPLjava/security/Provider$Service;->hasKeyAttributes()Z -HSPLjava/security/Provider$Service;->isValid()Z -HSPLjava/security/Provider$Service;->newInstance(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/security/Provider$Service;->newInstanceOf()Ljava/lang/Object; -HSPLjava/security/Provider$Service;->newInstanceUtil(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/security/Provider$Service;->supportsKeyClass(Ljava/security/Key;)Z -HSPLjava/security/Provider$Service;->supportsKeyFormat(Ljava/security/Key;)Z -HSPLjava/security/Provider$Service;->supportsParameter(Ljava/lang/Object;)Z -HSPLjava/security/Provider$ServiceKey;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V -HSPLjava/security/Provider$ServiceKey;-><init>(Ljava/lang/String;Ljava/lang/String;ZLjava/security/Provider$ServiceKey-IA;)V -HSPLjava/security/Provider$ServiceKey;->equals(Ljava/lang/Object;)Z -HSPLjava/security/Provider$ServiceKey;->hashCode()I -HSPLjava/security/Provider$ServiceKey;->matches(Ljava/lang/String;Ljava/lang/String;)Z -HSPLjava/security/Provider$UString;-><init>(Ljava/lang/String;)V -HSPLjava/security/Provider$UString;->equals(Ljava/lang/Object;)Z -HSPLjava/security/Provider$UString;->hashCode()I -HSPLjava/security/Provider;->-$$Nest$sfgetEMPTY()[Ljava/lang/Object; -HSPLjava/security/Provider;->-$$Nest$sfgetknownEngines()Ljava/util/Map; -HSPLjava/security/Provider;-><init>(Ljava/lang/String;DLjava/lang/String;)V -HSPLjava/security/Provider;->check(Ljava/lang/String;)V -HSPLjava/security/Provider;->checkInitialized()V -HSPLjava/security/Provider;->checkLegacy(Ljava/lang/Object;)Z -HSPLjava/security/Provider;->ensureLegacyParsed()V -HSPLjava/security/Provider;->getEngineName(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/security/Provider;->getName()Ljava/lang/String; -HSPLjava/security/Provider;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/security/Provider;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service; -HSPLjava/security/Provider;->getServices()Ljava/util/Set; -HSPLjava/security/Provider;->getTypeAndAlgorithm(Ljava/lang/String;)[Ljava/lang/String; -HSPLjava/security/Provider;->implPut(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/security/Provider;->parseLegacyPut(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/security/Provider;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/security/Provider;->putId()V -HSPLjava/security/Provider;->removeInvalidServices(Ljava/util/Map;)V -HSPLjava/security/Provider;->warmUpServiceProvision()V -HSPLjava/security/SecureRandom;-><init>()V -HSPLjava/security/SecureRandom;-><init>(Ljava/security/SecureRandomSpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjava/security/SecureRandom;->getDefaultPRNG(Z[B)V -HSPLjava/security/SecureRandom;->getInstance(Ljava/lang/String;)Ljava/security/SecureRandom; -HSPLjava/security/SecureRandom;->getPrngAlgorithm()Ljava/lang/String; -HSPLjava/security/SecureRandom;->getProvider()Ljava/security/Provider; -HSPLjava/security/SecureRandom;->getThreadSafe()Z -HSPLjava/security/SecureRandom;->next(I)I -HSPLjava/security/SecureRandom;->nextBytes([B)V -HSPLjava/security/SecureRandom;->setSeed(J)V -HSPLjava/security/SecureRandomSpi;-><init>()V -HSPLjava/security/Security;->addProvider(Ljava/security/Provider;)I -HSPLjava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object; -HSPLjava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)[Ljava/lang/Object; -HSPLjava/security/Security;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/security/Security;->getProvider(Ljava/lang/String;)Ljava/security/Provider; -HSPLjava/security/Security;->getProviders()[Ljava/security/Provider; -HSPLjava/security/Security;->getSpiClass(Ljava/lang/String;)Ljava/lang/Class; -HSPLjava/security/Security;->getVersion()I -HSPLjava/security/Security;->increaseVersion()V -HSPLjava/security/Security;->insertProviderAt(Ljava/security/Provider;I)I -HSPLjava/security/Security;->invalidateSMCache(Ljava/lang/String;)V -HSPLjava/security/Security;->setProperty(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/security/Signature$Delegate;-><init>(Ljava/lang/String;)V -HSPLjava/security/Signature$Delegate;->chooseFirstProvider()V -HSPLjava/security/Signature$Delegate;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V -HSPLjava/security/Signature$Delegate;->engineInitSign(Ljava/security/PrivateKey;)V -HSPLjava/security/Signature$Delegate;->engineInitVerify(Ljava/security/PublicKey;)V -HSPLjava/security/Signature$Delegate;->engineSign()[B -HSPLjava/security/Signature$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V -HSPLjava/security/Signature$Delegate;->engineUpdate([BII)V -HSPLjava/security/Signature$Delegate;->engineVerify([B)Z -HSPLjava/security/Signature$Delegate;->init(Ljava/security/SignatureSpi;ILjava/security/Key;Ljava/security/SecureRandom;)V -HSPLjava/security/Signature$Delegate;->newInstance(Ljava/security/Provider$Service;)Ljava/security/SignatureSpi; -HSPLjava/security/Signature;-><init>(Ljava/lang/String;)V -HSPLjava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature; -HSPLjava/security/Signature;->initSign(Ljava/security/PrivateKey;)V -HSPLjava/security/Signature;->initVerify(Ljava/security/PublicKey;)V -HSPLjava/security/Signature;->isSpi(Ljava/security/Provider$Service;)Z -HSPLjava/security/Signature;->sign()[B -HSPLjava/security/Signature;->update(Ljava/nio/ByteBuffer;)V -HSPLjava/security/Signature;->update([B)V -HSPLjava/security/Signature;->update([BII)V -HSPLjava/security/Signature;->verify([B)Z -HSPLjava/security/SignatureSpi;-><init>()V -HSPLjava/security/SignatureSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V -HSPLjava/security/cert/CertPath;-><init>(Ljava/lang/String;)V -HSPLjava/security/cert/CertPath;->getType()Ljava/lang/String; -HSPLjava/security/cert/CertPathValidator;-><init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjava/security/cert/CertPathValidator;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathValidator; -HSPLjava/security/cert/CertPathValidator;->getRevocationChecker()Ljava/security/cert/CertPathChecker; -HSPLjava/security/cert/CertPathValidator;->validate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult; -HSPLjava/security/cert/CertPathValidatorSpi;-><init>()V -HSPLjava/security/cert/CertStore;-><init>(Ljava/security/cert/CertStoreSpi;Ljava/security/Provider;Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)V -HSPLjava/security/cert/CertStore;->getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)Ljava/security/cert/CertStore; -HSPLjava/security/cert/CertStoreSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V -HSPLjava/security/cert/Certificate;-><init>(Ljava/lang/String;)V -HSPLjava/security/cert/Certificate;->equals(Ljava/lang/Object;)Z -HSPLjava/security/cert/Certificate;->getType()Ljava/lang/String; -HSPLjava/security/cert/Certificate;->hashCode()I -HSPLjava/security/cert/CertificateFactory;-><init>(Ljava/security/cert/CertificateFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjava/security/cert/CertificateFactory;->generateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath; -HSPLjava/security/cert/CertificateFactory;->generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate; -HSPLjava/security/cert/CertificateFactory;->generateCertificates(Ljava/io/InputStream;)Ljava/util/Collection; -HSPLjava/security/cert/CertificateFactory;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory; -HSPLjava/security/cert/CertificateFactorySpi;-><init>()V -HSPLjava/security/cert/CollectionCertStoreParameters;-><init>(Ljava/util/Collection;)V -HSPLjava/security/cert/CollectionCertStoreParameters;->clone()Ljava/lang/Object; -HSPLjava/security/cert/PKIXCertPathChecker;-><init>()V -HSPLjava/security/cert/PKIXCertPathChecker;->clone()Ljava/lang/Object; -HSPLjava/security/cert/PKIXCertPathValidatorResult;-><init>(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V -HSPLjava/security/cert/PKIXParameters;-><init>(Ljava/util/Set;)V -HSPLjava/security/cert/PKIXParameters;->addCertPathChecker(Ljava/security/cert/PKIXCertPathChecker;)V -HSPLjava/security/cert/PKIXParameters;->getCertPathCheckers()Ljava/util/List; -HSPLjava/security/cert/PKIXParameters;->getCertStores()Ljava/util/List; -HSPLjava/security/cert/PKIXParameters;->getDate()Ljava/util/Date; -HSPLjava/security/cert/PKIXParameters;->getInitialPolicies()Ljava/util/Set; -HSPLjava/security/cert/PKIXParameters;->getPolicyQualifiersRejected()Z -HSPLjava/security/cert/PKIXParameters;->getSigProvider()Ljava/lang/String; -HSPLjava/security/cert/PKIXParameters;->getTargetCertConstraints()Ljava/security/cert/CertSelector; -HSPLjava/security/cert/PKIXParameters;->getTrustAnchors()Ljava/util/Set; -HSPLjava/security/cert/PKIXParameters;->isAnyPolicyInhibited()Z -HSPLjava/security/cert/PKIXParameters;->isExplicitPolicyRequired()Z -HSPLjava/security/cert/PKIXParameters;->isPolicyMappingInhibited()Z -HSPLjava/security/cert/PKIXParameters;->isRevocationEnabled()Z -HSPLjava/security/cert/PKIXParameters;->setCertPathCheckers(Ljava/util/List;)V -HSPLjava/security/cert/PKIXParameters;->setRevocationEnabled(Z)V -HSPLjava/security/cert/PKIXParameters;->setTrustAnchors(Ljava/util/Set;)V -HSPLjava/security/cert/PKIXRevocationChecker;-><init>()V -HSPLjava/security/cert/PKIXRevocationChecker;->clone()Ljava/security/cert/PKIXRevocationChecker; -HSPLjava/security/cert/PKIXRevocationChecker;->getOcspExtensions()Ljava/util/List; -HSPLjava/security/cert/PKIXRevocationChecker;->getOcspResponder()Ljava/net/URI; -HSPLjava/security/cert/PKIXRevocationChecker;->getOcspResponderCert()Ljava/security/cert/X509Certificate; -HSPLjava/security/cert/PKIXRevocationChecker;->getOcspResponses()Ljava/util/Map; -HSPLjava/security/cert/PKIXRevocationChecker;->getOptions()Ljava/util/Set; -HSPLjava/security/cert/PKIXRevocationChecker;->setOcspResponses(Ljava/util/Map;)V -HSPLjava/security/cert/PKIXRevocationChecker;->setOptions(Ljava/util/Set;)V -HSPLjava/security/cert/PolicyQualifierInfo;-><init>([B)V -HSPLjava/security/cert/TrustAnchor;-><init>(Ljava/security/cert/X509Certificate;[B)V -HSPLjava/security/cert/TrustAnchor;->getNameConstraints()[B -HSPLjava/security/cert/TrustAnchor;->getTrustedCert()Ljava/security/cert/X509Certificate; -HSPLjava/security/cert/TrustAnchor;->setNameConstraints([B)V -HSPLjava/security/cert/X509CertSelector;-><init>()V -HSPLjava/security/cert/X509CertSelector;->match(Ljava/security/cert/Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchAuthorityKeyID(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchBasicConstraints(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchExtendedKeyUsage(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchKeyUsage(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchNameConstraints(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchPathToNames(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchPolicy(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchPrivateKeyValid(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchSubjectAlternativeNames(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->matchSubjectPublicKeyAlgID(Ljava/security/cert/X509Certificate;)Z -HSPLjava/security/cert/X509CertSelector;->setSubject(Ljavax/security/auth/x500/X500Principal;)V -HSPLjava/security/cert/X509Certificate;-><init>()V -HSPLjava/security/spec/DSAParameterSpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V -HSPLjava/security/spec/DSAParameterSpec;->getG()Ljava/math/BigInteger; -HSPLjava/security/spec/DSAParameterSpec;->getP()Ljava/math/BigInteger; -HSPLjava/security/spec/DSAParameterSpec;->getQ()Ljava/math/BigInteger; -HSPLjava/security/spec/ECFieldFp;-><init>(Ljava/math/BigInteger;)V -HSPLjava/security/spec/ECFieldFp;->getFieldSize()I -HSPLjava/security/spec/ECFieldFp;->getP()Ljava/math/BigInteger; -HSPLjava/security/spec/ECParameterSpec;-><init>(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V -HSPLjava/security/spec/ECParameterSpec;->getCurve()Ljava/security/spec/EllipticCurve; -HSPLjava/security/spec/ECParameterSpec;->getOrder()Ljava/math/BigInteger; -HSPLjava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V -HSPLjava/security/spec/ECPoint;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V -HSPLjava/security/spec/ECPoint;->getAffineX()Ljava/math/BigInteger; -HSPLjava/security/spec/ECPoint;->getAffineY()Ljava/math/BigInteger; -HSPLjava/security/spec/EllipticCurve;-><init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V -HSPLjava/security/spec/EllipticCurve;-><init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V -HSPLjava/security/spec/EllipticCurve;->checkValidity(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/lang/String;)V -HSPLjava/security/spec/EllipticCurve;->getField()Ljava/security/spec/ECField; -HSPLjava/security/spec/EncodedKeySpec;-><init>([B)V -HSPLjava/security/spec/EncodedKeySpec;->getEncoded()[B -HSPLjava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V -HSPLjava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B -HSPLjava/security/spec/X509EncodedKeySpec;-><init>([B)V -HSPLjava/security/spec/X509EncodedKeySpec;->getEncoded()[B -HSPLjava/text/AttributedCharacterIterator$Attribute;->equals(Ljava/lang/Object;)Z -HSPLjava/text/BreakIterator;-><init>()V -HSPLjava/text/BreakIterator;->getWordInstance(Ljava/util/Locale;)Ljava/text/BreakIterator; -HSPLjava/text/CalendarBuilder;-><init>()V -HSPLjava/text/CalendarBuilder;->establish(Ljava/util/Calendar;)Ljava/util/Calendar; -HSPLjava/text/CalendarBuilder;->isSet(I)Z -HSPLjava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder; -HSPLjava/text/CollationKey;-><init>(Ljava/lang/String;)V -HSPLjava/text/Collator;-><init>()V -HSPLjava/text/Collator;-><init>(Landroid/icu/text/Collator;)V -HSPLjava/text/Collator;->decompositionMode_Java_ICU(I)I -HSPLjava/text/Collator;->getInstance()Ljava/text/Collator; -HSPLjava/text/Collator;->getInstance(Ljava/util/Locale;)Ljava/text/Collator; -HSPLjava/text/Collator;->setDecomposition(I)V -HSPLjava/text/Collator;->setStrength(I)V -HSPLjava/text/DateFormat;-><init>()V -HSPLjava/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLjava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; -HSPLjava/text/DateFormat;->get(IIILjava/util/Locale;)Ljava/text/DateFormat; -HSPLjava/text/DateFormat;->getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat; -HSPLjava/text/DateFormat;->getDateTimeInstance()Ljava/text/DateFormat; -HSPLjava/text/DateFormat;->getDateTimeInstance(II)Ljava/text/DateFormat; -HSPLjava/text/DateFormat;->getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat; -HSPLjava/text/DateFormat;->getTimeInstance(ILjava/util/Locale;)Ljava/text/DateFormat; -HSPLjava/text/DateFormat;->getTimeZone()Ljava/util/TimeZone; -HSPLjava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date; -HSPLjava/text/DateFormat;->set24HourTimePref(Ljava/lang/Boolean;)V -HSPLjava/text/DateFormat;->setCalendar(Ljava/util/Calendar;)V -HSPLjava/text/DateFormat;->setLenient(Z)V -HSPLjava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V -HSPLjava/text/DateFormatSymbols;-><init>(Ljava/util/Locale;)V -HSPLjava/text/DateFormatSymbols;->clone()Ljava/lang/Object; -HSPLjava/text/DateFormatSymbols;->copyMembers(Ljava/text/DateFormatSymbols;Ljava/text/DateFormatSymbols;)V -HSPLjava/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String; -HSPLjava/text/DateFormatSymbols;->getCachedInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols; -HSPLjava/text/DateFormatSymbols;->getInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols; -HSPLjava/text/DateFormatSymbols;->getInstanceRef(Ljava/util/Locale;)Ljava/text/DateFormatSymbols; -HSPLjava/text/DateFormatSymbols;->getMonths()[Ljava/lang/String; -HSPLjava/text/DateFormatSymbols;->getShortMonths()[Ljava/lang/String; -HSPLjava/text/DateFormatSymbols;->getShortWeekdays()[Ljava/lang/String; -HSPLjava/text/DateFormatSymbols;->getWeekdays()[Ljava/lang/String; -HSPLjava/text/DateFormatSymbols;->initializeData(Ljava/util/Locale;)V -HSPLjava/text/DateFormatSymbols;->initializeSupplementaryData(Llibcore/icu/LocaleData;)V -HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;)V -HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;Ljava/text/DecimalFormatSymbols;)V -HSPLjava/text/DecimalFormat;->clone()Ljava/lang/Object; -HSPLjava/text/DecimalFormat;->equals(Ljava/lang/Object;)Z -HSPLjava/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLjava/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLjava/text/DecimalFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLjava/text/DecimalFormat;->getDecimalFormatSymbols()Ljava/text/DecimalFormatSymbols; -HSPLjava/text/DecimalFormat;->getIcuFieldPosition(Ljava/text/FieldPosition;)Ljava/text/FieldPosition; -HSPLjava/text/DecimalFormat;->getMaximumFractionDigits()I -HSPLjava/text/DecimalFormat;->getMaximumIntegerDigits()I -HSPLjava/text/DecimalFormat;->getMinimumFractionDigits()I -HSPLjava/text/DecimalFormat;->getMinimumIntegerDigits()I -HSPLjava/text/DecimalFormat;->getNegativePrefix()Ljava/lang/String; -HSPLjava/text/DecimalFormat;->getNegativeSuffix()Ljava/lang/String; -HSPLjava/text/DecimalFormat;->getPositivePrefix()Ljava/lang/String; -HSPLjava/text/DecimalFormat;->getPositiveSuffix()Ljava/lang/String; -HSPLjava/text/DecimalFormat;->initPattern(Ljava/lang/String;)V -HSPLjava/text/DecimalFormat;->isParseBigDecimal()Z -HSPLjava/text/DecimalFormat;->isParseIntegerOnly()Z -HSPLjava/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number; -HSPLjava/text/DecimalFormat;->setDecimalSeparatorAlwaysShown(Z)V -HSPLjava/text/DecimalFormat;->setGroupingUsed(Z)V -HSPLjava/text/DecimalFormat;->setMaximumFractionDigits(I)V -HSPLjava/text/DecimalFormat;->setMaximumIntegerDigits(I)V -HSPLjava/text/DecimalFormat;->setMinimumFractionDigits(I)V -HSPLjava/text/DecimalFormat;->setMinimumIntegerDigits(I)V -HSPLjava/text/DecimalFormat;->setParseIntegerOnly(Z)V -HSPLjava/text/DecimalFormat;->toPattern()Ljava/lang/String; -HSPLjava/text/DecimalFormat;->updateFieldsFromIcu()V -HSPLjava/text/DecimalFormatSymbols;-><init>(Ljava/util/Locale;)V -HSPLjava/text/DecimalFormatSymbols;->clone()Ljava/lang/Object; -HSPLjava/text/DecimalFormatSymbols;->findNonFormatChar(Ljava/lang/String;C)C -HSPLjava/text/DecimalFormatSymbols;->fromIcuInstance(Landroid/icu/text/DecimalFormatSymbols;)Ljava/text/DecimalFormatSymbols; -HSPLjava/text/DecimalFormatSymbols;->getCurrency()Ljava/util/Currency; -HSPLjava/text/DecimalFormatSymbols;->getDecimalSeparator()C -HSPLjava/text/DecimalFormatSymbols;->getGroupingSeparator()C -HSPLjava/text/DecimalFormatSymbols;->getIcuDecimalFormatSymbols()Landroid/icu/text/DecimalFormatSymbols; -HSPLjava/text/DecimalFormatSymbols;->getInfinity()Ljava/lang/String; -HSPLjava/text/DecimalFormatSymbols;->getInstance(Ljava/util/Locale;)Ljava/text/DecimalFormatSymbols; -HSPLjava/text/DecimalFormatSymbols;->getNaN()Ljava/lang/String; -HSPLjava/text/DecimalFormatSymbols;->getZeroDigit()C -HSPLjava/text/DecimalFormatSymbols;->initialize(Ljava/util/Locale;)V -HSPLjava/text/DecimalFormatSymbols;->initializeCurrency(Ljava/util/Locale;)V -HSPLjava/text/DecimalFormatSymbols;->maybeStripMarkers(Ljava/lang/String;C)C -HSPLjava/text/DecimalFormatSymbols;->setCurrency(Ljava/util/Currency;)V -HSPLjava/text/DecimalFormatSymbols;->setCurrencySymbol(Ljava/lang/String;)V -HSPLjava/text/DecimalFormatSymbols;->setDecimalSeparator(C)V -HSPLjava/text/DecimalFormatSymbols;->setDigit(C)V -HSPLjava/text/DecimalFormatSymbols;->setExponentSeparator(Ljava/lang/String;)V -HSPLjava/text/DecimalFormatSymbols;->setGroupingSeparator(C)V -HSPLjava/text/DecimalFormatSymbols;->setInfinity(Ljava/lang/String;)V -HSPLjava/text/DecimalFormatSymbols;->setInternationalCurrencySymbol(Ljava/lang/String;)V -HSPLjava/text/DecimalFormatSymbols;->setMinusSign(C)V -HSPLjava/text/DecimalFormatSymbols;->setMonetaryDecimalSeparator(C)V -HSPLjava/text/DecimalFormatSymbols;->setMonetaryGroupingSeparator(C)V -HSPLjava/text/DecimalFormatSymbols;->setNaN(Ljava/lang/String;)V -HSPLjava/text/DecimalFormatSymbols;->setPatternSeparator(C)V -HSPLjava/text/DecimalFormatSymbols;->setPerMill(C)V -HSPLjava/text/DecimalFormatSymbols;->setPercent(C)V -HSPLjava/text/DecimalFormatSymbols;->setZeroDigit(C)V -HSPLjava/text/DontCareFieldPosition$1;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V -HSPLjava/text/DontCareFieldPosition;->getFieldDelegate()Ljava/text/Format$FieldDelegate; -HSPLjava/text/FieldPosition$Delegate;-><init>(Ljava/text/FieldPosition;)V -HSPLjava/text/FieldPosition$Delegate;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V -HSPLjava/text/FieldPosition;-><init>(I)V -HSPLjava/text/FieldPosition;->getBeginIndex()I -HSPLjava/text/FieldPosition;->getEndIndex()I -HSPLjava/text/FieldPosition;->getField()I -HSPLjava/text/FieldPosition;->getFieldAttribute()Ljava/text/Format$Field; -HSPLjava/text/FieldPosition;->getFieldDelegate()Ljava/text/Format$FieldDelegate; -HSPLjava/text/FieldPosition;->matchesField(Ljava/text/Format$Field;I)Z -HSPLjava/text/FieldPosition;->setBeginIndex(I)V -HSPLjava/text/FieldPosition;->setEndIndex(I)V -HSPLjava/text/Format;-><init>()V -HSPLjava/text/Format;->clone()Ljava/lang/Object; -HSPLjava/text/Format;->format(Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/text/IcuIteratorWrapper;-><init>(Landroid/icu/text/BreakIterator;)V -HSPLjava/text/IcuIteratorWrapper;->checkOffset(ILjava/text/CharacterIterator;)V -HSPLjava/text/IcuIteratorWrapper;->following(I)I -HSPLjava/text/IcuIteratorWrapper;->getText()Ljava/text/CharacterIterator; -HSPLjava/text/IcuIteratorWrapper;->isBoundary(I)Z -HSPLjava/text/IcuIteratorWrapper;->next()I -HSPLjava/text/IcuIteratorWrapper;->preceding(I)I -HSPLjava/text/IcuIteratorWrapper;->setText(Ljava/lang/String;)V -HSPLjava/text/MessageFormat;-><init>(Ljava/lang/String;)V -HSPLjava/text/MessageFormat;->applyPattern(Ljava/lang/String;)V -HSPLjava/text/MessageFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLjava/text/MessageFormat;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/text/MessageFormat;->makeFormat(II[Ljava/lang/StringBuilder;)V -HSPLjava/text/MessageFormat;->subformat([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;Ljava/util/List;)Ljava/lang/StringBuffer; -HSPLjava/text/Normalizer$Form$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLjava/text/Normalizer$Form$$ExternalSyntheticLambda2;->get()Ljava/lang/Object; -HSPLjava/text/Normalizer$Form$$ExternalSyntheticLambda3;->get()Ljava/lang/Object; -HSPLjava/text/Normalizer;->normalize(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String; -HSPLjava/text/NumberFormat;-><init>()V -HSPLjava/text/NumberFormat;->clone()Ljava/lang/Object; -HSPLjava/text/NumberFormat;->format(D)Ljava/lang/String; -HSPLjava/text/NumberFormat;->format(J)Ljava/lang/String; -HSPLjava/text/NumberFormat;->getInstance()Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->getInstance(Ljava/util/Locale;)Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->getInstance(Ljava/util/Locale;Ljava/text/NumberFormat$Style;I)Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->getIntegerInstance()Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->getIntegerInstance(Ljava/util/Locale;)Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->getNumberInstance(Ljava/util/Locale;)Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->getPercentInstance()Ljava/text/NumberFormat; -HSPLjava/text/NumberFormat;->setMaximumFractionDigits(I)V -HSPLjava/text/NumberFormat;->setMaximumIntegerDigits(I)V -HSPLjava/text/NumberFormat;->setMinimumFractionDigits(I)V -HSPLjava/text/NumberFormat;->setMinimumIntegerDigits(I)V -HSPLjava/text/NumberFormat;->setParseIntegerOnly(Z)V -HSPLjava/text/ParseException;-><init>(Ljava/lang/String;I)V -HSPLjava/text/ParsePosition;-><init>(I)V -HSPLjava/text/ParsePosition;->getErrorIndex()I -HSPLjava/text/ParsePosition;->getIndex()I -HSPLjava/text/ParsePosition;->setIndex(I)V -HSPLjava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V -HSPLjava/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V -HSPLjava/text/RuleBasedCollator;->collAsICU()Landroid/icu/text/RuleBasedCollator; -HSPLjava/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLjava/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey; -HSPLjava/text/RuleBasedCollator;->getRules()Ljava/lang/String; -HSPLjava/text/SimpleDateFormat;-><init>()V -HSPLjava/text/SimpleDateFormat;-><init>(IILjava/util/Locale;)V -HSPLjava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V -HSPLjava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V -HSPLjava/text/SimpleDateFormat;->checkNegativeNumberExpression()V -HSPLjava/text/SimpleDateFormat;->compile(Ljava/lang/String;)[C -HSPLjava/text/SimpleDateFormat;->encode(IILjava/lang/StringBuilder;)V -HSPLjava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer; -HSPLjava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/Format$FieldDelegate;)Ljava/lang/StringBuffer; -HSPLjava/text/SimpleDateFormat;->formatMonth(IIILjava/lang/StringBuffer;ZZII)Ljava/lang/String; -HSPLjava/text/SimpleDateFormat;->formatWeekday(IIZZ)Ljava/lang/String; -HSPLjava/text/SimpleDateFormat;->getDateTimeFormat(IILjava/util/Locale;)Ljava/lang/String; -HSPLjava/text/SimpleDateFormat;->getExtendedTimeZoneNames()Lcom/android/icu/text/ExtendedTimeZoneNames; -HSPLjava/text/SimpleDateFormat;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames; -HSPLjava/text/SimpleDateFormat;->initialize(Ljava/util/Locale;)V -HSPLjava/text/SimpleDateFormat;->initializeCalendar(Ljava/util/Locale;)V -HSPLjava/text/SimpleDateFormat;->initializeDefaultCentury()V -HSPLjava/text/SimpleDateFormat;->isDigit(C)Z -HSPLjava/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/text/CalendarBuilder;)I -HSPLjava/text/SimpleDateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date; -HSPLjava/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V -HSPLjava/text/SimpleDateFormat;->parseInternal(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date; -HSPLjava/text/SimpleDateFormat;->parseMonth(Ljava/lang/String;IIIILjava/text/ParsePosition;ZZLjava/text/CalendarBuilder;)I -HSPLjava/text/SimpleDateFormat;->parseWeekday(Ljava/lang/String;IIZZLjava/text/CalendarBuilder;)I -HSPLjava/text/SimpleDateFormat;->shouldObeyCount(II)Z -HSPLjava/text/SimpleDateFormat;->subFormat(IILjava/text/Format$FieldDelegate;Ljava/lang/StringBuffer;Z)V -HSPLjava/text/SimpleDateFormat;->subParse(Ljava/lang/String;IIIZ[ZLjava/text/ParsePosition;ZLjava/text/CalendarBuilder;)I -HSPLjava/text/SimpleDateFormat;->subParseNumericZone(Ljava/lang/String;IIIZLjava/text/CalendarBuilder;)I -HSPLjava/text/SimpleDateFormat;->toPattern()Ljava/lang/String; -HSPLjava/text/SimpleDateFormat;->useDateFormatSymbols()Z -HSPLjava/text/SimpleDateFormat;->zeroPaddingNumber(IIILjava/lang/StringBuffer;)V -HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;)V -HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;I)V -HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;III)V -HSPLjava/text/StringCharacterIterator;->clone()Ljava/lang/Object; -HSPLjava/text/StringCharacterIterator;->current()C -HSPLjava/text/StringCharacterIterator;->first()C -HSPLjava/text/StringCharacterIterator;->getBeginIndex()I -HSPLjava/text/StringCharacterIterator;->getEndIndex()I -HSPLjava/text/StringCharacterIterator;->getIndex()I -HSPLjava/text/StringCharacterIterator;->next()C -HSPLjava/text/StringCharacterIterator;->previous()C -HSPLjava/text/StringCharacterIterator;->setIndex(I)C -HSPLjava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V -HSPLjava/time/Clock$SystemClock;->getZone()Ljava/time/ZoneId; -HSPLjava/time/Clock$SystemClock;->instant()Ljava/time/Instant; -HSPLjava/time/Clock$SystemClock;->millis()J -HSPLjava/time/Clock;-><init>()V -HSPLjava/time/Clock;->currentInstant()Ljava/time/Instant; -HSPLjava/time/Clock;->systemDefaultZone()Ljava/time/Clock; -HSPLjava/time/Clock;->systemUTC()Ljava/time/Clock; -HSPLjava/time/DayOfWeek;->getValue()I -HSPLjava/time/DayOfWeek;->of(I)Ljava/time/DayOfWeek; -HSPLjava/time/DayOfWeek;->plus(J)Ljava/time/DayOfWeek; -HSPLjava/time/Duration;-><init>(JI)V -HSPLjava/time/Duration;->between(Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration; -HSPLjava/time/Duration;->compareTo(Ljava/time/Duration;)I -HSPLjava/time/Duration;->create(JI)Ljava/time/Duration; -HSPLjava/time/Duration;->getSeconds()J -HSPLjava/time/Duration;->isNegative()Z -HSPLjava/time/Duration;->ofDays(J)Ljava/time/Duration; -HSPLjava/time/Duration;->ofHours(J)Ljava/time/Duration; -HSPLjava/time/Duration;->ofMillis(J)Ljava/time/Duration; -HSPLjava/time/Duration;->ofMinutes(J)Ljava/time/Duration; -HSPLjava/time/Duration;->ofNanos(J)Ljava/time/Duration; -HSPLjava/time/Duration;->ofSeconds(J)Ljava/time/Duration; -HSPLjava/time/Duration;->ofSeconds(JJ)Ljava/time/Duration; -HSPLjava/time/Duration;->toMillis()J -HSPLjava/time/Duration;->toNanos()J -HSPLjava/time/Instant;-><init>(JI)V -HSPLjava/time/Instant;->atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime; -HSPLjava/time/Instant;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime; -HSPLjava/time/Instant;->compareTo(Ljava/time/Instant;)I -HSPLjava/time/Instant;->create(JI)Ljava/time/Instant; -HSPLjava/time/Instant;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/Instant; -HSPLjava/time/Instant;->getEpochSecond()J -HSPLjava/time/Instant;->getLong(Ljava/time/temporal/TemporalField;)J -HSPLjava/time/Instant;->getNano()I -HSPLjava/time/Instant;->isAfter(Ljava/time/Instant;)Z -HSPLjava/time/Instant;->isSupported(Ljava/time/temporal/TemporalField;)Z -HSPLjava/time/Instant;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant; -HSPLjava/time/Instant;->minusMillis(J)Ljava/time/Instant; -HSPLjava/time/Instant;->nanosUntil(Ljava/time/Instant;)J -HSPLjava/time/Instant;->now()Ljava/time/Instant; -HSPLjava/time/Instant;->ofEpochMilli(J)Ljava/time/Instant; -HSPLjava/time/Instant;->ofEpochSecond(JJ)Ljava/time/Instant; -HSPLjava/time/Instant;->plus(JJ)Ljava/time/Instant; -HSPLjava/time/Instant;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant; -HSPLjava/time/Instant;->plusMillis(J)Ljava/time/Instant; -HSPLjava/time/Instant;->plusSeconds(J)Ljava/time/Instant; -HSPLjava/time/Instant;->toEpochMilli()J -HSPLjava/time/Instant;->toString()Ljava/lang/String; -HSPLjava/time/Instant;->until(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J -HSPLjava/time/LocalDate;-><init>(III)V -HSPLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/chrono/ChronoLocalDateTime; -HSPLjava/time/LocalDate;->compareTo0(Ljava/time/LocalDate;)I -HSPLjava/time/LocalDate;->create(III)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->get(Ljava/time/temporal/TemporalField;)I -HSPLjava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I -HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/Chronology; -HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/IsoChronology; -HSPLjava/time/LocalDate;->getDayOfMonth()I -HSPLjava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek; -HSPLjava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J -HSPLjava/time/LocalDate;->getMonthValue()I -HSPLjava/time/LocalDate;->getYear()I -HSPLjava/time/LocalDate;->isLeapYear()Z -HSPLjava/time/LocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z -HSPLjava/time/LocalDate;->lengthOfMonth()I -HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal; -HSPLjava/time/LocalDate;->of(III)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->of(ILjava/time/Month;I)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->ofEpochDay(J)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal; -HSPLjava/time/LocalDate;->plusDays(J)Ljava/time/LocalDate; -HSPLjava/time/LocalDate;->toEpochDay()J -HSPLjava/time/LocalDate;->toString()Ljava/lang/String; -HSPLjava/time/LocalDate;->with(Ljava/time/temporal/TemporalAdjuster;)Ljava/time/LocalDate; -HSPLjava/time/LocalDateTime;-><init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V -HSPLjava/time/LocalDateTime;->atOffset(Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime; -HSPLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime; -HSPLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/chrono/ChronoZonedDateTime; -HSPLjava/time/LocalDateTime;->compareTo0(Ljava/time/LocalDateTime;)I -HSPLjava/time/LocalDateTime;->format(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String; -HSPLjava/time/LocalDateTime;->getDayOfMonth()I -HSPLjava/time/LocalDateTime;->getHour()I -HSPLjava/time/LocalDateTime;->getLong(Ljava/time/temporal/TemporalField;)J -HSPLjava/time/LocalDateTime;->getMinute()I -HSPLjava/time/LocalDateTime;->getMonthValue()I -HSPLjava/time/LocalDateTime;->getNano()I -HSPLjava/time/LocalDateTime;->getSecond()I -HSPLjava/time/LocalDateTime;->getYear()I -HSPLjava/time/LocalDateTime;->isAfter(Ljava/time/chrono/ChronoLocalDateTime;)Z -HSPLjava/time/LocalDateTime;->isBefore(Ljava/time/chrono/ChronoLocalDateTime;)Z -HSPLjava/time/LocalDateTime;->isSupported(Ljava/time/temporal/TemporalField;)Z -HSPLjava/time/LocalDateTime;->now()Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->now(Ljava/time/Clock;)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->of(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->ofEpochSecond(JILjava/time/ZoneOffset;)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->plusSeconds(J)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->plusWithOverflow(Ljava/time/LocalDate;JJJJI)Ljava/time/LocalDateTime; -HSPLjava/time/LocalDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; -HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/LocalDate; -HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate; -HSPLjava/time/LocalDateTime;->toLocalTime()Ljava/time/LocalTime; -HSPLjava/time/LocalDateTime;->toString()Ljava/lang/String; -HSPLjava/time/LocalDateTime;->with(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime; -HSPLjava/time/LocalTime$1;-><clinit>()V -HSPLjava/time/LocalTime;-><init>(IIII)V -HSPLjava/time/LocalTime;->create(IIII)Ljava/time/LocalTime; -HSPLjava/time/LocalTime;->get0(Ljava/time/temporal/TemporalField;)I -HSPLjava/time/LocalTime;->getHour()I -HSPLjava/time/LocalTime;->getLong(Ljava/time/temporal/TemporalField;)J -HSPLjava/time/LocalTime;->getMinute()I -HSPLjava/time/LocalTime;->getNano()I -HSPLjava/time/LocalTime;->getSecond()I -HSPLjava/time/LocalTime;->isSupported(Ljava/time/temporal/TemporalField;)Z -HSPLjava/time/LocalTime;->of(IIII)Ljava/time/LocalTime; -HSPLjava/time/LocalTime;->ofNanoOfDay(J)Ljava/time/LocalTime; -HSPLjava/time/LocalTime;->ofSecondOfDay(J)Ljava/time/LocalTime; -HSPLjava/time/LocalTime;->toNanoOfDay()J -HSPLjava/time/LocalTime;->toSecondOfDay()I -HSPLjava/time/LocalTime;->toString()Ljava/lang/String; -HSPLjava/time/Month;->getValue()I -HSPLjava/time/Month;->length(Z)I -HSPLjava/time/Month;->maxLength()I -HSPLjava/time/Month;->of(I)Ljava/time/Month; -HSPLjava/time/Month;->plus(J)Ljava/time/Month; -HSPLjava/time/Month;->values()[Ljava/time/Month; -HSPLjava/time/OffsetDateTime;-><clinit>()V -HSPLjava/time/OffsetDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)V -HSPLjava/time/OffsetDateTime;->getYear()I -HSPLjava/time/OffsetDateTime;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;)Ljava/time/OffsetDateTime; -HSPLjava/time/OffsetDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/OffsetDateTime; -HSPLjava/time/OffsetDateTime;->toLocalDateTime()Ljava/time/LocalDateTime; -HSPLjava/time/Period;->isZero()Z -HSPLjava/time/ZoneId;-><init>()V -HSPLjava/time/ZoneId;->equals(Ljava/lang/Object;)Z -HSPLjava/time/ZoneId;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId; -HSPLjava/time/ZoneId;->of(Ljava/lang/String;)Ljava/time/ZoneId; -HSPLjava/time/ZoneId;->of(Ljava/lang/String;Ljava/util/Map;)Ljava/time/ZoneId; -HSPLjava/time/ZoneId;->of(Ljava/lang/String;Z)Ljava/time/ZoneId; -HSPLjava/time/ZoneId;->systemDefault()Ljava/time/ZoneId; -HSPLjava/time/ZoneId;->toString()Ljava/lang/String; -HSPLjava/time/ZoneOffset;-><init>(I)V -HSPLjava/time/ZoneOffset;->buildId(I)Ljava/lang/String; -HSPLjava/time/ZoneOffset;->equals(Ljava/lang/Object;)Z -HSPLjava/time/ZoneOffset;->getId()Ljava/lang/String; -HSPLjava/time/ZoneOffset;->getRules()Ljava/time/zone/ZoneRules; -HSPLjava/time/ZoneOffset;->getTotalSeconds()I -HSPLjava/time/ZoneOffset;->ofTotalSeconds(I)Ljava/time/ZoneOffset; -HSPLjava/time/ZoneRegion;-><init>(Ljava/lang/String;Ljava/time/zone/ZoneRules;)V -HSPLjava/time/ZoneRegion;->checkName(Ljava/lang/String;)V -HSPLjava/time/ZoneRegion;->getId()Ljava/lang/String; -HSPLjava/time/ZoneRegion;->getRules()Ljava/time/zone/ZoneRules; -HSPLjava/time/ZoneRegion;->ofId(Ljava/lang/String;Z)Ljava/time/ZoneRegion; -HSPLjava/time/ZonedDateTime$1;-><clinit>()V -HSPLjava/time/ZonedDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)V -HSPLjava/time/ZonedDateTime;->create(JILjava/time/ZoneId;)Ljava/time/ZonedDateTime; -HSPLjava/time/ZonedDateTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZonedDateTime; -HSPLjava/time/ZonedDateTime;->getLong(Ljava/time/temporal/TemporalField;)J -HSPLjava/time/ZonedDateTime;->getOffset()Ljava/time/ZoneOffset; -HSPLjava/time/ZonedDateTime;->getZone()Ljava/time/ZoneId; -HSPLjava/time/ZonedDateTime;->now(Ljava/time/Clock;)Ljava/time/ZonedDateTime; -HSPLjava/time/ZonedDateTime;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime; -HSPLjava/time/ZonedDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime; -HSPLjava/time/ZonedDateTime;->ofLocal(Ljava/time/LocalDateTime;Ljava/time/ZoneId;Ljava/time/ZoneOffset;)Ljava/time/ZonedDateTime; -HSPLjava/time/ZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; -HSPLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/LocalDate; -HSPLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate; -HSPLjava/time/ZonedDateTime;->toLocalTime()Ljava/time/LocalTime; -HSPLjava/time/chrono/AbstractChronology;->equals(Ljava/lang/Object;)Z -HSPLjava/time/chrono/AbstractChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate; -HSPLjava/time/chrono/ChronoLocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z -HSPLjava/time/chrono/ChronoLocalDateTime;->getChronology()Ljava/time/chrono/Chronology; -HSPLjava/time/chrono/ChronoLocalDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; -HSPLjava/time/chrono/ChronoLocalDateTime;->toEpochSecond(Ljava/time/ZoneOffset;)J+]Ljava/time/chrono/ChronoLocalDateTime;Ljava/time/LocalDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate; -HSPLjava/time/chrono/ChronoZonedDateTime;->getChronology()Ljava/time/chrono/Chronology;+]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate; -HSPLjava/time/chrono/ChronoZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; -HSPLjava/time/chrono/ChronoZonedDateTime;->toEpochSecond()J+]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime;]Ljava/time/chrono/ChronoLocalDate;Ljava/time/LocalDate; -HSPLjava/time/chrono/ChronoZonedDateTime;->toInstant()Ljava/time/Instant;+]Ljava/time/chrono/ChronoZonedDateTime;Ljava/time/ZonedDateTime; -HSPLjava/time/chrono/IsoChronology;->isLeapYear(J)Z -HSPLjava/time/chrono/IsoChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate; -HSPLjava/time/chrono/IsoChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate; -HSPLjava/time/chrono/IsoChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V -HSPLjava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate; -HSPLjava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate; -HSPLjava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate; -HSPLjava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate; -HSPLjava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V -HSPLjava/time/format/DateTimeFormatter;->format(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String; -HSPLjava/time/format/DateTimeFormatter;->formatTo(Ljava/time/temporal/TemporalAccessor;Ljava/lang/Appendable;)V -HSPLjava/time/format/DateTimeFormatter;->getChronology()Ljava/time/chrono/Chronology; -HSPLjava/time/format/DateTimeFormatter;->getDecimalStyle()Ljava/time/format/DecimalStyle; -HSPLjava/time/format/DateTimeFormatter;->getZone()Ljava/time/ZoneId; -HSPLjava/time/format/DateTimeFormatter;->parse(Ljava/lang/CharSequence;Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; -HSPLjava/time/format/DateTimeFormatter;->parseResolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/temporal/TemporalAccessor; -HSPLjava/time/format/DateTimeFormatter;->parseUnresolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/format/DateTimeParseContext; -HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V -HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V -HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>([Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;Z)V -HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIZ)V -HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertFromFraction(Ljava/math/BigDecimal;)J -HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertToFraction(J)Ljava/math/BigDecimal; -HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)V -HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J -HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I -HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z -HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree; -HSPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I -HSPLjava/time/format/DateTimeFormatterBuilder;-><init>()V -HSPLjava/time/format/DateTimeFormatterBuilder;->appendFraction(Ljava/time/temporal/TemporalField;IIZ)Ljava/time/format/DateTimeFormatterBuilder; -HSPLjava/time/format/DateTimeFormatterBuilder;->appendInternal(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;)I -HSPLjava/time/format/DateTimeFormatterBuilder;->appendLiteral(C)Ljava/time/format/DateTimeFormatterBuilder; -HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder; -HSPLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder; -HSPLjava/time/format/DateTimeFormatterBuilder;->optionalEnd()Ljava/time/format/DateTimeFormatterBuilder; -HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter()Ljava/time/format/DateTimeFormatter; -HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatter; -HSPLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter; -HSPLjava/time/format/DateTimeParseContext;-><init>(Ljava/time/format/DateTimeFormatter;)V -HSPLjava/time/format/DateTimeParseContext;->charEquals(CC)Z -HSPLjava/time/format/DateTimeParseContext;->currentParsed()Ljava/time/format/Parsed; -HSPLjava/time/format/DateTimeParseContext;->endOptional(Z)V -HSPLjava/time/format/DateTimeParseContext;->getDecimalStyle()Ljava/time/format/DecimalStyle; -HSPLjava/time/format/DateTimeParseContext;->getEffectiveChronology()Ljava/time/chrono/Chronology; -HSPLjava/time/format/DateTimeParseContext;->isCaseSensitive()Z -HSPLjava/time/format/DateTimeParseContext;->isStrict()Z -HSPLjava/time/format/DateTimeParseContext;->setCaseSensitive(Z)V -HSPLjava/time/format/DateTimeParseContext;->setParsed(Ljava/time/ZoneId;)V -HSPLjava/time/format/DateTimeParseContext;->setParsedField(Ljava/time/temporal/TemporalField;JII)I -HSPLjava/time/format/DateTimeParseContext;->startOptional()V -HSPLjava/time/format/DateTimeParseContext;->subSequenceEquals(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z -HSPLjava/time/format/DateTimeParseContext;->toResolved(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor; -HSPLjava/time/format/DateTimePrintContext;-><init>(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)V -HSPLjava/time/format/DateTimePrintContext;->adjust(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)Ljava/time/temporal/TemporalAccessor; -HSPLjava/time/format/DateTimePrintContext;->getDecimalStyle()Ljava/time/format/DecimalStyle; -HSPLjava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalField;)Ljava/lang/Long; -HSPLjava/time/format/DateTimeTextProvider$LocaleStore;-><init>(Ljava/util/Map;)V -HSPLjava/time/format/DecimalStyle;->convertNumberToI18N(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/time/format/DecimalStyle;->convertToDigit(C)I -HSPLjava/time/format/DecimalStyle;->getDecimalSeparator()C -HSPLjava/time/format/DecimalStyle;->getNegativeSign()C -HSPLjava/time/format/DecimalStyle;->getPositiveSign()C -HSPLjava/time/format/DecimalStyle;->getZeroDigit()C -HSPLjava/time/format/Parsed;-><init>()V -HSPLjava/time/format/Parsed;->copy()Ljava/time/format/Parsed; -HSPLjava/time/format/Parsed;->crossCheck()V -HSPLjava/time/format/Parsed;->crossCheck(Ljava/time/temporal/TemporalAccessor;)V -HSPLjava/time/format/Parsed;->getLong(Ljava/time/temporal/TemporalField;)J -HSPLjava/time/format/Parsed;->isSupported(Ljava/time/temporal/TemporalField;)Z -HSPLjava/time/format/Parsed;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object; -HSPLjava/time/format/Parsed;->resolve(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor; -HSPLjava/time/format/Parsed;->resolveDateFields()V -HSPLjava/time/format/Parsed;->resolveFields()V -HSPLjava/time/format/Parsed;->resolveFractional()V -HSPLjava/time/format/Parsed;->resolveInstant()V -HSPLjava/time/format/Parsed;->resolveInstantFields()V -HSPLjava/time/format/Parsed;->resolvePeriod()V -HSPLjava/time/format/Parsed;->resolveTime(JJJJ)V -HSPLjava/time/format/Parsed;->resolveTimeFields()V -HSPLjava/time/format/Parsed;->resolveTimeLenient()V -HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/LocalTime;Ljava/time/Period;)V -HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/chrono/ChronoLocalDate;)V -HSPLjava/time/format/SignStyle;->values()[Ljava/time/format/SignStyle; -HSPLjava/time/temporal/ChronoField;->checkValidIntValue(J)I -HSPLjava/time/temporal/ChronoField;->checkValidValue(J)J -HSPLjava/time/temporal/ChronoField;->isDateBased()Z -HSPLjava/time/temporal/ChronoField;->isTimeBased()Z -HSPLjava/time/temporal/ChronoField;->range()Ljava/time/temporal/ValueRange; -HSPLjava/time/temporal/ChronoField;->values()[Ljava/time/temporal/ChronoField; -HSPLjava/time/temporal/ChronoUnit;->getDuration()Ljava/time/Duration; -HSPLjava/time/temporal/ChronoUnit;->values()[Ljava/time/temporal/ChronoUnit; -HSPLjava/time/temporal/TemporalAccessor;->get(Ljava/time/temporal/TemporalField;)I+]Ljava/time/temporal/TemporalAccessor;Ljava/time/format/Parsed; -HSPLjava/time/temporal/TemporalAccessor;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;+]Ljava/time/temporal/TemporalAccessor;Ljava/time/format/Parsed; -HSPLjava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda11;-><init>(I)V -HSPLjava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda11;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal; -HSPLjava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda1;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal; -HSPLjava/time/temporal/TemporalAdjusters;->lambda$nextOrSame$10(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal; -HSPLjava/time/temporal/TemporalAdjusters;->lambda$previousOrSame$12(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal; -HSPLjava/time/temporal/TemporalAdjusters;->nextOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster; -HSPLjava/time/temporal/TemporalAdjusters;->previousOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster; -HSPLjava/time/temporal/TemporalField;->resolve(Ljava/util/Map;Ljava/time/temporal/TemporalAccessor;Ljava/time/format/ResolverStyle;)Ljava/time/temporal/TemporalAccessor; -HSPLjava/time/temporal/TemporalQueries;->chronology()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/TemporalQueries;->localDate()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/TemporalQueries;->localTime()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/TemporalQueries;->offset()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/TemporalQueries;->precision()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/TemporalQueries;->zone()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/TemporalQueries;->zoneId()Ljava/time/temporal/TemporalQuery; -HSPLjava/time/temporal/ValueRange;->checkValidIntValue(JLjava/time/temporal/TemporalField;)I -HSPLjava/time/temporal/ValueRange;->checkValidValue(JLjava/time/temporal/TemporalField;)J -HSPLjava/time/temporal/ValueRange;->getMaximum()J -HSPLjava/time/temporal/ValueRange;->getMinimum()J -HSPLjava/time/temporal/ValueRange;->isFixed()Z -HSPLjava/time/temporal/ValueRange;->isIntValue()Z -HSPLjava/time/temporal/ValueRange;->isValidIntValue(J)Z -HSPLjava/time/temporal/ValueRange;->isValidValue(J)Z -HSPLjava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;->create(Ljava/lang/String;)Ljava/time/zone/ZoneRules; -HSPLjava/time/zone/IcuZoneRulesProvider;->generateZoneRules(Ljava/lang/String;)Ljava/time/zone/ZoneRules; -HSPLjava/time/zone/IcuZoneRulesProvider;->provideRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules; -HSPLjava/time/zone/ZoneOffsetTransition;-><init>(JLjava/time/ZoneOffset;Ljava/time/ZoneOffset;)V -HSPLjava/time/zone/ZoneOffsetTransition;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V -HSPLjava/time/zone/ZoneOffsetTransition;->getDateTimeAfter()Ljava/time/LocalDateTime; -HSPLjava/time/zone/ZoneOffsetTransition;->getDateTimeBefore()Ljava/time/LocalDateTime; -HSPLjava/time/zone/ZoneOffsetTransition;->getDurationSeconds()I -HSPLjava/time/zone/ZoneOffsetTransition;->getOffsetAfter()Ljava/time/ZoneOffset; -HSPLjava/time/zone/ZoneOffsetTransition;->getOffsetBefore()Ljava/time/ZoneOffset; -HSPLjava/time/zone/ZoneOffsetTransition;->isGap()Z -HSPLjava/time/zone/ZoneOffsetTransition;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransition; -HSPLjava/time/zone/ZoneOffsetTransition;->toEpochSecond()J -HSPLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;->createDateTime(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/LocalDateTime; -HSPLjava/time/zone/ZoneOffsetTransitionRule;-><init>(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V -HSPLjava/time/zone/ZoneOffsetTransitionRule;->createTransition(I)Ljava/time/zone/ZoneOffsetTransition; -HSPLjava/time/zone/ZoneOffsetTransitionRule;->getOffsetAfter()Ljava/time/ZoneOffset; -HSPLjava/time/zone/ZoneOffsetTransitionRule;->of(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransitionRule; -HSPLjava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;)V -HSPLjava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V -HSPLjava/time/zone/ZoneRules;->findOffsetInfo(Ljava/time/LocalDateTime;Ljava/time/zone/ZoneOffsetTransition;)Ljava/lang/Object; -HSPLjava/time/zone/ZoneRules;->findTransitionArray(I)[Ljava/time/zone/ZoneOffsetTransition; -HSPLjava/time/zone/ZoneRules;->findYear(JLjava/time/ZoneOffset;)I -HSPLjava/time/zone/ZoneRules;->getOffset(Ljava/time/Instant;)Ljava/time/ZoneOffset; -HSPLjava/time/zone/ZoneRules;->getOffsetInfo(Ljava/time/LocalDateTime;)Ljava/lang/Object; -HSPLjava/time/zone/ZoneRules;->getValidOffsets(Ljava/time/LocalDateTime;)Ljava/util/List; -HSPLjava/time/zone/ZoneRules;->of(Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneRules; -HSPLjava/time/zone/ZoneRules;->of(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/time/zone/ZoneRules; -HSPLjava/time/zone/ZoneRulesProvider;->getAvailableZoneIds()Ljava/util/Set; -HSPLjava/time/zone/ZoneRulesProvider;->getProvider(Ljava/lang/String;)Ljava/time/zone/ZoneRulesProvider; -HSPLjava/time/zone/ZoneRulesProvider;->getRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules; -HSPLjava/util/AbstractCollection;-><init>()V -HSPLjava/util/AbstractCollection;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/AbstractCollection;->clear()V -HSPLjava/util/AbstractCollection;->contains(Ljava/lang/Object;)Z -HSPLjava/util/AbstractCollection;->containsAll(Ljava/util/Collection;)Z -HSPLjava/util/AbstractCollection;->isEmpty()Z -HSPLjava/util/AbstractCollection;->remove(Ljava/lang/Object;)Z -HSPLjava/util/AbstractCollection;->removeAll(Ljava/util/Collection;)Z -HSPLjava/util/AbstractCollection;->retainAll(Ljava/util/Collection;)Z -HSPLjava/util/AbstractCollection;->toArray()[Ljava/lang/Object; -HSPLjava/util/AbstractCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/AbstractCollection;->toString()Ljava/lang/String; -HSPLjava/util/AbstractList$Itr;-><init>(Ljava/util/AbstractList;)V -HSPLjava/util/AbstractList$Itr;-><init>(Ljava/util/AbstractList;Ljava/util/AbstractList$Itr-IA;)V -HSPLjava/util/AbstractList$Itr;->checkForComodification()V -HSPLjava/util/AbstractList$Itr;->hasNext()Z -HSPLjava/util/AbstractList$Itr;->next()Ljava/lang/Object; -HSPLjava/util/AbstractList$ListItr;-><init>(Ljava/util/AbstractList;I)V -HSPLjava/util/AbstractList$ListItr;->hasPrevious()Z -HSPLjava/util/AbstractList$ListItr;->nextIndex()I -HSPLjava/util/AbstractList$ListItr;->previous()Ljava/lang/Object; -HSPLjava/util/AbstractList$ListItr;->previousIndex()I -HSPLjava/util/AbstractList$RandomAccessSpliterator;-><init>(Ljava/util/List;)V -HSPLjava/util/AbstractList$RandomAccessSpliterator;->characteristics()I -HSPLjava/util/AbstractList$RandomAccessSpliterator;->checkAbstractListModCount(Ljava/util/AbstractList;I)V -HSPLjava/util/AbstractList$RandomAccessSpliterator;->estimateSize()J -HSPLjava/util/AbstractList$RandomAccessSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/AbstractList$RandomAccessSpliterator;->get(Ljava/util/List;I)Ljava/lang/Object; -HSPLjava/util/AbstractList$RandomAccessSpliterator;->getFence()I -HSPLjava/util/AbstractList$RandomAccessSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/AbstractList$RandomAccessSubList;-><init>(Ljava/util/AbstractList;II)V -HSPLjava/util/AbstractList$SubList$1;-><init>(Ljava/util/AbstractList$SubList;I)V -HSPLjava/util/AbstractList$SubList$1;->hasNext()Z -HSPLjava/util/AbstractList$SubList$1;->next()Ljava/lang/Object; -HSPLjava/util/AbstractList$SubList$1;->nextIndex()I -HSPLjava/util/AbstractList$SubList;-><init>(Ljava/util/AbstractList;II)V -HSPLjava/util/AbstractList$SubList;->checkForComodification()V -HSPLjava/util/AbstractList$SubList;->get(I)Ljava/lang/Object; -HSPLjava/util/AbstractList$SubList;->iterator()Ljava/util/Iterator; -HSPLjava/util/AbstractList$SubList;->listIterator(I)Ljava/util/ListIterator; -HSPLjava/util/AbstractList$SubList;->rangeCheckForAdd(I)V -HSPLjava/util/AbstractList$SubList;->size()I -HSPLjava/util/AbstractList;-><init>()V -HSPLjava/util/AbstractList;->add(Ljava/lang/Object;)Z -HSPLjava/util/AbstractList;->clear()V -HSPLjava/util/AbstractList;->equals(Ljava/lang/Object;)Z -HSPLjava/util/AbstractList;->hashCode()I -HSPLjava/util/AbstractList;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/AbstractList;->iterator()Ljava/util/Iterator; -HSPLjava/util/AbstractList;->listIterator()Ljava/util/ListIterator; -HSPLjava/util/AbstractList;->listIterator(I)Ljava/util/ListIterator; -HSPLjava/util/AbstractList;->rangeCheckForAdd(I)V -HSPLjava/util/AbstractList;->subList(II)Ljava/util/List; -HSPLjava/util/AbstractList;->subListRangeCheck(III)V -HSPLjava/util/AbstractMap$2$1;-><init>(Ljava/util/AbstractMap$2;)V -HSPLjava/util/AbstractMap$2$1;->hasNext()Z -HSPLjava/util/AbstractMap$2$1;->next()Ljava/lang/Object; -HSPLjava/util/AbstractMap$2;-><init>(Ljava/util/AbstractMap;)V -HSPLjava/util/AbstractMap$2;->iterator()Ljava/util/Iterator; -HSPLjava/util/AbstractMap$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/AbstractMap$SimpleEntry;->getKey()Ljava/lang/Object; -HSPLjava/util/AbstractMap$SimpleEntry;->getValue()Ljava/lang/Object; -HSPLjava/util/AbstractMap$SimpleImmutableEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/AbstractMap$SimpleImmutableEntry;-><init>(Ljava/util/Map$Entry;)V -HSPLjava/util/AbstractMap$SimpleImmutableEntry;->equals(Ljava/lang/Object;)Z -HSPLjava/util/AbstractMap$SimpleImmutableEntry;->getKey()Ljava/lang/Object; -HSPLjava/util/AbstractMap$SimpleImmutableEntry;->getValue()Ljava/lang/Object; -HSPLjava/util/AbstractMap$SimpleImmutableEntry;->hashCode()I -HSPLjava/util/AbstractMap;-><init>()V -HSPLjava/util/AbstractMap;->clear()V -HSPLjava/util/AbstractMap;->clone()Ljava/lang/Object; -HSPLjava/util/AbstractMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/AbstractMap;->equals(Ljava/lang/Object;)Z -HSPLjava/util/AbstractMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/AbstractMap;->hashCode()I -HSPLjava/util/AbstractMap;->isEmpty()Z -HSPLjava/util/AbstractMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/AbstractMap;->size()I -HSPLjava/util/AbstractMap;->toString()Ljava/lang/String; -HSPLjava/util/AbstractMap;->values()Ljava/util/Collection; -HSPLjava/util/AbstractQueue;-><init>()V -HSPLjava/util/AbstractQueue;->add(Ljava/lang/Object;)Z -HSPLjava/util/AbstractQueue;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/AbstractQueue;->clear()V -HSPLjava/util/AbstractQueue;->remove()Ljava/lang/Object; -HSPLjava/util/AbstractSequentialList;-><init>()V -HSPLjava/util/AbstractSequentialList;->iterator()Ljava/util/Iterator; -HSPLjava/util/AbstractSet;-><init>()V -HSPLjava/util/AbstractSet;->equals(Ljava/lang/Object;)Z -HSPLjava/util/AbstractSet;->hashCode()I -HSPLjava/util/AbstractSet;->removeAll(Ljava/util/Collection;)Z -HSPLjava/util/ArrayDeque$$ExternalSyntheticLambda1;-><init>(Ljava/util/ArrayDeque;)V -HSPLjava/util/ArrayDeque$$ExternalSyntheticLambda1;->accept(Ljava/lang/Object;)V -HSPLjava/util/ArrayDeque$DeqIterator;-><init>(Ljava/util/ArrayDeque;)V -HSPLjava/util/ArrayDeque$DeqIterator;->hasNext()Z -HSPLjava/util/ArrayDeque$DeqIterator;->next()Ljava/lang/Object; -HSPLjava/util/ArrayDeque$DeqIterator;->postDelete(Z)V -HSPLjava/util/ArrayDeque$DeqIterator;->remove()V -HSPLjava/util/ArrayDeque$DescendingIterator;-><init>(Ljava/util/ArrayDeque;)V -HSPLjava/util/ArrayDeque$DescendingIterator;->next()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;-><init>()V -HSPLjava/util/ArrayDeque;-><init>(I)V -HSPLjava/util/ArrayDeque;-><init>(Ljava/util/Collection;)V -HSPLjava/util/ArrayDeque;->add(Ljava/lang/Object;)Z -HSPLjava/util/ArrayDeque;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/ArrayDeque;->addFirst(Ljava/lang/Object;)V -HSPLjava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V -HSPLjava/util/ArrayDeque;->checkInvariants()V -HSPLjava/util/ArrayDeque;->circularClear([Ljava/lang/Object;II)V -HSPLjava/util/ArrayDeque;->clear()V -HSPLjava/util/ArrayDeque;->contains(Ljava/lang/Object;)Z -HSPLjava/util/ArrayDeque;->copyElements(Ljava/util/Collection;)V -HSPLjava/util/ArrayDeque;->dec(II)I -HSPLjava/util/ArrayDeque;->delete(I)Z -HSPLjava/util/ArrayDeque;->descendingIterator()Ljava/util/Iterator; -HSPLjava/util/ArrayDeque;->elementAt([Ljava/lang/Object;I)Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/ArrayDeque;->getFirst()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->getLast()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->grow(I)V -HSPLjava/util/ArrayDeque;->inc(II)I -HSPLjava/util/ArrayDeque;->isEmpty()Z -HSPLjava/util/ArrayDeque;->iterator()Ljava/util/Iterator; -HSPLjava/util/ArrayDeque;->offer(Ljava/lang/Object;)Z -HSPLjava/util/ArrayDeque;->offerLast(Ljava/lang/Object;)Z -HSPLjava/util/ArrayDeque;->peek()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->peekFirst()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->peekLast()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->poll()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->pollFirst()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->pollLast()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->pop()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->push(Ljava/lang/Object;)V -HSPLjava/util/ArrayDeque;->remove()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->remove(Ljava/lang/Object;)Z -HSPLjava/util/ArrayDeque;->removeFirst()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->removeFirstOccurrence(Ljava/lang/Object;)Z -HSPLjava/util/ArrayDeque;->removeLast()Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->size()I -HSPLjava/util/ArrayDeque;->sub(III)I -HSPLjava/util/ArrayDeque;->toArray()[Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->toArray(Ljava/lang/Class;)[Ljava/lang/Object; -HSPLjava/util/ArrayDeque;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/ArrayList$ArrayListSpliterator;-><init>(Ljava/util/ArrayList;III)V -HSPLjava/util/ArrayList$ArrayListSpliterator;->characteristics()I -HSPLjava/util/ArrayList$ArrayListSpliterator;->estimateSize()J -HSPLjava/util/ArrayList$ArrayListSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/ArrayList$ArrayListSpliterator;->getFence()I -HSPLjava/util/ArrayList$ArrayListSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/ArrayList$Itr;-><init>(Ljava/util/ArrayList;)V -HSPLjava/util/ArrayList$Itr;->checkForComodification()V -HSPLjava/util/ArrayList$Itr;->hasNext()Z -HSPLjava/util/ArrayList$Itr;->next()Ljava/lang/Object; -HSPLjava/util/ArrayList$Itr;->remove()V -HSPLjava/util/ArrayList$ListItr;-><init>(Ljava/util/ArrayList;I)V -HSPLjava/util/ArrayList$ListItr;->hasPrevious()Z -HSPLjava/util/ArrayList$ListItr;->nextIndex()I -HSPLjava/util/ArrayList$ListItr;->previous()Ljava/lang/Object; -HSPLjava/util/ArrayList$ListItr;->set(Ljava/lang/Object;)V -HSPLjava/util/ArrayList$SubList$1;-><init>(Ljava/util/ArrayList$SubList;I)V -HSPLjava/util/ArrayList$SubList$1;->checkForComodification()V -HSPLjava/util/ArrayList$SubList$1;->hasNext()Z -HSPLjava/util/ArrayList$SubList$1;->next()Ljava/lang/Object; -HSPLjava/util/ArrayList$SubList;->-$$Nest$fgetoffset(Ljava/util/ArrayList$SubList;)I -HSPLjava/util/ArrayList$SubList;->-$$Nest$fgetroot(Ljava/util/ArrayList$SubList;)Ljava/util/ArrayList; -HSPLjava/util/ArrayList$SubList;->-$$Nest$fgetsize(Ljava/util/ArrayList$SubList;)I -HSPLjava/util/ArrayList$SubList;-><init>(Ljava/util/ArrayList;II)V -HSPLjava/util/ArrayList$SubList;->checkForComodification()V -HSPLjava/util/ArrayList$SubList;->get(I)Ljava/lang/Object; -HSPLjava/util/ArrayList$SubList;->iterator()Ljava/util/Iterator; -HSPLjava/util/ArrayList$SubList;->listIterator(I)Ljava/util/ListIterator; -HSPLjava/util/ArrayList$SubList;->rangeCheckForAdd(I)V -HSPLjava/util/ArrayList$SubList;->removeRange(II)V -HSPLjava/util/ArrayList$SubList;->size()I -HSPLjava/util/ArrayList$SubList;->subList(II)Ljava/util/List; -HSPLjava/util/ArrayList$SubList;->toArray()[Ljava/lang/Object; -HSPLjava/util/ArrayList$SubList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/ArrayList;->-$$Nest$fgetsize(Ljava/util/ArrayList;)I -HSPLjava/util/ArrayList;-><init>()V -HSPLjava/util/ArrayList;-><init>(I)V -HSPLjava/util/ArrayList;-><init>(Ljava/util/Collection;)V -HSPLjava/util/ArrayList;->add(ILjava/lang/Object;)V -HSPLjava/util/ArrayList;->add(Ljava/lang/Object;)Z -HSPLjava/util/ArrayList;->add(Ljava/lang/Object;[Ljava/lang/Object;I)V -HSPLjava/util/ArrayList;->addAll(ILjava/util/Collection;)Z -HSPLjava/util/ArrayList;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/ArrayList;->batchRemove(Ljava/util/Collection;ZII)Z -HSPLjava/util/ArrayList;->checkForComodification(I)V -HSPLjava/util/ArrayList;->clear()V -HSPLjava/util/ArrayList;->clone()Ljava/lang/Object; -HSPLjava/util/ArrayList;->contains(Ljava/lang/Object;)Z -HSPLjava/util/ArrayList;->elementAt([Ljava/lang/Object;I)Ljava/lang/Object; -HSPLjava/util/ArrayList;->elementData(I)Ljava/lang/Object; -HSPLjava/util/ArrayList;->ensureCapacity(I)V -HSPLjava/util/ArrayList;->equals(Ljava/lang/Object;)Z -HSPLjava/util/ArrayList;->equalsArrayList(Ljava/util/ArrayList;)Z -HSPLjava/util/ArrayList;->equalsRange(Ljava/util/List;II)Z -HSPLjava/util/ArrayList;->fastRemove([Ljava/lang/Object;I)V -HSPLjava/util/ArrayList;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/ArrayList;->get(I)Ljava/lang/Object; -HSPLjava/util/ArrayList;->grow()[Ljava/lang/Object; -HSPLjava/util/ArrayList;->grow(I)[Ljava/lang/Object; -HSPLjava/util/ArrayList;->hashCode()I -HSPLjava/util/ArrayList;->hashCodeRange(II)I -HSPLjava/util/ArrayList;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/ArrayList;->indexOfRange(Ljava/lang/Object;II)I -HSPLjava/util/ArrayList;->isEmpty()Z -HSPLjava/util/ArrayList;->iterator()Ljava/util/Iterator; -HSPLjava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I -HSPLjava/util/ArrayList;->listIterator()Ljava/util/ListIterator; -HSPLjava/util/ArrayList;->listIterator(I)Ljava/util/ListIterator; -HSPLjava/util/ArrayList;->rangeCheckForAdd(I)V -HSPLjava/util/ArrayList;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/util/ArrayList;->remove(I)Ljava/lang/Object; -HSPLjava/util/ArrayList;->remove(Ljava/lang/Object;)Z -HSPLjava/util/ArrayList;->removeAll(Ljava/util/Collection;)Z -HSPLjava/util/ArrayList;->removeIf(Ljava/util/function/Predicate;)Z -HSPLjava/util/ArrayList;->removeIf(Ljava/util/function/Predicate;II)Z -HSPLjava/util/ArrayList;->removeRange(II)V -HSPLjava/util/ArrayList;->retainAll(Ljava/util/Collection;)Z -HSPLjava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/ArrayList;->shiftTailOverGap([Ljava/lang/Object;II)V -HSPLjava/util/ArrayList;->size()I -HSPLjava/util/ArrayList;->sort(Ljava/util/Comparator;)V -HSPLjava/util/ArrayList;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/ArrayList;->subList(II)Ljava/util/List; -HSPLjava/util/ArrayList;->toArray()[Ljava/lang/Object; -HSPLjava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/ArrayList;->trimToSize()V -HSPLjava/util/ArrayList;->writeObject(Ljava/io/ObjectOutputStream;)V -HSPLjava/util/Arrays$ArrayItr;-><init>([Ljava/lang/Object;)V -HSPLjava/util/Arrays$ArrayItr;->hasNext()Z -HSPLjava/util/Arrays$ArrayItr;->next()Ljava/lang/Object; -HSPLjava/util/Arrays$ArrayList;-><init>([Ljava/lang/Object;)V -HSPLjava/util/Arrays$ArrayList;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Arrays$ArrayList;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/Arrays$ArrayList;->get(I)Ljava/lang/Object; -HSPLjava/util/Arrays$ArrayList;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/Arrays$ArrayList;->iterator()Ljava/util/Iterator; -HSPLjava/util/Arrays$ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Arrays$ArrayList;->size()I -HSPLjava/util/Arrays$ArrayList;->sort(Ljava/util/Comparator;)V -HSPLjava/util/Arrays$ArrayList;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/Arrays$ArrayList;->toArray()[Ljava/lang/Object; -HSPLjava/util/Arrays$ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Arrays$ArrayList;->toArrayPreserveComponentType()[Ljava/lang/Object;+][Ljava/lang/Object;missing_types -HSPLjava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/Arrays;->binarySearch([CC)I -HSPLjava/util/Arrays;->binarySearch([II)I -HSPLjava/util/Arrays;->binarySearch([IIII)I -HSPLjava/util/Arrays;->binarySearch([JIIJ)I -HSPLjava/util/Arrays;->binarySearch([JJ)I -HSPLjava/util/Arrays;->binarySearch([Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Arrays;->binarySearch([Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Comparator;)I -HSPLjava/util/Arrays;->binarySearch0([CIIC)I -HSPLjava/util/Arrays;->binarySearch0([IIII)I -HSPLjava/util/Arrays;->binarySearch0([JIIJ)I -HSPLjava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;)I -HSPLjava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I -HSPLjava/util/Arrays;->copyOf([BI)[B -HSPLjava/util/Arrays;->copyOf([CI)[C -HSPLjava/util/Arrays;->copyOf([DI)[D -HSPLjava/util/Arrays;->copyOf([FI)[F -HSPLjava/util/Arrays;->copyOf([II)[I -HSPLjava/util/Arrays;->copyOf([JI)[J -HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object; -HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object; -HSPLjava/util/Arrays;->copyOf([ZI)[Z -HSPLjava/util/Arrays;->copyOfRange([BII)[B -HSPLjava/util/Arrays;->copyOfRange([CII)[C -HSPLjava/util/Arrays;->copyOfRange([III)[I -HSPLjava/util/Arrays;->copyOfRange([JII)[J -HSPLjava/util/Arrays;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object; -HSPLjava/util/Arrays;->copyOfRange([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object; -HSPLjava/util/Arrays;->deepEquals([Ljava/lang/Object;[Ljava/lang/Object;)Z -HSPLjava/util/Arrays;->deepEquals0(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/Arrays;->deepHashCode([Ljava/lang/Object;)I -HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/util/Set;)V -HSPLjava/util/Arrays;->equals([B[B)Z -HSPLjava/util/Arrays;->equals([F[F)Z -HSPLjava/util/Arrays;->equals([I[I)Z -HSPLjava/util/Arrays;->equals([J[J)Z -HSPLjava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z -HSPLjava/util/Arrays;->fill([BB)V -HSPLjava/util/Arrays;->fill([BIIB)V -HSPLjava/util/Arrays;->fill([CC)V -HSPLjava/util/Arrays;->fill([CIIC)V -HSPLjava/util/Arrays;->fill([DD)V -HSPLjava/util/Arrays;->fill([FF)V -HSPLjava/util/Arrays;->fill([II)V -HSPLjava/util/Arrays;->fill([IIII)V -HSPLjava/util/Arrays;->fill([JIIJ)V -HSPLjava/util/Arrays;->fill([JJ)V -HSPLjava/util/Arrays;->fill([Ljava/lang/Object;IILjava/lang/Object;)V -HSPLjava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/Arrays;->fill([SS)V -HSPLjava/util/Arrays;->fill([ZZ)V -HSPLjava/util/Arrays;->hashCode([B)I -HSPLjava/util/Arrays;->hashCode([F)I -HSPLjava/util/Arrays;->hashCode([I)I -HSPLjava/util/Arrays;->hashCode([J)I -HSPLjava/util/Arrays;->hashCode([Ljava/lang/Object;)I -HSPLjava/util/Arrays;->rangeCheck(III)V -HSPLjava/util/Arrays;->sort([C)V -HSPLjava/util/Arrays;->sort([F)V -HSPLjava/util/Arrays;->sort([I)V -HSPLjava/util/Arrays;->sort([III)V -HSPLjava/util/Arrays;->sort([J)V -HSPLjava/util/Arrays;->sort([Ljava/lang/Object;)V -HSPLjava/util/Arrays;->sort([Ljava/lang/Object;II)V -HSPLjava/util/Arrays;->sort([Ljava/lang/Object;IILjava/util/Comparator;)V -HSPLjava/util/Arrays;->sort([Ljava/lang/Object;Ljava/util/Comparator;)V -HSPLjava/util/Arrays;->spliterator([III)Ljava/util/Spliterator$OfInt; -HSPLjava/util/Arrays;->spliterator([Ljava/lang/Object;II)Ljava/util/Spliterator; -HSPLjava/util/Arrays;->stream([I)Ljava/util/stream/IntStream; -HSPLjava/util/Arrays;->stream([III)Ljava/util/stream/IntStream; -HSPLjava/util/Arrays;->stream([Ljava/lang/Object;)Ljava/util/stream/Stream; -HSPLjava/util/Arrays;->stream([Ljava/lang/Object;II)Ljava/util/stream/Stream; -HSPLjava/util/Arrays;->toString([B)Ljava/lang/String; -HSPLjava/util/Arrays;->toString([F)Ljava/lang/String; -HSPLjava/util/Arrays;->toString([I)Ljava/lang/String; -HSPLjava/util/Arrays;->toString([J)Ljava/lang/String; -HSPLjava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B -HSPLjava/util/Base64$Decoder;->decode([B)[B -HSPLjava/util/Base64$Decoder;->decode0([BII[B)I -HSPLjava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder; -HSPLjava/util/Base64;->getEncoder()Ljava/util/Base64$Encoder; -HSPLjava/util/Base64;->getMimeDecoder()Ljava/util/Base64$Decoder; -HSPLjava/util/BitSet;-><init>()V -HSPLjava/util/BitSet;-><init>(I)V -HSPLjava/util/BitSet;-><init>([J)V -HSPLjava/util/BitSet;->andNot(Ljava/util/BitSet;)V -HSPLjava/util/BitSet;->cardinality()I -HSPLjava/util/BitSet;->checkInvariants()V -HSPLjava/util/BitSet;->checkRange(II)V -HSPLjava/util/BitSet;->clear()V -HSPLjava/util/BitSet;->clear(I)V -HSPLjava/util/BitSet;->clone()Ljava/lang/Object; -HSPLjava/util/BitSet;->ensureCapacity(I)V -HSPLjava/util/BitSet;->equals(Ljava/lang/Object;)Z -HSPLjava/util/BitSet;->expandTo(I)V -HSPLjava/util/BitSet;->flip(II)V -HSPLjava/util/BitSet;->get(I)Z -HSPLjava/util/BitSet;->initWords(I)V -HSPLjava/util/BitSet;->isEmpty()Z -HSPLjava/util/BitSet;->length()I -HSPLjava/util/BitSet;->nextClearBit(I)I -HSPLjava/util/BitSet;->nextSetBit(I)I -HSPLjava/util/BitSet;->or(Ljava/util/BitSet;)V -HSPLjava/util/BitSet;->recalculateWordsInUse()V -HSPLjava/util/BitSet;->set(I)V -HSPLjava/util/BitSet;->set(II)V -HSPLjava/util/BitSet;->set(IIZ)V -HSPLjava/util/BitSet;->set(IZ)V -HSPLjava/util/BitSet;->size()I -HSPLjava/util/BitSet;->toString()Ljava/lang/String; -HSPLjava/util/BitSet;->trimToSize()V -HSPLjava/util/BitSet;->valueOf(Ljava/nio/ByteBuffer;)Ljava/util/BitSet; -HSPLjava/util/BitSet;->valueOf([J)Ljava/util/BitSet; -HSPLjava/util/BitSet;->wordIndex(I)I -HSPLjava/util/Calendar;-><init>()V -HSPLjava/util/Calendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V -HSPLjava/util/Calendar;->aggregateStamp(II)I -HSPLjava/util/Calendar;->before(Ljava/lang/Object;)Z -HSPLjava/util/Calendar;->clear()V -HSPLjava/util/Calendar;->clone()Ljava/lang/Object; -HSPLjava/util/Calendar;->compareTo(J)I -HSPLjava/util/Calendar;->compareTo(Ljava/util/Calendar;)I -HSPLjava/util/Calendar;->complete()V -HSPLjava/util/Calendar;->createCalendar(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar; -HSPLjava/util/Calendar;->defaultTimeZone(Ljava/util/Locale;)Ljava/util/TimeZone; -HSPLjava/util/Calendar;->get(I)I -HSPLjava/util/Calendar;->getFirstDayOfWeek()I -HSPLjava/util/Calendar;->getInstance()Ljava/util/Calendar; -HSPLjava/util/Calendar;->getInstance(Ljava/util/Locale;)Ljava/util/Calendar; -HSPLjava/util/Calendar;->getInstance(Ljava/util/TimeZone;)Ljava/util/Calendar; -HSPLjava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar; -HSPLjava/util/Calendar;->getMillisOf(Ljava/util/Calendar;)J -HSPLjava/util/Calendar;->getMinimalDaysInFirstWeek()I -HSPLjava/util/Calendar;->getSetStateFields()I -HSPLjava/util/Calendar;->getTime()Ljava/util/Date; -HSPLjava/util/Calendar;->getTimeInMillis()J -HSPLjava/util/Calendar;->getTimeZone()Ljava/util/TimeZone; -HSPLjava/util/Calendar;->getZone()Ljava/util/TimeZone; -HSPLjava/util/Calendar;->internalGet(I)I -HSPLjava/util/Calendar;->internalSet(II)V -HSPLjava/util/Calendar;->isExternallySet(I)Z -HSPLjava/util/Calendar;->isFieldSet(II)Z -HSPLjava/util/Calendar;->isFullyNormalized()Z -HSPLjava/util/Calendar;->isLenient()Z -HSPLjava/util/Calendar;->isPartiallyNormalized()Z -HSPLjava/util/Calendar;->isSet(I)Z -HSPLjava/util/Calendar;->selectFields()I -HSPLjava/util/Calendar;->set(II)V -HSPLjava/util/Calendar;->set(III)V -HSPLjava/util/Calendar;->set(IIIIII)V -HSPLjava/util/Calendar;->setFieldsComputed(I)V -HSPLjava/util/Calendar;->setFieldsNormalized(I)V -HSPLjava/util/Calendar;->setLenient(Z)V -HSPLjava/util/Calendar;->setTime(Ljava/util/Date;)V -HSPLjava/util/Calendar;->setTimeInMillis(J)V -HSPLjava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V -HSPLjava/util/Calendar;->setWeekCountData(Ljava/util/Locale;)V -HSPLjava/util/Calendar;->setZoneShared(Z)V -HSPLjava/util/Calendar;->updateTime()V -HSPLjava/util/Collection;->removeIf(Ljava/util/function/Predicate;)Z+]Ljava/util/Collection;Landroid/util/MapCollections$ValuesCollection;,Landroid/util/MapCollections$EntrySet;,Ljava/util/LinkedHashMap$LinkedEntrySet;,Ljava/util/LinkedList;,Landroid/util/MapCollections$KeySet;,Ljava/util/HashSet;,Ljava/util/LinkedHashMap$LinkedValues;,Ljava/util/LinkedHashSet;,Ljava/util/HashMap$EntrySet;]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Landroid/util/MapCollections$MapIterator;,Ljava/util/LinkedList$ListItr;,Ljava/util/LinkedHashMap$LinkedEntryIterator;,Ljava/util/HashMap$KeyIterator;,Ljava/util/LinkedHashMap$LinkedValueIterator;,Ljava/util/LinkedHashMap$LinkedKeyIterator;,Ljava/util/HashMap$EntryIterator; -HSPLjava/util/Collection;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/Collection;->stream()Ljava/util/stream/Stream;+]Ljava/util/Collection;megamorphic_types -HSPLjava/util/Collections$1;-><init>(Ljava/lang/Object;)V -HSPLjava/util/Collections$1;->hasNext()Z -HSPLjava/util/Collections$1;->next()Ljava/lang/Object; -HSPLjava/util/Collections$3;-><init>(Ljava/util/Collection;)V -HSPLjava/util/Collections$3;->hasMoreElements()Z -HSPLjava/util/Collections$3;->nextElement()Ljava/lang/Object; -HSPLjava/util/Collections$CopiesList;-><init>(ILjava/lang/Object;)V -HSPLjava/util/Collections$CopiesList;->get(I)Ljava/lang/Object; -HSPLjava/util/Collections$CopiesList;->size()I -HSPLjava/util/Collections$CopiesList;->toArray()[Ljava/lang/Object; -HSPLjava/util/Collections$EmptyEnumeration;->hasMoreElements()Z -HSPLjava/util/Collections$EmptyIterator;->hasNext()Z -HSPLjava/util/Collections$EmptyList;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$EmptyList;->containsAll(Ljava/util/Collection;)Z -HSPLjava/util/Collections$EmptyList;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Collections$EmptyList;->isEmpty()Z -HSPLjava/util/Collections$EmptyList;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$EmptyList;->listIterator()Ljava/util/ListIterator; -HSPLjava/util/Collections$EmptyList;->readResolve()Ljava/lang/Object; -HSPLjava/util/Collections$EmptyList;->size()I -HSPLjava/util/Collections$EmptyList;->sort(Ljava/util/Comparator;)V -HSPLjava/util/Collections$EmptyList;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/Collections$EmptyList;->toArray()[Ljava/lang/Object; -HSPLjava/util/Collections$EmptyList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Collections$EmptyMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/Collections$EmptyMap;->entrySet()Ljava/util/Set; -HSPLjava/util/Collections$EmptyMap;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Collections$EmptyMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$EmptyMap;->isEmpty()Z -HSPLjava/util/Collections$EmptyMap;->keySet()Ljava/util/Set; -HSPLjava/util/Collections$EmptyMap;->size()I -HSPLjava/util/Collections$EmptyMap;->values()Ljava/util/Collection; -HSPLjava/util/Collections$EmptySet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$EmptySet;->containsAll(Ljava/util/Collection;)Z -HSPLjava/util/Collections$EmptySet;->isEmpty()Z -HSPLjava/util/Collections$EmptySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$EmptySet;->size()I -HSPLjava/util/Collections$EmptySet;->toArray()[Ljava/lang/Object; -HSPLjava/util/Collections$EmptySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Collections$ReverseComparator2;-><init>(Ljava/util/Comparator;)V -HSPLjava/util/Collections$ReverseComparator2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Collections$ReverseComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I -HSPLjava/util/Collections$ReverseComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Collections$SetFromMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/Collections$SetFromMap;->add(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SetFromMap;->clear()V -HSPLjava/util/Collections$SetFromMap;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SetFromMap;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/Collections$SetFromMap;->isEmpty()Z -HSPLjava/util/Collections$SetFromMap;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$SetFromMap;->remove(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SetFromMap;->size()I -HSPLjava/util/Collections$SetFromMap;->toArray()[Ljava/lang/Object; -HSPLjava/util/Collections$SetFromMap;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Collections$SingletonList;-><init>(Ljava/lang/Object;)V -HSPLjava/util/Collections$SingletonList;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SingletonList;->get(I)Ljava/lang/Object; -HSPLjava/util/Collections$SingletonList;->hashCode()I -HSPLjava/util/Collections$SingletonList;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$SingletonList;->size()I -HSPLjava/util/Collections$SingletonMap;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/Collections$SingletonMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SingletonMap;->entrySet()Ljava/util/Set; -HSPLjava/util/Collections$SingletonMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$SingletonMap;->isEmpty()Z -HSPLjava/util/Collections$SingletonMap;->keySet()Ljava/util/Set; -HSPLjava/util/Collections$SingletonMap;->size()I -HSPLjava/util/Collections$SingletonMap;->values()Ljava/util/Collection; -HSPLjava/util/Collections$SingletonSet;-><init>(Ljava/lang/Object;)V -HSPLjava/util/Collections$SingletonSet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SingletonSet;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$SingletonSet;->size()I -HSPLjava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;)V -HSPLjava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Object;)V -HSPLjava/util/Collections$SynchronizedCollection;->add(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SynchronizedCollection;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/Collections$SynchronizedCollection;->clear()V -HSPLjava/util/Collections$SynchronizedCollection;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SynchronizedCollection;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/Collections$SynchronizedCollection;->isEmpty()Z -HSPLjava/util/Collections$SynchronizedCollection;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$SynchronizedCollection;->remove(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SynchronizedCollection;->size()I -HSPLjava/util/Collections$SynchronizedCollection;->toArray()[Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedCollection;->toString()Ljava/lang/String; -HSPLjava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;)V -HSPLjava/util/Collections$SynchronizedList;->get(I)Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/Collections$SynchronizedMap;->clear()V -HSPLjava/util/Collections$SynchronizedMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/Collections$SynchronizedMap;->entrySet()Ljava/util/Set; -HSPLjava/util/Collections$SynchronizedMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedMap;->isEmpty()Z -HSPLjava/util/Collections$SynchronizedMap;->keySet()Ljava/util/Set; -HSPLjava/util/Collections$SynchronizedMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/Collections$SynchronizedMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$SynchronizedMap;->size()I -HSPLjava/util/Collections$SynchronizedMap;->values()Ljava/util/Collection; -HSPLjava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;)V -HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;)V -HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V -HSPLjava/util/Collections$SynchronizedSet;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Collections$UnmodifiableCollection$1;-><init>(Ljava/util/Collections$UnmodifiableCollection;)V -HSPLjava/util/Collections$UnmodifiableCollection$1;->hasNext()Z -HSPLjava/util/Collections$UnmodifiableCollection$1;->next()Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableCollection;-><init>(Ljava/util/Collection;)V -HSPLjava/util/Collections$UnmodifiableCollection;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Collections$UnmodifiableCollection;->containsAll(Ljava/util/Collection;)Z -HSPLjava/util/Collections$UnmodifiableCollection;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/Collections$UnmodifiableCollection;->isEmpty()Z -HSPLjava/util/Collections$UnmodifiableCollection;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$UnmodifiableCollection;->size()I -HSPLjava/util/Collections$UnmodifiableCollection;->stream()Ljava/util/stream/Stream; -HSPLjava/util/Collections$UnmodifiableCollection;->toArray()[Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableCollection;->toString()Ljava/lang/String; -HSPLjava/util/Collections$UnmodifiableList$1;-><init>(Ljava/util/Collections$UnmodifiableList;I)V -HSPLjava/util/Collections$UnmodifiableList$1;->hasNext()Z -HSPLjava/util/Collections$UnmodifiableList$1;->next()Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableList$1;->nextIndex()I -HSPLjava/util/Collections$UnmodifiableList;-><init>(Ljava/util/List;)V -HSPLjava/util/Collections$UnmodifiableList;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Collections$UnmodifiableList;->get(I)Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableList;->hashCode()I -HSPLjava/util/Collections$UnmodifiableList;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/Collections$UnmodifiableList;->listIterator()Ljava/util/ListIterator; -HSPLjava/util/Collections$UnmodifiableList;->listIterator(I)Ljava/util/ListIterator; -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;-><init>(Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;)V -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->hasNext()Z -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->next()Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;->next()Ljava/util/Map$Entry; -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;-><init>(Ljava/util/Map$Entry;)V -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->getKey()Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->getValue()Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;-><init>(Ljava/util/Set;)V -HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/Collections$UnmodifiableMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/Collections$UnmodifiableMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/Collections$UnmodifiableMap;->entrySet()Ljava/util/Set; -HSPLjava/util/Collections$UnmodifiableMap;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Collections$UnmodifiableMap;->forEach(Ljava/util/function/BiConsumer;)V -HSPLjava/util/Collections$UnmodifiableMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Collections$UnmodifiableMap;->hashCode()I -HSPLjava/util/Collections$UnmodifiableMap;->isEmpty()Z -HSPLjava/util/Collections$UnmodifiableMap;->keySet()Ljava/util/Set; -HSPLjava/util/Collections$UnmodifiableMap;->size()I -HSPLjava/util/Collections$UnmodifiableMap;->toString()Ljava/lang/String; -HSPLjava/util/Collections$UnmodifiableMap;->values()Ljava/util/Collection; -HSPLjava/util/Collections$UnmodifiableRandomAccessList;-><init>(Ljava/util/List;)V -HSPLjava/util/Collections$UnmodifiableRandomAccessList;->subList(II)Ljava/util/List; -HSPLjava/util/Collections$UnmodifiableSet;-><init>(Ljava/util/Set;)V -HSPLjava/util/Collections$UnmodifiableSet;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Collections$UnmodifiableSortedMap;-><init>(Ljava/util/SortedMap;)V -HSPLjava/util/Collections$UnmodifiableSortedSet;-><init>(Ljava/util/SortedSet;)V -HSPLjava/util/Collections;->addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z -HSPLjava/util/Collections;->binarySearch(Ljava/util/List;Ljava/lang/Object;)I -HSPLjava/util/Collections;->binarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I -HSPLjava/util/Collections;->disjoint(Ljava/util/Collection;Ljava/util/Collection;)Z -HSPLjava/util/Collections;->emptyEnumeration()Ljava/util/Enumeration; -HSPLjava/util/Collections;->emptyIterator()Ljava/util/Iterator; -HSPLjava/util/Collections;->emptyList()Ljava/util/List; -HSPLjava/util/Collections;->emptyListIterator()Ljava/util/ListIterator; -HSPLjava/util/Collections;->emptyMap()Ljava/util/Map; -HSPLjava/util/Collections;->emptySet()Ljava/util/Set; -HSPLjava/util/Collections;->enumeration(Ljava/util/Collection;)Ljava/util/Enumeration; -HSPLjava/util/Collections;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I -HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I -HSPLjava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList; -HSPLjava/util/Collections;->max(Ljava/util/Collection;)Ljava/lang/Object; -HSPLjava/util/Collections;->max(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object; -HSPLjava/util/Collections;->min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object; -HSPLjava/util/Collections;->nCopies(ILjava/lang/Object;)Ljava/util/List; -HSPLjava/util/Collections;->newSetFromMap(Ljava/util/Map;)Ljava/util/Set; -HSPLjava/util/Collections;->reverse(Ljava/util/List;)V -HSPLjava/util/Collections;->reverseOrder()Ljava/util/Comparator; -HSPLjava/util/Collections;->reverseOrder(Ljava/util/Comparator;)Ljava/util/Comparator; -HSPLjava/util/Collections;->rotate(Ljava/util/List;I)V -HSPLjava/util/Collections;->rotate1(Ljava/util/List;I)V -HSPLjava/util/Collections;->shuffle(Ljava/util/List;)V -HSPLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/Random;)V -HSPLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/random/RandomGenerator;)V+]Ljava/util/random/RandomGenerator;Ljava/util/Random;]Ljava/util/List;missing_types -HSPLjava/util/Collections;->singleton(Ljava/lang/Object;)Ljava/util/Set; -HSPLjava/util/Collections;->singletonIterator(Ljava/lang/Object;)Ljava/util/Iterator; -HSPLjava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/Collections;->singletonMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; -HSPLjava/util/Collections;->sort(Ljava/util/List;)V -HSPLjava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V -HSPLjava/util/Collections;->swap(Ljava/util/List;II)V -HSPLjava/util/Collections;->synchronizedCollection(Ljava/util/Collection;)Ljava/util/Collection; -HSPLjava/util/Collections;->synchronizedCollection(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/Collection; -HSPLjava/util/Collections;->synchronizedList(Ljava/util/List;)Ljava/util/List; -HSPLjava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map; -HSPLjava/util/Collections;->synchronizedSet(Ljava/util/Set;)Ljava/util/Set; -HSPLjava/util/Collections;->synchronizedSet(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set; -HSPLjava/util/Collections;->unmodifiableCollection(Ljava/util/Collection;)Ljava/util/Collection; -HSPLjava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List; -HSPLjava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; -HSPLjava/util/Collections;->unmodifiableSet(Ljava/util/Set;)Ljava/util/Set; -HSPLjava/util/Collections;->unmodifiableSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap; -HSPLjava/util/Collections;->unmodifiableSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet; -HSPLjava/util/ComparableTimSort;-><init>([Ljava/lang/Object;[Ljava/lang/Object;II)V -HSPLjava/util/ComparableTimSort;->binarySort([Ljava/lang/Object;III)V -HSPLjava/util/ComparableTimSort;->countRunAndMakeAscending([Ljava/lang/Object;II)I -HSPLjava/util/ComparableTimSort;->ensureCapacity(I)[Ljava/lang/Object; -HSPLjava/util/ComparableTimSort;->gallopLeft(Ljava/lang/Comparable;[Ljava/lang/Object;III)I -HSPLjava/util/ComparableTimSort;->gallopRight(Ljava/lang/Comparable;[Ljava/lang/Object;III)I -HSPLjava/util/ComparableTimSort;->mergeAt(I)V -HSPLjava/util/ComparableTimSort;->mergeCollapse()V -HSPLjava/util/ComparableTimSort;->mergeForceCollapse()V -HSPLjava/util/ComparableTimSort;->mergeHi(IIII)V -HSPLjava/util/ComparableTimSort;->mergeLo(IIII)V -HSPLjava/util/ComparableTimSort;->minRunLength(I)I -HSPLjava/util/ComparableTimSort;->pushRun(II)V -HSPLjava/util/ComparableTimSort;->reverseRange([Ljava/lang/Object;II)V -HSPLjava/util/ComparableTimSort;->sort([Ljava/lang/Object;II[Ljava/lang/Object;II)V -HSPLjava/util/Comparator$$ExternalSyntheticLambda1;-><init>(Ljava/util/Comparator;Ljava/util/Comparator;)V -HSPLjava/util/Comparator$$ExternalSyntheticLambda1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Comparator$$ExternalSyntheticLambda3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Comparator$$ExternalSyntheticLambda4;-><init>(Ljava/util/function/ToLongFunction;)V -HSPLjava/util/Comparator$$ExternalSyntheticLambda5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Comparator;->comparing(Ljava/util/function/Function;)Ljava/util/Comparator; -HSPLjava/util/Comparator;->comparingInt(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator; -HSPLjava/util/Comparator;->comparingLong(Ljava/util/function/ToLongFunction;)Ljava/util/Comparator; -HSPLjava/util/Comparator;->lambda$comparing$77a9974f$1(Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Comparator;->lambda$comparingInt$7b0bb60$1(Ljava/util/function/ToIntFunction;Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Comparator;->naturalOrder()Ljava/util/Comparator; -HSPLjava/util/Comparator;->nullsFirst(Ljava/util/Comparator;)Ljava/util/Comparator; -HSPLjava/util/Comparator;->reversed()Ljava/util/Comparator; -HSPLjava/util/Comparator;->thenComparing(Ljava/util/Comparator;)Ljava/util/Comparator; -HSPLjava/util/Comparator;->thenComparing(Ljava/util/function/Function;)Ljava/util/Comparator;+]Ljava/util/Comparator;Ljava/util/Comparator$$ExternalSyntheticLambda3; -HSPLjava/util/Comparators$NaturalOrderComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I -HSPLjava/util/Comparators$NaturalOrderComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Comparators$NullComparator;-><init>(ZLjava/util/Comparator;)V -HSPLjava/util/Comparators$NullComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/Currency;-><init>(Landroid/icu/util/Currency;)V -HSPLjava/util/Currency;->getCurrencyCode()Ljava/lang/String; -HSPLjava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency; -HSPLjava/util/Currency;->getInstance(Ljava/util/Locale;)Ljava/util/Currency; -HSPLjava/util/Currency;->getSymbol(Ljava/util/Locale;)Ljava/lang/String; -HSPLjava/util/Date;-><init>()V -HSPLjava/util/Date;-><init>(J)V -HSPLjava/util/Date;->after(Ljava/util/Date;)Z -HSPLjava/util/Date;->before(Ljava/util/Date;)Z -HSPLjava/util/Date;->clone()Ljava/lang/Object; -HSPLjava/util/Date;->compareTo(Ljava/util/Date;)I -HSPLjava/util/Date;->convertToAbbr(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder; -HSPLjava/util/Date;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Date;->getCalendarSystem(J)Lsun/util/calendar/BaseCalendar; -HSPLjava/util/Date;->getDate()I -HSPLjava/util/Date;->getHours()I -HSPLjava/util/Date;->getMillisOf(Ljava/util/Date;)J -HSPLjava/util/Date;->getMinutes()I -HSPLjava/util/Date;->getMonth()I -HSPLjava/util/Date;->getSeconds()I -HSPLjava/util/Date;->getTime()J -HSPLjava/util/Date;->getTimeImpl()J -HSPLjava/util/Date;->getYear()I -HSPLjava/util/Date;->normalize()Lsun/util/calendar/BaseCalendar$Date; -HSPLjava/util/Date;->setTime(J)V -HSPLjava/util/Date;->toInstant()Ljava/time/Instant; -HSPLjava/util/Date;->toString()Ljava/lang/String; -HSPLjava/util/Dictionary;-><init>()V -HSPLjava/util/DualPivotQuicksort;->insertionSort([CII)V -HSPLjava/util/DualPivotQuicksort;->insertionSort([FII)V -HSPLjava/util/DualPivotQuicksort;->insertionSort([III)V -HSPLjava/util/DualPivotQuicksort;->insertionSort([JII)V -HSPLjava/util/DualPivotQuicksort;->sort(Ljava/util/DualPivotQuicksort$Sorter;[FIII)V -HSPLjava/util/DualPivotQuicksort;->sort(Ljava/util/DualPivotQuicksort$Sorter;[IIII)V -HSPLjava/util/DualPivotQuicksort;->sort(Ljava/util/DualPivotQuicksort$Sorter;[JIII)V -HSPLjava/util/DualPivotQuicksort;->sort([CIII)V -HSPLjava/util/DualPivotQuicksort;->sort([FIII)V -HSPLjava/util/DualPivotQuicksort;->sort([IIII)V -HSPLjava/util/DualPivotQuicksort;->sort([JIII)V -HSPLjava/util/DualPivotQuicksort;->tryMergeRuns(Ljava/util/DualPivotQuicksort$Sorter;[III)Z -HSPLjava/util/DualPivotQuicksort;->tryMergeRuns(Ljava/util/DualPivotQuicksort$Sorter;[JII)Z -HSPLjava/util/EnumMap$EntryIterator$Entry;-><init>(Ljava/util/EnumMap$EntryIterator;I)V -HSPLjava/util/EnumMap$EntryIterator$Entry;->checkIndexForEntryUse()V -HSPLjava/util/EnumMap$EntryIterator$Entry;->getKey()Ljava/lang/Enum; -HSPLjava/util/EnumMap$EntryIterator$Entry;->getKey()Ljava/lang/Object; -HSPLjava/util/EnumMap$EntryIterator$Entry;->getValue()Ljava/lang/Object; -HSPLjava/util/EnumMap$EntryIterator;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$EntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/EnumMap$EntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/EnumMap$EntrySet;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$EntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/EnumMap$EntrySet;->size()I -HSPLjava/util/EnumMap$EnumMapIterator;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$EnumMapIterator;->hasNext()Z -HSPLjava/util/EnumMap$KeyIterator;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Enum; -HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/EnumMap$KeySet;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$KeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/EnumMap$KeySet;->size()I -HSPLjava/util/EnumMap$ValueIterator;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$ValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/EnumMap$Values;-><init>(Ljava/util/EnumMap;)V -HSPLjava/util/EnumMap$Values;->iterator()Ljava/util/Iterator; -HSPLjava/util/EnumMap$Values;->size()I -HSPLjava/util/EnumMap;->-$$Nest$fgetsize(Ljava/util/EnumMap;)I -HSPLjava/util/EnumMap;-><init>(Ljava/lang/Class;)V -HSPLjava/util/EnumMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/EnumMap;->clear()V -HSPLjava/util/EnumMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/EnumMap;->entrySet()Ljava/util/Set; -HSPLjava/util/EnumMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/EnumMap;->getKeyUniverse(Ljava/lang/Class;)[Ljava/lang/Enum; -HSPLjava/util/EnumMap;->isValidKey(Ljava/lang/Object;)Z -HSPLjava/util/EnumMap;->keySet()Ljava/util/Set; -HSPLjava/util/EnumMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/EnumMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/EnumMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/EnumMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/EnumMap;->size()I -HSPLjava/util/EnumMap;->typeCheck(Ljava/lang/Enum;)V -HSPLjava/util/EnumMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/EnumMap;->values()Ljava/util/Collection; -HSPLjava/util/EnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V -HSPLjava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->clone()Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->complementOf(Ljava/util/EnumSet;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->copyOf(Ljava/util/Collection;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->copyOf(Ljava/util/EnumSet;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->getUniverse(Ljava/lang/Class;)[Ljava/lang/Enum; -HSPLjava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet; -HSPLjava/util/EnumSet;->typeCheck(Ljava/lang/Enum;)V -HSPLjava/util/Formatter$Conversion;->isCharacter(C)Z -HSPLjava/util/Formatter$Conversion;->isFloat(C)Z -HSPLjava/util/Formatter$Conversion;->isGeneral(C)Z -HSPLjava/util/Formatter$Conversion;->isInteger(C)Z -HSPLjava/util/Formatter$Conversion;->isText(C)Z -HSPLjava/util/Formatter$Conversion;->isValid(C)Z -HSPLjava/util/Formatter$DateTime;->isValid(C)Z -HSPLjava/util/Formatter$FixedString;-><init>(Ljava/util/Formatter;Ljava/lang/String;II)V -HSPLjava/util/Formatter$FixedString;->index()I -HSPLjava/util/Formatter$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$Flags;->-$$Nest$madd(Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags; -HSPLjava/util/Formatter$Flags;-><init>(I)V -HSPLjava/util/Formatter$Flags;->add(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags; -HSPLjava/util/Formatter$Flags;->contains(Ljava/util/Formatter$Flags;)Z -HSPLjava/util/Formatter$Flags;->parse(C)Ljava/util/Formatter$Flags; -HSPLjava/util/Formatter$Flags;->parse(Ljava/lang/String;II)Ljava/util/Formatter$Flags; -HSPLjava/util/Formatter$Flags;->valueOf()I -HSPLjava/util/Formatter$FormatSpecifier;-><init>(Ljava/util/Formatter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/Formatter$FormatSpecifier;->addZeros(Ljava/lang/StringBuilder;I)V -HSPLjava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I -HSPLjava/util/Formatter$FormatSpecifier;->appendJustified(Ljava/lang/Appendable;Ljava/lang/CharSequence;)V+]Ljava/util/Formatter$Flags;Ljava/util/Formatter$Flags;]Ljava/lang/CharSequence;Ljava/lang/String;,Ljava/lang/StringBuilder;]Ljava/lang/Appendable;megamorphic_types -HSPLjava/util/Formatter$FormatSpecifier;->checkBadFlags([Ljava/util/Formatter$Flags;)V -HSPLjava/util/Formatter$FormatSpecifier;->checkCharacter()V -HSPLjava/util/Formatter$FormatSpecifier;->checkDateTime()V -HSPLjava/util/Formatter$FormatSpecifier;->checkFloat()V -HSPLjava/util/Formatter$FormatSpecifier;->checkGeneral()V -HSPLjava/util/Formatter$FormatSpecifier;->checkInteger()V -HSPLjava/util/Formatter$FormatSpecifier;->checkNumeric()V -HSPLjava/util/Formatter$FormatSpecifier;->checkText()V -HSPLjava/util/Formatter$FormatSpecifier;->conversion(C)V -HSPLjava/util/Formatter$FormatSpecifier;->getZero(Ljava/util/Locale;)C -HSPLjava/util/Formatter$FormatSpecifier;->index()I -HSPLjava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)V -HSPLjava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder; -HSPLjava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder; -HSPLjava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;ILjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder; -HSPLjava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(DLjava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(FLjava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(ILjava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(JLjava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/String;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V -HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/util/Calendar;CLjava/util/Locale;)Ljava/lang/Appendable; -HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigInteger;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/util/Calendar;CLjava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->printBoolean(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->printCharacter(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->printDateTime(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->printFloat(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->printInteger(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V -HSPLjava/util/Formatter$FormatSpecifier;->trailingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder; -HSPLjava/util/Formatter$FormatSpecifier;->trailingZeros(Ljava/lang/StringBuilder;I)V -HSPLjava/util/Formatter$FormatSpecifier;->width(Ljava/lang/String;)V -HSPLjava/util/Formatter$FormatSpecifierParser;-><init>(Ljava/util/Formatter;Ljava/lang/String;I)V -HSPLjava/util/Formatter$FormatSpecifierParser;->advance()C -HSPLjava/util/Formatter$FormatSpecifierParser;->back(I)V -HSPLjava/util/Formatter$FormatSpecifierParser;->getEndIdx()I -HSPLjava/util/Formatter$FormatSpecifierParser;->getFormatSpecifier()Ljava/util/Formatter$FormatSpecifier; -HSPLjava/util/Formatter$FormatSpecifierParser;->isEnd()Z -HSPLjava/util/Formatter$FormatSpecifierParser;->nextInt()Ljava/lang/String; -HSPLjava/util/Formatter$FormatSpecifierParser;->nextIsInt()Z -HSPLjava/util/Formatter$FormatSpecifierParser;->peek()C -HSPLjava/util/Formatter;->-$$Nest$fgeta(Ljava/util/Formatter;)Ljava/lang/Appendable; -HSPLjava/util/Formatter;->-$$Nest$smisStrictValidationEnabled()Z -HSPLjava/util/Formatter;-><init>()V -HSPLjava/util/Formatter;-><init>(Ljava/lang/Appendable;)V -HSPLjava/util/Formatter;-><init>(Ljava/lang/Appendable;Ljava/util/Locale;)V -HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;)V -HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V -HSPLjava/util/Formatter;->close()V -HSPLjava/util/Formatter;->ensureOpen()V -HSPLjava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; -HSPLjava/util/Formatter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter; -HSPLjava/util/Formatter;->isStrictValidationEnabled()Z -HSPLjava/util/Formatter;->locale()Ljava/util/Locale; -HSPLjava/util/Formatter;->nonNullAppendable(Ljava/lang/Appendable;)Ljava/lang/Appendable; -HSPLjava/util/Formatter;->out()Ljava/lang/Appendable; -HSPLjava/util/Formatter;->parse(Ljava/lang/String;)Ljava/util/List; -HSPLjava/util/Formatter;->toString()Ljava/lang/String; -HSPLjava/util/Formatter;->zero()C+]Llibcore/icu/DecimalFormatData;Llibcore/icu/DecimalFormatData; -HSPLjava/util/GregorianCalendar;-><init>()V -HSPLjava/util/GregorianCalendar;-><init>(IIIIII)V -HSPLjava/util/GregorianCalendar;-><init>(IIIIIII)V -HSPLjava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;)V -HSPLjava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V -HSPLjava/util/GregorianCalendar;->add(II)V -HSPLjava/util/GregorianCalendar;->adjustDstOffsetForInvalidWallClock(JLjava/util/TimeZone;I)I -HSPLjava/util/GregorianCalendar;->adjustForZoneAndDaylightSavingsTime(IJLjava/util/TimeZone;)J -HSPLjava/util/GregorianCalendar;->clone()Ljava/lang/Object; -HSPLjava/util/GregorianCalendar;->computeFields()V -HSPLjava/util/GregorianCalendar;->computeFields(II)I -HSPLjava/util/GregorianCalendar;->computeTime()V -HSPLjava/util/GregorianCalendar;->getActualMaximum(I)I -HSPLjava/util/GregorianCalendar;->getCalendarDate(J)Lsun/util/calendar/BaseCalendar$Date; -HSPLjava/util/GregorianCalendar;->getCurrentFixedDate()J -HSPLjava/util/GregorianCalendar;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J -HSPLjava/util/GregorianCalendar;->getGregorianCutoverDate()Lsun/util/calendar/BaseCalendar$Date; -HSPLjava/util/GregorianCalendar;->getJulianCalendarSystem()Lsun/util/calendar/BaseCalendar; -HSPLjava/util/GregorianCalendar;->getLeastMaximum(I)I -HSPLjava/util/GregorianCalendar;->getMaximum(I)I -HSPLjava/util/GregorianCalendar;->getMinimum(I)I -HSPLjava/util/GregorianCalendar;->getNormalizedCalendar()Ljava/util/GregorianCalendar; -HSPLjava/util/GregorianCalendar;->getTimeZone()Ljava/util/TimeZone; -HSPLjava/util/GregorianCalendar;->getWeekNumber(JJ)I -HSPLjava/util/GregorianCalendar;->internalGetEra()I -HSPLjava/util/GregorianCalendar;->isCutoverYear(I)Z -HSPLjava/util/GregorianCalendar;->isLeapYear(I)Z -HSPLjava/util/GregorianCalendar;->monthLength(I)I -HSPLjava/util/GregorianCalendar;->monthLength(II)I -HSPLjava/util/GregorianCalendar;->pinDayOfMonth()V -HSPLjava/util/GregorianCalendar;->setGregorianChange(J)V -HSPLjava/util/GregorianCalendar;->setGregorianChange(Ljava/util/Date;)V -HSPLjava/util/GregorianCalendar;->setTimeZone(Ljava/util/TimeZone;)V -HSPLjava/util/HashMap$EntryIterator;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$EntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/HashMap$EntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/HashMap$EntrySet;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$EntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/HashMap$EntrySet;->size()I -HSPLjava/util/HashMap$EntrySet;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/HashMap$EntrySpliterator;-><init>(Ljava/util/HashMap;IIII)V -HSPLjava/util/HashMap$EntrySpliterator;->characteristics()I -HSPLjava/util/HashMap$HashIterator;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$HashIterator;->hasNext()Z -HSPLjava/util/HashMap$HashIterator;->nextNode()Ljava/util/HashMap$Node; -HSPLjava/util/HashMap$HashIterator;->remove()V -HSPLjava/util/HashMap$HashMapSpliterator;-><init>(Ljava/util/HashMap;IIII)V -HSPLjava/util/HashMap$HashMapSpliterator;->estimateSize()J -HSPLjava/util/HashMap$HashMapSpliterator;->getFence()I -HSPLjava/util/HashMap$KeyIterator;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$KeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/HashMap$KeySet;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$KeySet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/HashMap$KeySet;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/HashMap$KeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/HashMap$KeySet;->remove(Ljava/lang/Object;)Z -HSPLjava/util/HashMap$KeySet;->size()I -HSPLjava/util/HashMap$KeySet;->toArray()[Ljava/lang/Object; -HSPLjava/util/HashMap$KeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/HashMap$KeySpliterator;-><init>(Ljava/util/HashMap;IIII)V -HSPLjava/util/HashMap$KeySpliterator;->characteristics()I -HSPLjava/util/HashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/HashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/HashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V -HSPLjava/util/HashMap$Node;->getKey()Ljava/lang/Object; -HSPLjava/util/HashMap$Node;->getValue()Ljava/lang/Object; -HSPLjava/util/HashMap$Node;->hashCode()I -HSPLjava/util/HashMap$Node;->setValue(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/HashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V -HSPLjava/util/HashMap$TreeNode;->balanceInsertion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap$TreeNode;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap$TreeNode;->getTreeNode(ILjava/lang/Object;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap$TreeNode;->moveRootToFront([Ljava/util/HashMap$Node;Ljava/util/HashMap$TreeNode;)V -HSPLjava/util/HashMap$TreeNode;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap$TreeNode;->rotateLeft(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap$TreeNode;->rotateRight(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap$TreeNode;->split(Ljava/util/HashMap;[Ljava/util/HashMap$Node;II)V -HSPLjava/util/HashMap$TreeNode;->treeify([Ljava/util/HashMap$Node;)V -HSPLjava/util/HashMap$TreeNode;->untreeify(Ljava/util/HashMap;)Ljava/util/HashMap$Node; -HSPLjava/util/HashMap$ValueIterator;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$ValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/HashMap$ValueSpliterator;-><init>(Ljava/util/HashMap;IIII)V -HSPLjava/util/HashMap$ValueSpliterator;->characteristics()I -HSPLjava/util/HashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/HashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/HashMap$Values;-><init>(Ljava/util/HashMap;)V -HSPLjava/util/HashMap$Values;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/HashMap$Values;->iterator()Ljava/util/Iterator; -HSPLjava/util/HashMap$Values;->size()I -HSPLjava/util/HashMap$Values;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/HashMap$Values;->toArray()[Ljava/lang/Object; -HSPLjava/util/HashMap$Values;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/HashMap;-><init>()V -HSPLjava/util/HashMap;-><init>(I)V -HSPLjava/util/HashMap;-><init>(IF)V -HSPLjava/util/HashMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/HashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V -HSPLjava/util/HashMap;->afterNodeInsertion(Z)V -HSPLjava/util/HashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V -HSPLjava/util/HashMap;->calculateHashMapCapacity(I)I -HSPLjava/util/HashMap;->capacity()I -HSPLjava/util/HashMap;->clear()V -HSPLjava/util/HashMap;->clone()Ljava/lang/Object; -HSPLjava/util/HashMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; -HSPLjava/util/HashMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/HashMap;->containsValue(Ljava/lang/Object;)Z -HSPLjava/util/HashMap;->entrySet()Ljava/util/Set; -HSPLjava/util/HashMap;->forEach(Ljava/util/function/BiConsumer;)V -HSPLjava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/HashMap;->getNode(Ljava/lang/Object;)Ljava/util/HashMap$Node; -HSPLjava/util/HashMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/HashMap;->hash(Ljava/lang/Object;)I -HSPLjava/util/HashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V -HSPLjava/util/HashMap;->isEmpty()Z -HSPLjava/util/HashMap;->keySet()Ljava/util/Set; -HSPLjava/util/HashMap;->keysToArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/HashMap;->loadFactor()F -HSPLjava/util/HashMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; -HSPLjava/util/HashMap;->newHashMap(I)Ljava/util/HashMap; -HSPLjava/util/HashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node; -HSPLjava/util/HashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap;->prepareArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/HashMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/HashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/HashMap;->putMapEntries(Ljava/util/Map;Z)V -HSPLjava/util/HashMap;->putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; -HSPLjava/util/HashMap;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/util/HashMap;->reinitialize()V -HSPLjava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/HashMap;->removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node; -HSPLjava/util/HashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node; -HSPLjava/util/HashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/HashMap;->resize()[Ljava/util/HashMap$Node; -HSPLjava/util/HashMap;->size()I -HSPLjava/util/HashMap;->tableSizeFor(I)I -HSPLjava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V -HSPLjava/util/HashMap;->values()Ljava/util/Collection; -HSPLjava/util/HashMap;->valuesToArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/HashMap;->writeObject(Ljava/io/ObjectOutputStream;)V -HSPLjava/util/HashSet;-><init>()V -HSPLjava/util/HashSet;-><init>(I)V -HSPLjava/util/HashSet;-><init>(IF)V -HSPLjava/util/HashSet;-><init>(IFZ)V -HSPLjava/util/HashSet;-><init>(Ljava/util/Collection;)V -HSPLjava/util/HashSet;->add(Ljava/lang/Object;)Z -HSPLjava/util/HashSet;->clear()V -HSPLjava/util/HashSet;->clone()Ljava/lang/Object; -HSPLjava/util/HashSet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/HashSet;->isEmpty()Z -HSPLjava/util/HashSet;->iterator()Ljava/util/Iterator; -HSPLjava/util/HashSet;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/util/HashSet;->remove(Ljava/lang/Object;)Z -HSPLjava/util/HashSet;->size()I -HSPLjava/util/HashSet;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/HashSet;->toArray()[Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; -HSPLjava/util/HashSet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;+]Ljava/util/HashMap;Ljava/util/HashMap;,Ljava/util/LinkedHashMap; -HSPLjava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V -HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;)V -HSPLjava/util/Hashtable$EntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/Hashtable$Enumerator;-><init>(Ljava/util/Hashtable;IZ)V -HSPLjava/util/Hashtable$Enumerator;->hasMoreElements()Z -HSPLjava/util/Hashtable$Enumerator;->hasNext()Z -HSPLjava/util/Hashtable$Enumerator;->next()Ljava/lang/Object; -HSPLjava/util/Hashtable$Enumerator;->nextElement()Ljava/lang/Object; -HSPLjava/util/Hashtable$HashtableEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/Hashtable$HashtableEntry;)V -HSPLjava/util/Hashtable$HashtableEntry;->clone()Ljava/lang/Object; -HSPLjava/util/Hashtable$HashtableEntry;->getKey()Ljava/lang/Object; -HSPLjava/util/Hashtable$HashtableEntry;->getValue()Ljava/lang/Object; -HSPLjava/util/Hashtable$KeySet;-><init>(Ljava/util/Hashtable;)V -HSPLjava/util/Hashtable$KeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/Hashtable$KeySet;->size()I -HSPLjava/util/Hashtable$ValueCollection;-><init>(Ljava/util/Hashtable;)V -HSPLjava/util/Hashtable$ValueCollection;->iterator()Ljava/util/Iterator; -HSPLjava/util/Hashtable$ValueCollection;->size()I -HSPLjava/util/Hashtable;->-$$Nest$fgetmodCount(Ljava/util/Hashtable;)I -HSPLjava/util/Hashtable;->-$$Nest$fgettable(Ljava/util/Hashtable;)[Ljava/util/Hashtable$HashtableEntry; -HSPLjava/util/Hashtable;-><init>()V -HSPLjava/util/Hashtable;-><init>(I)V -HSPLjava/util/Hashtable;-><init>(IF)V -HSPLjava/util/Hashtable;->addEntry(ILjava/lang/Object;Ljava/lang/Object;I)V -HSPLjava/util/Hashtable;->clear()V -HSPLjava/util/Hashtable;->clone()Ljava/lang/Object; -HSPLjava/util/Hashtable;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/Hashtable;->entrySet()Ljava/util/Set; -HSPLjava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Hashtable;->getEnumeration(I)Ljava/util/Enumeration; -HSPLjava/util/Hashtable;->getIterator(I)Ljava/util/Iterator; -HSPLjava/util/Hashtable;->isEmpty()Z -HSPLjava/util/Hashtable;->keySet()Ljava/util/Set; -HSPLjava/util/Hashtable;->keys()Ljava/util/Enumeration; -HSPLjava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Hashtable;->rehash()V -HSPLjava/util/Hashtable;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Hashtable;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/Hashtable;->size()I -HSPLjava/util/Hashtable;->values()Ljava/util/Collection; -HSPLjava/util/IdentityHashMap$EntryIterator$Entry;-><init>(Ljava/util/IdentityHashMap$EntryIterator;I)V -HSPLjava/util/IdentityHashMap$EntryIterator$Entry;->checkIndexForEntryUse()V -HSPLjava/util/IdentityHashMap$EntryIterator$Entry;->getKey()Ljava/lang/Object; -HSPLjava/util/IdentityHashMap$EntryIterator$Entry;->getValue()Ljava/lang/Object; -HSPLjava/util/IdentityHashMap$EntryIterator;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$EntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/IdentityHashMap$EntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/IdentityHashMap$EntrySet;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$EntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/IdentityHashMap$EntrySet;->size()I -HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;->hasNext()Z -HSPLjava/util/IdentityHashMap$IdentityHashMapIterator;->nextIndex()I -HSPLjava/util/IdentityHashMap$KeyIterator;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$KeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/IdentityHashMap$KeySet;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$KeySet;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$KeySet-IA;)V -HSPLjava/util/IdentityHashMap$KeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/IdentityHashMap$KeySet;->size()I -HSPLjava/util/IdentityHashMap$ValueIterator;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$ValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/IdentityHashMap$Values;-><init>(Ljava/util/IdentityHashMap;)V -HSPLjava/util/IdentityHashMap$Values;->iterator()Ljava/util/Iterator; -HSPLjava/util/IdentityHashMap;-><init>()V -HSPLjava/util/IdentityHashMap;-><init>(I)V -HSPLjava/util/IdentityHashMap;->capacity(I)I -HSPLjava/util/IdentityHashMap;->clear()V -HSPLjava/util/IdentityHashMap;->closeDeletion(I)V -HSPLjava/util/IdentityHashMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/IdentityHashMap;->entrySet()Ljava/util/Set; -HSPLjava/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/IdentityHashMap;->hash(Ljava/lang/Object;I)I -HSPLjava/util/IdentityHashMap;->init(I)V -HSPLjava/util/IdentityHashMap;->isEmpty()Z -HSPLjava/util/IdentityHashMap;->keySet()Ljava/util/Set; -HSPLjava/util/IdentityHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/IdentityHashMap;->nextKeyIndex(II)I -HSPLjava/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/IdentityHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/IdentityHashMap;->resize(I)Z -HSPLjava/util/IdentityHashMap;->size()I -HSPLjava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/IdentityHashMap;->values()Ljava/util/Collection; -HSPLjava/util/ImmutableCollections$AbstractImmutableCollection;-><init>()V -HSPLjava/util/ImmutableCollections$AbstractImmutableList;-><init>()V -HSPLjava/util/ImmutableCollections$AbstractImmutableList;->iterator()Ljava/util/Iterator; -HSPLjava/util/ImmutableCollections$AbstractImmutableMap;-><init>()V -HSPLjava/util/ImmutableCollections$AbstractImmutableSet;-><init>()V -HSPLjava/util/ImmutableCollections$Access$1;-><init>()V -HSPLjava/util/ImmutableCollections$Access$1;->listFromTrustedArray([Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/ImmutableCollections$Access;-><clinit>()V -HSPLjava/util/ImmutableCollections$List12;-><init>(Ljava/lang/Object;)V -HSPLjava/util/ImmutableCollections$List12;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/ImmutableCollections$List12;->get(I)Ljava/lang/Object; -HSPLjava/util/ImmutableCollections$List12;->size()I -HSPLjava/util/ImmutableCollections$ListItr;-><init>(Ljava/util/List;I)V -HSPLjava/util/ImmutableCollections$ListItr;->hasNext()Z -HSPLjava/util/ImmutableCollections$ListItr;->next()Ljava/lang/Object; -HSPLjava/util/ImmutableCollections$ListN;-><init>([Ljava/lang/Object;Z)V -HSPLjava/util/ImmutableCollections$ListN;-><init>([Ljava/lang/Object;ZLjava/util/ImmutableCollections$ListN-IA;)V -HSPLjava/util/ImmutableCollections$ListN;->get(I)Ljava/lang/Object; -HSPLjava/util/ImmutableCollections$ListN;->size()I -HSPLjava/util/ImmutableCollections$Map1;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/ImmutableCollections$Map1;->entrySet()Ljava/util/Set; -HSPLjava/util/ImmutableCollections$MapN;-><init>([Ljava/lang/Object;)V -HSPLjava/util/ImmutableCollections$MapN;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/ImmutableCollections$MapN;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/ImmutableCollections$MapN;->probe(Ljava/lang/Object;)I -HSPLjava/util/ImmutableCollections$SetN;-><init>([Ljava/lang/Object;)V -HSPLjava/util/ImmutableCollections$SetN;->contains(Ljava/lang/Object;)Z -HSPLjava/util/ImmutableCollections$SetN;->probe(Ljava/lang/Object;)I -HSPLjava/util/ImmutableCollections;-><clinit>()V -HSPLjava/util/ImmutableCollections;->listCopy(Ljava/util/Collection;)Ljava/util/List; -HSPLjava/util/ImmutableCollections;->listFromTrustedArray([Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/function/Consumer;megamorphic_types]Ljava/util/Iterator;Landroid/util/MapCollections$ArrayIterator;,Ljava/util/AbstractMap$2$1;,Ljava/util/AbstractList$Itr;,Ljava/util/LinkedHashMap$LinkedValueIterator; -HSPLjava/util/JumboEnumSet$EnumSetIterator;-><init>(Ljava/util/JumboEnumSet;)V -HSPLjava/util/JumboEnumSet$EnumSetIterator;->hasNext()Z -HSPLjava/util/JumboEnumSet$EnumSetIterator;->next()Ljava/lang/Enum; -HSPLjava/util/JumboEnumSet$EnumSetIterator;->next()Ljava/lang/Object; -HSPLjava/util/JumboEnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V -HSPLjava/util/JumboEnumSet;->add(Ljava/lang/Enum;)Z -HSPLjava/util/JumboEnumSet;->add(Ljava/lang/Object;)Z -HSPLjava/util/JumboEnumSet;->addAll()V -HSPLjava/util/JumboEnumSet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/JumboEnumSet;->iterator()Ljava/util/Iterator; -HSPLjava/util/JumboEnumSet;->size()I -HSPLjava/util/KeyValueHolder;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/KeyValueHolder;->getKey()Ljava/lang/Object; -HSPLjava/util/KeyValueHolder;->getValue()Ljava/lang/Object; -HSPLjava/util/LinkedHashMap$Entry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V -HSPLjava/util/LinkedHashMap$LinkedEntryIterator;-><init>(Ljava/util/LinkedHashMap;Z)V -HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/LinkedHashMap$LinkedEntrySet;-><init>(Ljava/util/LinkedHashMap;Z)V -HSPLjava/util/LinkedHashMap$LinkedEntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/LinkedHashMap$LinkedEntrySet;->size()I -HSPLjava/util/LinkedHashMap$LinkedHashIterator;-><init>(Ljava/util/LinkedHashMap;Z)V -HSPLjava/util/LinkedHashMap$LinkedHashIterator;->hasNext()Z -HSPLjava/util/LinkedHashMap$LinkedHashIterator;->nextNode()Ljava/util/LinkedHashMap$Entry; -HSPLjava/util/LinkedHashMap$LinkedHashIterator;->remove()V -HSPLjava/util/LinkedHashMap$LinkedKeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/LinkedHashMap$LinkedKeySet;-><init>(Ljava/util/LinkedHashMap;Z)V -HSPLjava/util/LinkedHashMap$LinkedKeySet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/LinkedHashMap$LinkedKeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/LinkedHashMap$LinkedKeySet;->size()I -HSPLjava/util/LinkedHashMap$LinkedKeySet;->toArray()[Ljava/lang/Object; -HSPLjava/util/LinkedHashMap$LinkedValueIterator;-><init>(Ljava/util/LinkedHashMap;Z)V -HSPLjava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/LinkedHashMap$LinkedValues;-><init>(Ljava/util/LinkedHashMap;Z)V -HSPLjava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator; -HSPLjava/util/LinkedHashMap$LinkedValues;->size()I -HSPLjava/util/LinkedHashMap$LinkedValues;->toArray()[Ljava/lang/Object; -HSPLjava/util/LinkedHashMap;-><init>()V -HSPLjava/util/LinkedHashMap;-><init>(I)V -HSPLjava/util/LinkedHashMap;-><init>(IF)V -HSPLjava/util/LinkedHashMap;-><init>(IFZ)V -HSPLjava/util/LinkedHashMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/LinkedHashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V -HSPLjava/util/LinkedHashMap;->afterNodeInsertion(Z)V -HSPLjava/util/LinkedHashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V -HSPLjava/util/LinkedHashMap;->clear()V -HSPLjava/util/LinkedHashMap;->eldest()Ljava/util/Map$Entry; -HSPLjava/util/LinkedHashMap;->entrySet()Ljava/util/Set; -HSPLjava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/LinkedHashMap;->keySet()Ljava/util/Set; -HSPLjava/util/LinkedHashMap;->keysToArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/LinkedHashMap;->keysToArray([Ljava/lang/Object;Z)[Ljava/lang/Object; -HSPLjava/util/LinkedHashMap;->linkNodeAtEnd(Ljava/util/LinkedHashMap$Entry;)V -HSPLjava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node; -HSPLjava/util/LinkedHashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/LinkedHashMap;->reinitialize()V -HSPLjava/util/LinkedHashMap;->removeEldestEntry(Ljava/util/Map$Entry;)Z -HSPLjava/util/LinkedHashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode; -HSPLjava/util/LinkedHashMap;->sequencedEntrySet()Ljava/util/SequencedSet; -HSPLjava/util/LinkedHashMap;->sequencedKeySet()Ljava/util/SequencedSet; -HSPLjava/util/LinkedHashMap;->sequencedValues()Ljava/util/SequencedCollection; -HSPLjava/util/LinkedHashMap;->values()Ljava/util/Collection; -HSPLjava/util/LinkedHashMap;->valuesToArray([Ljava/lang/Object;Z)[Ljava/lang/Object; -HSPLjava/util/LinkedHashSet;-><init>()V -HSPLjava/util/LinkedHashSet;-><init>(I)V -HSPLjava/util/LinkedHashSet;-><init>(Ljava/util/Collection;)V -HSPLjava/util/LinkedList$ListItr;-><init>(Ljava/util/LinkedList;I)V -HSPLjava/util/LinkedList$ListItr;->add(Ljava/lang/Object;)V -HSPLjava/util/LinkedList$ListItr;->checkForComodification()V -HSPLjava/util/LinkedList$ListItr;->hasNext()Z -HSPLjava/util/LinkedList$ListItr;->hasPrevious()Z -HSPLjava/util/LinkedList$ListItr;->next()Ljava/lang/Object; -HSPLjava/util/LinkedList$ListItr;->previous()Ljava/lang/Object; -HSPLjava/util/LinkedList$ListItr;->remove()V -HSPLjava/util/LinkedList$ListItr;->set(Ljava/lang/Object;)V -HSPLjava/util/LinkedList$Node;-><init>(Ljava/util/LinkedList$Node;Ljava/lang/Object;Ljava/util/LinkedList$Node;)V -HSPLjava/util/LinkedList;-><init>()V -HSPLjava/util/LinkedList;-><init>(Ljava/util/Collection;)V -HSPLjava/util/LinkedList;->add(ILjava/lang/Object;)V -HSPLjava/util/LinkedList;->add(Ljava/lang/Object;)Z -HSPLjava/util/LinkedList;->addAll(ILjava/util/Collection;)Z -HSPLjava/util/LinkedList;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/LinkedList;->addFirst(Ljava/lang/Object;)V -HSPLjava/util/LinkedList;->addLast(Ljava/lang/Object;)V -HSPLjava/util/LinkedList;->checkElementIndex(I)V -HSPLjava/util/LinkedList;->checkPositionIndex(I)V -HSPLjava/util/LinkedList;->clear()V -HSPLjava/util/LinkedList;->contains(Ljava/lang/Object;)Z -HSPLjava/util/LinkedList;->descendingIterator()Ljava/util/Iterator; -HSPLjava/util/LinkedList;->get(I)Ljava/lang/Object; -HSPLjava/util/LinkedList;->getFirst()Ljava/lang/Object; -HSPLjava/util/LinkedList;->getLast()Ljava/lang/Object; -HSPLjava/util/LinkedList;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/LinkedList;->isElementIndex(I)Z -HSPLjava/util/LinkedList;->isPositionIndex(I)Z -HSPLjava/util/LinkedList;->linkBefore(Ljava/lang/Object;Ljava/util/LinkedList$Node;)V -HSPLjava/util/LinkedList;->linkFirst(Ljava/lang/Object;)V -HSPLjava/util/LinkedList;->linkLast(Ljava/lang/Object;)V -HSPLjava/util/LinkedList;->listIterator(I)Ljava/util/ListIterator; -HSPLjava/util/LinkedList;->node(I)Ljava/util/LinkedList$Node; -HSPLjava/util/LinkedList;->offer(Ljava/lang/Object;)Z -HSPLjava/util/LinkedList;->peek()Ljava/lang/Object; -HSPLjava/util/LinkedList;->peekFirst()Ljava/lang/Object; -HSPLjava/util/LinkedList;->peekLast()Ljava/lang/Object; -HSPLjava/util/LinkedList;->poll()Ljava/lang/Object; -HSPLjava/util/LinkedList;->pollFirst()Ljava/lang/Object; -HSPLjava/util/LinkedList;->pollLast()Ljava/lang/Object; -HSPLjava/util/LinkedList;->pop()Ljava/lang/Object; -HSPLjava/util/LinkedList;->push(Ljava/lang/Object;)V -HSPLjava/util/LinkedList;->remove()Ljava/lang/Object; -HSPLjava/util/LinkedList;->remove(I)Ljava/lang/Object; -HSPLjava/util/LinkedList;->remove(Ljava/lang/Object;)Z -HSPLjava/util/LinkedList;->removeFirst()Ljava/lang/Object; -HSPLjava/util/LinkedList;->removeLast()Ljava/lang/Object; -HSPLjava/util/LinkedList;->set(ILjava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/LinkedList;->size()I -HSPLjava/util/LinkedList;->toArray()[Ljava/lang/Object; -HSPLjava/util/LinkedList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/LinkedList;->unlink(Ljava/util/LinkedList$Node;)Ljava/lang/Object; -HSPLjava/util/LinkedList;->unlinkFirst(Ljava/util/LinkedList$Node;)Ljava/lang/Object; -HSPLjava/util/LinkedList;->unlinkLast(Ljava/util/LinkedList$Node;)Ljava/lang/Object; -HSPLjava/util/List;->copyOf(Ljava/util/Collection;)Ljava/util/List; -HSPLjava/util/List;->of()Ljava/util/List; -HSPLjava/util/List;->of(Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/List;->of(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/List;->of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/List;->of([Ljava/lang/Object;)Ljava/util/List; -HSPLjava/util/List;->sort(Ljava/util/Comparator;)V+]Ljava/util/ListIterator;Ljava/util/ArrayList$SubList$1;,Ljava/util/LinkedList$ListItr;]Ljava/util/List;Ljava/util/ArrayList$SubList;,Ljava/util/LinkedList; -HSPLjava/util/List;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/Locale$Builder;-><init>()V -HSPLjava/util/Locale$Builder;->build()Ljava/util/Locale; -HSPLjava/util/Locale$Builder;->setLanguage(Ljava/lang/String;)Ljava/util/Locale$Builder; -HSPLjava/util/Locale$Builder;->setRegion(Ljava/lang/String;)Ljava/util/Locale$Builder; -HSPLjava/util/Locale$Builder;->setScript(Ljava/lang/String;)Ljava/util/Locale$Builder; -HSPLjava/util/Locale$Builder;->setVariant(Ljava/lang/String;)Ljava/util/Locale$Builder; -HSPLjava/util/Locale$Cache;->-$$Nest$sfgetLOCALECACHE()Ljava/util/Locale$Cache; -HSPLjava/util/Locale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Locale$Cache;->createObject(Ljava/lang/Object;)Ljava/util/Locale; -HSPLjava/util/Locale$LocaleKey;->-$$Nest$fgetbase(Ljava/util/Locale$LocaleKey;)Lsun/util/locale/BaseLocale; -HSPLjava/util/Locale$LocaleKey;->-$$Nest$fgetexts(Ljava/util/Locale$LocaleKey;)Lsun/util/locale/LocaleExtensions; -HSPLjava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V -HSPLjava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;Ljava/util/Locale$LocaleKey-IA;)V -HSPLjava/util/Locale$LocaleKey;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Locale$LocaleKey;->hashCode()I -HSPLjava/util/Locale;-><init>(Ljava/lang/String;)V -HSPLjava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V -HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;Ljava/util/Locale-IA;)V -HSPLjava/util/Locale;->cleanCache()V -HSPLjava/util/Locale;->clone()Ljava/lang/Object; -HSPLjava/util/Locale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/Locale;->equals(Ljava/lang/Object;)Z -HSPLjava/util/Locale;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale; -HSPLjava/util/Locale;->getAvailableLocales()[Ljava/util/Locale; -HSPLjava/util/Locale;->getBaseLocale()Lsun/util/locale/BaseLocale; -HSPLjava/util/Locale;->getCompatibilityExtensions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions; -HSPLjava/util/Locale;->getCountry()Ljava/lang/String; -HSPLjava/util/Locale;->getDefault()Ljava/util/Locale; -HSPLjava/util/Locale;->getDefault(Ljava/util/Locale$Category;)Ljava/util/Locale; -HSPLjava/util/Locale;->getDisplayCountry(Ljava/util/Locale;)Ljava/lang/String; -HSPLjava/util/Locale;->getDisplayLanguage()Ljava/lang/String; -HSPLjava/util/Locale;->getDisplayLanguage(Ljava/util/Locale;)Ljava/lang/String; -HSPLjava/util/Locale;->getExtensionKeys()Ljava/util/Set; -HSPLjava/util/Locale;->getISO3Country()Ljava/lang/String; -HSPLjava/util/Locale;->getISO3Language()Ljava/lang/String; -HSPLjava/util/Locale;->getISOLanguages()[Ljava/lang/String; -HSPLjava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale; -HSPLjava/util/Locale;->getInstance(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale; -HSPLjava/util/Locale;->getLanguage()Ljava/lang/String; -HSPLjava/util/Locale;->getScript()Ljava/lang/String; -HSPLjava/util/Locale;->getUnicodeLocaleType(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/Locale;->getVariant()Ljava/lang/String; -HSPLjava/util/Locale;->hasExtensions()Z -HSPLjava/util/Locale;->hashCode()I -HSPLjava/util/Locale;->isUnicodeExtensionKey(Ljava/lang/String;)Z -HSPLjava/util/Locale;->isValidBcp47Alpha(Ljava/lang/String;II)Z -HSPLjava/util/Locale;->normalizeAndValidateLanguage(Ljava/lang/String;Z)Ljava/lang/String; -HSPLjava/util/Locale;->normalizeAndValidateRegion(Ljava/lang/String;Z)Ljava/lang/String; -HSPLjava/util/Locale;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/util/Locale;->readResolve()Ljava/lang/Object; -HSPLjava/util/Locale;->setDefault(Ljava/util/Locale$Category;Ljava/util/Locale;)V -HSPLjava/util/Locale;->setDefault(Ljava/util/Locale;)V -HSPLjava/util/Locale;->toLanguageTag()Ljava/lang/String; -HSPLjava/util/Locale;->toString()Ljava/lang/String; -HSPLjava/util/Locale;->writeObject(Ljava/io/ObjectOutputStream;)V -HSPLjava/util/Map;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;+]Ljava/util/Map;Landroid/util/ArrayMap;]Ljava/util/function/Function;missing_types -HSPLjava/util/Map;->entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry; -HSPLjava/util/Map;->forEach(Ljava/util/function/BiConsumer;)V+]Ljava/util/Map$Entry;Ljava/util/KeyValueHolder;]Ljava/util/Map;Ljava/util/ImmutableCollections$MapN;]Ljava/util/Iterator;Ljava/util/ImmutableCollections$MapN$MapNIterator;]Ljava/util/Set;Ljava/util/ImmutableCollections$MapN$1; -HSPLjava/util/Map;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+]Ljava/util/Map;Landroid/util/ArrayMap; -HSPLjava/util/Map;->of(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map; -HSPLjava/util/Map;->ofEntries([Ljava/util/Map$Entry;)Ljava/util/Map; -HSPLjava/util/MissingResourceException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/NoSuchElementException;-><init>()V -HSPLjava/util/NoSuchElementException;-><init>(Ljava/lang/String;)V -HSPLjava/util/Objects;->checkFromIndexSize(III)I -HSPLjava/util/Objects;->checkFromToIndex(III)I -HSPLjava/util/Objects;->checkIndex(II)I -HSPLjava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/Objects;->hash([Ljava/lang/Object;)I -HSPLjava/util/Objects;->hashCode(Ljava/lang/Object;)I -HSPLjava/util/Objects;->nonNull(Ljava/lang/Object;)Z -HSPLjava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; -HSPLjava/util/Objects;->requireNonNullElse(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Objects;->toString(Ljava/lang/Object;)Ljava/lang/String; -HSPLjava/util/Objects;->toString(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/Observable;-><init>()V -HSPLjava/util/Observable;->addObserver(Ljava/util/Observer;)V -HSPLjava/util/Observable;->clearChanged()V -HSPLjava/util/Observable;->deleteObserver(Ljava/util/Observer;)V -HSPLjava/util/Observable;->hasChanged()Z -HSPLjava/util/Observable;->notifyObservers()V -HSPLjava/util/Observable;->notifyObservers(Ljava/lang/Object;)V -HSPLjava/util/Observable;->setChanged()V -HSPLjava/util/Optional;-><init>(Ljava/lang/Object;)V -HSPLjava/util/Optional;->empty()Ljava/util/Optional; -HSPLjava/util/Optional;->flatMap(Ljava/util/function/Function;)Ljava/util/Optional; -HSPLjava/util/Optional;->get()Ljava/lang/Object; -HSPLjava/util/Optional;->ifPresent(Ljava/util/function/Consumer;)V -HSPLjava/util/Optional;->isPresent()Z -HSPLjava/util/Optional;->map(Ljava/util/function/Function;)Ljava/util/Optional; -HSPLjava/util/Optional;->of(Ljava/lang/Object;)Ljava/util/Optional; -HSPLjava/util/Optional;->ofNullable(Ljava/lang/Object;)Ljava/util/Optional; -HSPLjava/util/Optional;->orElse(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Optional;->orElseGet(Ljava/util/function/Supplier;)Ljava/lang/Object; -HSPLjava/util/OptionalDouble;-><clinit>()V -HSPLjava/util/OptionalDouble;-><init>()V -HSPLjava/util/OptionalDouble;-><init>(D)V -HSPLjava/util/OptionalDouble;->of(D)Ljava/util/OptionalDouble; -HSPLjava/util/OptionalDouble;->orElseGet(Ljava/util/function/DoubleSupplier;)D -HSPLjava/util/OptionalInt;-><init>(I)V -HSPLjava/util/OptionalInt;->empty()Ljava/util/OptionalInt; -HSPLjava/util/OptionalInt;->isPresent()Z -HSPLjava/util/OptionalInt;->of(I)Ljava/util/OptionalInt; -HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;)V -HSPLjava/util/PriorityQueue$Itr;->hasNext()Z -HSPLjava/util/PriorityQueue$Itr;->next()Ljava/lang/Object; -HSPLjava/util/PriorityQueue$Itr;->remove()V -HSPLjava/util/PriorityQueue;-><init>()V -HSPLjava/util/PriorityQueue;-><init>(ILjava/util/Comparator;)V -HSPLjava/util/PriorityQueue;-><init>(Ljava/util/Comparator;)V -HSPLjava/util/PriorityQueue;-><init>(Ljava/util/PriorityQueue;)V -HSPLjava/util/PriorityQueue;->add(Ljava/lang/Object;)Z -HSPLjava/util/PriorityQueue;->clear()V -HSPLjava/util/PriorityQueue;->comparator()Ljava/util/Comparator; -HSPLjava/util/PriorityQueue;->contains(Ljava/lang/Object;)Z -HSPLjava/util/PriorityQueue;->grow(I)V -HSPLjava/util/PriorityQueue;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/PriorityQueue;->initFromPriorityQueue(Ljava/util/PriorityQueue;)V -HSPLjava/util/PriorityQueue;->iterator()Ljava/util/Iterator; -HSPLjava/util/PriorityQueue;->offer(Ljava/lang/Object;)Z -HSPLjava/util/PriorityQueue;->peek()Ljava/lang/Object; -HSPLjava/util/PriorityQueue;->poll()Ljava/lang/Object; -HSPLjava/util/PriorityQueue;->remove(Ljava/lang/Object;)Z -HSPLjava/util/PriorityQueue;->removeAt(I)Ljava/lang/Object; -HSPLjava/util/PriorityQueue;->siftDown(ILjava/lang/Object;)V -HSPLjava/util/PriorityQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V -HSPLjava/util/PriorityQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V -HSPLjava/util/PriorityQueue;->siftUp(ILjava/lang/Object;)V -HSPLjava/util/PriorityQueue;->size()I -HSPLjava/util/PriorityQueue;->toArray()[Ljava/lang/Object; -HSPLjava/util/PriorityQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/Properties$LineReader;->readLine()I -HSPLjava/util/Properties;-><init>()V -HSPLjava/util/Properties;-><init>(Ljava/util/Properties;)V -HSPLjava/util/Properties;-><init>(Ljava/util/Properties;I)V -HSPLjava/util/Properties;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/Properties;->load(Ljava/io/InputStream;)V -HSPLjava/util/Properties;->load(Ljava/io/Reader;)V -HSPLjava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V -HSPLjava/util/Properties;->loadConvert([CIILjava/lang/StringBuilder;)Ljava/lang/String; -HSPLjava/util/Properties;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String; -HSPLjava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; -HSPLjava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V -HSPLjava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V -HSPLjava/util/Properties;->writeComments(Ljava/io/BufferedWriter;Ljava/lang/String;)V -HSPLjava/util/PropertyResourceBundle;-><init>(Ljava/io/Reader;)V -HSPLjava/util/Random;-><init>()V -HSPLjava/util/Random;-><init>(J)V -HSPLjava/util/Random;->initialScramble(J)J -HSPLjava/util/Random;->next(I)I -HSPLjava/util/Random;->nextBoolean()Z -HSPLjava/util/Random;->nextBytes([B)V -HSPLjava/util/Random;->nextDouble()D -HSPLjava/util/Random;->nextFloat()F -HSPLjava/util/Random;->nextGaussian()D -HSPLjava/util/Random;->nextInt()I -HSPLjava/util/Random;->nextInt(I)I -HSPLjava/util/Random;->nextLong()J -HSPLjava/util/Random;->readObject(Ljava/io/ObjectInputStream;)V -HSPLjava/util/Random;->resetSeed(J)V -HSPLjava/util/Random;->seedUniquifier()J -HSPLjava/util/Random;->setSeed(J)V -HSPLjava/util/Random;->writeObject(Ljava/io/ObjectOutputStream;)V -HSPLjava/util/RegularEnumSet$EnumSetIterator;-><init>(Ljava/util/RegularEnumSet;)V -HSPLjava/util/RegularEnumSet$EnumSetIterator;->hasNext()Z -HSPLjava/util/RegularEnumSet$EnumSetIterator;->next()Ljava/lang/Enum; -HSPLjava/util/RegularEnumSet$EnumSetIterator;->next()Ljava/lang/Object; -HSPLjava/util/RegularEnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V -HSPLjava/util/RegularEnumSet;->add(Ljava/lang/Enum;)Z -HSPLjava/util/RegularEnumSet;->add(Ljava/lang/Object;)Z -HSPLjava/util/RegularEnumSet;->addAll()V -HSPLjava/util/RegularEnumSet;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/RegularEnumSet;->clear()V -HSPLjava/util/RegularEnumSet;->complement()V -HSPLjava/util/RegularEnumSet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/RegularEnumSet;->containsAll(Ljava/util/Collection;)Z -HSPLjava/util/RegularEnumSet;->equals(Ljava/lang/Object;)Z -HSPLjava/util/RegularEnumSet;->isEmpty()Z -HSPLjava/util/RegularEnumSet;->iterator()Ljava/util/Iterator; -HSPLjava/util/RegularEnumSet;->remove(Ljava/lang/Object;)Z -HSPLjava/util/RegularEnumSet;->size()I -HSPLjava/util/ResourceBundle$BundleReference;-><init>(Ljava/util/ResourceBundle;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V -HSPLjava/util/ResourceBundle$BundleReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey; -HSPLjava/util/ResourceBundle$CacheKey;-><init>(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)V -HSPLjava/util/ResourceBundle$CacheKey;->equals(Ljava/lang/Object;)Z -HSPLjava/util/ResourceBundle$CacheKey;->getCause()Ljava/lang/Throwable; -HSPLjava/util/ResourceBundle$CacheKey;->getLoader()Ljava/lang/ClassLoader; -HSPLjava/util/ResourceBundle$CacheKey;->getLocale()Ljava/util/Locale; -HSPLjava/util/ResourceBundle$CacheKey;->getName()Ljava/lang/String; -HSPLjava/util/ResourceBundle$CacheKey;->hashCode()I -HSPLjava/util/ResourceBundle$CacheKey;->setFormat(Ljava/lang/String;)V -HSPLjava/util/ResourceBundle$CacheKey;->setLocale(Ljava/util/Locale;)Ljava/util/ResourceBundle$CacheKey; -HSPLjava/util/ResourceBundle$Control$1;->run()Ljava/io/InputStream; -HSPLjava/util/ResourceBundle$Control$1;->run()Ljava/lang/Object; -HSPLjava/util/ResourceBundle$Control$CandidateListCache;->createObject(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/ResourceBundle$Control$CandidateListCache;->createObject(Lsun/util/locale/BaseLocale;)Ljava/util/List; -HSPLjava/util/ResourceBundle$Control$CandidateListCache;->getDefaultList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLjava/util/ResourceBundle$Control;->getCandidateLocales(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List; -HSPLjava/util/ResourceBundle$Control;->getFallbackLocale(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale; -HSPLjava/util/ResourceBundle$Control;->getFormats(Ljava/lang/String;)Ljava/util/List; -HSPLjava/util/ResourceBundle$Control;->getTimeToLive(Ljava/lang/String;Ljava/util/Locale;)J -HSPLjava/util/ResourceBundle$Control;->newBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle$Control;->toBundleName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; -HSPLjava/util/ResourceBundle$Control;->toResourceName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/ResourceBundle$Control;->toResourceName0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/ResourceBundle;-><init>()V -HSPLjava/util/ResourceBundle;->findBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/List;ILjava/util/ResourceBundle$Control;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle;->findBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle;->getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle;->getBundleImpl(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle;->getDefaultControl(Ljava/lang/String;)Ljava/util/ResourceBundle$Control; -HSPLjava/util/ResourceBundle;->getObject(Ljava/lang/String;)Ljava/lang/Object; -HSPLjava/util/ResourceBundle;->getString(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/ResourceBundle;->isValidBundle(Ljava/util/ResourceBundle;)Z -HSPLjava/util/ResourceBundle;->loadBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/ResourceBundle$Control;Z)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle;->putBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle; -HSPLjava/util/ResourceBundle;->setExpirationTime(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)V -HSPLjava/util/ResourceBundle;->setParent(Ljava/util/ResourceBundle;)V -HSPLjava/util/Scanner;-><init>(Ljava/io/InputStream;)V -HSPLjava/util/Scanner;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V -HSPLjava/util/Scanner;-><init>(Ljava/lang/Readable;Ljava/util/regex/Pattern;)V -HSPLjava/util/Scanner;-><init>(Ljava/lang/String;)V -HSPLjava/util/Scanner;->clearCaches()V -HSPLjava/util/Scanner;->close()V -HSPLjava/util/Scanner;->ensureOpen()V -HSPLjava/util/Scanner;->getCompleteTokenInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String; -HSPLjava/util/Scanner;->hasNext()Z -HSPLjava/util/Scanner;->hasTokenInBuffer()Z -HSPLjava/util/Scanner;->makeReadable(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/Readable; -HSPLjava/util/Scanner;->makeSpace()Z -HSPLjava/util/Scanner;->next()Ljava/lang/String; -HSPLjava/util/Scanner;->readInput()V -HSPLjava/util/Scanner;->revertState(Z)Z -HSPLjava/util/Scanner;->saveState()V -HSPLjava/util/Scanner;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset; -HSPLjava/util/Scanner;->translateSavedIndexes(I)V -HSPLjava/util/Scanner;->useDelimiter(Ljava/lang/String;)Ljava/util/Scanner; -HSPLjava/util/Scanner;->useLocale(Ljava/util/Locale;)Ljava/util/Scanner; -HSPLjava/util/ServiceLoader;->iterator()Ljava/util/Iterator; -HSPLjava/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader; -HSPLjava/util/ServiceLoader;->reload()V -HSPLjava/util/Set;->of(Ljava/lang/Object;)Ljava/util/Set; -HSPLjava/util/Set;->of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set; -HSPLjava/util/Set;->of([Ljava/lang/Object;)Ljava/util/Set; -HSPLjava/util/Set;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/SimpleTimeZone;-><init>(ILjava/lang/String;)V -HSPLjava/util/SimpleTimeZone;->clone()Ljava/lang/Object; -HSPLjava/util/SimpleTimeZone;->getOffset(J)I -HSPLjava/util/SimpleTimeZone;->getOffsets(J[I)I -HSPLjava/util/SimpleTimeZone;->getRawOffset()I -HSPLjava/util/SimpleTimeZone;->hasSameRules(Ljava/util/TimeZone;)Z -HSPLjava/util/Spliterator$OfInt;->forEachRemaining(Ljava/util/function/Consumer;)V+]Ljava/util/Spliterator$OfInt;Ljava/util/Spliterators$IntArraySpliterator;,Ljava/util/Spliterators$EmptySpliterator$OfInt;,Ljava/util/stream/Streams$RangeIntSpliterator;,Ljava/lang/StringUTF16$CodePointsSpliteratorForString; -HSPLjava/util/Spliterator;->getExactSizeIfKnown()J+]Ljava/util/Spliterator;megamorphic_types -HSPLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;I)V -HSPLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;III)V -HSPLjava/util/Spliterators$ArraySpliterator;->characteristics()I -HSPLjava/util/Spliterators$ArraySpliterator;->estimateSize()J -HSPLjava/util/Spliterators$ArraySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/Spliterators$ArraySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/Spliterators$EmptySpliterator$OfInt;->forEachRemaining(Ljava/util/function/IntConsumer;)V -HSPLjava/util/Spliterators$EmptySpliterator$OfRef;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/Spliterators$EmptySpliterator$OfRef;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/Spliterators$EmptySpliterator;->characteristics()I -HSPLjava/util/Spliterators$EmptySpliterator;->estimateSize()J -HSPLjava/util/Spliterators$EmptySpliterator;->forEachRemaining(Ljava/lang/Object;)V -HSPLjava/util/Spliterators$EmptySpliterator;->tryAdvance(Ljava/lang/Object;)Z -HSPLjava/util/Spliterators$IntArraySpliterator;-><init>([IIII)V -HSPLjava/util/Spliterators$IntArraySpliterator;->characteristics()I -HSPLjava/util/Spliterators$IntArraySpliterator;->estimateSize()J -HSPLjava/util/Spliterators$IntArraySpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V -HSPLjava/util/Spliterators$IntArraySpliterator;->tryAdvance(Ljava/util/function/IntConsumer;)Z -HSPLjava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Collection;I)V -HSPLjava/util/Spliterators$IteratorSpliterator;->characteristics()I -HSPLjava/util/Spliterators$IteratorSpliterator;->estimateSize()J -HSPLjava/util/Spliterators$IteratorSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V -HSPLjava/util/Spliterators$IteratorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z -HSPLjava/util/Spliterators;->checkFromToBounds(III)V -HSPLjava/util/Spliterators;->emptyIntSpliterator()Ljava/util/Spliterator$OfInt; -HSPLjava/util/Spliterators;->emptySpliterator()Ljava/util/Spliterator; -HSPLjava/util/Spliterators;->spliterator(Ljava/util/Collection;I)Ljava/util/Spliterator; -HSPLjava/util/Spliterators;->spliterator([IIII)Ljava/util/Spliterator$OfInt; -HSPLjava/util/Spliterators;->spliterator([Ljava/lang/Object;I)Ljava/util/Spliterator; -HSPLjava/util/Spliterators;->spliterator([Ljava/lang/Object;III)Ljava/util/Spliterator; -HSPLjava/util/Stack;-><init>()V -HSPLjava/util/Stack;->empty()Z -HSPLjava/util/Stack;->peek()Ljava/lang/Object; -HSPLjava/util/Stack;->pop()Ljava/lang/Object; -HSPLjava/util/Stack;->push(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/StringJoiner;-><init>(Ljava/lang/CharSequence;)V -HSPLjava/util/StringJoiner;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V -HSPLjava/util/StringJoiner;->add(Ljava/lang/CharSequence;)Ljava/util/StringJoiner; -HSPLjava/util/StringJoiner;->compactElts()V -HSPLjava/util/StringJoiner;->getChars(Ljava/lang/String;[CI)I -HSPLjava/util/StringJoiner;->toString()Ljava/lang/String; -HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;)V -HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V -HSPLjava/util/StringTokenizer;->countTokens()I -HSPLjava/util/StringTokenizer;->hasMoreElements()Z -HSPLjava/util/StringTokenizer;->hasMoreTokens()Z -HSPLjava/util/StringTokenizer;->nextToken()Ljava/lang/String; -HSPLjava/util/StringTokenizer;->scanToken(I)I -HSPLjava/util/StringTokenizer;->setMaxDelimCodePoint()V -HSPLjava/util/StringTokenizer;->skipDelimiters(I)I -HSPLjava/util/TaskQueue;-><init>()V -HSPLjava/util/TaskQueue;->add(Ljava/util/TimerTask;)V -HSPLjava/util/TaskQueue;->clear()V -HSPLjava/util/TaskQueue;->fixDown(I)V -HSPLjava/util/TaskQueue;->fixUp(I)V -HSPLjava/util/TaskQueue;->getMin()Ljava/util/TimerTask; -HSPLjava/util/TaskQueue;->isEmpty()Z -HSPLjava/util/TaskQueue;->removeMin()V -HSPLjava/util/TaskQueue;->rescheduleMin(J)V -HSPLjava/util/TimSort;-><init>([Ljava/lang/Object;Ljava/util/Comparator;[Ljava/lang/Object;II)V -HSPLjava/util/TimSort;->binarySort([Ljava/lang/Object;IIILjava/util/Comparator;)V -HSPLjava/util/TimSort;->countRunAndMakeAscending([Ljava/lang/Object;IILjava/util/Comparator;)I -HSPLjava/util/TimSort;->ensureCapacity(I)[Ljava/lang/Object; -HSPLjava/util/TimSort;->gallopLeft(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I -HSPLjava/util/TimSort;->gallopRight(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I -HSPLjava/util/TimSort;->mergeAt(I)V -HSPLjava/util/TimSort;->mergeCollapse()V -HSPLjava/util/TimSort;->mergeForceCollapse()V -HSPLjava/util/TimSort;->mergeHi(IIII)V -HSPLjava/util/TimSort;->mergeLo(IIII)V -HSPLjava/util/TimSort;->minRunLength(I)I -HSPLjava/util/TimSort;->pushRun(II)V -HSPLjava/util/TimSort;->reverseRange([Ljava/lang/Object;II)V -HSPLjava/util/TimSort;->sort([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V -HSPLjava/util/TimeZone;-><init>()V -HSPLjava/util/TimeZone;->appendNumber(Ljava/lang/StringBuilder;II)V -HSPLjava/util/TimeZone;->clone()Ljava/lang/Object; -HSPLjava/util/TimeZone;->createGmtOffsetString(ZZI)Ljava/lang/String; -HSPLjava/util/TimeZone;->getAvailableIDs()[Ljava/lang/String; -HSPLjava/util/TimeZone;->getDefault()Ljava/util/TimeZone; -HSPLjava/util/TimeZone;->getDefaultRef()Ljava/util/TimeZone; -HSPLjava/util/TimeZone;->getDisplayName(ZI)Ljava/lang/String; -HSPLjava/util/TimeZone;->getDisplayName(ZILjava/util/Locale;)Ljava/lang/String; -HSPLjava/util/TimeZone;->getID()Ljava/lang/String; -HSPLjava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; -HSPLjava/util/TimeZone;->setDefault(Ljava/util/TimeZone;)V -HSPLjava/util/TimeZone;->setID(Ljava/lang/String;)V -HSPLjava/util/TimeZone;->toZoneId()Ljava/time/ZoneId; -HSPLjava/util/Timer;-><init>()V -HSPLjava/util/Timer;-><init>(Ljava/lang/String;)V -HSPLjava/util/Timer;-><init>(Ljava/lang/String;Z)V -HSPLjava/util/Timer;->cancel()V -HSPLjava/util/Timer;->sched(Ljava/util/TimerTask;JJ)V -HSPLjava/util/Timer;->schedule(Ljava/util/TimerTask;J)V -HSPLjava/util/Timer;->schedule(Ljava/util/TimerTask;JJ)V -HSPLjava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V -HSPLjava/util/Timer;->serialNumber()I -HSPLjava/util/TimerTask;-><init>()V -HSPLjava/util/TimerTask;->cancel()Z -HSPLjava/util/TimerThread;-><init>(Ljava/util/TaskQueue;)V -HSPLjava/util/TimerThread;->mainLoop()V -HSPLjava/util/TimerThread;->run()V -HSPLjava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;-><init>(Ljava/util/TreeMap$AscendingSubMap;)V -HSPLjava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;->iterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap$AscendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V -HSPLjava/util/TreeMap$AscendingSubMap;->entrySet()Ljava/util/Set; -HSPLjava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V -HSPLjava/util/TreeMap$DescendingSubMap;->keyIterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap$DescendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$EntryIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/TreeMap$EntrySet;-><init>(Ljava/util/TreeMap;)V -HSPLjava/util/TreeMap$EntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap$EntrySet;->size()I -HSPLjava/util/TreeMap$KeyIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$KeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/TreeMap$KeySet;-><init>(Ljava/util/NavigableMap;)V -HSPLjava/util/TreeMap$KeySet;->isEmpty()Z -HSPLjava/util/TreeMap$KeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap$KeySet;->size()I -HSPLjava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;-><init>(Ljava/util/TreeMap$NavigableSubMap;)V -HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->isEmpty()Z -HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->size()I -HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->remove()V -HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->hasNext()Z -HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeAscending()V -HSPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/TreeMap$NavigableSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V -HSPLjava/util/TreeMap$NavigableSubMap;->absHighFence()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$NavigableSubMap;->absHighest()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$NavigableSubMap;->absLowFence()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$NavigableSubMap;->firstKey()Ljava/lang/Object; -HSPLjava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;)Z -HSPLjava/util/TreeMap$NavigableSubMap;->isEmpty()Z -HSPLjava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet; -HSPLjava/util/TreeMap$NavigableSubMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap$NavigableSubMap;->size()I -HSPLjava/util/TreeMap$NavigableSubMap;->tooHigh(Ljava/lang/Object;)Z -HSPLjava/util/TreeMap$NavigableSubMap;->tooLow(Ljava/lang/Object;)Z -HSPLjava/util/TreeMap$PrivateEntryIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$PrivateEntryIterator;->hasNext()Z -HSPLjava/util/TreeMap$PrivateEntryIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap$PrivateEntryIterator;->remove()V -HSPLjava/util/TreeMap$TreeMapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$TreeMapEntry;->getKey()Ljava/lang/Object; -HSPLjava/util/TreeMap$TreeMapEntry;->getValue()Ljava/lang/Object; -HSPLjava/util/TreeMap$TreeMapEntry;->setValue(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap$ValueIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap$ValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/TreeMap$Values;-><init>(Ljava/util/TreeMap;)V -HSPLjava/util/TreeMap$Values;->iterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap$Values;->size()I -HSPLjava/util/TreeMap;->-$$Nest$fgetmodCount(Ljava/util/TreeMap;)I -HSPLjava/util/TreeMap;-><init>()V -HSPLjava/util/TreeMap;-><init>(Ljava/util/Comparator;)V -HSPLjava/util/TreeMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/TreeMap;->addAllForTreeSet(Ljava/util/SortedSet;Ljava/lang/Object;)V -HSPLjava/util/TreeMap;->addEntry(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;Z)V -HSPLjava/util/TreeMap;->addEntryToEmptyMap(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/TreeMap;->buildFromSorted(IIIILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->buildFromSorted(ILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)V -HSPLjava/util/TreeMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry; -HSPLjava/util/TreeMap;->ceilingKey(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->clear()V -HSPLjava/util/TreeMap;->clone()Ljava/lang/Object; -HSPLjava/util/TreeMap;->colorOf(Ljava/util/TreeMap$TreeMapEntry;)Z -HSPLjava/util/TreeMap;->comparator()Ljava/util/Comparator; -HSPLjava/util/TreeMap;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/TreeMap;->computeRedLevel(I)I -HSPLjava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/TreeMap;->deleteEntry(Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet; -HSPLjava/util/TreeMap;->descendingMap()Ljava/util/NavigableMap; -HSPLjava/util/TreeMap;->entrySet()Ljava/util/Set; -HSPLjava/util/TreeMap;->exportEntry(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/Map$Entry; -HSPLjava/util/TreeMap;->firstKey()Ljava/lang/Object; -HSPLjava/util/TreeMap;->fixAfterDeletion(Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap;->fixAfterInsertion(Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap;->floorEntry(Ljava/lang/Object;)Ljava/util/Map$Entry; -HSPLjava/util/TreeMap;->floorKey(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->getCeilingEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getEntryUsingComparator(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getFirstEntry()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getFloorEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getHigherEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getLastEntry()Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->getLowerEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->headMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap; -HSPLjava/util/TreeMap;->key(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->keyIterator()Ljava/util/Iterator; -HSPLjava/util/TreeMap;->keyOrNull(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->keySet()Ljava/util/Set; -HSPLjava/util/TreeMap;->lastKey()Ljava/lang/Object; -HSPLjava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry; -HSPLjava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet; -HSPLjava/util/TreeMap;->parentOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->pollFirstEntry()Ljava/util/Map$Entry; -HSPLjava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; -HSPLjava/util/TreeMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeMap;->rightOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->rotateLeft(Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap;->rotateRight(Ljava/util/TreeMap$TreeMapEntry;)V -HSPLjava/util/TreeMap;->setColor(Ljava/util/TreeMap$TreeMapEntry;Z)V -HSPLjava/util/TreeMap;->size()I -HSPLjava/util/TreeMap;->subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap; -HSPLjava/util/TreeMap;->subMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableMap; -HSPLjava/util/TreeMap;->successor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry; -HSPLjava/util/TreeMap;->tailMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap; -HSPLjava/util/TreeMap;->values()Ljava/util/Collection; -HSPLjava/util/TreeSet;-><init>()V -HSPLjava/util/TreeSet;-><init>(Ljava/util/Collection;)V -HSPLjava/util/TreeSet;-><init>(Ljava/util/Comparator;)V -HSPLjava/util/TreeSet;-><init>(Ljava/util/NavigableMap;)V -HSPLjava/util/TreeSet;-><init>(Ljava/util/SortedSet;)V -HSPLjava/util/TreeSet;->add(Ljava/lang/Object;)Z -HSPLjava/util/TreeSet;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/TreeSet;->ceiling(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeSet;->clear()V -HSPLjava/util/TreeSet;->comparator()Ljava/util/Comparator; -HSPLjava/util/TreeSet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/TreeSet;->descendingSet()Ljava/util/NavigableSet; -HSPLjava/util/TreeSet;->first()Ljava/lang/Object; -HSPLjava/util/TreeSet;->floor(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/TreeSet;->isEmpty()Z -HSPLjava/util/TreeSet;->iterator()Ljava/util/Iterator; -HSPLjava/util/TreeSet;->last()Ljava/lang/Object; -HSPLjava/util/TreeSet;->remove(Ljava/lang/Object;)Z -HSPLjava/util/TreeSet;->size()I -HSPLjava/util/TreeSet;->subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet; -HSPLjava/util/TreeSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet; -HSPLjava/util/UUID;-><init>(JJ)V -HSPLjava/util/UUID;-><init>([B)V -HSPLjava/util/UUID;->digits(JI)Ljava/lang/String; -HSPLjava/util/UUID;->equals(Ljava/lang/Object;)Z -HSPLjava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; -HSPLjava/util/UUID;->fromStringCurrentJava(Ljava/lang/String;)Ljava/util/UUID; -HSPLjava/util/UUID;->fromStringJava8(Ljava/lang/String;)Ljava/util/UUID; -HSPLjava/util/UUID;->getLeastSignificantBits()J -HSPLjava/util/UUID;->getMostSignificantBits()J -HSPLjava/util/UUID;->hashCode()I -HSPLjava/util/UUID;->nameUUIDFromBytes([B)Ljava/util/UUID; -HSPLjava/util/UUID;->parse4Nibbles(Ljava/lang/String;I)J -HSPLjava/util/UUID;->randomUUID()Ljava/util/UUID; -HSPLjava/util/UUID;->toString()Ljava/lang/String; -HSPLjava/util/Vector$1;-><init>(Ljava/util/Vector;)V -HSPLjava/util/Vector$1;->hasMoreElements()Z -HSPLjava/util/Vector$1;->nextElement()Ljava/lang/Object; -HSPLjava/util/Vector$Itr;-><init>(Ljava/util/Vector;)V -HSPLjava/util/Vector$Itr;->checkForComodification()V -HSPLjava/util/Vector$Itr;->hasNext()Z -HSPLjava/util/Vector$Itr;->next()Ljava/lang/Object; -HSPLjava/util/Vector;-><init>()V -HSPLjava/util/Vector;-><init>(I)V -HSPLjava/util/Vector;-><init>(II)V -HSPLjava/util/Vector;->add(Ljava/lang/Object;)Z -HSPLjava/util/Vector;->add(Ljava/lang/Object;[Ljava/lang/Object;I)V -HSPLjava/util/Vector;->addElement(Ljava/lang/Object;)V -HSPLjava/util/Vector;->clear()V -HSPLjava/util/Vector;->contains(Ljava/lang/Object;)Z -HSPLjava/util/Vector;->copyInto([Ljava/lang/Object;)V -HSPLjava/util/Vector;->elementAt(I)Ljava/lang/Object; -HSPLjava/util/Vector;->elementData(I)Ljava/lang/Object; -HSPLjava/util/Vector;->elements()Ljava/util/Enumeration; -HSPLjava/util/Vector;->get(I)Ljava/lang/Object; -HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;I)I -HSPLjava/util/Vector;->isEmpty()Z -HSPLjava/util/Vector;->iterator()Ljava/util/Iterator; -HSPLjava/util/Vector;->removeAllElements()V -HSPLjava/util/Vector;->removeElement(Ljava/lang/Object;)Z -HSPLjava/util/Vector;->removeElementAt(I)V -HSPLjava/util/Vector;->size()I -HSPLjava/util/Vector;->sort(Ljava/util/Comparator;)V -HSPLjava/util/Vector;->toArray()[Ljava/lang/Object; -HSPLjava/util/Vector;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/WeakHashMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;ILjava/util/WeakHashMap$Entry;)V -HSPLjava/util/WeakHashMap$Entry;->getKey()Ljava/lang/Object; -HSPLjava/util/WeakHashMap$Entry;->getValue()Ljava/lang/Object; -HSPLjava/util/WeakHashMap$EntryIterator;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$EntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/WeakHashMap$EntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/WeakHashMap$EntrySet;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$EntrySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/WeakHashMap$HashIterator;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$HashIterator;->hasNext()Z -HSPLjava/util/WeakHashMap$HashIterator;->nextEntry()Ljava/util/WeakHashMap$Entry; -HSPLjava/util/WeakHashMap$KeyIterator;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$KeyIterator;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$KeyIterator-IA;)V -HSPLjava/util/WeakHashMap$KeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/WeakHashMap$KeySet;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$KeySet;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$KeySet-IA;)V -HSPLjava/util/WeakHashMap$KeySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/WeakHashMap$KeySet;->size()I -HSPLjava/util/WeakHashMap$ValueIterator;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$ValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/WeakHashMap$Values;-><init>(Ljava/util/WeakHashMap;)V -HSPLjava/util/WeakHashMap$Values;->iterator()Ljava/util/Iterator; -HSPLjava/util/WeakHashMap;-><init>()V -HSPLjava/util/WeakHashMap;-><init>(I)V -HSPLjava/util/WeakHashMap;-><init>(IF)V -HSPLjava/util/WeakHashMap;->clear()V -HSPLjava/util/WeakHashMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/WeakHashMap;->entrySet()Ljava/util/Set; -HSPLjava/util/WeakHashMap;->expungeStaleEntries()V -HSPLjava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/WeakHashMap;->getEntry(Ljava/lang/Object;)Ljava/util/WeakHashMap$Entry; -HSPLjava/util/WeakHashMap;->getTable()[Ljava/util/WeakHashMap$Entry; -HSPLjava/util/WeakHashMap;->hash(Ljava/lang/Object;)I -HSPLjava/util/WeakHashMap;->indexFor(II)I -HSPLjava/util/WeakHashMap;->isEmpty()Z -HSPLjava/util/WeakHashMap;->keySet()Ljava/util/Set; -HSPLjava/util/WeakHashMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/WeakHashMap;->matchesKey(Ljava/util/WeakHashMap$Entry;Ljava/lang/Object;)Z -HSPLjava/util/WeakHashMap;->newTable(I)[Ljava/util/WeakHashMap$Entry; -HSPLjava/util/WeakHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/WeakHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/WeakHashMap;->resize(I)V -HSPLjava/util/WeakHashMap;->size()I -HSPLjava/util/WeakHashMap;->transfer([Ljava/util/WeakHashMap$Entry;[Ljava/util/WeakHashMap$Entry;)V -HSPLjava/util/WeakHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/WeakHashMap;->values()Ljava/util/Collection; -HSPLjava/util/concurrent/AbstractExecutorService;-><init>()V -HSPLjava/util/concurrent/AbstractExecutorService;->invokeAll(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List; -HSPLjava/util/concurrent/AbstractExecutorService;->newTaskFor(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture; -HSPLjava/util/concurrent/AbstractExecutorService;->newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture; -HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/ArrayBlockingQueue;-><init>(I)V -HSPLjava/util/concurrent/ArrayBlockingQueue;-><init>(IZ)V -HSPLjava/util/concurrent/ArrayBlockingQueue;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ArrayBlockingQueue;->dequeue()Ljava/lang/Object; -HSPLjava/util/concurrent/ArrayBlockingQueue;->drainTo(Ljava/util/Collection;)I -HSPLjava/util/concurrent/ArrayBlockingQueue;->drainTo(Ljava/util/Collection;I)I -HSPLjava/util/concurrent/ArrayBlockingQueue;->enqueue(Ljava/lang/Object;)V -HSPLjava/util/concurrent/ArrayBlockingQueue;->itemAt(I)Ljava/lang/Object; -HSPLjava/util/concurrent/ArrayBlockingQueue;->offer(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ArrayBlockingQueue;->peek()Ljava/lang/Object; -HSPLjava/util/concurrent/ArrayBlockingQueue;->poll()Ljava/lang/Object; -HSPLjava/util/concurrent/ArrayBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/ArrayBlockingQueue;->put(Ljava/lang/Object;)V -HSPLjava/util/concurrent/ArrayBlockingQueue;->size()I -HSPLjava/util/concurrent/ArrayBlockingQueue;->take()Ljava/lang/Object; -HSPLjava/util/concurrent/CancellationException;-><init>()V -HSPLjava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V -HSPLjava/util/concurrent/CompletableFuture$AsyncRun;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V -HSPLjava/util/concurrent/CompletableFuture$AsyncRun;->run()V -HSPLjava/util/concurrent/CompletableFuture$AsyncSupply;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Supplier;)V -HSPLjava/util/concurrent/CompletableFuture$AsyncSupply;->run()V -HSPLjava/util/concurrent/CompletableFuture$Completion;-><init>()V -HSPLjava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V -HSPLjava/util/concurrent/CompletableFuture$Signaller;->block()Z -HSPLjava/util/concurrent/CompletableFuture$Signaller;->isReleasable()Z -HSPLjava/util/concurrent/CompletableFuture$Signaller;->tryFire(I)Ljava/util/concurrent/CompletableFuture; -HSPLjava/util/concurrent/CompletableFuture;-><init>()V -HSPLjava/util/concurrent/CompletableFuture;->asyncRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture; -HSPLjava/util/concurrent/CompletableFuture;->asyncSupplyStage(Ljava/util/concurrent/Executor;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture; -HSPLjava/util/concurrent/CompletableFuture;->complete(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CompletableFuture;->completeNull()Z -HSPLjava/util/concurrent/CompletableFuture;->completeValue(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CompletableFuture;->get()Ljava/lang/Object; -HSPLjava/util/concurrent/CompletableFuture;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/CompletableFuture;->internalComplete(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CompletableFuture;->isDone()Z -HSPLjava/util/concurrent/CompletableFuture;->join()Ljava/lang/Object; -HSPLjava/util/concurrent/CompletableFuture;->postComplete()V -HSPLjava/util/concurrent/CompletableFuture;->reportGet(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/CompletableFuture;->reportJoin(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/CompletableFuture;->runAsync(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture; -HSPLjava/util/concurrent/CompletableFuture;->screenExecutor(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor; -HSPLjava/util/concurrent/CompletableFuture;->supplyAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture; -HSPLjava/util/concurrent/CompletableFuture;->timedGet(J)Ljava/lang/Object; -HSPLjava/util/concurrent/CompletableFuture;->tryPushStack(Ljava/util/concurrent/CompletableFuture$Completion;)Z -HSPLjava/util/concurrent/CompletableFuture;->waitingGet(Z)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasNext()Z -HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;->remove()V -HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->size()I -HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->toArray()[Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$CounterCell;-><init>(J)V -HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;->next()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;->next()Ljava/util/Map$Entry; -HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/ConcurrentHashMap$ForwardingNode;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;)V -HSPLjava/util/concurrent/ConcurrentHashMap$ForwardingNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node; -HSPLjava/util/concurrent/ConcurrentHashMap$KeyIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$KeyIterator;->next()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V -HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;->getKey()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;->getValue()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/concurrent/ConcurrentHashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;)V -HSPLjava/util/concurrent/ConcurrentHashMap$ReservationNode;-><init>()V -HSPLjava/util/concurrent/ConcurrentHashMap$Traverser;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;III)V -HSPLjava/util/concurrent/ConcurrentHashMap$Traverser;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node; -HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node; -HSPLjava/util/concurrent/ConcurrentHashMap$TreeNode;->findTreeNode(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode; -HSPLjava/util/concurrent/ConcurrentHashMap$ValueIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$ValueIterator;->next()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap$ValuesView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V -HSPLjava/util/concurrent/ConcurrentHashMap$ValuesView;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/ConcurrentHashMap;-><init>()V -HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(I)V -HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V -HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(Ljava/util/Map;)V -HSPLjava/util/concurrent/ConcurrentHashMap;->addCount(JI)V -HSPLjava/util/concurrent/ConcurrentHashMap;->casTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)Z -HSPLjava/util/concurrent/ConcurrentHashMap;->clear()V -HSPLjava/util/concurrent/ConcurrentHashMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentHashMap;->entrySet()Ljava/util/Set; -HSPLjava/util/concurrent/ConcurrentHashMap;->forEach(Ljava/util/function/BiConsumer;)V -HSPLjava/util/concurrent/ConcurrentHashMap;->fullAddCount(JZ)V -HSPLjava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->helpTransfer([Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)[Ljava/util/concurrent/ConcurrentHashMap$Node; -HSPLjava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node; -HSPLjava/util/concurrent/ConcurrentHashMap;->isEmpty()Z -HSPLjava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set; -HSPLjava/util/concurrent/ConcurrentHashMap;->mappingCount()J -HSPLjava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->putAll(Ljava/util/Map;)V -HSPLjava/util/concurrent/ConcurrentHashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentHashMap;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentHashMap;->replaceNode(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentHashMap;->resizeStamp(I)I -HSPLjava/util/concurrent/ConcurrentHashMap;->setTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;)V -HSPLjava/util/concurrent/ConcurrentHashMap;->size()I -HSPLjava/util/concurrent/ConcurrentHashMap;->spread(I)I -HSPLjava/util/concurrent/ConcurrentHashMap;->sumCount()J -HSPLjava/util/concurrent/ConcurrentHashMap;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node; -HSPLjava/util/concurrent/ConcurrentHashMap;->tableSizeFor(I)I -HSPLjava/util/concurrent/ConcurrentHashMap;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V -HSPLjava/util/concurrent/ConcurrentHashMap;->treeifyBin([Ljava/util/concurrent/ConcurrentHashMap$Node;I)V -HSPLjava/util/concurrent/ConcurrentHashMap;->tryPresize(I)V -HSPLjava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection; -HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>()V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;-><init>()V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->isEmpty()Z -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->nextTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->offerLast(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->peekFirst()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->poll()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->pollFirst()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->prevTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->size()I -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedPredecessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedSuccessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->succ(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node; -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlink(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlinkLast(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->updateHead()V -HSPLjava/util/concurrent/ConcurrentLinkedDeque;->updateTail()V -HSPLjava/util/concurrent/ConcurrentLinkedQueue$$ExternalSyntheticLambda0;->test(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->hasNext()Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->next()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>()V -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>(Ljava/lang/Object;)V -HSPLjava/util/concurrent/ConcurrentLinkedQueue$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;-><init>()V -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->bulkRemove(Ljava/util/function/Predicate;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->clear()V -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->contains(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->first()Ljava/util/concurrent/ConcurrentLinkedQueue$Node; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->isEmpty()Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->lambda$clear$2(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->offer(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->peek()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->poll()Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->remove(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->size()I -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->succ(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->toArray()[Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentLinkedQueue;->updateHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V -HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)V -HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;)V -HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;->hasNext()Z -HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V -HSPLjava/util/concurrent/ConcurrentSkipListMap;-><init>()V -HSPLjava/util/concurrent/ConcurrentSkipListMap;->addIndices(Ljava/util/concurrent/ConcurrentSkipListMap$Index;ILjava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/Comparator;)Z -HSPLjava/util/concurrent/ConcurrentSkipListMap;->cpr(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I -HSPLjava/util/concurrent/ConcurrentSkipListMap;->doGet(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->doPut(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->doRemove(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->findFirst()Ljava/util/concurrent/ConcurrentSkipListMap$Node; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->findPredecessor(Ljava/lang/Object;Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/ConcurrentSkipListMap;->tryReduceLevel()V -HSPLjava/util/concurrent/ConcurrentSkipListMap;->unlinkNode(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V -HSPLjava/util/concurrent/ConcurrentSkipListSet;-><init>()V -HSPLjava/util/concurrent/ConcurrentSkipListSet;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;-><init>(Ljava/util/Collection;)V -HSPLjava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2;->test(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V -HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;->hasNext()Z -HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;->next()Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>()V -HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>(Ljava/util/Collection;)V -HSPLjava/util/concurrent/CopyOnWriteArrayList;-><init>([Ljava/lang/Object;)V -HSPLjava/util/concurrent/CopyOnWriteArrayList;->add(ILjava/lang/Object;)V -HSPLjava/util/concurrent/CopyOnWriteArrayList;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->addAllAbsent(Ljava/util/Collection;)I -HSPLjava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;[Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->bulkRemove(Ljava/util/function/Predicate;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->bulkRemove(Ljava/util/function/Predicate;II)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->clear()V -HSPLjava/util/concurrent/CopyOnWriteArrayList;->contains(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->elementAt([Ljava/lang/Object;I)Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->get(I)Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->getArray()[Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/concurrent/CopyOnWriteArrayList;->indexOfRange(Ljava/lang/Object;[Ljava/lang/Object;II)I -HSPLjava/util/concurrent/CopyOnWriteArrayList;->isEmpty()Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->lambda$removeAll$0(Ljava/util/Collection;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(I)Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;[Ljava/lang/Object;I)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->removeAll(Ljava/util/Collection;)Z -HSPLjava/util/concurrent/CopyOnWriteArrayList;->setArray([Ljava/lang/Object;)V -HSPLjava/util/concurrent/CopyOnWriteArrayList;->size()I -HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray()[Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; -HSPLjava/util/concurrent/CopyOnWriteArrayList;->toString()Ljava/lang/String; -HSPLjava/util/concurrent/CopyOnWriteArraySet;-><init>()V -HSPLjava/util/concurrent/CopyOnWriteArraySet;-><init>(Ljava/util/Collection;)V -HSPLjava/util/concurrent/CopyOnWriteArraySet;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArraySet;->addAll(Ljava/util/Collection;)Z -HSPLjava/util/concurrent/CopyOnWriteArraySet;->clear()V -HSPLjava/util/concurrent/CopyOnWriteArraySet;->contains(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArraySet;->isEmpty()Z -HSPLjava/util/concurrent/CopyOnWriteArraySet;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/CopyOnWriteArraySet;->remove(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/CopyOnWriteArraySet;->size()I -HSPLjava/util/concurrent/CountDownLatch$Sync;-><init>(I)V -HSPLjava/util/concurrent/CountDownLatch$Sync;->getCount()I -HSPLjava/util/concurrent/CountDownLatch$Sync;->tryAcquireShared(I)I -HSPLjava/util/concurrent/CountDownLatch$Sync;->tryReleaseShared(I)Z -HSPLjava/util/concurrent/CountDownLatch;-><init>(I)V -HSPLjava/util/concurrent/CountDownLatch;->await()V -HSPLjava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z -HSPLjava/util/concurrent/CountDownLatch;->countDown()V -HSPLjava/util/concurrent/CountDownLatch;->getCount()J -HSPLjava/util/concurrent/DelayQueue;-><init>()V -HSPLjava/util/concurrent/DelayQueue;->add(Ljava/util/concurrent/Delayed;)Z -HSPLjava/util/concurrent/DelayQueue;->offer(Ljava/util/concurrent/Delayed;)Z -HSPLjava/util/concurrent/ExecutionException;-><init>(Ljava/lang/Throwable;)V -HSPLjava/util/concurrent/Executors$DefaultThreadFactory;-><init>()V -HSPLjava/util/concurrent/Executors$DefaultThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread; -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->execute(Ljava/lang/Runnable;)V -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->isShutdown()Z -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->shutdown()V -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->shutdownNow()Ljava/util/List; -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;-><init>(Ljava/util/concurrent/ScheduledExecutorService;)V -HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/Executors$FinalizableDelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V -HSPLjava/util/concurrent/Executors$FinalizableDelegatedExecutorService;->finalize()V -HSPLjava/util/concurrent/Executors$RunnableAdapter;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V -HSPLjava/util/concurrent/Executors$RunnableAdapter;->call()Ljava/lang/Object; -HSPLjava/util/concurrent/Executors;->callable(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable; -HSPLjava/util/concurrent/Executors;->callable(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable; -HSPLjava/util/concurrent/Executors;->defaultThreadFactory()Ljava/util/concurrent/ThreadFactory; -HSPLjava/util/concurrent/Executors;->newCachedThreadPool()Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->newCachedThreadPool(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->newScheduledThreadPool(I)Ljava/util/concurrent/ScheduledExecutorService; -HSPLjava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService; -HSPLjava/util/concurrent/Executors;->newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->newSingleThreadScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService; -HSPLjava/util/concurrent/Executors;->newSingleThreadScheduledExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService; -HSPLjava/util/concurrent/Executors;->unconfigurableExecutorService(Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/ExecutorService; -HSPLjava/util/concurrent/Executors;->unconfigurableScheduledExecutorService(Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledExecutorService; -HSPLjava/util/concurrent/ForkJoinPool;->managedBlock(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V -HSPLjava/util/concurrent/ForkJoinPool;->unmanagedBlock(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V -HSPLjava/util/concurrent/ForkJoinTask;-><init>()V -HSPLjava/util/concurrent/FutureTask$WaitNode;-><init>()V -HSPLjava/util/concurrent/FutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V -HSPLjava/util/concurrent/FutureTask;-><init>(Ljava/util/concurrent/Callable;)V -HSPLjava/util/concurrent/FutureTask;->awaitDone(ZJ)I -HSPLjava/util/concurrent/FutureTask;->cancel(Z)Z -HSPLjava/util/concurrent/FutureTask;->done()V -HSPLjava/util/concurrent/FutureTask;->finishCompletion()V -HSPLjava/util/concurrent/FutureTask;->get()Ljava/lang/Object; -HSPLjava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/FutureTask;->handlePossibleCancellationInterrupt(I)V -HSPLjava/util/concurrent/FutureTask;->isCancelled()Z -HSPLjava/util/concurrent/FutureTask;->isDone()Z -HSPLjava/util/concurrent/FutureTask;->removeWaiter(Ljava/util/concurrent/FutureTask$WaitNode;)V -HSPLjava/util/concurrent/FutureTask;->report(I)Ljava/lang/Object; -HSPLjava/util/concurrent/FutureTask;->run()V -HSPLjava/util/concurrent/FutureTask;->runAndReset()Z -HSPLjava/util/concurrent/FutureTask;->set(Ljava/lang/Object;)V -HSPLjava/util/concurrent/FutureTask;->setException(Ljava/lang/Throwable;)V -HSPLjava/util/concurrent/LinkedBlockingDeque$Node;-><init>(Ljava/lang/Object;)V -HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>()V -HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>(I)V -HSPLjava/util/concurrent/LinkedBlockingDeque;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/LinkedBlockingDeque;->addFirst(Ljava/lang/Object;)V -HSPLjava/util/concurrent/LinkedBlockingDeque;->addLast(Ljava/lang/Object;)V -HSPLjava/util/concurrent/LinkedBlockingDeque;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/LinkedBlockingDeque;->linkFirst(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z -HSPLjava/util/concurrent/LinkedBlockingDeque;->linkLast(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z -HSPLjava/util/concurrent/LinkedBlockingDeque;->offer(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/LinkedBlockingDeque;->offerFirst(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/LinkedBlockingDeque;->offerLast(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/LinkedBlockingDeque;->peekFirst()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->poll()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->size()I -HSPLjava/util/concurrent/LinkedBlockingDeque;->take()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->takeFirst()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V -HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>()V -HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>(I)V -HSPLjava/util/concurrent/LinkedBlockingQueue;->clear()V -HSPLjava/util/concurrent/LinkedBlockingQueue;->dequeue()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingQueue;->drainTo(Ljava/util/Collection;)I -HSPLjava/util/concurrent/LinkedBlockingQueue;->drainTo(Ljava/util/Collection;I)I -HSPLjava/util/concurrent/LinkedBlockingQueue;->enqueue(Ljava/util/concurrent/LinkedBlockingQueue$Node;)V -HSPLjava/util/concurrent/LinkedBlockingQueue;->fullyLock()V -HSPLjava/util/concurrent/LinkedBlockingQueue;->fullyUnlock()V -HSPLjava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/LinkedBlockingQueue;->poll()Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/LinkedBlockingQueue;->put(Ljava/lang/Object;)V -HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotEmpty()V -HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V -HSPLjava/util/concurrent/LinkedBlockingQueue;->size()I -HSPLjava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object; -HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>()V -HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>(ILjava/util/Comparator;)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/PriorityBlockingQueue;->dequeue()Ljava/lang/Object; -HSPLjava/util/concurrent/PriorityBlockingQueue;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/concurrent/PriorityBlockingQueue;->offer(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/PriorityBlockingQueue;->peek()Ljava/lang/Object; -HSPLjava/util/concurrent/PriorityBlockingQueue;->poll()Ljava/lang/Object; -HSPLjava/util/concurrent/PriorityBlockingQueue;->put(Ljava/lang/Object;)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->remove(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/PriorityBlockingQueue;->removeAt(I)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/Object;[Ljava/lang/Object;I)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpComparable(ILjava/lang/Object;[Ljava/lang/Object;)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;)V -HSPLjava/util/concurrent/PriorityBlockingQueue;->size()I -HSPLjava/util/concurrent/PriorityBlockingQueue;->take()Ljava/lang/Object; -HSPLjava/util/concurrent/PriorityBlockingQueue;->tryGrow([Ljava/lang/Object;I)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;[Ljava/util/concurrent/RunnableScheduledFuture;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->hasNext()Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->next()Ljava/lang/Object; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->next()Ljava/lang/Runnable; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->remove()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;-><init>()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Runnable;)Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;)I -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->drainTo(Ljava/util/Collection;I)I -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->finishPoll(Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->grow()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->indexOf(Ljava/lang/Object;)I -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->isEmpty()Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->iterator()Ljava/util/Iterator; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->offer(Ljava/lang/Runnable;)Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/RunnableScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->remove(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->setIndex(Ljava/util/concurrent/RunnableScheduledFuture;I)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftDown(ILjava/util/concurrent/RunnableScheduledFuture;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftUp(ILjava/util/concurrent/RunnableScheduledFuture;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->size()I -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/lang/Object; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->take()Ljava/util/concurrent/RunnableScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->toArray()[Ljava/lang/Object; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/lang/Runnable;Ljava/lang/Object;JJ)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/lang/Runnable;Ljava/lang/Object;JJJ)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor;Ljava/util/concurrent/Callable;JJ)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->cancel(Z)Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/lang/Object;)I -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/util/concurrent/Delayed;)I -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->getDelay(Ljava/util/concurrent/TimeUnit;)J -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->isPeriodic()Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->run()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->setNextRunTime()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(I)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(ILjava/util/concurrent/ThreadFactory;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;-><init>(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->canRunInCurrentRunState(Ljava/util/concurrent/RunnableScheduledFuture;)Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->decorateTask(Ljava/lang/Runnable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->decorateTask(Ljava/util/concurrent/Callable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->delayedExecute(Ljava/util/concurrent/RunnableScheduledFuture;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->getContinueExistingPeriodicTasksAfterShutdownPolicy()Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->getExecuteExistingDelayedTasksAfterShutdownPolicy()Z -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->onShutdown()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->reExecutePeriodic(Ljava/util/concurrent/RunnableScheduledFuture;)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->setRemoveOnCancelPolicy(Z)V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdown()V -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->shutdownNow()Ljava/util/List; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J -HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J -HSPLjava/util/concurrent/Semaphore$FairSync;-><init>(I)V -HSPLjava/util/concurrent/Semaphore$FairSync;->tryAcquireShared(I)I -HSPLjava/util/concurrent/Semaphore$NonfairSync;-><init>(I)V -HSPLjava/util/concurrent/Semaphore$NonfairSync;->tryAcquireShared(I)I -HSPLjava/util/concurrent/Semaphore$Sync;-><init>(I)V -HSPLjava/util/concurrent/Semaphore$Sync;->getPermits()I -HSPLjava/util/concurrent/Semaphore$Sync;->nonfairTryAcquireShared(I)I -HSPLjava/util/concurrent/Semaphore$Sync;->tryReleaseShared(I)Z -HSPLjava/util/concurrent/Semaphore;-><init>(I)V -HSPLjava/util/concurrent/Semaphore;-><init>(IZ)V -HSPLjava/util/concurrent/Semaphore;->acquire()V -HSPLjava/util/concurrent/Semaphore;->acquireUninterruptibly()V -HSPLjava/util/concurrent/Semaphore;->availablePermits()I -HSPLjava/util/concurrent/Semaphore;->release()V -HSPLjava/util/concurrent/Semaphore;->release(I)V -HSPLjava/util/concurrent/Semaphore;->tryAcquire()Z -HSPLjava/util/concurrent/Semaphore;->tryAcquire(IJLjava/util/concurrent/TimeUnit;)Z -HSPLjava/util/concurrent/Semaphore;->tryAcquire(JLjava/util/concurrent/TimeUnit;)Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;-><init>(Ljava/lang/Object;)V -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->block()Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->forgetWaiter()V -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isCancelled()Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isReleasable()Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->tryMatch(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack;-><init>()V -HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->casHead(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->clean(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)V -HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->isFulfilling(I)Z -HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->snode(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode; -HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object; -HSPLjava/util/concurrent/SynchronousQueue$Transferer;-><init>()V -HSPLjava/util/concurrent/SynchronousQueue;-><init>()V -HSPLjava/util/concurrent/SynchronousQueue;-><init>(Z)V -HSPLjava/util/concurrent/SynchronousQueue;->isEmpty()Z -HSPLjava/util/concurrent/SynchronousQueue;->offer(Ljava/lang/Object;)Z -HSPLjava/util/concurrent/SynchronousQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; -HSPLjava/util/concurrent/SynchronousQueue;->size()I -HSPLjava/util/concurrent/SynchronousQueue;->take()Ljava/lang/Object; -HSPLjava/util/concurrent/ThreadLocalRandom;-><clinit>()V -HSPLjava/util/concurrent/ThreadLocalRandom;-><init>()V -HSPLjava/util/concurrent/ThreadLocalRandom;->current()Ljava/util/concurrent/ThreadLocalRandom; -HSPLjava/util/concurrent/ThreadLocalRandom;->getProbe()I -HSPLjava/util/concurrent/ThreadLocalRandom;->localInit()V -HSPLjava/util/concurrent/ThreadLocalRandom;->mix32(J)I -HSPLjava/util/concurrent/ThreadLocalRandom;->nextInt()I -HSPLjava/util/concurrent/ThreadLocalRandom;->nextSecondarySeed()I -HSPLjava/util/concurrent/ThreadLocalRandom;->nextSeed()J -HSPLjava/util/concurrent/ThreadLocalRandom;->setSeed(J)V -HSPLjava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;-><init>()V -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;-><init>(Ljava/util/concurrent/ThreadPoolExecutor;Ljava/lang/Runnable;)V -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->interruptIfStarted()V -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->isHeldExclusively()Z -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->isLocked()Z -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->lock()V -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->run()V -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryAcquire(I)Z -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryLock()Z -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryRelease(I)Z -HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->unlock()V -HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->addWorker(Ljava/lang/Runnable;Z)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->advanceRunState(I)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut(Z)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->checkShutdownAccess()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->compareAndDecrementWorkerCount(I)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->compareAndIncrementWorkerCount(I)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->ctlOf(II)I -HSPLjava/util/concurrent/ThreadPoolExecutor;->decrementWorkerCount()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->drainQueue()Ljava/util/List; -HSPLjava/util/concurrent/ThreadPoolExecutor;->ensurePrestart()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->finalize()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->getCorePoolSize()I -HSPLjava/util/concurrent/ThreadPoolExecutor;->getMaximumPoolSize()I -HSPLjava/util/concurrent/ThreadPoolExecutor;->getQueue()Ljava/util/concurrent/BlockingQueue; -HSPLjava/util/concurrent/ThreadPoolExecutor;->getRejectedExecutionHandler()Ljava/util/concurrent/RejectedExecutionHandler; -HSPLjava/util/concurrent/ThreadPoolExecutor;->getTask()Ljava/lang/Runnable; -HSPLjava/util/concurrent/ThreadPoolExecutor;->getThreadFactory()Ljava/util/concurrent/ThreadFactory; -HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers(Z)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptWorkers()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->isRunning(I)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->isShutdown()Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->isTerminated()Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->onShutdown()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->prestartAllCoreThreads()I -HSPLjava/util/concurrent/ThreadPoolExecutor;->prestartCoreThread()Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->processWorkerExit(Ljava/util/concurrent/ThreadPoolExecutor$Worker;Z)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->purge()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->remove(Ljava/lang/Runnable;)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateAtLeast(II)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateLessThan(II)Z -HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateOf(I)I -HSPLjava/util/concurrent/ThreadPoolExecutor;->runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->setCorePoolSize(I)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->setKeepAliveTime(JLjava/util/concurrent/TimeUnit;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->setMaximumPoolSize(I)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->setRejectedExecutionHandler(Ljava/util/concurrent/RejectedExecutionHandler;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->setThreadFactory(Ljava/util/concurrent/ThreadFactory;)V -HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdown()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdownNow()Ljava/util/List; -HSPLjava/util/concurrent/ThreadPoolExecutor;->terminated()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->toString()Ljava/lang/String; -HSPLjava/util/concurrent/ThreadPoolExecutor;->tryTerminate()V -HSPLjava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I -HSPLjava/util/concurrent/TimeUnit;->convert(JLjava/util/concurrent/TimeUnit;)J -HSPLjava/util/concurrent/TimeUnit;->cvt(JJJ)J -HSPLjava/util/concurrent/TimeUnit;->sleep(J)V -HSPLjava/util/concurrent/TimeUnit;->toDays(J)J -HSPLjava/util/concurrent/TimeUnit;->toHours(J)J -HSPLjava/util/concurrent/TimeUnit;->toMicros(J)J -HSPLjava/util/concurrent/TimeUnit;->toMillis(J)J -HSPLjava/util/concurrent/TimeUnit;->toMinutes(J)J -HSPLjava/util/concurrent/TimeUnit;->toNanos(J)J -HSPLjava/util/concurrent/TimeUnit;->toSeconds(J)J -HSPLjava/util/concurrent/TimeUnit;->values()[Ljava/util/concurrent/TimeUnit; -HSPLjava/util/concurrent/TimeoutException;-><init>()V -HSPLjava/util/concurrent/TimeoutException;-><init>(Ljava/lang/String;)V -HSPLjava/util/concurrent/atomic/AtomicBoolean;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V -HSPLjava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z -HSPLjava/util/concurrent/atomic/AtomicBoolean;->get()Z -HSPLjava/util/concurrent/atomic/AtomicBoolean;->getAndSet(Z)Z -HSPLjava/util/concurrent/atomic/AtomicBoolean;->lazySet(Z)V -HSPLjava/util/concurrent/atomic/AtomicBoolean;->set(Z)V -HSPLjava/util/concurrent/atomic/AtomicBoolean;->toString()Ljava/lang/String; -HSPLjava/util/concurrent/atomic/AtomicInteger;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicInteger;-><init>(I)V -HSPLjava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I -HSPLjava/util/concurrent/atomic/AtomicInteger;->compareAndSet(II)Z -HSPLjava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I -HSPLjava/util/concurrent/atomic/AtomicInteger;->get()I -HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndAdd(I)I -HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndDecrement()I -HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I -HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndSet(I)I -HSPLjava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I -HSPLjava/util/concurrent/atomic/AtomicInteger;->intValue()I -HSPLjava/util/concurrent/atomic/AtomicInteger;->lazySet(I)V -HSPLjava/util/concurrent/atomic/AtomicInteger;->set(I)V -HSPLjava/util/concurrent/atomic/AtomicInteger;->weakCompareAndSetVolatile(II)Z -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;II)Z -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->decrementAndGet(Ljava/lang/Object;)I -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->getAndAdd(Ljava/lang/Object;I)I -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->getAndIncrement(Ljava/lang/Object;)I -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->incrementAndGet(Ljava/lang/Object;)I -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->set(Ljava/lang/Object;I)V -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; -HSPLjava/util/concurrent/atomic/AtomicLong;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicLong;-><init>(J)V -HSPLjava/util/concurrent/atomic/AtomicLong;->addAndGet(J)J -HSPLjava/util/concurrent/atomic/AtomicLong;->compareAndSet(JJ)Z -HSPLjava/util/concurrent/atomic/AtomicLong;->decrementAndGet()J -HSPLjava/util/concurrent/atomic/AtomicLong;->get()J -HSPLjava/util/concurrent/atomic/AtomicLong;->getAndAdd(J)J -HSPLjava/util/concurrent/atomic/AtomicLong;->getAndIncrement()J -HSPLjava/util/concurrent/atomic/AtomicLong;->getAndSet(J)J -HSPLjava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J -HSPLjava/util/concurrent/atomic/AtomicLong;->lazySet(J)V -HSPLjava/util/concurrent/atomic/AtomicLong;->set(J)V -HSPLjava/util/concurrent/atomic/AtomicLong;->toString()Ljava/lang/String; -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->accessCheck(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->addAndGet(Ljava/lang/Object;J)J -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->compareAndSet(Ljava/lang/Object;JJ)Z -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->getAndAdd(Ljava/lang/Object;J)J -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->getAndIncrement(Ljava/lang/Object;)J -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->incrementAndGet(Ljava/lang/Object;)J -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater; -HSPLjava/util/concurrent/atomic/AtomicReference;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReference;->toString()Ljava/lang/String; -HSPLjava/util/concurrent/atomic/AtomicReference;->updateAndGet(Ljava/util/function/UnaryOperator;)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReference;->weakCompareAndSetVolatile(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAcquire(I)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAndSet(ILjava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->length()I -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->set(ILjava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->setRelease(ILjava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->getAndSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->lazySet(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->valueCheck(Ljava/lang/Object;)V -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;-><init>()V -HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; -HSPLjava/util/concurrent/atomic/LongAdder;-><init>()V -HSPLjava/util/concurrent/atomic/LongAdder;->add(J)V -HSPLjava/util/concurrent/atomic/Striped64$Cell;-><clinit>()V -HSPLjava/util/concurrent/atomic/Striped64$Cell;-><init>(J)V -HSPLjava/util/concurrent/atomic/Striped64$Cell;->cas(JJ)Z -HSPLjava/util/concurrent/atomic/Striped64;-><init>()V -HSPLjava/util/concurrent/atomic/Striped64;->casBase(JJ)Z -HSPLjava/util/concurrent/atomic/Striped64;->casCellsBusy()Z -HSPLjava/util/concurrent/atomic/Striped64;->getProbe()I -HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;-><init>()V -HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;->getExclusiveOwnerThread()Ljava/lang/Thread; -HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;->setExclusiveOwnerThread(Ljava/lang/Thread;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;-><init>()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;->block()Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;->isReleasable()Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;-><init>(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->await()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->awaitNanos(J)J -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->canReacquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;Z)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->enableWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)I -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->hasWaiters()Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signal()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signalAll()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->unlinkCancelledWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode;-><init>()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->clearStatus()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->getAndUnsetStatus(I)I -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->setPrevRelaxed(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;->setStatusRelaxed(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode;-><init>()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->-$$Nest$sfgetU()Ljdk/internal/misc/Unsafe; -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;-><init>()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquire(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;IZZZJ)I -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireInterruptibly(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireShared(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->acquireSharedInterruptibly(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->apparentlyFirstQueuedIsExclusive()Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->casTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->cleanQueue()V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->compareAndSetState(II)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->enqueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getFirstQueuedThread()Ljava/lang/Thread; -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getState()I -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedPredecessors()Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedThreads()Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->isEnqueued(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->owns(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->release(I)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->releaseShared(I)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->setState(I)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->signalNext(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->signalNextIfShared(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireNanos(IJ)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireSharedNanos(IJ)Z -HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryInitializeHead()V -HSPLjava/util/concurrent/locks/LockSupport;->park()V -HSPLjava/util/concurrent/locks/LockSupport;->park(Ljava/lang/Object;)V -HSPLjava/util/concurrent/locks/LockSupport;->parkNanos(J)V -HSPLjava/util/concurrent/locks/LockSupport;->parkNanos(Ljava/lang/Object;J)V -HSPLjava/util/concurrent/locks/LockSupport;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V -HSPLjava/util/concurrent/locks/LockSupport;->setCurrentBlocker(Ljava/lang/Object;)V -HSPLjava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V -HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->initialTryLock()Z -HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->tryAcquire(I)Z -HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->initialTryLock()Z -HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->tryAcquire(I)Z -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->isHeldExclusively()Z -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->lock()V -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->lockInterruptibly()V -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject; -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->tryLock()Z -HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->tryRelease(I)Z -HSPLjava/util/concurrent/locks/ReentrantLock;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantLock;-><init>(Z)V -HSPLjava/util/concurrent/locks/ReentrantLock;->hasWaiters(Ljava/util/concurrent/locks/Condition;)Z -HSPLjava/util/concurrent/locks/ReentrantLock;->isHeldByCurrentThread()Z -HSPLjava/util/concurrent/locks/ReentrantLock;->lock()V -HSPLjava/util/concurrent/locks/ReentrantLock;->lockInterruptibly()V -HSPLjava/util/concurrent/locks/ReentrantLock;->newCondition()Ljava/util/concurrent/locks/Condition; -HSPLjava/util/concurrent/locks/ReentrantLock;->tryLock()Z -HSPLjava/util/concurrent/locks/ReentrantLock;->tryLock(JLjava/util/concurrent/TimeUnit;)Z -HSPLjava/util/concurrent/locks/ReentrantLock;->unlock()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->readerShouldBlock()Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->writerShouldBlock()Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->readerShouldBlock()Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->writerShouldBlock()Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;-><init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->lock()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->unlock()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;->initialValue()Ljava/lang/Object; -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;->initialValue()Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter; -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->exclusiveCount(I)I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->fullTryAcquireShared(Ljava/lang/Thread;)I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadHoldCount()I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->getReadLockCount()I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->isHeldExclusively()Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->sharedCount(I)I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryAcquire(I)Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryAcquireShared(I)I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryRelease(I)Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReleaseShared(I)Z -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;-><init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lock()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;-><init>(Z)V -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->getReadHoldCount()I -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock; -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock; -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock; -HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock; -HSPLjava/util/function/BinaryOperator$$ExternalSyntheticLambda0;-><init>(Ljava/util/Comparator;)V -HSPLjava/util/function/BinaryOperator;->maxBy(Ljava/util/Comparator;)Ljava/util/function/BinaryOperator; -HSPLjava/util/function/DoubleUnaryOperator$$ExternalSyntheticLambda1;->applyAsDouble(D)D -HSPLjava/util/function/DoubleUnaryOperator;->andThen(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/function/DoubleUnaryOperator; -HSPLjava/util/function/Function$$ExternalSyntheticLambda0;-><init>()V -HSPLjava/util/function/Function$$ExternalSyntheticLambda0;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/function/Function$$ExternalSyntheticLambda1;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/function/Function$$ExternalSyntheticLambda2;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/function/Function;->identity()Ljava/util/function/Function; -HSPLjava/util/function/Function;->lambda$identity$2(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/jar/Attributes$Name;-><init>(Ljava/lang/String;)V -HSPLjava/util/jar/Attributes$Name;->equals(Ljava/lang/Object;)Z -HSPLjava/util/jar/Attributes$Name;->hash(Ljava/lang/String;)I -HSPLjava/util/jar/Attributes$Name;->hashCode()I -HSPLjava/util/jar/Attributes$Name;->toString()Ljava/lang/String; -HSPLjava/util/jar/Attributes;-><init>()V -HSPLjava/util/jar/Attributes;-><init>(I)V -HSPLjava/util/jar/Attributes;->entrySet()Ljava/util/Set; -HSPLjava/util/jar/Attributes;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/jar/Attributes;->getValue(Ljava/util/jar/Attributes$Name;)Ljava/lang/String; -HSPLjava/util/jar/Attributes;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/jar/Attributes;->putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/jar/Attributes;->read(Ljava/util/jar/Manifest$FastInputStream;[B)V -HSPLjava/util/jar/Attributes;->read(Ljava/util/jar/Manifest$FastInputStream;[BLjava/lang/String;I)I -HSPLjava/util/jar/Attributes;->size()I -HSPLjava/util/jar/JarEntry;-><init>(Ljava/lang/String;)V -HSPLjava/util/jar/JarEntry;-><init>(Ljava/util/zip/ZipEntry;)V -HSPLjava/util/jar/JarFile$JarFileEntry;-><init>(Ljava/util/jar/JarFile;Ljava/lang/String;)V -HSPLjava/util/jar/JarFile$JarFileEntry;-><init>(Ljava/util/jar/JarFile;Ljava/util/zip/ZipEntry;)V -HSPLjava/util/jar/JarFile;-><init>(Ljava/io/File;ZI)V -HSPLjava/util/jar/JarFile;-><init>(Ljava/io/File;ZZI)V -HSPLjava/util/jar/JarFile;-><init>(Ljava/lang/String;)V -HSPLjava/util/jar/JarFile;-><init>(Ljava/lang/String;ZZ)V -HSPLjava/util/jar/JarFile;->entryFor(Ljava/lang/String;)Ljava/util/jar/JarEntry; -HSPLjava/util/jar/JarFile;->getBytes(Ljava/util/zip/ZipEntry;)[B -HSPLjava/util/jar/JarFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; -HSPLjava/util/jar/JarFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; -HSPLjava/util/jar/JarFile;->getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry; -HSPLjava/util/jar/JarFile;->getManEntry()Ljava/util/jar/JarEntry; -HSPLjava/util/jar/JarFile;->getManifest()Ljava/util/jar/Manifest; -HSPLjava/util/jar/JarFile;->getManifestFromReference()Ljava/util/jar/Manifest; -HSPLjava/util/jar/JarFile;->initializeVerifier()V -HSPLjava/util/jar/JarFile;->maybeInstantiateVerifier()V -HSPLjava/util/jar/JarVerifier$3;-><init>(Ljava/util/jar/JarVerifier;)V -HSPLjava/util/jar/JarVerifier$VerifierStream;-><init>(Ljava/util/jar/Manifest;Ljava/util/jar/JarEntry;Ljava/io/InputStream;Ljava/util/jar/JarVerifier;)V -HSPLjava/util/jar/JarVerifier$VerifierStream;->available()I -HSPLjava/util/jar/JarVerifier$VerifierStream;->close()V -HSPLjava/util/jar/JarVerifier$VerifierStream;->read()I -HSPLjava/util/jar/JarVerifier$VerifierStream;->read([BII)I -HSPLjava/util/jar/JarVerifier;->beginEntry(Ljava/util/jar/JarEntry;Lsun/security/util/ManifestEntryVerifier;)V -HSPLjava/util/jar/JarVerifier;->doneWithMeta()V -HSPLjava/util/jar/JarVerifier;->mapSignersToCertArray([Ljava/security/CodeSigner;)[Ljava/security/cert/Certificate; -HSPLjava/util/jar/JarVerifier;->nothingToVerify()Z -HSPLjava/util/jar/JarVerifier;->processEntry(Lsun/security/util/ManifestEntryVerifier;)V -HSPLjava/util/jar/JarVerifier;->update(ILsun/security/util/ManifestEntryVerifier;)V -HSPLjava/util/jar/JarVerifier;->update(I[BIILsun/security/util/ManifestEntryVerifier;)V -HSPLjava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;I)V -HSPLjava/util/jar/Manifest$FastInputStream;->fill()V -HSPLjava/util/jar/Manifest$FastInputStream;->peek()B -HSPLjava/util/jar/Manifest$FastInputStream;->readLine([B)I -HSPLjava/util/jar/Manifest$FastInputStream;->readLine([BII)I -HSPLjava/util/jar/Manifest;-><init>()V -HSPLjava/util/jar/Manifest;-><init>(Ljava/io/InputStream;)V -HSPLjava/util/jar/Manifest;->getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes; -HSPLjava/util/jar/Manifest;->getEntries()Ljava/util/Map; -HSPLjava/util/jar/Manifest;->getMainAttributes()Ljava/util/jar/Attributes; -HSPLjava/util/jar/Manifest;->parseName([BI)Ljava/lang/String; -HSPLjava/util/jar/Manifest;->read(Ljava/io/InputStream;)V -HSPLjava/util/jar/Manifest;->toLower(I)I -HSPLjava/util/logging/ConsoleHandler;->close()V -HSPLjava/util/logging/ErrorManager;-><init>()V -HSPLjava/util/logging/FileHandler$1;-><init>(Ljava/util/logging/FileHandler;)V -HSPLjava/util/logging/FileHandler$1;->run()Ljava/lang/Object; -HSPLjava/util/logging/FileHandler$InitializationErrorManager;-><init>()V -HSPLjava/util/logging/FileHandler$InitializationErrorManager;-><init>(Ljava/util/logging/FileHandler$InitializationErrorManager-IA;)V -HSPLjava/util/logging/FileHandler$MeteredStream;-><init>(Ljava/util/logging/FileHandler;Ljava/io/OutputStream;I)V -HSPLjava/util/logging/FileHandler$MeteredStream;->close()V -HSPLjava/util/logging/FileHandler$MeteredStream;->flush()V -HSPLjava/util/logging/FileHandler$MeteredStream;->write([BII)V -HSPLjava/util/logging/FileHandler;->-$$Nest$mrotate(Ljava/util/logging/FileHandler;)V -HSPLjava/util/logging/FileHandler;-><clinit>()V -HSPLjava/util/logging/FileHandler;-><init>(Ljava/lang/String;IIZ)V -HSPLjava/util/logging/FileHandler;->configure()V -HSPLjava/util/logging/FileHandler;->generate(Ljava/lang/String;II)Ljava/io/File; -HSPLjava/util/logging/FileHandler;->isParentWritable(Ljava/nio/file/Path;)Z -HSPLjava/util/logging/FileHandler;->open(Ljava/io/File;Z)V -HSPLjava/util/logging/FileHandler;->openFiles()V -HSPLjava/util/logging/FileHandler;->publish(Ljava/util/logging/LogRecord;)V -HSPLjava/util/logging/FileHandler;->rotate()V -HSPLjava/util/logging/Formatter;-><init>()V -HSPLjava/util/logging/Formatter;->getHead(Ljava/util/logging/Handler;)Ljava/lang/String; -HSPLjava/util/logging/Formatter;->getTail(Ljava/util/logging/Handler;)Ljava/lang/String; -HSPLjava/util/logging/Handler;-><init>()V -HSPLjava/util/logging/Handler;->checkPermission()V -HSPLjava/util/logging/Handler;->getEncoding()Ljava/lang/String; -HSPLjava/util/logging/Handler;->getFilter()Ljava/util/logging/Filter; -HSPLjava/util/logging/Handler;->getFormatter()Ljava/util/logging/Formatter; -HSPLjava/util/logging/Handler;->getLevel()Ljava/util/logging/Level; -HSPLjava/util/logging/Handler;->isLoggable(Ljava/util/logging/LogRecord;)Z -HSPLjava/util/logging/Handler;->setEncoding(Ljava/lang/String;)V -HSPLjava/util/logging/Handler;->setErrorManager(Ljava/util/logging/ErrorManager;)V -HSPLjava/util/logging/Handler;->setFilter(Ljava/util/logging/Filter;)V -HSPLjava/util/logging/Handler;->setFormatter(Ljava/util/logging/Formatter;)V -HSPLjava/util/logging/Handler;->setLevel(Ljava/util/logging/Level;)V -HSPLjava/util/logging/Level;->equals(Ljava/lang/Object;)Z -HSPLjava/util/logging/Level;->intValue()I -HSPLjava/util/logging/LogManager$5;-><init>(Ljava/util/logging/LogManager;Ljava/lang/String;Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager$5;->run()Ljava/lang/Object; -HSPLjava/util/logging/LogManager$LogNode;-><init>(Ljava/util/logging/LogManager$LogNode;Ljava/util/logging/LogManager$LoggerContext;)V -HSPLjava/util/logging/LogManager$LogNode;->walkAndSetParent(Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager$LoggerContext$1;-><init>(Ljava/util/logging/LogManager$LoggerContext;Ljava/util/logging/Logger;Ljava/util/logging/LogManager;Ljava/lang/String;)V -HSPLjava/util/logging/LogManager$LoggerContext$1;->run()Ljava/lang/Object; -HSPLjava/util/logging/LogManager$LoggerContext$1;->run()Ljava/lang/Void; -HSPLjava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;)Z -HSPLjava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;Z)Z -HSPLjava/util/logging/LogManager$LoggerContext;->ensureAllDefaultLoggers(Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager$LoggerContext;->ensureDefaultLogger(Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager$LoggerContext;->ensureInitialized()V -HSPLjava/util/logging/LogManager$LoggerContext;->findLogger(Ljava/lang/String;)Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager$LoggerContext;->getGlobalLogger()Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager$LoggerContext;->getLoggerNames()Ljava/util/Enumeration; -HSPLjava/util/logging/LogManager$LoggerContext;->getNode(Ljava/lang/String;)Ljava/util/logging/LogManager$LogNode; -HSPLjava/util/logging/LogManager$LoggerContext;->getOwner()Ljava/util/logging/LogManager; -HSPLjava/util/logging/LogManager$LoggerContext;->getRootLogger()Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager$LoggerContext;->processParentHandlers(Ljava/util/logging/Logger;Ljava/lang/String;)V -HSPLjava/util/logging/LogManager$LoggerContext;->removeLoggerRef(Ljava/lang/String;Ljava/util/logging/LogManager$LoggerWeakRef;)V -HSPLjava/util/logging/LogManager$LoggerContext;->requiresDefaultLoggers()Z -HSPLjava/util/logging/LogManager$LoggerWeakRef;-><init>(Ljava/util/logging/LogManager;Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager$LoggerWeakRef;->dispose()V -HSPLjava/util/logging/LogManager$LoggerWeakRef;->setNode(Ljava/util/logging/LogManager$LogNode;)V -HSPLjava/util/logging/LogManager$LoggerWeakRef;->setParentRef(Ljava/lang/ref/WeakReference;)V -HSPLjava/util/logging/LogManager$RootLogger;->accessCheckedHandlers()[Ljava/util/logging/Handler; -HSPLjava/util/logging/LogManager$RootLogger;->addHandler(Ljava/util/logging/Handler;)V -HSPLjava/util/logging/LogManager$RootLogger;->removeHandler(Ljava/util/logging/Handler;)V -HSPLjava/util/logging/LogManager$SystemLoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager;->-$$Nest$fgetloggerRefQueue(Ljava/util/logging/LogManager;)Ljava/lang/ref/ReferenceQueue; -HSPLjava/util/logging/LogManager;->-$$Nest$fgetrootLogger(Ljava/util/logging/LogManager;)Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager;->-$$Nest$minitializeGlobalHandlers(Ljava/util/logging/LogManager;)V -HSPLjava/util/logging/LogManager;->-$$Nest$mparseClassNames(Ljava/util/logging/LogManager;Ljava/lang/String;)[Ljava/lang/String; -HSPLjava/util/logging/LogManager;->-$$Nest$sfgetmanager()Ljava/util/logging/LogManager; -HSPLjava/util/logging/LogManager;->-$$Nest$smdoSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager;->addLogger(Ljava/util/logging/Logger;)Z -HSPLjava/util/logging/LogManager;->checkPermission()V -HSPLjava/util/logging/LogManager;->contexts()Ljava/util/List; -HSPLjava/util/logging/LogManager;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager;->demandSystemLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager;->doSetParent(Ljava/util/logging/Logger;Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogManager;->drainLoggerRefQueueBounded()V -HSPLjava/util/logging/LogManager;->ensureLogManagerInitialized()V -HSPLjava/util/logging/LogManager;->getBooleanProperty(Ljava/lang/String;Z)Z -HSPLjava/util/logging/LogManager;->getFilterProperty(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter; -HSPLjava/util/logging/LogManager;->getFormatterProperty(Ljava/lang/String;Ljava/util/logging/Formatter;)Ljava/util/logging/Formatter; -HSPLjava/util/logging/LogManager;->getIntProperty(Ljava/lang/String;I)I -HSPLjava/util/logging/LogManager;->getLevelProperty(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level; -HSPLjava/util/logging/LogManager;->getLogManager()Ljava/util/logging/LogManager; -HSPLjava/util/logging/LogManager;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger; -HSPLjava/util/logging/LogManager;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/logging/LogManager;->getStringProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/logging/LogManager;->getSystemContext()Ljava/util/logging/LogManager$LoggerContext; -HSPLjava/util/logging/LogManager;->getUserContext()Ljava/util/logging/LogManager$LoggerContext; -HSPLjava/util/logging/LogManager;->initializeGlobalHandlers()V -HSPLjava/util/logging/LogManager;->loadLoggerHandlers(Ljava/util/logging/Logger;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/logging/LogManager;->parseClassNames(Ljava/lang/String;)[Ljava/lang/String; -HSPLjava/util/logging/LogManager;->reset()V -HSPLjava/util/logging/LogManager;->resetLogger(Ljava/util/logging/Logger;)V -HSPLjava/util/logging/LogRecord;-><init>(Ljava/util/logging/Level;Ljava/lang/String;)V -HSPLjava/util/logging/LogRecord;->defaultThreadID()I -HSPLjava/util/logging/LogRecord;->getLevel()Ljava/util/logging/Level; -HSPLjava/util/logging/LogRecord;->getLoggerName()Ljava/lang/String; -HSPLjava/util/logging/LogRecord;->getMessage()Ljava/lang/String; -HSPLjava/util/logging/LogRecord;->getThrown()Ljava/lang/Throwable; -HSPLjava/util/logging/LogRecord;->setLoggerName(Ljava/lang/String;)V -HSPLjava/util/logging/LogRecord;->setParameters([Ljava/lang/Object;)V -HSPLjava/util/logging/LogRecord;->setSourceClassName(Ljava/lang/String;)V -HSPLjava/util/logging/LogRecord;->setSourceMethodName(Ljava/lang/String;)V -HSPLjava/util/logging/LogRecord;->setThrown(Ljava/lang/Throwable;)V -HSPLjava/util/logging/Logger$1;-><init>(Ljava/util/Locale;)V -HSPLjava/util/logging/Logger$1;->run()Ljava/lang/Object; -HSPLjava/util/logging/Logger$1;->run()Ljava/util/ResourceBundle; -HSPLjava/util/logging/Logger$LoggerBundle;->get(Ljava/lang/String;Ljava/util/ResourceBundle;)Ljava/util/logging/Logger$LoggerBundle; -HSPLjava/util/logging/Logger$LoggerBundle;->isSystemBundle()Z -HSPLjava/util/logging/Logger;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;Ljava/util/logging/LogManager;Z)V -HSPLjava/util/logging/Logger;->accessCheckedHandlers()[Ljava/util/logging/Handler; -HSPLjava/util/logging/Logger;->addHandler(Ljava/util/logging/Handler;)V -HSPLjava/util/logging/Logger;->checkPermission()V -HSPLjava/util/logging/Logger;->demandLogger(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)Ljava/util/logging/Logger; -HSPLjava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;)V -HSPLjava/util/logging/Logger;->doSetParent(Ljava/util/logging/Logger;)V -HSPLjava/util/logging/Logger;->findResourceBundle(Ljava/lang/String;Z)Ljava/util/ResourceBundle; -HSPLjava/util/logging/Logger;->findSystemResourceBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle; -HSPLjava/util/logging/Logger;->getCallersClassLoader()Ljava/lang/ClassLoader; -HSPLjava/util/logging/Logger;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle; -HSPLjava/util/logging/Logger;->getHandlers()[Ljava/util/logging/Handler; -HSPLjava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger; -HSPLjava/util/logging/Logger;->getName()Ljava/lang/String; -HSPLjava/util/logging/Logger;->getParent()Ljava/util/logging/Logger; -HSPLjava/util/logging/Logger;->getPlatformLogger(Ljava/lang/String;)Ljava/util/logging/Logger; -HSPLjava/util/logging/Logger;->getResourceBundle()Ljava/util/ResourceBundle; -HSPLjava/util/logging/Logger;->getResourceBundleName()Ljava/lang/String; -HSPLjava/util/logging/Logger;->getUseParentHandlers()Z -HSPLjava/util/logging/Logger;->info(Ljava/lang/String;)V -HSPLjava/util/logging/Logger;->isLoggable(Ljava/util/logging/Level;)Z -HSPLjava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;)V -HSPLjava/util/logging/Logger;->log(Ljava/util/logging/LogRecord;)V -HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V -HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V -HSPLjava/util/logging/Logger;->removeChildLogger(Ljava/util/logging/LogManager$LoggerWeakRef;)V -HSPLjava/util/logging/Logger;->removeHandler(Ljava/util/logging/Handler;)V -HSPLjava/util/logging/Logger;->setCallersClassLoaderRef(Ljava/lang/Class;)V -HSPLjava/util/logging/Logger;->setLevel(Ljava/util/logging/Level;)V -HSPLjava/util/logging/Logger;->setLogManager(Ljava/util/logging/LogManager;)V -HSPLjava/util/logging/Logger;->setParent(Ljava/util/logging/Logger;)V -HSPLjava/util/logging/Logger;->setUseParentHandlers(Z)V -HSPLjava/util/logging/Logger;->setupResourceInfo(Ljava/lang/String;Ljava/lang/Class;)V -HSPLjava/util/logging/Logger;->updateEffectiveLevel()V -HSPLjava/util/logging/LoggingProxyImpl;->getLogger(Ljava/lang/String;)Ljava/lang/Object; -HSPLjava/util/logging/LoggingProxyImpl;->getProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/logging/SimpleFormatter;-><clinit>()V -HSPLjava/util/logging/SimpleFormatter;-><init>()V -HSPLjava/util/logging/StreamHandler;-><init>()V -HSPLjava/util/logging/StreamHandler;->close()V -HSPLjava/util/logging/StreamHandler;->configure()V -HSPLjava/util/logging/StreamHandler;->flush()V -HSPLjava/util/logging/StreamHandler;->flushAndClose()V -HSPLjava/util/logging/StreamHandler;->isLoggable(Ljava/util/logging/LogRecord;)Z -HSPLjava/util/logging/StreamHandler;->publish(Ljava/util/logging/LogRecord;)V -HSPLjava/util/logging/StreamHandler;->setEncoding(Ljava/lang/String;)V -HSPLjava/util/logging/StreamHandler;->setOutputStream(Ljava/io/OutputStream;)V -HSPLjava/util/logging/XMLFormatter;-><init>()V -HSPLjava/util/regex/Matcher;-><init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V -HSPLjava/util/regex/Matcher;->appendEvaluated(Ljava/lang/StringBuilder;Ljava/lang/String;)V -HSPLjava/util/regex/Matcher;->appendExpandedReplacement(Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder; -HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->appendReplacementInternal(Ljava/lang/StringBuilder;Ljava/lang/String;)V -HSPLjava/util/regex/Matcher;->appendTail(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer; -HSPLjava/util/regex/Matcher;->appendTail(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder; -HSPLjava/util/regex/Matcher;->end()I -HSPLjava/util/regex/Matcher;->end(I)I -HSPLjava/util/regex/Matcher;->ensureMatch()V -HSPLjava/util/regex/Matcher;->find()Z -HSPLjava/util/regex/Matcher;->find(I)Z -HSPLjava/util/regex/Matcher;->getSubSequence(II)Ljava/lang/CharSequence; -HSPLjava/util/regex/Matcher;->getTextLength()I -HSPLjava/util/regex/Matcher;->group()Ljava/lang/String; -HSPLjava/util/regex/Matcher;->group(I)Ljava/lang/String; -HSPLjava/util/regex/Matcher;->groupCount()I -HSPLjava/util/regex/Matcher;->hitEnd()Z -HSPLjava/util/regex/Matcher;->lookingAt()Z -HSPLjava/util/regex/Matcher;->matches()Z -HSPLjava/util/regex/Matcher;->pattern()Ljava/util/regex/Pattern; -HSPLjava/util/regex/Matcher;->region(II)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->replaceAll(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/regex/Matcher;->replaceFirst(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/regex/Matcher;->reset()Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;II)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->resetForInput()V -HSPLjava/util/regex/Matcher;->start()I -HSPLjava/util/regex/Matcher;->start(I)I -HSPLjava/util/regex/Matcher;->useAnchoringBounds(Z)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Matcher;->useTransparentBounds(Z)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Pattern;-><init>(Ljava/lang/String;I)V -HSPLjava/util/regex/Pattern;->compile()V -HSPLjava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; -HSPLjava/util/regex/Pattern;->compile(Ljava/lang/String;I)Ljava/util/regex/Pattern; -HSPLjava/util/regex/Pattern;->fastSplit(Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String; -HSPLjava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; -HSPLjava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z -HSPLjava/util/regex/Pattern;->pattern()Ljava/lang/String; -HSPLjava/util/regex/Pattern;->quote(Ljava/lang/String;)Ljava/lang/String; -HSPLjava/util/regex/Pattern;->split(Ljava/lang/CharSequence;)[Ljava/lang/String; -HSPLjava/util/regex/Pattern;->split(Ljava/lang/CharSequence;I)[Ljava/lang/String; -HSPLjava/util/regex/Pattern;->toString()Ljava/lang/String; -HSPLjava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V -HSPLjava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V -HSPLjava/util/stream/AbstractPipeline;->close()V -HSPLjava/util/stream/AbstractPipeline;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V -HSPLjava/util/stream/AbstractPipeline;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node; -HSPLjava/util/stream/AbstractPipeline;->evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object; -HSPLjava/util/stream/AbstractPipeline;->evaluateToArrayNode(Ljava/util/function/IntFunction;)Ljava/util/stream/Node; -HSPLjava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J -HSPLjava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I -HSPLjava/util/stream/AbstractPipeline;->isParallel()Z -HSPLjava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream; -HSPLjava/util/stream/AbstractPipeline;->sequential()Ljava/util/stream/BaseStream; -HSPLjava/util/stream/AbstractPipeline;->sourceSpliterator(I)Ljava/util/Spliterator; -HSPLjava/util/stream/AbstractPipeline;->sourceStageSpliterator()Ljava/util/Spliterator; -HSPLjava/util/stream/AbstractPipeline;->spliterator()Ljava/util/Spliterator; -HSPLjava/util/stream/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink; -HSPLjava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/AbstractSpinedBuffer;-><init>()V -HSPLjava/util/stream/AbstractSpinedBuffer;->count()J -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda0;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda20;->accept(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda25;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda25;->get()Ljava/lang/Object; -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda26;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda26;->accept(Ljava/lang/Object;Ljava/lang/Object;)V+]Ljava/util/List;Ljava/util/ArrayList; -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda27;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda28;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda28;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda42;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda65;->get()Ljava/lang/Object; -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda72;->get()Ljava/lang/Object; -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda74;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda75;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda75;->apply(Ljava/lang/Object;)Ljava/lang/Object; -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda76;-><init>()V -HSPLjava/util/stream/Collectors$$ExternalSyntheticLambda87;-><init>()V -HSPLjava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V -HSPLjava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;Ljava/util/Set;)V -HSPLjava/util/stream/Collectors$CollectorImpl;->accumulator()Ljava/util/function/BiConsumer; -HSPLjava/util/stream/Collectors$CollectorImpl;->characteristics()Ljava/util/Set; -HSPLjava/util/stream/Collectors$CollectorImpl;->combiner()Ljava/util/function/BinaryOperator; -HSPLjava/util/stream/Collectors$CollectorImpl;->finisher()Ljava/util/function/Function; -HSPLjava/util/stream/Collectors$CollectorImpl;->supplier()Ljava/util/function/Supplier; -HSPLjava/util/stream/Collectors;->-$$Nest$smcastingIdentity()Ljava/util/function/Function; -HSPLjava/util/stream/Collectors;->castingIdentity()Ljava/util/function/Function; -HSPLjava/util/stream/Collectors;->groupingBy(Ljava/util/function/Function;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->groupingBy(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->groupingBy(Ljava/util/function/Function;Ljava/util/stream/Collector;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->joining(Ljava/lang/CharSequence;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->joining(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->lambda$joining$11(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/StringJoiner; -HSPLjava/util/stream/Collectors;->lambda$toUnmodifiableList$6(Ljava/util/ArrayList;)Ljava/util/List;+]Ljdk/internal/access/JavaUtilCollectionAccess;Ljava/util/ImmutableCollections$Access$1; -HSPLjava/util/stream/Collectors;->lambda$uniqKeysMapAccumulator$1(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/Map;Ljava/lang/Object;)V -HSPLjava/util/stream/Collectors;->mapMerger(Ljava/util/function/BinaryOperator;)Ljava/util/function/BinaryOperator; -HSPLjava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->toList()Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/function/Supplier;)Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->toSet()Ljava/util/stream/Collector; -HSPLjava/util/stream/Collectors;->toUnmodifiableList()Ljava/util/stream/Collector; -HSPLjava/util/stream/DistinctOps$1$2;-><init>(Ljava/util/stream/DistinctOps$1;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/DistinctOps$1$2;->begin(J)V -HSPLjava/util/stream/DistinctOps$1$2;->end()V -HSPLjava/util/stream/DistinctOps$1;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V -HSPLjava/util/stream/DistinctOps$1;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/DistinctOps;->makeRef(Ljava/util/stream/AbstractPipeline;)Ljava/util/stream/ReferencePipeline; -HSPLjava/util/stream/DoublePipeline$StatelessOp;-><clinit>()V -HSPLjava/util/stream/DoublePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V -HSPLjava/util/stream/DoublePipeline$StatelessOp;->opIsStateful()Z -HSPLjava/util/stream/DoublePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V -HSPLjava/util/stream/DoublePipeline;->max()Ljava/util/OptionalDouble; -HSPLjava/util/stream/DoublePipeline;->reduce(Ljava/util/function/DoubleBinaryOperator;)Ljava/util/OptionalDouble; -HSPLjava/util/stream/FindOps$FindOp;-><init>(ZLjava/util/stream/StreamShape;Ljava/lang/Object;Ljava/util/function/Predicate;Ljava/util/function/Supplier;)V -HSPLjava/util/stream/FindOps$FindOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object; -HSPLjava/util/stream/FindOps$FindOp;->getOpFlags()I -HSPLjava/util/stream/FindOps$FindSink$OfRef;-><init>()V -HSPLjava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/lang/Object; -HSPLjava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/util/Optional; -HSPLjava/util/stream/FindOps$FindSink;-><init>()V -HSPLjava/util/stream/FindOps$FindSink;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/FindOps$FindSink;->cancellationRequested()Z -HSPLjava/util/stream/FindOps;->makeRef(Z)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/ForEachOps$ForEachOp$OfRef;-><init>(Ljava/util/function/Consumer;Z)V -HSPLjava/util/stream/ForEachOps$ForEachOp$OfRef;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ForEachOps$ForEachOp;-><init>(Z)V -HSPLjava/util/stream/ForEachOps$ForEachOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object; -HSPLjava/util/stream/ForEachOps$ForEachOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Void; -HSPLjava/util/stream/ForEachOps$ForEachOp;->get()Ljava/lang/Void; -HSPLjava/util/stream/ForEachOps$ForEachOp;->getOpFlags()I -HSPLjava/util/stream/ForEachOps;->makeRef(Ljava/util/function/Consumer;Z)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda12;->apply(I)Ljava/lang/Object; -HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda7;-><init>()V -HSPLjava/util/stream/IntPipeline$$ExternalSyntheticLambda8;-><init>()V -HSPLjava/util/stream/IntPipeline$1$1;-><init>(Ljava/util/stream/IntPipeline$1;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/IntPipeline$1$1;->accept(I)V+]Ljava/util/function/IntFunction;megamorphic_types]Ljava/util/stream/Sink;megamorphic_types -HSPLjava/util/stream/IntPipeline$1;-><init>(Ljava/util/stream/IntPipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/IntFunction;)V -HSPLjava/util/stream/IntPipeline$1;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/IntPipeline$4$1;-><init>(Ljava/util/stream/IntPipeline$4;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/IntPipeline$4$1;->accept(I)V -HSPLjava/util/stream/IntPipeline$4;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/IntPipeline$9;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V -HSPLjava/util/stream/IntPipeline$Head;->forEach(Ljava/util/function/IntConsumer;)V -HSPLjava/util/stream/IntPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V -HSPLjava/util/stream/IntPipeline$StatelessOp;->opIsStateful()Z -HSPLjava/util/stream/IntPipeline;->-$$Nest$smadapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt; -HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/Spliterator;IZ)V -HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V -HSPLjava/util/stream/IntPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt; -HSPLjava/util/stream/IntPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/IntConsumer; -HSPLjava/util/stream/IntPipeline;->allMatch(Ljava/util/function/IntPredicate;)Z -HSPLjava/util/stream/IntPipeline;->boxed()Ljava/util/stream/Stream; -HSPLjava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream; -HSPLjava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream; -HSPLjava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder; -HSPLjava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream; -HSPLjava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;I)Ljava/util/stream/Stream; -HSPLjava/util/stream/IntPipeline;->reduce(ILjava/util/function/IntBinaryOperator;)I -HSPLjava/util/stream/IntPipeline;->sum()I -HSPLjava/util/stream/IntPipeline;->toArray()[I -HSPLjava/util/stream/IntStream;->empty()Ljava/util/stream/IntStream; -HSPLjava/util/stream/IntStream;->of([I)Ljava/util/stream/IntStream; -HSPLjava/util/stream/IntStream;->range(II)Ljava/util/stream/IntStream; -HSPLjava/util/stream/IntStream;->rangeClosed(II)Ljava/util/stream/IntStream; -HSPLjava/util/stream/LongPipeline$$ExternalSyntheticLambda4;-><init>()V -HSPLjava/util/stream/LongPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V -HSPLjava/util/stream/LongPipeline$StatelessOp;->opIsStateful()Z -HSPLjava/util/stream/LongPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V -HSPLjava/util/stream/LongPipeline;->reduce(JLjava/util/function/LongBinaryOperator;)J -HSPLjava/util/stream/LongPipeline;->sum()J -HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda0;->get()Ljava/lang/Object; -HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda1;->get()Ljava/lang/Object; -HSPLjava/util/stream/MatchOps$$ExternalSyntheticLambda3;->get()Ljava/lang/Object; -HSPLjava/util/stream/MatchOps$1MatchSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)V -HSPLjava/util/stream/MatchOps$1MatchSink;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/MatchOps$2MatchSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/IntPredicate;)V -HSPLjava/util/stream/MatchOps$2MatchSink;->accept(I)V -HSPLjava/util/stream/MatchOps$BooleanTerminalSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;)V -HSPLjava/util/stream/MatchOps$BooleanTerminalSink;->cancellationRequested()Z -HSPLjava/util/stream/MatchOps$BooleanTerminalSink;->getAndClearState()Z -HSPLjava/util/stream/MatchOps$MatchKind;->-$$Nest$fgetshortCircuitResult(Ljava/util/stream/MatchOps$MatchKind;)Z -HSPLjava/util/stream/MatchOps$MatchKind;->-$$Nest$fgetstopOnPredicateMatches(Ljava/util/stream/MatchOps$MatchKind;)Z -HSPLjava/util/stream/MatchOps$MatchOp;-><init>(Ljava/util/stream/StreamShape;Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Supplier;)V -HSPLjava/util/stream/MatchOps$MatchOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Boolean; -HSPLjava/util/stream/MatchOps$MatchOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object; -HSPLjava/util/stream/MatchOps$MatchOp;->getOpFlags()I -HSPLjava/util/stream/MatchOps;->lambda$makeInt$1(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/IntPredicate;)Ljava/util/stream/MatchOps$BooleanTerminalSink; -HSPLjava/util/stream/MatchOps;->lambda$makeRef$0(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)Ljava/util/stream/MatchOps$BooleanTerminalSink; -HSPLjava/util/stream/MatchOps;->makeInt(Ljava/util/function/IntPredicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/MatchOps;->makeRef(Ljava/util/function/Predicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/Node;->getChildCount()I -HSPLjava/util/stream/Nodes$ArrayNode;-><init>(JLjava/util/function/IntFunction;)V -HSPLjava/util/stream/Nodes$ArrayNode;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object; -HSPLjava/util/stream/Nodes$FixedNodeBuilder;-><init>(JLjava/util/function/IntFunction;)V -HSPLjava/util/stream/Nodes$FixedNodeBuilder;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/Nodes$FixedNodeBuilder;->begin(J)V -HSPLjava/util/stream/Nodes$FixedNodeBuilder;->build()Ljava/util/stream/Node; -HSPLjava/util/stream/Nodes$FixedNodeBuilder;->end()V -HSPLjava/util/stream/Nodes$IntArrayNode;-><init>(J)V -HSPLjava/util/stream/Nodes$IntArrayNode;->asPrimitiveArray()Ljava/lang/Object; -HSPLjava/util/stream/Nodes$IntArrayNode;->asPrimitiveArray()[I -HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;-><init>(J)V -HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->accept(I)V -HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->begin(J)V -HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->build()Ljava/util/stream/Node$OfInt; -HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->build()Ljava/util/stream/Node; -HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->end()V -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><clinit>()V -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;-><init>()V -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object; -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->begin(J)V -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->build()Ljava/util/stream/Node; -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->copyInto([Ljava/lang/Object;I)V -HSPLjava/util/stream/Nodes$SpinedNodeBuilder;->end()V -HSPLjava/util/stream/Nodes;->builder()Ljava/util/stream/Node$Builder; -HSPLjava/util/stream/Nodes;->builder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder; -HSPLjava/util/stream/Nodes;->flatten(Ljava/util/stream/Node;Ljava/util/function/IntFunction;)Ljava/util/stream/Node; -HSPLjava/util/stream/Nodes;->flattenInt(Ljava/util/stream/Node$OfInt;)Ljava/util/stream/Node$OfInt; -HSPLjava/util/stream/Nodes;->intBuilder(J)Ljava/util/stream/Node$Builder$OfInt; -HSPLjava/util/stream/PipelineHelper;-><init>()V -HSPLjava/util/stream/ReduceOps$12;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink; -HSPLjava/util/stream/ReduceOps$12ReducingSink;-><init>(Ljava/util/function/DoubleBinaryOperator;)V -HSPLjava/util/stream/ReduceOps$12ReducingSink;->accept(D)V -HSPLjava/util/stream/ReduceOps$12ReducingSink;->begin(J)V -HSPLjava/util/stream/ReduceOps$12ReducingSink;->get()Ljava/lang/Object; -HSPLjava/util/stream/ReduceOps$12ReducingSink;->get()Ljava/util/OptionalDouble; -HSPLjava/util/stream/ReduceOps$2;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;)V -HSPLjava/util/stream/ReduceOps$2;->makeSink()Ljava/util/stream/ReduceOps$2ReducingSink; -HSPLjava/util/stream/ReduceOps$2;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink; -HSPLjava/util/stream/ReduceOps$2ReducingSink;-><init>(Ljava/util/function/BinaryOperator;)V -HSPLjava/util/stream/ReduceOps$2ReducingSink;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReduceOps$2ReducingSink;->begin(J)V -HSPLjava/util/stream/ReduceOps$2ReducingSink;->get()Ljava/lang/Object; -HSPLjava/util/stream/ReduceOps$2ReducingSink;->get()Ljava/util/Optional; -HSPLjava/util/stream/ReduceOps$3;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;Ljava/util/function/BiConsumer;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)V -HSPLjava/util/stream/ReduceOps$3;->getOpFlags()I -HSPLjava/util/stream/ReduceOps$3;->makeSink()Ljava/util/stream/ReduceOps$3ReducingSink; -HSPLjava/util/stream/ReduceOps$3;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink; -HSPLjava/util/stream/ReduceOps$3ReducingSink;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;)V -HSPLjava/util/stream/ReduceOps$3ReducingSink;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReduceOps$3ReducingSink;->begin(J)V -HSPLjava/util/stream/ReduceOps$5;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink; -HSPLjava/util/stream/ReduceOps$5ReducingSink;-><init>(ILjava/util/function/IntBinaryOperator;)V -HSPLjava/util/stream/ReduceOps$5ReducingSink;->accept(I)V -HSPLjava/util/stream/ReduceOps$5ReducingSink;->begin(J)V -HSPLjava/util/stream/ReduceOps$5ReducingSink;->get()Ljava/lang/Integer; -HSPLjava/util/stream/ReduceOps$5ReducingSink;->get()Ljava/lang/Object; -HSPLjava/util/stream/ReduceOps$8;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink; -HSPLjava/util/stream/ReduceOps$8ReducingSink;-><init>(JLjava/util/function/LongBinaryOperator;)V -HSPLjava/util/stream/ReduceOps$8ReducingSink;->accept(J)V -HSPLjava/util/stream/ReduceOps$8ReducingSink;->begin(J)V -HSPLjava/util/stream/ReduceOps$8ReducingSink;->get()Ljava/lang/Long; -HSPLjava/util/stream/ReduceOps$8ReducingSink;->get()Ljava/lang/Object; -HSPLjava/util/stream/ReduceOps$Box;-><init>()V -HSPLjava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object; -HSPLjava/util/stream/ReduceOps$ReduceOp;-><init>(Ljava/util/stream/StreamShape;)V -HSPLjava/util/stream/ReduceOps$ReduceOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object; -HSPLjava/util/stream/ReduceOps;->makeDouble(Ljava/util/function/DoubleBinaryOperator;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/ReduceOps;->makeInt(ILjava/util/function/IntBinaryOperator;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/ReduceOps;->makeLong(JLjava/util/function/LongBinaryOperator;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/ReduceOps;->makeRef(Ljava/util/function/BinaryOperator;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/ReduceOps;->makeRef(Ljava/util/stream/Collector;)Ljava/util/stream/TerminalOp; -HSPLjava/util/stream/ReferencePipeline$15$1;-><init>(Ljava/util/stream/ReferencePipeline$15;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$15$1;->accept(Ljava/lang/Object;)V+]Ljava/util/stream/Sink;Ljava/util/stream/ReduceOps$3ReducingSink;]Ljava/util/function/Consumer;Landroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda2; -HSPLjava/util/stream/ReferencePipeline$15;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Consumer;)V -HSPLjava/util/stream/ReferencePipeline$15;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$2$1;-><init>(Ljava/util/stream/ReferencePipeline$2;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$2$1;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReferencePipeline$2$1;->begin(J)V -HSPLjava/util/stream/ReferencePipeline$2;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Predicate;)V -HSPLjava/util/stream/ReferencePipeline$2;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$3$1;-><init>(Ljava/util/stream/ReferencePipeline$3;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$3$1;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReferencePipeline$3;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Function;)V -HSPLjava/util/stream/ReferencePipeline$3;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$4$1;-><init>(Ljava/util/stream/ReferencePipeline$4;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$4$1;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReferencePipeline$4;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToIntFunction;)V -HSPLjava/util/stream/ReferencePipeline$4;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$5$1;-><init>(Ljava/util/stream/ReferencePipeline$5;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$5$1;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReferencePipeline$5;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToLongFunction;)V -HSPLjava/util/stream/ReferencePipeline$5;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$6$1;-><init>(Ljava/util/stream/ReferencePipeline$6;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$6$1;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReferencePipeline$6;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToDoubleFunction;)V -HSPLjava/util/stream/ReferencePipeline$6;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$7$1;-><init>(Ljava/util/stream/ReferencePipeline$7;Ljava/util/stream/Sink;)V -HSPLjava/util/stream/ReferencePipeline$7$1;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/ReferencePipeline$7$1;->begin(J)V -HSPLjava/util/stream/ReferencePipeline$7;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Function;)V -HSPLjava/util/stream/ReferencePipeline$7;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V -HSPLjava/util/stream/ReferencePipeline$Head;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/stream/ReferencePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V -HSPLjava/util/stream/ReferencePipeline$StatefulOp;->opIsStateful()Z -HSPLjava/util/stream/ReferencePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V -HSPLjava/util/stream/ReferencePipeline$StatelessOp;->opIsStateful()Z -HSPLjava/util/stream/ReferencePipeline;-><init>(Ljava/util/Spliterator;IZ)V -HSPLjava/util/stream/ReferencePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V -HSPLjava/util/stream/ReferencePipeline;->allMatch(Ljava/util/function/Predicate;)Z -HSPLjava/util/stream/ReferencePipeline;->anyMatch(Ljava/util/function/Predicate;)Z -HSPLjava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object; -HSPLjava/util/stream/ReferencePipeline;->count()J -HSPLjava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional; -HSPLjava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional; -HSPLjava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V -HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)Z -HSPLjava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder; -HSPLjava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->mapToDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/stream/DoubleStream; -HSPLjava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream; -HSPLjava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream; -HSPLjava/util/stream/ReferencePipeline;->max(Ljava/util/Comparator;)Ljava/util/Optional; -HSPLjava/util/stream/ReferencePipeline;->noneMatch(Ljava/util/function/Predicate;)Z -HSPLjava/util/stream/ReferencePipeline;->peek(Ljava/util/function/Consumer;)Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->reduce(Ljava/util/function/BinaryOperator;)Ljava/util/Optional; -HSPLjava/util/stream/ReferencePipeline;->sorted()Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream; -HSPLjava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object; -HSPLjava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator; -HSPLjava/util/stream/Sink$ChainedInt;-><init>(Ljava/util/stream/Sink;)V -HSPLjava/util/stream/Sink$ChainedInt;->begin(J)V -HSPLjava/util/stream/Sink$ChainedInt;->end()V -HSPLjava/util/stream/Sink$ChainedReference;-><init>(Ljava/util/stream/Sink;)V -HSPLjava/util/stream/Sink$ChainedReference;->begin(J)V -HSPLjava/util/stream/Sink$ChainedReference;->cancellationRequested()Z -HSPLjava/util/stream/Sink$ChainedReference;->end()V -HSPLjava/util/stream/Sink;->begin(J)V -HSPLjava/util/stream/Sink;->end()V -HSPLjava/util/stream/SortedOps$AbstractRefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V -HSPLjava/util/stream/SortedOps$OfRef;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)V -HSPLjava/util/stream/SortedOps$OfRef;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink; -HSPLjava/util/stream/SortedOps$RefSortingSink$$ExternalSyntheticLambda0;-><init>(Ljava/util/stream/Sink;)V -HSPLjava/util/stream/SortedOps$RefSortingSink$$ExternalSyntheticLambda0;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/SortedOps$RefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V -HSPLjava/util/stream/SortedOps$RefSortingSink;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/SortedOps$RefSortingSink;->begin(J)V -HSPLjava/util/stream/SortedOps$RefSortingSink;->end()V -HSPLjava/util/stream/SortedOps$SizedRefSortingSink;-><init>(Ljava/util/stream/Sink;Ljava/util/Comparator;)V -HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->begin(J)V -HSPLjava/util/stream/SortedOps$SizedRefSortingSink;->end()V -HSPLjava/util/stream/SortedOps;->makeRef(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)Ljava/util/stream/Stream; -HSPLjava/util/stream/SpinedBuffer;-><init>()V -HSPLjava/util/stream/SpinedBuffer;->accept(Ljava/lang/Object;)V -HSPLjava/util/stream/SpinedBuffer;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object; -HSPLjava/util/stream/SpinedBuffer;->capacity()J -HSPLjava/util/stream/SpinedBuffer;->clear()V -HSPLjava/util/stream/SpinedBuffer;->copyInto([Ljava/lang/Object;I)V -HSPLjava/util/stream/SpinedBuffer;->count()J -HSPLjava/util/stream/SpinedBuffer;->ensureCapacity(J)V -HSPLjava/util/stream/Stream;->builder()Ljava/util/stream/Stream$Builder; -HSPLjava/util/stream/Stream;->concat(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream; -HSPLjava/util/stream/Stream;->of([Ljava/lang/Object;)Ljava/util/stream/Stream; -HSPLjava/util/stream/StreamOpFlag;->combineOpFlags(II)I -HSPLjava/util/stream/StreamOpFlag;->fromCharacteristics(Ljava/util/Spliterator;)I -HSPLjava/util/stream/StreamOpFlag;->getMask(I)I -HSPLjava/util/stream/StreamOpFlag;->isKnown(I)Z -HSPLjava/util/stream/StreamSupport;->intStream(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream; -HSPLjava/util/stream/StreamSupport;->stream(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream; -HSPLjava/util/stream/Streams$2;-><init>(Ljava/util/stream/BaseStream;Ljava/util/stream/BaseStream;)V -HSPLjava/util/stream/Streams$ConcatSpliterator$OfRef;-><init>(Ljava/util/Spliterator;Ljava/util/Spliterator;)V -HSPLjava/util/stream/Streams$ConcatSpliterator;-><init>(Ljava/util/Spliterator;Ljava/util/Spliterator;)V -HSPLjava/util/stream/Streams$ConcatSpliterator;->characteristics()I -HSPLjava/util/stream/Streams$RangeIntSpliterator;-><init>(III)V -HSPLjava/util/stream/Streams$RangeIntSpliterator;-><init>(IIZ)V -HSPLjava/util/stream/Streams$RangeIntSpliterator;->characteristics()I -HSPLjava/util/stream/Streams$RangeIntSpliterator;->estimateSize()J -HSPLjava/util/stream/Streams$RangeIntSpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V -HSPLjava/util/stream/Streams$RangeIntSpliterator;->getComparator()Ljava/util/Comparator; -HSPLjava/util/stream/Streams;->composedClose(Ljava/util/stream/BaseStream;Ljava/util/stream/BaseStream;)Ljava/lang/Runnable; -HSPLjava/util/stream/TerminalOp;->getOpFlags()I -HSPLjava/util/zip/Adler32;-><init>()V -HSPLjava/util/zip/Adler32;->getValue()J -HSPLjava/util/zip/Adler32;->update([B)V -HSPLjava/util/zip/Adler32;->update([BII)V -HSPLjava/util/zip/CRC32;-><init>()V -HSPLjava/util/zip/CRC32;->getValue()J -HSPLjava/util/zip/CRC32;->reset()V -HSPLjava/util/zip/CRC32;->update(I)V -HSPLjava/util/zip/CRC32;->update([B)V -HSPLjava/util/zip/CRC32;->update([BII)V -HSPLjava/util/zip/CRC32;->updateByteBuffer(IJII)I -HSPLjava/util/zip/CRC32;->updateBytes(I[BII)I -HSPLjava/util/zip/CheckedInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V -HSPLjava/util/zip/CheckedInputStream;->read()I -HSPLjava/util/zip/CheckedInputStream;->read([BII)I -HSPLjava/util/zip/Deflater$DeflaterZStreamRef;-><init>(Ljava/util/zip/Deflater;J)V -HSPLjava/util/zip/Deflater$DeflaterZStreamRef;-><init>(Ljava/util/zip/Deflater;JLjava/util/zip/Deflater$DeflaterZStreamRef-IA;)V -HSPLjava/util/zip/Deflater$DeflaterZStreamRef;->address()J -HSPLjava/util/zip/Deflater$DeflaterZStreamRef;->clean()V+]Ljava/lang/ref/Cleaner$Cleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef; -HSPLjava/util/zip/Deflater$DeflaterZStreamRef;->run()V -HSPLjava/util/zip/Deflater;->-$$Nest$smend(J)V -HSPLjava/util/zip/Deflater;-><init>()V -HSPLjava/util/zip/Deflater;-><init>(IZ)V -HSPLjava/util/zip/Deflater;->deflate([BII)I -HSPLjava/util/zip/Deflater;->deflate([BIII)I -HSPLjava/util/zip/Deflater;->end()V -HSPLjava/util/zip/Deflater;->ensureOpen()V -HSPLjava/util/zip/Deflater;->finish()V -HSPLjava/util/zip/Deflater;->finished()Z -HSPLjava/util/zip/Deflater;->getBytesRead()J -HSPLjava/util/zip/Deflater;->getTotalIn()I -HSPLjava/util/zip/Deflater;->needsInput()Z -HSPLjava/util/zip/Deflater;->reset()V -HSPLjava/util/zip/Deflater;->setInput([BII)V -HSPLjava/util/zip/Deflater;->setLevel(I)V -HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)V -HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V -HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Z)V -HSPLjava/util/zip/DeflaterOutputStream;->close()V -HSPLjava/util/zip/DeflaterOutputStream;->deflate()V -HSPLjava/util/zip/DeflaterOutputStream;->finish()V -HSPLjava/util/zip/DeflaterOutputStream;->flush()V -HSPLjava/util/zip/DeflaterOutputStream;->write([BII)V -HSPLjava/util/zip/GZIPInputStream$1;-><init>(Ljava/util/zip/GZIPInputStream;Ljava/io/InputStream;)V -HSPLjava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;I)V -HSPLjava/util/zip/GZIPInputStream;->close()V -HSPLjava/util/zip/GZIPInputStream;->ensureOpen()V -HSPLjava/util/zip/GZIPInputStream;->read([BII)I -HSPLjava/util/zip/GZIPInputStream;->readHeader(Ljava/io/InputStream;)I -HSPLjava/util/zip/GZIPInputStream;->readTrailer()Z -HSPLjava/util/zip/GZIPInputStream;->readUByte(Ljava/io/InputStream;)I -HSPLjava/util/zip/GZIPInputStream;->readUInt(Ljava/io/InputStream;)J -HSPLjava/util/zip/GZIPInputStream;->readUShort(Ljava/io/InputStream;)I -HSPLjava/util/zip/GZIPInputStream;->skipBytes(Ljava/io/InputStream;I)V -HSPLjava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;)V -HSPLjava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;IZ)V -HSPLjava/util/zip/GZIPOutputStream;->finish()V -HSPLjava/util/zip/GZIPOutputStream;->write([BII)V -HSPLjava/util/zip/GZIPOutputStream;->writeHeader()V -HSPLjava/util/zip/GZIPOutputStream;->writeInt(I[BI)V -HSPLjava/util/zip/GZIPOutputStream;->writeShort(I[BI)V -HSPLjava/util/zip/GZIPOutputStream;->writeTrailer([BI)V -HSPLjava/util/zip/Inflater$InflaterZStreamRef;->address()J -HSPLjava/util/zip/Inflater$InflaterZStreamRef;->clean()V+]Ljava/lang/ref/Cleaner$Cleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef; -HSPLjava/util/zip/Inflater$InflaterZStreamRef;->run()V -HSPLjava/util/zip/Inflater;->-$$Nest$smend(J)V -HSPLjava/util/zip/Inflater;-><init>()V -HSPLjava/util/zip/Inflater;-><init>(Z)V -HSPLjava/util/zip/Inflater;->end()V -HSPLjava/util/zip/Inflater;->ensureOpen()V -HSPLjava/util/zip/Inflater;->finished()Z -HSPLjava/util/zip/Inflater;->getBytesRead()J -HSPLjava/util/zip/Inflater;->getBytesWritten()J -HSPLjava/util/zip/Inflater;->getRemaining()I -HSPLjava/util/zip/Inflater;->getTotalOut()I -HSPLjava/util/zip/Inflater;->inflate([BII)I -HSPLjava/util/zip/Inflater;->needsDictionary()Z -HSPLjava/util/zip/Inflater;->needsInput()Z -HSPLjava/util/zip/Inflater;->reset()V -HSPLjava/util/zip/Inflater;->setInput([BII)V -HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;)V -HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;I)V -HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;IZ)V -HSPLjava/util/zip/InflaterInputStream;->available()I -HSPLjava/util/zip/InflaterInputStream;->close()V -HSPLjava/util/zip/InflaterInputStream;->ensureOpen()V -HSPLjava/util/zip/InflaterInputStream;->fill()V -HSPLjava/util/zip/InflaterInputStream;->read()I -HSPLjava/util/zip/InflaterInputStream;->read([BII)I -HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->checkedHash([BII)I -HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->hasTrailingSlash([BI)Z -HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->isUTF8()Z -HSPLjava/util/zip/ZipCoder$UTF8ZipCoder;->toString([BII)Ljava/lang/String; -HSPLjava/util/zip/ZipCoder;-><init>(Ljava/nio/charset/Charset;)V -HSPLjava/util/zip/ZipCoder;->decoder()Ljava/nio/charset/CharsetDecoder; -HSPLjava/util/zip/ZipCoder;->encoder()Ljava/nio/charset/CharsetEncoder; -HSPLjava/util/zip/ZipCoder;->get(Ljava/nio/charset/Charset;)Ljava/util/zip/ZipCoder; -HSPLjava/util/zip/ZipCoder;->getBytes(Ljava/lang/String;)[B -HSPLjava/util/zip/ZipCoder;->isUTF8()Z -HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String; -HSPLjava/util/zip/ZipEntry;-><init>()V -HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;)V -HSPLjava/util/zip/ZipEntry;-><init>(Ljava/util/zip/ZipEntry;)V -HSPLjava/util/zip/ZipEntry;->getCompressedSize()J -HSPLjava/util/zip/ZipEntry;->getCrc()J -HSPLjava/util/zip/ZipEntry;->getMethod()I -HSPLjava/util/zip/ZipEntry;->getName()Ljava/lang/String; -HSPLjava/util/zip/ZipEntry;->getSize()J -HSPLjava/util/zip/ZipEntry;->isDirectory()Z -HSPLjava/util/zip/ZipEntry;->setExtra0([BZZ)V -HSPLjava/util/zip/ZipFile$CleanableResource;-><init>(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipCoder;Ljava/io/File;IZ)V -HSPLjava/util/zip/ZipFile$CleanableResource;->clean()V+]Ljava/lang/ref/Cleaner$Cleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef; -HSPLjava/util/zip/ZipFile$CleanableResource;->getInflater()Ljava/util/zip/Inflater;+]Ljava/util/Deque;Ljava/util/ArrayDeque; -HSPLjava/util/zip/ZipFile$CleanableResource;->releaseInflater(Ljava/util/zip/Inflater;)V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/util/zip/Inflater;Ljava/util/zip/Inflater; -HSPLjava/util/zip/ZipFile$CleanableResource;->run()V+]Ljava/util/Deque;Ljava/util/ArrayDeque;]Ljava/util/Set;Ljava/util/Collections$SetFromMap;]Ljava/util/zip/Inflater;Ljava/util/zip/Inflater; -HSPLjava/util/zip/ZipFile$InflaterCleanupAction;->run()V+]Ljava/util/zip/ZipFile$CleanableResource;Ljava/util/zip/ZipFile$CleanableResource; -HSPLjava/util/zip/ZipFile$Source$End;-><init>()V -HSPLjava/util/zip/ZipFile$Source$End;-><init>(Ljava/util/zip/ZipFile$Source$End-IA;)V -HSPLjava/util/zip/ZipFile$Source$Key;-><init>(Ljava/io/File;Ljava/nio/file/attribute/BasicFileAttributes;Ljava/util/zip/ZipCoder;Z)V -HSPLjava/util/zip/ZipFile$Source$Key;->equals(Ljava/lang/Object;)Z+]Ljava/lang/Object;Lsun/nio/fs/UnixFileKey;]Ljava/nio/file/attribute/BasicFileAttributes;Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes; -HSPLjava/util/zip/ZipFile$Source$Key;->hashCode()I -HSPLjava/util/zip/ZipFile$Source;->-$$Nest$fgetlocpos(Ljava/util/zip/ZipFile$Source;)J -HSPLjava/util/zip/ZipFile$Source;->-$$Nest$mgetEntryPos(Ljava/util/zip/ZipFile$Source;Ljava/lang/String;Z)I -HSPLjava/util/zip/ZipFile$Source;->-$$Nest$mreadAt(Ljava/util/zip/ZipFile$Source;[BIIJ)I -HSPLjava/util/zip/ZipFile$Source;->-$$Nest$mreadFullyAt(Ljava/util/zip/ZipFile$Source;[BIIJ)I -HSPLjava/util/zip/ZipFile$Source;-><init>(Ljava/util/zip/ZipFile$Source$Key;ZLjava/util/zip/ZipCoder;)V -HSPLjava/util/zip/ZipFile$Source;->checkAndAddEntry(II)I -HSPLjava/util/zip/ZipFile$Source;->close()V+]Ljava/io/RandomAccessFile;Ljava/io/RandomAccessFile; -HSPLjava/util/zip/ZipFile$Source;->findEND()Ljava/util/zip/ZipFile$Source$End; -HSPLjava/util/zip/ZipFile$Source;->get(Ljava/io/File;ZLjava/util/zip/ZipCoder;Z)Ljava/util/zip/ZipFile$Source; -HSPLjava/util/zip/ZipFile$Source;->getEntryPos(Ljava/lang/String;Z)I -HSPLjava/util/zip/ZipFile$Source;->getMetaVersion(II)I -HSPLjava/util/zip/ZipFile$Source;->initCEN(I)V -HSPLjava/util/zip/ZipFile$Source;->isManifestName(II)Z -HSPLjava/util/zip/ZipFile$Source;->isMetaName([BII)Z -HSPLjava/util/zip/ZipFile$Source;->isSignatureRelated(II)Z -HSPLjava/util/zip/ZipFile$Source;->nextEntryPos(III)I -HSPLjava/util/zip/ZipFile$Source;->readAt([BIIJ)I+]Ljava/io/RandomAccessFile;Ljava/io/RandomAccessFile; -HSPLjava/util/zip/ZipFile$Source;->readFullyAt([BIIJ)I -HSPLjava/util/zip/ZipFile$Source;->release(Ljava/util/zip/ZipFile$Source;)V+]Ljava/util/HashMap;Ljava/util/HashMap; -HSPLjava/util/zip/ZipFile$Source;->zipCoderForPos(I)Ljava/util/zip/ZipCoder; -HSPLjava/util/zip/ZipFile$ZipEntryIterator;->hasMoreElements()Z -HSPLjava/util/zip/ZipFile$ZipEntryIterator;->hasNext()Z -HSPLjava/util/zip/ZipFile$ZipEntryIterator;->next()Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipFile$ZipEntryIterator;->nextElement()Ljava/lang/Object; -HSPLjava/util/zip/ZipFile$ZipEntryIterator;->nextElement()Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->available()I -HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->close()V -HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->fill()V -HSPLjava/util/zip/ZipFile$ZipFileInputStream;-><init>(Ljava/util/zip/ZipFile;[BI)V -HSPLjava/util/zip/ZipFile$ZipFileInputStream;->available()I -HSPLjava/util/zip/ZipFile$ZipFileInputStream;->close()V -HSPLjava/util/zip/ZipFile$ZipFileInputStream;->initDataOffset()J -HSPLjava/util/zip/ZipFile$ZipFileInputStream;->read()I -HSPLjava/util/zip/ZipFile$ZipFileInputStream;->read([BII)I -HSPLjava/util/zip/ZipFile$ZipFileInputStream;->size()J -HSPLjava/util/zip/ZipFile;->-$$Nest$fgetres(Ljava/util/zip/ZipFile;)Ljava/util/zip/ZipFile$CleanableResource; -HSPLjava/util/zip/ZipFile;->-$$Nest$mensureOpen(Ljava/util/zip/ZipFile;)V -HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;)V -HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;I)V -HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;ILjava/nio/charset/Charset;)V -HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;ILjava/nio/charset/Charset;Z)V -HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;IZ)V -HSPLjava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V -HSPLjava/util/zip/ZipFile;->close()V -HSPLjava/util/zip/ZipFile;->ensureOpen()V -HSPLjava/util/zip/ZipFile;->ensureOpenOrZipException()V -HSPLjava/util/zip/ZipFile;->entries()Ljava/util/Enumeration; -HSPLjava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; -HSPLjava/util/zip/ZipFile;->getZipEntry(Ljava/lang/String;I)Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;)V -HSPLjava/util/zip/ZipInputStream;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V -HSPLjava/util/zip/ZipInputStream;->close()V -HSPLjava/util/zip/ZipInputStream;->closeEntry()V -HSPLjava/util/zip/ZipInputStream;->createZipEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipInputStream;->ensureOpen()V -HSPLjava/util/zip/ZipInputStream;->getNextEntry()Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipInputStream;->read([BII)I -HSPLjava/util/zip/ZipInputStream;->readEnd(Ljava/util/zip/ZipEntry;)V -HSPLjava/util/zip/ZipInputStream;->readFully([BII)V -HSPLjava/util/zip/ZipInputStream;->readLOC()Ljava/util/zip/ZipEntry; -HSPLjava/util/zip/ZipUtils;->CENFLG([BI)I -HSPLjava/util/zip/ZipUtils;->CENLEN([BI)J -HSPLjava/util/zip/ZipUtils;->CENOFF([BI)J -HSPLjava/util/zip/ZipUtils;->CENSIZ([BI)J -HSPLjava/util/zip/ZipUtils;->ENDCOM([B)I -HSPLjava/util/zip/ZipUtils;->ENDOFF([B)J -HSPLjava/util/zip/ZipUtils;->ENDSIZ([B)J -HSPLjava/util/zip/ZipUtils;->ENDTOT([B)I -HSPLjava/util/zip/ZipUtils;->GETSIG([B)J -HSPLjava/util/zip/ZipUtils;->LG([BI)J -HSPLjava/util/zip/ZipUtils;->LOCEXT([B)I -HSPLjava/util/zip/ZipUtils;->LOCNAM([B)I -HSPLjava/util/zip/ZipUtils;->LOCSIG([B)J -HSPLjava/util/zip/ZipUtils;->SH([BI)I -HSPLjava/util/zip/ZipUtils;->get16([BI)I -HSPLjava/util/zip/ZipUtils;->get32([BI)J -HSPLjava/util/zip/ZipUtils;->unixTimeToFileTime(J)Ljava/nio/file/attribute/FileTime; -HSPLjavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V -HSPLjavax/crypto/Cipher$InitParams;-><init>(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/SecureRandom;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;)V -HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;-><init>(Ljavax/crypto/Cipher;Ljava/security/Provider;Ljavax/crypto/CipherSpi;)V -HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;->setCipherSpiImplAndProvider(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V -HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/Cipher$InitParams;Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider; -HSPLjavax/crypto/Cipher$Transform;-><init>(Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;)V -HSPLjavax/crypto/Cipher;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;Ljava/lang/String;[Ljava/lang/String;)V -HSPLjavax/crypto/Cipher;->checkCipherState()V -HSPLjavax/crypto/Cipher;->checkOpmode(I)V -HSPLjavax/crypto/Cipher;->chooseProvider(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V -HSPLjavax/crypto/Cipher;->createCipher(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher; -HSPLjavax/crypto/Cipher;->doFinal()[B -HSPLjavax/crypto/Cipher;->doFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I -HSPLjavax/crypto/Cipher;->doFinal([B)[B -HSPLjavax/crypto/Cipher;->doFinal([BI)I -HSPLjavax/crypto/Cipher;->doFinal([BII)[B -HSPLjavax/crypto/Cipher;->doFinal([BII[BI)I -HSPLjavax/crypto/Cipher;->getBlockSize()I -HSPLjavax/crypto/Cipher;->getIV()[B -HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher; -HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher; -HSPLjavax/crypto/Cipher;->getOutputSize(I)I -HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;)V -HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V -HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V -HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V -HSPLjavax/crypto/Cipher;->matchAttribute(Ljava/security/Provider$Service;Ljava/lang/String;Ljava/lang/String;)Z -HSPLjavax/crypto/Cipher;->tokenizeTransformation(Ljava/lang/String;)[Ljava/lang/String; -HSPLjavax/crypto/Cipher;->tryCombinations(Ljavax/crypto/Cipher$InitParams;Ljava/security/Provider;[Ljava/lang/String;)Ljavax/crypto/Cipher$CipherSpiAndProvider; -HSPLjavax/crypto/Cipher;->tryTransformWithProvider(Ljavax/crypto/Cipher$InitParams;[Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;Ljava/security/Provider$Service;)Ljavax/crypto/Cipher$CipherSpiAndProvider; -HSPLjavax/crypto/Cipher;->unwrap([BLjava/lang/String;I)Ljava/security/Key; -HSPLjavax/crypto/Cipher;->update([BII[BI)I -HSPLjavax/crypto/Cipher;->updateAAD([B)V -HSPLjavax/crypto/Cipher;->updateAAD([BII)V -HSPLjavax/crypto/Cipher;->updateProviderIfNeeded()V -HSPLjavax/crypto/CipherSpi;-><init>()V -HSPLjavax/crypto/CipherSpi;->bufferCrypt(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I -HSPLjavax/crypto/CipherSpi;->engineDoFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I -HSPLjavax/crypto/JarVerifier;-><init>(Ljava/net/URL;Z)V -HSPLjavax/crypto/JarVerifier;->verify()V -HSPLjavax/crypto/JceSecurity$1;-><init>(Ljava/lang/Class;)V -HSPLjavax/crypto/JceSecurity$1;->run()Ljava/lang/Object; -HSPLjavax/crypto/JceSecurity$1;->run()Ljava/net/URL; -HSPLjavax/crypto/JceSecurity;->canUseProvider(Ljava/security/Provider;)Z -HSPLjavax/crypto/JceSecurity;->getCodeBase(Ljava/lang/Class;)Ljava/net/URL; -HSPLjavax/crypto/JceSecurity;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance; -HSPLjavax/crypto/JceSecurity;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance; -HSPLjavax/crypto/JceSecurity;->getVerificationResult(Ljava/security/Provider;)Ljava/lang/Exception; -HSPLjavax/crypto/JceSecurity;->verifyProviderJar(Ljava/net/URL;)V -HSPLjavax/crypto/KeyGenerator;-><init>(Ljava/lang/String;)V -HSPLjavax/crypto/KeyGenerator;->generateKey()Ljavax/crypto/SecretKey; -HSPLjavax/crypto/KeyGenerator;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator; -HSPLjavax/crypto/KeyGenerator;->init(ILjava/security/SecureRandom;)V -HSPLjavax/crypto/KeyGenerator;->nextSpi(Ljavax/crypto/KeyGeneratorSpi;Z)Ljavax/crypto/KeyGeneratorSpi; -HSPLjavax/crypto/KeyGeneratorSpi;-><init>()V -HSPLjavax/crypto/Mac;-><init>(Ljava/lang/String;)V -HSPLjavax/crypto/Mac;-><init>(Ljavax/crypto/MacSpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjavax/crypto/Mac;->chooseFirstProvider()V -HSPLjavax/crypto/Mac;->chooseProvider(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V -HSPLjavax/crypto/Mac;->doFinal()[B -HSPLjavax/crypto/Mac;->doFinal([B)[B -HSPLjavax/crypto/Mac;->doFinal([BI)V -HSPLjavax/crypto/Mac;->getAlgorithm()Ljava/lang/String; -HSPLjavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac; -HSPLjavax/crypto/Mac;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Mac; -HSPLjavax/crypto/Mac;->getMacLength()I -HSPLjavax/crypto/Mac;->init(Ljava/security/Key;)V -HSPLjavax/crypto/Mac;->update(B)V -HSPLjavax/crypto/Mac;->update([B)V -HSPLjavax/crypto/Mac;->update([BII)V -HSPLjavax/crypto/MacSpi;-><init>()V -HSPLjavax/crypto/SecretKeyFactory;-><init>(Ljava/lang/String;)V -HSPLjavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey; -HSPLjavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory; -HSPLjavax/crypto/SecretKeyFactory;->nextSpi(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi; -HSPLjavax/crypto/SecretKeyFactorySpi;-><init>()V -HSPLjavax/crypto/spec/GCMParameterSpec;-><init>(I[B)V -HSPLjavax/crypto/spec/GCMParameterSpec;-><init>(I[BII)V -HSPLjavax/crypto/spec/GCMParameterSpec;->getIV()[B -HSPLjavax/crypto/spec/GCMParameterSpec;->getTLen()I -HSPLjavax/crypto/spec/GCMParameterSpec;->init(I[BII)V -HSPLjavax/crypto/spec/IvParameterSpec;-><init>([B)V -HSPLjavax/crypto/spec/IvParameterSpec;-><init>([BII)V -HSPLjavax/crypto/spec/IvParameterSpec;->getIV()[B -HSPLjavax/crypto/spec/PBEKeySpec;-><init>([C[BII)V -HSPLjavax/crypto/spec/PBEKeySpec;->getIterationCount()I -HSPLjavax/crypto/spec/PBEKeySpec;->getKeyLength()I -HSPLjavax/crypto/spec/PBEKeySpec;->getPassword()[C -HSPLjavax/crypto/spec/PBEKeySpec;->getSalt()[B -HSPLjavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V -HSPLjavax/crypto/spec/SecretKeySpec;->getAlgorithm()Ljava/lang/String; -HSPLjavax/crypto/spec/SecretKeySpec;->getEncoded()[B -HSPLjavax/crypto/spec/SecretKeySpec;->getFormat()Ljava/lang/String; -HSPLjavax/microedition/khronos/egl/EGLContext;->getEGL()Ljavax/microedition/khronos/egl/EGL; -HSPLjavax/microedition/khronos/egl/EGLSurface;-><init>()V -HSPLjavax/net/DefaultSocketFactory;-><init>()V -HSPLjavax/net/DefaultSocketFactory;->createSocket()Ljava/net/Socket; -HSPLjavax/net/DefaultSocketFactory;->createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket; -HSPLjavax/net/ServerSocketFactory;-><init>()V -HSPLjavax/net/SocketFactory;-><init>()V -HSPLjavax/net/SocketFactory;->getDefault()Ljavax/net/SocketFactory; -HSPLjavax/net/ssl/ExtendedSSLSession;-><init>()V -HSPLjavax/net/ssl/HttpsURLConnection$NoPreloadHolder;-><clinit>()V -HSPLjavax/net/ssl/HttpsURLConnection;-><init>(Ljava/net/URL;)V -HSPLjavax/net/ssl/HttpsURLConnection;->getDefaultHostnameVerifier()Ljavax/net/ssl/HostnameVerifier; -HSPLjavax/net/ssl/HttpsURLConnection;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory; -HSPLjavax/net/ssl/HttpsURLConnection;->setDefaultHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V -HSPLjavax/net/ssl/HttpsURLConnection;->setDefaultSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V -HSPLjavax/net/ssl/KeyManagerFactory$1;-><init>()V -HSPLjavax/net/ssl/KeyManagerFactory$1;->run()Ljava/lang/Object; -HSPLjavax/net/ssl/KeyManagerFactory$1;->run()Ljava/lang/String; -HSPLjavax/net/ssl/KeyManagerFactory;-><init>(Ljavax/net/ssl/KeyManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjavax/net/ssl/KeyManagerFactory;->getDefaultAlgorithm()Ljava/lang/String; -HSPLjavax/net/ssl/KeyManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory; -HSPLjavax/net/ssl/KeyManagerFactory;->getKeyManagers()[Ljavax/net/ssl/KeyManager; -HSPLjavax/net/ssl/KeyManagerFactory;->init(Ljava/security/KeyStore;[C)V -HSPLjavax/net/ssl/KeyManagerFactorySpi;-><init>()V -HSPLjavax/net/ssl/SNIHostName;-><init>(Ljava/lang/String;)V -HSPLjavax/net/ssl/SNIHostName;->checkHostName()V -HSPLjavax/net/ssl/SNIHostName;->getAsciiName()Ljava/lang/String; -HSPLjavax/net/ssl/SNIServerName;-><init>(I[B)V -HSPLjavax/net/ssl/SNIServerName;->getType()I -HSPLjavax/net/ssl/SSLContext;-><init>(Ljavax/net/ssl/SSLContextSpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLContext;->getClientSessionContext()Ljavax/net/ssl/SSLSessionContext; -HSPLjavax/net/ssl/SSLContext;->getDefault()Ljavax/net/ssl/SSLContext; -HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/SSLContext; -HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext; -HSPLjavax/net/ssl/SSLContext;->getServerSocketFactory()Ljavax/net/ssl/SSLServerSocketFactory; -HSPLjavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory; -HSPLjavax/net/ssl/SSLContext;->init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V -HSPLjavax/net/ssl/SSLContext;->setDefault(Ljavax/net/ssl/SSLContext;)V -HSPLjavax/net/ssl/SSLContextSpi;-><init>()V -HSPLjavax/net/ssl/SSLEngine;-><init>()V -HSPLjavax/net/ssl/SSLEngine;->getSSLParameters()Ljavax/net/ssl/SSLParameters; -HSPLjavax/net/ssl/SSLEngine;->setSSLParameters(Ljavax/net/ssl/SSLParameters;)V -HSPLjavax/net/ssl/SSLEngine;->wrap([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult; -HSPLjavax/net/ssl/SSLEngineResult$HandshakeStatus;->values()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus; -HSPLjavax/net/ssl/SSLEngineResult$Status;->values()[Ljavax/net/ssl/SSLEngineResult$Status; -HSPLjavax/net/ssl/SSLEngineResult;-><init>(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V -HSPLjavax/net/ssl/SSLEngineResult;->bytesConsumed()I -HSPLjavax/net/ssl/SSLEngineResult;->bytesProduced()I -HSPLjavax/net/ssl/SSLEngineResult;->getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus; -HSPLjavax/net/ssl/SSLEngineResult;->getStatus()Ljavax/net/ssl/SSLEngineResult$Status; -HSPLjavax/net/ssl/SSLException;-><init>(Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLParameters;-><init>()V -HSPLjavax/net/ssl/SSLParameters;->clone([Ljava/lang/String;)[Ljava/lang/String; -HSPLjavax/net/ssl/SSLParameters;->getApplicationProtocols()[Ljava/lang/String; -HSPLjavax/net/ssl/SSLParameters;->getCipherSuites()[Ljava/lang/String; -HSPLjavax/net/ssl/SSLParameters;->getEndpointIdentificationAlgorithm()Ljava/lang/String; -HSPLjavax/net/ssl/SSLParameters;->getNeedClientAuth()Z -HSPLjavax/net/ssl/SSLParameters;->getProtocols()[Ljava/lang/String; -HSPLjavax/net/ssl/SSLParameters;->getServerNames()Ljava/util/List; -HSPLjavax/net/ssl/SSLParameters;->getUseCipherSuitesOrder()Z -HSPLjavax/net/ssl/SSLParameters;->getWantClientAuth()Z -HSPLjavax/net/ssl/SSLParameters;->setApplicationProtocols([Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLParameters;->setCipherSuites([Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLParameters;->setEndpointIdentificationAlgorithm(Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLParameters;->setProtocols([Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLParameters;->setServerNames(Ljava/util/List;)V -HSPLjavax/net/ssl/SSLParameters;->setUseCipherSuitesOrder(Z)V -HSPLjavax/net/ssl/SSLServerSocketFactory;-><init>()V -HSPLjavax/net/ssl/SSLServerSocketFactory;->getDefault()Ljavax/net/ServerSocketFactory; -HSPLjavax/net/ssl/SSLServerSocketFactory;->log(Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLSocket;-><init>()V -HSPLjavax/net/ssl/SSLSocket;->getSSLParameters()Ljavax/net/ssl/SSLParameters; -HSPLjavax/net/ssl/SSLSocket;->setSSLParameters(Ljavax/net/ssl/SSLParameters;)V -HSPLjavax/net/ssl/SSLSocketFactory$1;-><init>(Ljava/lang/String;)V -HSPLjavax/net/ssl/SSLSocketFactory$1;->run()Ljava/lang/Object; -HSPLjavax/net/ssl/SSLSocketFactory$1;->run()Ljava/lang/String; -HSPLjavax/net/ssl/SSLSocketFactory;-><init>()V -HSPLjavax/net/ssl/SSLSocketFactory;->getDefault()Ljavax/net/SocketFactory; -HSPLjavax/net/ssl/SSLSocketFactory;->getSecurityProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjavax/net/ssl/SSLSocketFactory;->log(Ljava/lang/String;)V -HSPLjavax/net/ssl/TrustManagerFactory$1;-><init>()V -HSPLjavax/net/ssl/TrustManagerFactory$1;->run()Ljava/lang/Object; -HSPLjavax/net/ssl/TrustManagerFactory$1;->run()Ljava/lang/String; -HSPLjavax/net/ssl/TrustManagerFactory;-><init>(Ljavax/net/ssl/TrustManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V -HSPLjavax/net/ssl/TrustManagerFactory;->getDefaultAlgorithm()Ljava/lang/String; -HSPLjavax/net/ssl/TrustManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory; -HSPLjavax/net/ssl/TrustManagerFactory;->getTrustManagers()[Ljavax/net/ssl/TrustManager; -HSPLjavax/net/ssl/TrustManagerFactory;->init(Ljava/security/KeyStore;)V -HSPLjavax/net/ssl/TrustManagerFactorySpi;-><init>()V -HSPLjavax/net/ssl/X509ExtendedKeyManager;-><init>()V -HSPLjavax/net/ssl/X509ExtendedTrustManager;-><init>()V -HSPLjavax/security/auth/x500/X500Principal;-><init>(Ljava/lang/String;)V -HSPLjavax/security/auth/x500/X500Principal;-><init>(Ljava/lang/String;Ljava/util/Map;)V -HSPLjavax/security/auth/x500/X500Principal;-><init>(Lsun/security/x509/X500Name;)V -HSPLjavax/security/auth/x500/X500Principal;-><init>([B)V -HSPLjavax/security/auth/x500/X500Principal;->equals(Ljava/lang/Object;)Z -HSPLjavax/security/auth/x500/X500Principal;->getEncoded()[B -HSPLjavax/security/auth/x500/X500Principal;->getName()Ljava/lang/String; -HSPLjavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String; -HSPLjavax/security/auth/x500/X500Principal;->hashCode()I -HSPLjavax/xml/parsers/DocumentBuilder;-><init>()V -HSPLjavax/xml/parsers/DocumentBuilder;->parse(Ljava/io/InputStream;)Lorg/w3c/dom/Document; -HSPLjavax/xml/parsers/DocumentBuilderFactory;-><init>()V -HSPLjavax/xml/parsers/DocumentBuilderFactory;->isCoalescing()Z -HSPLjavax/xml/parsers/DocumentBuilderFactory;->isIgnoringComments()Z -HSPLjavax/xml/parsers/DocumentBuilderFactory;->isIgnoringElementContentWhitespace()Z -HSPLjavax/xml/parsers/DocumentBuilderFactory;->isNamespaceAware()Z -HSPLjavax/xml/parsers/DocumentBuilderFactory;->isValidating()Z -HSPLjavax/xml/parsers/DocumentBuilderFactory;->newInstance()Ljavax/xml/parsers/DocumentBuilderFactory; -HSPLjavax/xml/parsers/SAXParserFactory;-><init>()V -HSPLjavax/xml/parsers/SAXParserFactory;->newInstance()Ljavax/xml/parsers/SAXParserFactory; -HSPLjdk/internal/access/SharedSecrets;->getJavaUtilCollectionAccess()Ljdk/internal/access/JavaUtilCollectionAccess; -HSPLjdk/internal/access/SharedSecrets;->setJavaUtilCollectionAccess(Ljdk/internal/access/JavaUtilCollectionAccess;)V -HSPLjdk/internal/math/FDBigInteger;-><init>(J[CII)V -HSPLjdk/internal/math/FDBigInteger;-><init>([II)V -HSPLjdk/internal/math/FDBigInteger;->add(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->addAndCmp(Ljdk/internal/math/FDBigInteger;Ljdk/internal/math/FDBigInteger;)I -HSPLjdk/internal/math/FDBigInteger;->big5pow(I)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->checkZeroTail([II)I -HSPLjdk/internal/math/FDBigInteger;->cmp(Ljdk/internal/math/FDBigInteger;)I -HSPLjdk/internal/math/FDBigInteger;->cmpPow52(II)I -HSPLjdk/internal/math/FDBigInteger;->getNormalizationBias()I -HSPLjdk/internal/math/FDBigInteger;->leftInplaceSub(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->leftShift(I)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->leftShift([II[IIII)V -HSPLjdk/internal/math/FDBigInteger;->makeImmutable()V -HSPLjdk/internal/math/FDBigInteger;->mult([IIII[I)V -HSPLjdk/internal/math/FDBigInteger;->mult([III[I)V -HSPLjdk/internal/math/FDBigInteger;->multAddMe(II)V -HSPLjdk/internal/math/FDBigInteger;->multAndCarryBy10([II[I)I -HSPLjdk/internal/math/FDBigInteger;->multBy10()Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->multByPow52(II)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->multDiffMe(JLjdk/internal/math/FDBigInteger;)J -HSPLjdk/internal/math/FDBigInteger;->quoRemIteration(Ljdk/internal/math/FDBigInteger;)I -HSPLjdk/internal/math/FDBigInteger;->rightInplaceSub(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->size()I -HSPLjdk/internal/math/FDBigInteger;->trimLeadingZeros()V -HSPLjdk/internal/math/FDBigInteger;->valueOfMulPow52(JII)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->valueOfPow2(I)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FDBigInteger;->valueOfPow52(II)Ljdk/internal/math/FDBigInteger; -HSPLjdk/internal/math/FloatingDecimal$1;->initialValue()Ljava/lang/Object; -HSPLjdk/internal/math/FloatingDecimal$1;->initialValue()Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer; -HSPLjdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer;-><init>(ZI[CI)V -HSPLjdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer;->doubleValue()D -HSPLjdk/internal/math/FloatingDecimal$ASCIIToBinaryBuffer;->floatValue()F -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->-$$Nest$mdtoa(Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;IJIZ)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->-$$Nest$msetSign(Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;Z)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;-><init>()V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->appendTo(Ljava/lang/Appendable;)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->developLongDigits(IJI)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->dtoa(IJIZ)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->estimateDecExp(JI)I -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getChars([C)I -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getDecimalExponent()I -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->getDigits([C)I -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->isExceptional()Z -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->isNegative()Z -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->roundup()V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->setSign(Z)V -HSPLjdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer;->toJavaFormatString()Ljava/lang/String; -HSPLjdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer;->doubleValue()D -HSPLjdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer;->floatValue()F -HSPLjdk/internal/math/FloatingDecimal;->appendTo(FLjava/lang/Appendable;)V -HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIBuffer()Ljdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer; -HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIConverter(D)Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter; -HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIConverter(DZ)Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter; -HSPLjdk/internal/math/FloatingDecimal;->getBinaryToASCIIConverter(F)Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter; -HSPLjdk/internal/math/FloatingDecimal;->parseDouble(Ljava/lang/String;)D -HSPLjdk/internal/math/FloatingDecimal;->parseFloat(Ljava/lang/String;)F -HSPLjdk/internal/math/FloatingDecimal;->readJavaFormatString(Ljava/lang/String;)Ljdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter; -HSPLjdk/internal/math/FloatingDecimal;->toJavaFormatString(D)Ljava/lang/String; -HSPLjdk/internal/math/FloatingDecimal;->toJavaFormatString(F)Ljava/lang/String; -HSPLjdk/internal/math/FormattedFloatingDecimal$1;-><init>()V -HSPLjdk/internal/math/FormattedFloatingDecimal$1;->initialValue()Ljava/lang/Object; -HSPLjdk/internal/math/FormattedFloatingDecimal$Form;-><clinit>()V -HSPLjdk/internal/math/FormattedFloatingDecimal$Form;-><init>(Ljava/lang/String;I)V -HSPLjdk/internal/math/FormattedFloatingDecimal$Form;->values()[Ljdk/internal/math/FormattedFloatingDecimal$Form; -HSPLjdk/internal/math/FormattedFloatingDecimal;-><clinit>()V -HSPLjdk/internal/math/FormattedFloatingDecimal;-><init>(ILjdk/internal/math/FormattedFloatingDecimal$Form;Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter;)V -HSPLjdk/internal/math/FormattedFloatingDecimal;->applyPrecision(I[CII)I -HSPLjdk/internal/math/FormattedFloatingDecimal;->create(ZI)[C -HSPLjdk/internal/math/FormattedFloatingDecimal;->fillDecimal(I[CIIZ)V -HSPLjdk/internal/math/FormattedFloatingDecimal;->getBuffer()[C -HSPLjdk/internal/math/FormattedFloatingDecimal;->getExponent()[C -HSPLjdk/internal/math/FormattedFloatingDecimal;->getExponentRounded()I -HSPLjdk/internal/math/FormattedFloatingDecimal;->getMantissa()[C -HSPLjdk/internal/math/FormattedFloatingDecimal;->valueOf(DILjdk/internal/math/FormattedFloatingDecimal$Form;)Ljdk/internal/math/FormattedFloatingDecimal; -HSPLjdk/internal/misc/Unsafe;->compareAndSetObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z -HSPLjdk/internal/misc/Unsafe;->getAndAddInt(Ljava/lang/Object;JI)I -HSPLjdk/internal/misc/Unsafe;->getAndAddLong(Ljava/lang/Object;JJ)J -HSPLjdk/internal/misc/Unsafe;->getAndBitwiseAndInt(Ljava/lang/Object;JI)I -HSPLjdk/internal/misc/Unsafe;->getAndSetInt(Ljava/lang/Object;JI)I -HSPLjdk/internal/misc/Unsafe;->getAndSetLong(Ljava/lang/Object;JJ)J -HSPLjdk/internal/misc/Unsafe;->getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object; -HSPLjdk/internal/misc/Unsafe;->getAndSetReference(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object; -HSPLjdk/internal/misc/Unsafe;->getIntAcquire(Ljava/lang/Object;J)I -HSPLjdk/internal/misc/Unsafe;->getIntUnaligned(Ljava/lang/Object;J)I -HSPLjdk/internal/misc/Unsafe;->getLongAcquire(Ljava/lang/Object;J)J -HSPLjdk/internal/misc/Unsafe;->getLongUnaligned(Ljava/lang/Object;J)J -HSPLjdk/internal/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; -HSPLjdk/internal/misc/Unsafe;->getObjectAcquire(Ljava/lang/Object;J)Ljava/lang/Object; -HSPLjdk/internal/misc/Unsafe;->getObjectVolatile(Ljava/lang/Object;J)Ljava/lang/Object; -HSPLjdk/internal/misc/Unsafe;->getReferenceAcquire(Ljava/lang/Object;J)Ljava/lang/Object; -HSPLjdk/internal/misc/Unsafe;->getUnsafe()Ljdk/internal/misc/Unsafe; -HSPLjdk/internal/misc/Unsafe;->makeLong(II)J -HSPLjdk/internal/misc/Unsafe;->objectFieldOffset(Ljava/lang/Class;Ljava/lang/String;)J -HSPLjdk/internal/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J -HSPLjdk/internal/misc/Unsafe;->pickPos(II)I -HSPLjdk/internal/misc/Unsafe;->putIntOpaque(Ljava/lang/Object;JI)V -HSPLjdk/internal/misc/Unsafe;->putIntRelease(Ljava/lang/Object;JI)V -HSPLjdk/internal/misc/Unsafe;->putLongRelease(Ljava/lang/Object;JJ)V -HSPLjdk/internal/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V -HSPLjdk/internal/misc/Unsafe;->putObjectRelease(Ljava/lang/Object;JLjava/lang/Object;)V -HSPLjdk/internal/misc/Unsafe;->putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V -HSPLjdk/internal/misc/Unsafe;->putReferenceOpaque(Ljava/lang/Object;JLjava/lang/Object;)V -HSPLjdk/internal/misc/Unsafe;->putReferenceRelease(Ljava/lang/Object;JLjava/lang/Object;)V -HSPLjdk/internal/misc/Unsafe;->toUnsignedLong(I)J -HSPLjdk/internal/misc/Unsafe;->weakCompareAndSetInt(Ljava/lang/Object;JII)Z -HSPLjdk/internal/misc/Unsafe;->weakCompareAndSetReference(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z -HSPLjdk/internal/misc/VM;->getSavedProperty(Ljava/lang/String;)Ljava/lang/String; -HSPLjdk/internal/ref/CleanerFactory;->cleaner()Ljava/lang/ref/Cleaner; -HSPLjdk/internal/ref/CleanerImpl$PhantomCleanableRef;-><init>(Ljava/lang/Object;Ljava/lang/ref/Cleaner;Ljava/lang/Runnable;)V -HSPLjdk/internal/ref/CleanerImpl$PhantomCleanableRef;->performCleanup()V+]Ljava/lang/Runnable;megamorphic_types -HSPLjdk/internal/ref/CleanerImpl;->getCleanerImpl(Ljava/lang/ref/Cleaner;)Ljdk/internal/ref/CleanerImpl; -HSPLjdk/internal/ref/PhantomCleanable;-><init>(Ljava/lang/Object;Ljava/lang/ref/Cleaner;)V -HSPLjdk/internal/ref/PhantomCleanable;->clean()V+]Ljdk/internal/ref/PhantomCleanable;Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef; -HSPLjdk/internal/ref/PhantomCleanable;->insert()V -HSPLjdk/internal/ref/PhantomCleanable;->remove()Z -HSPLjdk/internal/reflect/Reflection;->getCallerClass()Ljava/lang/Class; -HSPLjdk/internal/util/ArraysSupport;->mismatch([B[BI)I -HSPLjdk/internal/util/ArraysSupport;->mismatch([FI[FII)I -HSPLjdk/internal/util/ArraysSupport;->mismatch([I[II)I -HSPLjdk/internal/util/ArraysSupport;->mismatch([J[JI)I -HSPLjdk/internal/util/ArraysSupport;->mismatch([Z[ZI)I -HSPLjdk/internal/util/ArraysSupport;->newLength(III)I -HSPLjdk/internal/util/ArraysSupport;->vectorizedMismatch(Ljava/lang/Object;JLjava/lang/Object;JII)I -HSPLjdk/internal/util/Preconditions;->checkFromIndexSize(IIILjava/util/function/BiFunction;)I -HSPLjdk/internal/util/Preconditions;->checkIndex(IILjava/util/function/BiFunction;)I -HSPLjdk/internal/util/random/RandomSupport;-><clinit>()V -HSPLjdk/internal/util/random/RandomSupport;->mixMurmur64(J)J -HSPLjdk/internal/util/random/RandomSupport;->secureRandomSeedRequested()Z -HSPLlibcore/content/type/MimeMap$Builder$Element;-><init>(Ljava/lang/String;Z)V -HSPLlibcore/content/type/MimeMap$Builder$Element;->ofExtensionSpec(Ljava/lang/String;)Llibcore/content/type/MimeMap$Builder$Element; -HSPLlibcore/content/type/MimeMap$Builder$Element;->ofMimeSpec(Ljava/lang/String;)Llibcore/content/type/MimeMap$Builder$Element; -HSPLlibcore/content/type/MimeMap$Builder;->addMimeMapping(Ljava/lang/String;Ljava/util/List;)Llibcore/content/type/MimeMap$Builder; -HSPLlibcore/content/type/MimeMap$Builder;->maybePut(Ljava/util/Map;Llibcore/content/type/MimeMap$Builder$Element;Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/content/type/MimeMap$MemoizingSupplier;->get()Ljava/lang/Object; -HSPLlibcore/content/type/MimeMap;-><init>(Ljava/util/Map;Ljava/util/Map;)V -HSPLlibcore/content/type/MimeMap;->checkValidExtension(Ljava/lang/String;)V -HSPLlibcore/content/type/MimeMap;->checkValidMimeType(Ljava/lang/String;)V -HSPLlibcore/content/type/MimeMap;->getDefault()Llibcore/content/type/MimeMap; -HSPLlibcore/content/type/MimeMap;->guessMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/content/type/MimeMap;->isValidMimeTypeOrExtension(Ljava/lang/String;)Z -HSPLlibcore/content/type/MimeMap;->toLowerCase(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/icu/CollationKeyICU;-><init>(Ljava/lang/String;Landroid/icu/text/CollationKey;)V -HSPLlibcore/icu/CollationKeyICU;->toByteArray()[B -HSPLlibcore/icu/DecimalFormatData;-><init>(Ljava/util/Locale;)V -HSPLlibcore/icu/DecimalFormatData;->getCurrencyPattern()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getDecimalSeparator()C -HSPLlibcore/icu/DecimalFormatData;->getExponentSeparator()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getGroupingSeparator()C -HSPLlibcore/icu/DecimalFormatData;->getInfinity()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getInstance(Ljava/util/Locale;)Llibcore/icu/DecimalFormatData; -HSPLlibcore/icu/DecimalFormatData;->getMinusSign()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getMonetaryDecimalSeparator()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getMonetaryGroupSeparator()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getNaN()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getNumberPattern()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getPatternSeparator()C -HSPLlibcore/icu/DecimalFormatData;->getPerMill()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getPercent()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getPercentPattern()Ljava/lang/String; -HSPLlibcore/icu/DecimalFormatData;->getZeroDigit()C -HSPLlibcore/icu/DecimalFormatData;->loadPatternSeparator(Ljava/util/Locale;)C -HSPLlibcore/icu/ICU;->getAvailableLocales()[Ljava/util/Locale; -HSPLlibcore/icu/ICU;->getBestDateTimePattern(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String; -HSPLlibcore/icu/ICU;->getCurrencyCode(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/icu/ICU;->getExtendedCalendar(Ljava/util/Locale;Ljava/lang/String;)Lcom/android/icu/util/ExtendedCalendar; -HSPLlibcore/icu/ICU;->getISOLanguages()[Ljava/lang/String; -HSPLlibcore/icu/ICU;->isIsoCountry(Ljava/lang/String;)Z -HSPLlibcore/icu/ICU;->localeFromIcuLocaleId(Ljava/lang/String;)Ljava/util/Locale; -HSPLlibcore/icu/ICU;->localesFromStrings([Ljava/lang/String;)[Ljava/util/Locale; -HSPLlibcore/icu/ICU;->parseLangScriptRegionAndVariants(Ljava/lang/String;[Ljava/lang/String;)V -HSPLlibcore/icu/ICU;->setDefaultLocale(Ljava/lang/String;)V -HSPLlibcore/icu/ICU;->transformIcuDateTimePattern(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/icu/ICU;->transformIcuDateTimePattern_forJavaText(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/icu/LocaleData;->get(Ljava/util/Locale;)Llibcore/icu/LocaleData; -HSPLlibcore/icu/LocaleData;->getCompatibleLocaleForBug159514442(Ljava/util/Locale;)Ljava/util/Locale; -HSPLlibcore/icu/LocaleData;->initLocaleData(Ljava/util/Locale;)Llibcore/icu/LocaleData; -HSPLlibcore/icu/LocaleData;->initializeCalendarData(Ljava/util/Locale;)V -HSPLlibcore/icu/LocaleData;->initializeDateFormatData(Ljava/util/Locale;)V -HSPLlibcore/icu/LocaleData;->mapInvalidAndNullLocales(Ljava/util/Locale;)Ljava/util/Locale; -HSPLlibcore/icu/SimpleDateFormatData;->getDateFormat(I)Ljava/lang/String; -HSPLlibcore/icu/SimpleDateFormatData;->getInstance(Ljava/util/Locale;)Llibcore/icu/SimpleDateFormatData; -HSPLlibcore/icu/SimpleDateFormatData;->getTimeFormat(I)Ljava/lang/String; -HSPLlibcore/internal/StringPool;-><init>()V -HSPLlibcore/internal/StringPool;->contentEquals(Ljava/lang/String;[CII)Z -HSPLlibcore/internal/StringPool;->get([CII)Ljava/lang/String; -HSPLlibcore/io/BlockGuardOs;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor; -HSPLlibcore/io/BlockGuardOs;->access(Ljava/lang/String;I)Z -HSPLlibcore/io/BlockGuardOs;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress; -HSPLlibcore/io/BlockGuardOs;->chmod(Ljava/lang/String;I)V -HSPLlibcore/io/BlockGuardOs;->close(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/BlockGuardOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V -HSPLlibcore/io/BlockGuardOs;->fdatasync(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/BlockGuardOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat; -HSPLlibcore/io/BlockGuardOs;->ftruncate(Ljava/io/FileDescriptor;J)V -HSPLlibcore/io/BlockGuardOs;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B -HSPLlibcore/io/BlockGuardOs;->isInetDomain(I)Z -HSPLlibcore/io/BlockGuardOs;->isInetSocket(Ljava/io/FileDescriptor;)Z -HSPLlibcore/io/BlockGuardOs;->isLingerSocket(Ljava/io/FileDescriptor;)Z -HSPLlibcore/io/BlockGuardOs;->isNonBlockingFile(Ljava/io/FileDescriptor;)Z -HSPLlibcore/io/BlockGuardOs;->isUdpSocket(Ljava/io/FileDescriptor;)Z -HSPLlibcore/io/BlockGuardOs;->isUnixDomain(I)Z -HSPLlibcore/io/BlockGuardOs;->isUnixSocket(Ljava/io/FileDescriptor;)Z -HSPLlibcore/io/BlockGuardOs;->lseek(Ljava/io/FileDescriptor;JI)J -HSPLlibcore/io/BlockGuardOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLlibcore/io/BlockGuardOs;->mkdir(Ljava/lang/String;I)V -HSPLlibcore/io/BlockGuardOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor; -HSPLlibcore/io/BlockGuardOs;->poll([Landroid/system/StructPollfd;I)I -HSPLlibcore/io/BlockGuardOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V -HSPLlibcore/io/BlockGuardOs;->pread(Ljava/io/FileDescriptor;[BIIJ)I -HSPLlibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/BlockGuardOs;->readlink(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/io/BlockGuardOs;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I -HSPLlibcore/io/BlockGuardOs;->remove(Ljava/lang/String;)V -HSPLlibcore/io/BlockGuardOs;->rename(Ljava/lang/String;Ljava/lang/String;)V -HSPLlibcore/io/BlockGuardOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I -HSPLlibcore/io/BlockGuardOs;->socket(III)Ljava/io/FileDescriptor; -HSPLlibcore/io/BlockGuardOs;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V -HSPLlibcore/io/BlockGuardOs;->stat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLlibcore/io/BlockGuardOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs; -HSPLlibcore/io/BlockGuardOs;->tagSocket(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor; -HSPLlibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;-><init>(Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;Ljava/io/InputStream;)V -HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;->close()V -HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;-><init>(Llibcore/io/ClassPathURLStreamHandler;Ljava/net/URL;)V -HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;->connect()V -HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;->getInputStream()Ljava/io/InputStream; -HSPLlibcore/io/ClassPathURLStreamHandler;-><init>(Ljava/lang/String;)V -HSPLlibcore/io/ClassPathURLStreamHandler;-><init>(Ljava/lang/String;Z)V -HSPLlibcore/io/ClassPathURLStreamHandler;->getEntryUrlOrNull(Ljava/lang/String;)Ljava/net/URL; -HSPLlibcore/io/ClassPathURLStreamHandler;->isEntryStored(Ljava/lang/String;)Z -HSPLlibcore/io/ClassPathURLStreamHandler;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection; -HSPLlibcore/io/ForwardingOs;-><init>(Llibcore/io/Os;)V -HSPLlibcore/io/ForwardingOs;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor; -HSPLlibcore/io/ForwardingOs;->access(Ljava/lang/String;I)Z -HSPLlibcore/io/ForwardingOs;->android_fdsan_exchange_owner_tag(Ljava/io/FileDescriptor;JJ)V -HSPLlibcore/io/ForwardingOs;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress; -HSPLlibcore/io/ForwardingOs;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V -HSPLlibcore/io/ForwardingOs;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V -HSPLlibcore/io/ForwardingOs;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData; -HSPLlibcore/io/ForwardingOs;->chmod(Ljava/lang/String;I)V -HSPLlibcore/io/ForwardingOs;->close(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/ForwardingOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V -HSPLlibcore/io/ForwardingOs;->dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor; -HSPLlibcore/io/ForwardingOs;->fcntlInt(Ljava/io/FileDescriptor;II)I -HSPLlibcore/io/ForwardingOs;->fcntlVoid(Ljava/io/FileDescriptor;I)I -HSPLlibcore/io/ForwardingOs;->fdatasync(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/ForwardingOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat; -HSPLlibcore/io/ForwardingOs;->ftruncate(Ljava/io/FileDescriptor;J)V -HSPLlibcore/io/ForwardingOs;->gai_strerror(I)Ljava/lang/String; -HSPLlibcore/io/ForwardingOs;->getenv(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/io/ForwardingOs;->getifaddrs()[Landroid/system/StructIfaddrs; -HSPLlibcore/io/ForwardingOs;->getnameinfo(Ljava/net/InetAddress;I)Ljava/lang/String; -HSPLlibcore/io/ForwardingOs;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress; -HSPLlibcore/io/ForwardingOs;->getpgid(I)I -HSPLlibcore/io/ForwardingOs;->getpid()I -HSPLlibcore/io/ForwardingOs;->getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress; -HSPLlibcore/io/ForwardingOs;->getsockoptInt(Ljava/io/FileDescriptor;II)I -HSPLlibcore/io/ForwardingOs;->getsockoptLinger(Ljava/io/FileDescriptor;II)Landroid/system/StructLinger; -HSPLlibcore/io/ForwardingOs;->gettid()I -HSPLlibcore/io/ForwardingOs;->getuid()I -HSPLlibcore/io/ForwardingOs;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B -HSPLlibcore/io/ForwardingOs;->if_nametoindex(Ljava/lang/String;)I -HSPLlibcore/io/ForwardingOs;->ioctlInt(Ljava/io/FileDescriptor;I)I -HSPLlibcore/io/ForwardingOs;->listen(Ljava/io/FileDescriptor;I)V -HSPLlibcore/io/ForwardingOs;->lseek(Ljava/io/FileDescriptor;JI)J -HSPLlibcore/io/ForwardingOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLlibcore/io/ForwardingOs;->mkdir(Ljava/lang/String;I)V -HSPLlibcore/io/ForwardingOs;->mmap(JJIILjava/io/FileDescriptor;J)J -HSPLlibcore/io/ForwardingOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor; -HSPLlibcore/io/ForwardingOs;->pipe2(I)[Ljava/io/FileDescriptor; -HSPLlibcore/io/ForwardingOs;->poll([Landroid/system/StructPollfd;I)I -HSPLlibcore/io/ForwardingOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V -HSPLlibcore/io/ForwardingOs;->pread(Ljava/io/FileDescriptor;[BIIJ)I -HSPLlibcore/io/ForwardingOs;->read(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/ForwardingOs;->readlink(Ljava/lang/String;)Ljava/lang/String; -HSPLlibcore/io/ForwardingOs;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I -HSPLlibcore/io/ForwardingOs;->remove(Ljava/lang/String;)V -HSPLlibcore/io/ForwardingOs;->rename(Ljava/lang/String;Ljava/lang/String;)V -HSPLlibcore/io/ForwardingOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I -HSPLlibcore/io/ForwardingOs;->setenv(Ljava/lang/String;Ljava/lang/String;Z)V -HSPLlibcore/io/ForwardingOs;->setpgid(II)V -HSPLlibcore/io/ForwardingOs;->setregid(II)V -HSPLlibcore/io/ForwardingOs;->setreuid(II)V -HSPLlibcore/io/ForwardingOs;->setsockoptInt(Ljava/io/FileDescriptor;III)V -HSPLlibcore/io/ForwardingOs;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V -HSPLlibcore/io/ForwardingOs;->shutdown(Ljava/io/FileDescriptor;I)V -HSPLlibcore/io/ForwardingOs;->socket(III)Ljava/io/FileDescriptor; -HSPLlibcore/io/ForwardingOs;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V -HSPLlibcore/io/ForwardingOs;->stat(Ljava/lang/String;)Landroid/system/StructStat; -HSPLlibcore/io/ForwardingOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs; -HSPLlibcore/io/ForwardingOs;->strerror(I)Ljava/lang/String; -HSPLlibcore/io/ForwardingOs;->sysconf(I)J -HSPLlibcore/io/ForwardingOs;->write(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/IoBridge;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V -HSPLlibcore/io/IoBridge;->booleanFromInt(I)Z -HSPLlibcore/io/IoBridge;->booleanToInt(Z)I -HSPLlibcore/io/IoBridge;->closeAndSignalBlockedThreads(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/IoBridge;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)V -HSPLlibcore/io/IoBridge;->connectErrno(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)V -HSPLlibcore/io/IoBridge;->createMessageForException(Ljava/io/FileDescriptor;Ljava/net/InetAddress;IILjava/lang/Exception;)Ljava/lang/String; -HSPLlibcore/io/IoBridge;->getLocalInetSocketAddress(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress; -HSPLlibcore/io/IoBridge;->getSocketOption(Ljava/io/FileDescriptor;I)Ljava/lang/Object; -HSPLlibcore/io/IoBridge;->getSocketOptionErrno(Ljava/io/FileDescriptor;I)Ljava/lang/Object; -HSPLlibcore/io/IoBridge;->isConnected(Ljava/io/FileDescriptor;Ljava/net/InetAddress;III)Z -HSPLlibcore/io/IoBridge;->open(Ljava/lang/String;I)Ljava/io/FileDescriptor; -HSPLlibcore/io/IoBridge;->poll(Ljava/io/FileDescriptor;II)V -HSPLlibcore/io/IoBridge;->postRecvfrom(ZLjava/net/DatagramPacket;Ljava/net/InetSocketAddress;I)I -HSPLlibcore/io/IoBridge;->read(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/IoBridge;->recvfrom(ZLjava/io/FileDescriptor;[BIIILjava/net/DatagramPacket;Z)I -HSPLlibcore/io/IoBridge;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I -HSPLlibcore/io/IoBridge;->setSocketOption(Ljava/io/FileDescriptor;ILjava/lang/Object;)V -HSPLlibcore/io/IoBridge;->setSocketOptionErrno(Ljava/io/FileDescriptor;ILjava/lang/Object;)V -HSPLlibcore/io/IoBridge;->socket(III)Ljava/io/FileDescriptor; -HSPLlibcore/io/IoBridge;->write(Ljava/io/FileDescriptor;[BII)V -HSPLlibcore/io/IoTracker;-><init>()V -HSPLlibcore/io/IoTracker;->reset()V -HSPLlibcore/io/IoTracker;->trackIo(I)V -HSPLlibcore/io/IoTracker;->trackIo(ILlibcore/io/IoTracker$Mode;)V -HSPLlibcore/io/IoUtils;->acquireRawFd(Ljava/io/FileDescriptor;)I -HSPLlibcore/io/IoUtils;->canOpenReadOnly(Ljava/lang/String;)Z -HSPLlibcore/io/IoUtils;->close(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V -HSPLlibcore/io/IoUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V -HSPLlibcore/io/IoUtils;->generateFdOwnerId(Ljava/lang/Object;)J -HSPLlibcore/io/IoUtils;->isParcelFileDescriptor(Ljava/lang/Object;)Z -HSPLlibcore/io/IoUtils;->setBlocking(Ljava/io/FileDescriptor;Z)V -HSPLlibcore/io/IoUtils;->setFdOwner(Ljava/io/FileDescriptor;Ljava/lang/Object;)V -HSPLlibcore/io/Libcore;->compareAndSetOs(Llibcore/io/Os;Llibcore/io/Os;)Z -HSPLlibcore/io/Libcore;->getOs()Llibcore/io/Os; -HSPLlibcore/io/Linux;->pread(Ljava/io/FileDescriptor;[BIIJ)I -HSPLlibcore/io/Linux;->read(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/Linux;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I -HSPLlibcore/io/Linux;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I -HSPLlibcore/io/Linux;->write(Ljava/io/FileDescriptor;[BII)I -HSPLlibcore/io/Memory;->peekInt(JZ)I -HSPLlibcore/io/Memory;->peekInt([BILjava/nio/ByteOrder;)I -HSPLlibcore/io/Memory;->peekLong(JZ)J -HSPLlibcore/io/Memory;->peekShort(JZ)S -HSPLlibcore/io/Memory;->peekShort([BILjava/nio/ByteOrder;)S -HSPLlibcore/io/Memory;->pokeInt(JIZ)V -HSPLlibcore/io/Memory;->pokeInt([BIILjava/nio/ByteOrder;)V -HSPLlibcore/io/Memory;->pokeLong(JJZ)V -HSPLlibcore/io/Memory;->pokeShort(JSZ)V -HSPLlibcore/io/Os;->compareAndSetDefault(Llibcore/io/Os;Llibcore/io/Os;)Z -HSPLlibcore/io/Os;->getDefault()Llibcore/io/Os; -HSPLlibcore/net/InetAddressUtils;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress; -HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress; -HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrowStripOptionalBrackets(Ljava/lang/String;)Ljava/net/InetAddress; -HSPLlibcore/net/NetworkSecurityPolicy;-><init>()V -HSPLlibcore/net/NetworkSecurityPolicy;->getInstance()Llibcore/net/NetworkSecurityPolicy; -HSPLlibcore/net/NetworkSecurityPolicy;->setInstance(Llibcore/net/NetworkSecurityPolicy;)V -HSPLlibcore/net/event/NetworkEventDispatcher;->addListener(Llibcore/net/event/NetworkEventListener;)V -HSPLlibcore/net/event/NetworkEventDispatcher;->dispatchNetworkConfigurationChange()V -HSPLlibcore/net/event/NetworkEventDispatcher;->getInstance()Llibcore/net/event/NetworkEventDispatcher; -HSPLlibcore/net/event/NetworkEventListener;-><init>()V -HSPLlibcore/net/http/HttpDate$1;->initialValue()Ljava/lang/Object; -HSPLlibcore/net/http/HttpDate$1;->initialValue()Ljava/text/DateFormat; -HSPLlibcore/net/http/HttpDate;->parse(Ljava/lang/String;)Ljava/util/Date; -HSPLlibcore/net/http/HttpURLConnectionFactory;-><init>()V -HSPLlibcore/net/http/HttpURLConnectionFactory;->createInstance()Llibcore/net/http/HttpURLConnectionFactory; -HSPLlibcore/net/http/HttpURLConnectionFactory;->openConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection; -HSPLlibcore/net/http/HttpURLConnectionFactory;->setDns(Llibcore/net/http/Dns;)V -HSPLlibcore/net/http/HttpURLConnectionFactory;->setNewConnectionPool(IJLjava/util/concurrent/TimeUnit;)V -HSPLlibcore/reflect/AnnotationFactory;-><init>(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)V -HSPLlibcore/reflect/AnnotationFactory;->createAnnotation(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)Ljava/lang/annotation/Annotation; -HSPLlibcore/reflect/AnnotationFactory;->getElementsDescription(Ljava/lang/Class;)[Llibcore/reflect/AnnotationMember; -HSPLlibcore/reflect/AnnotationFactory;->invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; -HSPLlibcore/reflect/AnnotationMember;-><init>(Ljava/lang/String;Ljava/lang/Object;)V -HSPLlibcore/reflect/AnnotationMember;-><init>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Method;)V -HSPLlibcore/reflect/AnnotationMember;->copyValue()Ljava/lang/Object; -HSPLlibcore/reflect/AnnotationMember;->setDefinition(Llibcore/reflect/AnnotationMember;)Llibcore/reflect/AnnotationMember; -HSPLlibcore/reflect/AnnotationMember;->validateValue()Ljava/lang/Object; -HSPLlibcore/reflect/GenericArrayTypeImpl;->getGenericComponentType()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/GenericSignatureParser;-><init>(Ljava/lang/ClassLoader;)V -HSPLlibcore/reflect/GenericSignatureParser;->expect(C)V -HSPLlibcore/reflect/GenericSignatureParser;->isStopSymbol(C)Z -HSPLlibcore/reflect/GenericSignatureParser;->parseClassSignature()V -HSPLlibcore/reflect/GenericSignatureParser;->parseClassTypeSignature()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/GenericSignatureParser;->parseFieldTypeSignature()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/GenericSignatureParser;->parseForClass(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V -HSPLlibcore/reflect/GenericSignatureParser;->parseForConstructor(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/Class;)V -HSPLlibcore/reflect/GenericSignatureParser;->parseForField(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V -HSPLlibcore/reflect/GenericSignatureParser;->parseForMethod(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;[Ljava/lang/Class;)V -HSPLlibcore/reflect/GenericSignatureParser;->parseFormalTypeParameter()Llibcore/reflect/TypeVariableImpl; -HSPLlibcore/reflect/GenericSignatureParser;->parseMethodTypeSignature([Ljava/lang/Class;)V -HSPLlibcore/reflect/GenericSignatureParser;->parseOptFormalTypeParameters()V -HSPLlibcore/reflect/GenericSignatureParser;->parseOptTypeArguments()Llibcore/reflect/ListOfTypes; -HSPLlibcore/reflect/GenericSignatureParser;->parseReturnType()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/GenericSignatureParser;->parseTypeArgument()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/GenericSignatureParser;->parseTypeSignature()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/GenericSignatureParser;->parseTypeVariableSignature()Llibcore/reflect/TypeVariableImpl; -HSPLlibcore/reflect/GenericSignatureParser;->scanIdentifier()V -HSPLlibcore/reflect/GenericSignatureParser;->scanSymbol()V -HSPLlibcore/reflect/GenericSignatureParser;->setInput(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V -HSPLlibcore/reflect/ListOfTypes;-><init>(I)V -HSPLlibcore/reflect/ListOfTypes;-><init>([Ljava/lang/reflect/Type;)V -HSPLlibcore/reflect/ListOfTypes;->add(Ljava/lang/reflect/Type;)V -HSPLlibcore/reflect/ListOfTypes;->getResolvedTypes()[Ljava/lang/reflect/Type; -HSPLlibcore/reflect/ListOfTypes;->length()I -HSPLlibcore/reflect/ListOfTypes;->resolveTypes(Ljava/util/List;)[Ljava/lang/reflect/Type; -HSPLlibcore/reflect/ListOfVariables;-><init>()V -HSPLlibcore/reflect/ListOfVariables;->add(Ljava/lang/reflect/TypeVariable;)V -HSPLlibcore/reflect/ListOfVariables;->getArray()[Ljava/lang/reflect/TypeVariable; -HSPLlibcore/reflect/ParameterizedTypeImpl;-><init>(Llibcore/reflect/ParameterizedTypeImpl;Ljava/lang/String;Llibcore/reflect/ListOfTypes;Ljava/lang/ClassLoader;)V -HSPLlibcore/reflect/ParameterizedTypeImpl;->equals(Ljava/lang/Object;)Z -HSPLlibcore/reflect/ParameterizedTypeImpl;->getActualTypeArguments()[Ljava/lang/reflect/Type; -HSPLlibcore/reflect/ParameterizedTypeImpl;->getOwnerType()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/ParameterizedTypeImpl;->getRawType()Ljava/lang/Class; -HSPLlibcore/reflect/ParameterizedTypeImpl;->getRawType()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/ParameterizedTypeImpl;->getResolvedType()Ljava/lang/reflect/Type; -HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)V -HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;Llibcore/reflect/ListOfTypes;)V -HSPLlibcore/reflect/TypeVariableImpl;->equals(Ljava/lang/Object;)Z -HSPLlibcore/reflect/TypeVariableImpl;->findFormalVar(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)Ljava/lang/reflect/TypeVariable; -HSPLlibcore/reflect/TypeVariableImpl;->getBounds()[Ljava/lang/reflect/Type; -HSPLlibcore/reflect/TypeVariableImpl;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration; -HSPLlibcore/reflect/TypeVariableImpl;->getName()Ljava/lang/String; -HSPLlibcore/reflect/TypeVariableImpl;->hashCode()I -HSPLlibcore/reflect/TypeVariableImpl;->resolve()V -HSPLlibcore/reflect/Types;->getType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type; -HSPLlibcore/reflect/Types;->getTypeArray(Llibcore/reflect/ListOfTypes;Z)[Ljava/lang/reflect/Type; -HSPLlibcore/reflect/WildcardTypeImpl;-><init>(Llibcore/reflect/ListOfTypes;Llibcore/reflect/ListOfTypes;)V -HSPLlibcore/reflect/WildcardTypeImpl;->getLowerBounds()[Ljava/lang/reflect/Type; -HSPLlibcore/reflect/WildcardTypeImpl;->getUpperBounds()[Ljava/lang/reflect/Type; -HSPLlibcore/util/ArrayUtils;->throwsIfOutOfBounds(III)V -HSPLlibcore/util/BasicLruCache;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLlibcore/util/BasicLruCache;->entryEvicted(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLlibcore/util/BasicLruCache;->evictAll()V -HSPLlibcore/util/BasicLruCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLlibcore/util/BasicLruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -HSPLlibcore/util/BasicLruCache;->trimToSize(I)V -HSPLlibcore/util/CollectionUtils;->removeDuplicates(Ljava/util/List;Ljava/util/Comparator;)V -HSPLlibcore/util/FP16;->ceil(S)S -HSPLlibcore/util/FP16;->compare(SS)I -HSPLlibcore/util/FP16;->floor(S)S -HSPLlibcore/util/FP16;->greater(SS)Z -HSPLlibcore/util/FP16;->greaterEquals(SS)Z -HSPLlibcore/util/FP16;->less(SS)Z -HSPLlibcore/util/FP16;->lessEquals(SS)Z -HSPLlibcore/util/FP16;->max(SS)S -HSPLlibcore/util/FP16;->min(SS)S -HSPLlibcore/util/FP16;->rint(S)S -HSPLlibcore/util/FP16;->toFloat(S)F -HSPLlibcore/util/FP16;->toHalf(F)S -HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;-><init>(Lsun/misc/Cleaner;)V -HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;->run()V -HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;-><init>(Llibcore/util/NativeAllocationRegistry;)V -HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->run()V -HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->setNativePtr(J)V -HSPLlibcore/util/NativeAllocationRegistry;->-$$Nest$fgetfreeFunction(Llibcore/util/NativeAllocationRegistry;)J -HSPLlibcore/util/NativeAllocationRegistry;->-$$Nest$fgetsize(Llibcore/util/NativeAllocationRegistry;)J -HSPLlibcore/util/NativeAllocationRegistry;->-$$Nest$smregisterNativeFree(J)V -HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJZ)V -HSPLlibcore/util/NativeAllocationRegistry;->createMalloced(Ljava/lang/ClassLoader;J)Llibcore/util/NativeAllocationRegistry; -HSPLlibcore/util/NativeAllocationRegistry;->createMalloced(Ljava/lang/ClassLoader;JJ)Llibcore/util/NativeAllocationRegistry; -HSPLlibcore/util/NativeAllocationRegistry;->createNonmalloced(Ljava/lang/ClassLoader;JJ)Llibcore/util/NativeAllocationRegistry; -HSPLlibcore/util/NativeAllocationRegistry;->registerNativeAllocation(J)V -HSPLlibcore/util/NativeAllocationRegistry;->registerNativeAllocation(Ljava/lang/Object;J)Ljava/lang/Runnable; -HSPLlibcore/util/NativeAllocationRegistry;->registerNativeFree(J)V -HSPLlibcore/util/SneakyThrow;->sneakyThrow(Ljava/lang/Throwable;)V -HSPLlibcore/util/SneakyThrow;->sneakyThrow_(Ljava/lang/Throwable;)V -HSPLlibcore/util/XmlObjectFactory;->newXmlPullParser()Lorg/xmlpull/v1/XmlPullParser; -HSPLlibcore/util/ZoneInfo;-><init>(Lcom/android/i18n/timezone/ZoneInfoData;IZ)V -HSPLlibcore/util/ZoneInfo;->clone()Ljava/lang/Object; -HSPLlibcore/util/ZoneInfo;->createZoneInfo(Lcom/android/i18n/timezone/ZoneInfoData;)Llibcore/util/ZoneInfo; -HSPLlibcore/util/ZoneInfo;->createZoneInfo(Lcom/android/i18n/timezone/ZoneInfoData;J)Llibcore/util/ZoneInfo; -HSPLlibcore/util/ZoneInfo;->getDSTSavings()I -HSPLlibcore/util/ZoneInfo;->getOffset(J)I -HSPLlibcore/util/ZoneInfo;->getOffsetsByUtcTime(J[I)I -HSPLlibcore/util/ZoneInfo;->getRawOffset()I -HSPLlibcore/util/ZoneInfo;->hasSameRules(Ljava/util/TimeZone;)Z -HSPLlibcore/util/ZoneInfo;->hashCode()I -HSPLlibcore/util/ZoneInfo;->inDaylightTime(Ljava/util/Date;)Z -HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V -HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(I[BII)V -HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->type(Ljava/lang/String;)I -HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->broadcast(I)V -HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->dispatch(I[BII)Lorg/apache/harmony/dalvik/ddmc/Chunk; -HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->sendChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)V -HSPLorg/apache/harmony/xml/ExpatAttributes;-><init>()V -HSPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;-><init>(Lorg/apache/harmony/xml/ExpatParser;)V -HSPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;-><init>(Lorg/apache/harmony/xml/ExpatParser;Lorg/apache/harmony/xml/ExpatParser$CurrentAttributes-IA;)V -HSPLorg/apache/harmony/xml/ExpatParser$ExpatLocator;-><init>(Lorg/apache/harmony/xml/ExpatParser;)V -HSPLorg/apache/harmony/xml/ExpatParser$ExpatLocator;-><init>(Lorg/apache/harmony/xml/ExpatParser;Lorg/apache/harmony/xml/ExpatParser$ExpatLocator-IA;)V -HSPLorg/apache/harmony/xml/ExpatParser;-><init>(Ljava/lang/String;Lorg/apache/harmony/xml/ExpatReader;ZLjava/lang/String;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/ExpatParser;->endDocument()V -HSPLorg/apache/harmony/xml/ExpatParser;->endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/ExpatParser;->finalize()V -HSPLorg/apache/harmony/xml/ExpatParser;->finish()V -HSPLorg/apache/harmony/xml/ExpatParser;->startDocument()V -HSPLorg/apache/harmony/xml/ExpatParser;->startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JI)V -HSPLorg/apache/harmony/xml/ExpatReader;-><init>()V -HSPLorg/apache/harmony/xml/ExpatReader;->parse(Lorg/xml/sax/InputSource;)V -HSPLorg/apache/harmony/xml/ExpatReader;->setContentHandler(Lorg/xml/sax/ContentHandler;)V -HSPLorg/apache/harmony/xml/dom/AttrImpl;->getNodeType()S -HSPLorg/apache/harmony/xml/dom/AttrImpl;->getOwnerElement()Lorg/w3c/dom/Element; -HSPLorg/apache/harmony/xml/dom/AttrImpl;->setValue(Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getData()Ljava/lang/String; -HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getNodeValue()Ljava/lang/String; -HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->setData(Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/DOMImplementationImpl;-><init>()V -HSPLorg/apache/harmony/xml/dom/DOMImplementationImpl;->getInstance()Lorg/apache/harmony/xml/dom/DOMImplementationImpl; -HSPLorg/apache/harmony/xml/dom/DocumentImpl;-><init>(Lorg/apache/harmony/xml/dom/DOMImplementationImpl;Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->createElement(Ljava/lang/String;)Lorg/apache/harmony/xml/dom/ElementImpl; -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->getDocumentElement()Lorg/w3c/dom/Element; -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->insertChildAt(Lorg/w3c/dom/Node;I)Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifier(Ljava/lang/String;)Z -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifierPart(C)Z -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifierStart(C)Z -HSPLorg/apache/harmony/xml/dom/DocumentImpl;->setDocumentURI(Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/ElementImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNodeName()Ljava/lang/String; -HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNodeType()S -HSPLorg/apache/harmony/xml/dom/ElementImpl;->getTagName()Ljava/lang/String; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->appendChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getChildNodes()Lorg/w3c/dom/NodeList; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getFirstChild()Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getLastChild()Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getTextContent()Ljava/lang/String; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->hasTextContent(Lorg/w3c/dom/Node;)Z -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->insertChildAt(Lorg/w3c/dom/Node;I)Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->isParentOf(Lorg/w3c/dom/Node;)Z -HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->refreshIndices(I)V -HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V -HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->getNextSibling()Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->isParentOf(Lorg/w3c/dom/Node;)Z -HSPLorg/apache/harmony/xml/dom/NodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V -HSPLorg/apache/harmony/xml/dom/NodeImpl;->getTextContent()Ljava/lang/String; -HSPLorg/apache/harmony/xml/dom/NodeImpl;->setName(Lorg/apache/harmony/xml/dom/NodeImpl;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/NodeListImpl;-><init>()V -HSPLorg/apache/harmony/xml/dom/NodeListImpl;->add(Lorg/apache/harmony/xml/dom/NodeImpl;)V -HSPLorg/apache/harmony/xml/dom/NodeListImpl;->getLength()I -HSPLorg/apache/harmony/xml/dom/NodeListImpl;->item(I)Lorg/w3c/dom/Node; -HSPLorg/apache/harmony/xml/dom/TextImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;Ljava/lang/String;)V -HSPLorg/apache/harmony/xml/dom/TextImpl;->getNodeType()S -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;-><init>()V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;->newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder; -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;-><clinit>()V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;-><init>()V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->appendText(Lorg/apache/harmony/xml/dom/DocumentImpl;Lorg/w3c/dom/Node;ILjava/lang/String;)V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->parse(Lcom/android/org/kxml2/io/KXmlParser;Lorg/apache/harmony/xml/dom/DocumentImpl;Lorg/w3c/dom/Node;I)V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->parse(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document; -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setCoalescing(Z)V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setIgnoreComments(Z)V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setIgnoreElementContentWhitespace(Z)V -HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setNamespaceAware(Z)V -HSPLorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;-><init>()V -HSPLorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Ljavax/net/ssl/SSLSocketFactory;)V -HSPLorg/apache/http/params/HttpConnectionParams;->setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V -HSPLorg/apache/http/params/HttpConnectionParams;->setSoTimeout(Lorg/apache/http/params/HttpParams;I)V -HSPLorg/apache/http/params/HttpConnectionParams;->setSocketBufferSize(Lorg/apache/http/params/HttpParams;I)V -HSPLorg/apache/http/params/HttpConnectionParams;->setStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;Z)V -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;-><init>(Lorg/xml/sax/Attributes;)V -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->clear()V -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->ensureCapacity(I)V -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getIndex(Ljava/lang/String;)I -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getLength()I -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getLocalName(I)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getQName(I)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getType(I)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getURI(I)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getValue(I)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->removeAttribute(I)V -HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttributes(Lorg/xml/sax/Attributes;)V -HSPLorg/ccil/cowan/tagsoup/Element;-><init>(Lorg/ccil/cowan/tagsoup/ElementType;Z)V -HSPLorg/ccil/cowan/tagsoup/Element;->atts()Lorg/ccil/cowan/tagsoup/AttributesImpl; -HSPLorg/ccil/cowan/tagsoup/Element;->canContain(Lorg/ccil/cowan/tagsoup/Element;)Z -HSPLorg/ccil/cowan/tagsoup/Element;->clean()V -HSPLorg/ccil/cowan/tagsoup/Element;->flags()I -HSPLorg/ccil/cowan/tagsoup/Element;->isPreclosed()Z -HSPLorg/ccil/cowan/tagsoup/Element;->localName()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Element;->model()I -HSPLorg/ccil/cowan/tagsoup/Element;->name()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Element;->namespace()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Element;->next()Lorg/ccil/cowan/tagsoup/Element; -HSPLorg/ccil/cowan/tagsoup/Element;->parent()Lorg/ccil/cowan/tagsoup/ElementType; -HSPLorg/ccil/cowan/tagsoup/Element;->setAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLorg/ccil/cowan/tagsoup/Element;->setNext(Lorg/ccil/cowan/tagsoup/Element;)V -HSPLorg/ccil/cowan/tagsoup/ElementType;->atts()Lorg/ccil/cowan/tagsoup/AttributesImpl; -HSPLorg/ccil/cowan/tagsoup/ElementType;->canContain(Lorg/ccil/cowan/tagsoup/ElementType;)Z -HSPLorg/ccil/cowan/tagsoup/ElementType;->flags()I -HSPLorg/ccil/cowan/tagsoup/ElementType;->localName()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/ElementType;->localName(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/ElementType;->model()I -HSPLorg/ccil/cowan/tagsoup/ElementType;->name()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/ElementType;->namespace()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/ElementType;->namespace(Ljava/lang/String;Z)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/ElementType;->parent()Lorg/ccil/cowan/tagsoup/ElementType; -HSPLorg/ccil/cowan/tagsoup/ElementType;->setAttribute(Lorg/ccil/cowan/tagsoup/AttributesImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLorg/ccil/cowan/tagsoup/HTMLScanner;-><init>()V -HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->mark()V -HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->resetDocumentLocator(Ljava/lang/String;Ljava/lang/String;)V -HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->save(ILorg/ccil/cowan/tagsoup/ScanHandler;)V -HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->scan(Ljava/io/Reader;Lorg/ccil/cowan/tagsoup/ScanHandler;)V -HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->unread(Ljava/io/PushbackReader;I)V -HSPLorg/ccil/cowan/tagsoup/Parser$1;-><init>(Lorg/ccil/cowan/tagsoup/Parser;)V -HSPLorg/ccil/cowan/tagsoup/Parser;-><init>()V -HSPLorg/ccil/cowan/tagsoup/Parser;->aname([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->aval([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->entity([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->eof([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->etag([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->etag_basic([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->etag_cdata([CII)Z -HSPLorg/ccil/cowan/tagsoup/Parser;->expandEntities(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Parser;->foreign(Ljava/lang/String;Ljava/lang/String;)Z -HSPLorg/ccil/cowan/tagsoup/Parser;->getEntity()I -HSPLorg/ccil/cowan/tagsoup/Parser;->getReader(Lorg/xml/sax/InputSource;)Ljava/io/Reader; -HSPLorg/ccil/cowan/tagsoup/Parser;->gi([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->lookupEntity([CII)I -HSPLorg/ccil/cowan/tagsoup/Parser;->makeName([CII)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Parser;->parse(Lorg/xml/sax/InputSource;)V -HSPLorg/ccil/cowan/tagsoup/Parser;->pcdata([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->pop()V -HSPLorg/ccil/cowan/tagsoup/Parser;->prefixOf(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Parser;->push(Lorg/ccil/cowan/tagsoup/Element;)V -HSPLorg/ccil/cowan/tagsoup/Parser;->rectify(Lorg/ccil/cowan/tagsoup/Element;)V -HSPLorg/ccil/cowan/tagsoup/Parser;->restart(Lorg/ccil/cowan/tagsoup/Element;)V -HSPLorg/ccil/cowan/tagsoup/Parser;->setContentHandler(Lorg/xml/sax/ContentHandler;)V -HSPLorg/ccil/cowan/tagsoup/Parser;->setProperty(Ljava/lang/String;Ljava/lang/Object;)V -HSPLorg/ccil/cowan/tagsoup/Parser;->setup()V -HSPLorg/ccil/cowan/tagsoup/Parser;->stagc([CII)V -HSPLorg/ccil/cowan/tagsoup/Parser;->truthValue(Z)Ljava/lang/Boolean; -HSPLorg/ccil/cowan/tagsoup/Schema;->getElementType(Ljava/lang/String;)Lorg/ccil/cowan/tagsoup/ElementType; -HSPLorg/ccil/cowan/tagsoup/Schema;->getEntity(Ljava/lang/String;)I -HSPLorg/ccil/cowan/tagsoup/Schema;->getPrefix()Ljava/lang/String; -HSPLorg/ccil/cowan/tagsoup/Schema;->getURI()Ljava/lang/String; -HSPLorg/json/JSON;->checkDouble(D)D -HSPLorg/json/JSON;->toBoolean(Ljava/lang/Object;)Ljava/lang/Boolean; -HSPLorg/json/JSON;->toDouble(Ljava/lang/Object;)Ljava/lang/Double; -HSPLorg/json/JSON;->toInteger(Ljava/lang/Object;)Ljava/lang/Integer; -HSPLorg/json/JSON;->toLong(Ljava/lang/Object;)Ljava/lang/Long; -HSPLorg/json/JSON;->toString(Ljava/lang/Object;)Ljava/lang/String; -HSPLorg/json/JSON;->typeMismatch(Ljava/lang/Object;Ljava/lang/String;)Lorg/json/JSONException; -HSPLorg/json/JSONArray;-><init>()V -HSPLorg/json/JSONArray;-><init>(Ljava/lang/String;)V -HSPLorg/json/JSONArray;-><init>(Ljava/util/Collection;)V -HSPLorg/json/JSONArray;-><init>(Lorg/json/JSONTokener;)V -HSPLorg/json/JSONArray;->get(I)Ljava/lang/Object; -HSPLorg/json/JSONArray;->getInt(I)I -HSPLorg/json/JSONArray;->getJSONArray(I)Lorg/json/JSONArray; -HSPLorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject; -HSPLorg/json/JSONArray;->getString(I)Ljava/lang/String; -HSPLorg/json/JSONArray;->length()I -HSPLorg/json/JSONArray;->opt(I)Ljava/lang/Object; -HSPLorg/json/JSONArray;->optJSONObject(I)Lorg/json/JSONObject; -HSPLorg/json/JSONArray;->optString(I)Ljava/lang/String; -HSPLorg/json/JSONArray;->optString(ILjava/lang/String;)Ljava/lang/String; -HSPLorg/json/JSONArray;->put(I)Lorg/json/JSONArray; -HSPLorg/json/JSONArray;->put(J)Lorg/json/JSONArray; -HSPLorg/json/JSONArray;->put(Ljava/lang/Object;)Lorg/json/JSONArray; -HSPLorg/json/JSONArray;->toString()Ljava/lang/String; -HSPLorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V -HSPLorg/json/JSONException;-><init>(Ljava/lang/String;)V -HSPLorg/json/JSONObject$1;->toString()Ljava/lang/String; -HSPLorg/json/JSONObject;-><init>()V -HSPLorg/json/JSONObject;-><init>(Ljava/lang/String;)V -HSPLorg/json/JSONObject;-><init>(Ljava/util/Map;)V -HSPLorg/json/JSONObject;-><init>(Lorg/json/JSONTokener;)V -HSPLorg/json/JSONObject;->checkName(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/json/JSONObject;->get(Ljava/lang/String;)Ljava/lang/Object; -HSPLorg/json/JSONObject;->getBoolean(Ljava/lang/String;)Z -HSPLorg/json/JSONObject;->getDouble(Ljava/lang/String;)D -HSPLorg/json/JSONObject;->getInt(Ljava/lang/String;)I -HSPLorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray; -HSPLorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->getLong(Ljava/lang/String;)J -HSPLorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/json/JSONObject;->has(Ljava/lang/String;)Z -HSPLorg/json/JSONObject;->isNull(Ljava/lang/String;)Z -HSPLorg/json/JSONObject;->keys()Ljava/util/Iterator; -HSPLorg/json/JSONObject;->length()I -HSPLorg/json/JSONObject;->numberToString(Ljava/lang/Number;)Ljava/lang/String; -HSPLorg/json/JSONObject;->opt(Ljava/lang/String;)Ljava/lang/Object; -HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;)Z -HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z -HSPLorg/json/JSONObject;->optDouble(Ljava/lang/String;D)D -HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;)I -HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;I)I -HSPLorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray; -HSPLorg/json/JSONObject;->optJSONObject(Ljava/lang/String;)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->optLong(Ljava/lang/String;)J -HSPLorg/json/JSONObject;->optLong(Ljava/lang/String;J)J -HSPLorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLorg/json/JSONObject;->put(Ljava/lang/String;D)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->putOpt(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject; -HSPLorg/json/JSONObject;->remove(Ljava/lang/String;)Ljava/lang/Object; -HSPLorg/json/JSONObject;->toString()Ljava/lang/String; -HSPLorg/json/JSONObject;->toString(I)Ljava/lang/String; -HSPLorg/json/JSONObject;->wrap(Ljava/lang/Object;)Ljava/lang/Object; -HSPLorg/json/JSONObject;->writeTo(Lorg/json/JSONStringer;)V -HSPLorg/json/JSONStringer;-><init>()V -HSPLorg/json/JSONStringer;-><init>(I)V -HSPLorg/json/JSONStringer;->array()Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->beforeKey()V -HSPLorg/json/JSONStringer;->beforeValue()V -HSPLorg/json/JSONStringer;->close(Lorg/json/JSONStringer$Scope;Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->endArray()Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->endObject()Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->key(Ljava/lang/String;)Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->newline()V -HSPLorg/json/JSONStringer;->object()Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->open(Lorg/json/JSONStringer$Scope;Ljava/lang/String;)Lorg/json/JSONStringer; -HSPLorg/json/JSONStringer;->peek()Lorg/json/JSONStringer$Scope; -HSPLorg/json/JSONStringer;->replaceTop(Lorg/json/JSONStringer$Scope;)V -HSPLorg/json/JSONStringer;->string(Ljava/lang/String;)V -HSPLorg/json/JSONStringer;->toString()Ljava/lang/String; -HSPLorg/json/JSONStringer;->value(Ljava/lang/Object;)Lorg/json/JSONStringer; -HSPLorg/json/JSONTokener;-><init>(Ljava/lang/String;)V -HSPLorg/json/JSONTokener;->nextCleanInternal()I -HSPLorg/json/JSONTokener;->nextString(C)Ljava/lang/String; -HSPLorg/json/JSONTokener;->nextToInternal(Ljava/lang/String;)Ljava/lang/String; -HSPLorg/json/JSONTokener;->nextValue()Ljava/lang/Object; -HSPLorg/json/JSONTokener;->readArray()Lorg/json/JSONArray; -HSPLorg/json/JSONTokener;->readEscapeCharacter()C -HSPLorg/json/JSONTokener;->readLiteral()Ljava/lang/Object; -HSPLorg/json/JSONTokener;->readObject()Lorg/json/JSONObject; -HSPLorg/json/JSONTokener;->syntaxError(Ljava/lang/String;)Lorg/json/JSONException; -HSPLorg/json/JSONTokener;->toString()Ljava/lang/String; -HSPLorg/xml/sax/InputSource;-><init>(Ljava/io/InputStream;)V -HSPLorg/xml/sax/InputSource;-><init>(Ljava/io/Reader;)V -HSPLorg/xml/sax/InputSource;->getByteStream()Ljava/io/InputStream; -HSPLorg/xml/sax/InputSource;->getCharacterStream()Ljava/io/Reader; -HSPLorg/xml/sax/InputSource;->getEncoding()Ljava/lang/String; -HSPLorg/xml/sax/InputSource;->getPublicId()Ljava/lang/String; -HSPLorg/xml/sax/InputSource;->getSystemId()Ljava/lang/String; -HSPLorg/xml/sax/InputSource;->setByteStream(Ljava/io/InputStream;)V -HSPLorg/xml/sax/InputSource;->setCharacterStream(Ljava/io/Reader;)V -HSPLorg/xml/sax/helpers/DefaultHandler;-><init>()V -HSPLorg/xml/sax/helpers/DefaultHandler;->setDocumentLocator(Lorg/xml/sax/Locator;)V -HSPLorg/xmlpull/v1/XmlPullParserFactory;-><init>()V -HSPLorg/xmlpull/v1/XmlPullParserFactory;->getParserInstance()Lorg/xmlpull/v1/XmlPullParser; -HSPLorg/xmlpull/v1/XmlPullParserFactory;->newInstance()Lorg/xmlpull/v1/XmlPullParserFactory; -HSPLorg/xmlpull/v1/XmlPullParserFactory;->newPullParser()Lorg/xmlpull/v1/XmlPullParser; -HSPLorg/xmlpull/v1/XmlPullParserFactory;->setNamespaceAware(Z)V -HSPLsun/invoke/util/VerifyAccess;->isClassAccessible(Ljava/lang/Class;Ljava/lang/Class;I)Z -HSPLsun/invoke/util/VerifyAccess;->isMemberAccessible(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/Class;I)Z -HSPLsun/invoke/util/VerifyAccess;->isSamePackage(Ljava/lang/Class;Ljava/lang/Class;)Z -HSPLsun/invoke/util/Wrapper;->findPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper; -HSPLsun/invoke/util/Wrapper;->forPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper; -HSPLsun/invoke/util/Wrapper;->hashPrim(Ljava/lang/Class;)I -HSPLsun/invoke/util/Wrapper;->isDoubleWord()Z -HSPLsun/invoke/util/Wrapper;->isIntegral()Z -HSPLsun/invoke/util/Wrapper;->isNumeric()Z -HSPLsun/invoke/util/Wrapper;->isSingleWord()Z -HSPLsun/invoke/util/Wrapper;->isSubwordOrInt()Z -HSPLsun/misc/ASCIICaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I -HSPLsun/misc/ASCIICaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I -HSPLsun/misc/ASCIICaseInsensitiveComparator;->isUpper(I)Z -HSPLsun/misc/ASCIICaseInsensitiveComparator;->lowerCaseHashCode(Ljava/lang/String;)I -HSPLsun/misc/ASCIICaseInsensitiveComparator;->toLower(I)I -HSPLsun/misc/Cleaner;-><init>(Ljava/lang/Object;Ljava/lang/Runnable;)V -HSPLsun/misc/Cleaner;->add(Lsun/misc/Cleaner;)Lsun/misc/Cleaner; -HSPLsun/misc/Cleaner;->checkCleanerQueueEmpty()V -HSPLsun/misc/Cleaner;->clean()V -HSPLsun/misc/Cleaner;->create(Ljava/lang/Object;Ljava/lang/Runnable;)Lsun/misc/Cleaner; -HSPLsun/misc/Cleaner;->isCleanerQueue(Ljava/lang/ref/ReferenceQueue;)Z -HSPLsun/misc/Cleaner;->remove(Lsun/misc/Cleaner;)Z -HSPLsun/misc/CompoundEnumeration;-><init>([Ljava/util/Enumeration;)V -HSPLsun/misc/CompoundEnumeration;->hasMoreElements()Z -HSPLsun/misc/CompoundEnumeration;->next()Z -HSPLsun/misc/CompoundEnumeration;->nextElement()Ljava/lang/Object; -HSPLsun/misc/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B -HSPLsun/misc/LRUCache;-><init>(I)V -HSPLsun/misc/LRUCache;->forName(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/misc/LRUCache;->moveToFront([Ljava/lang/Object;I)V -HSPLsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I -HSPLsun/misc/Unsafe;->arrayIndexScale(Ljava/lang/Class;)I -HSPLsun/misc/Unsafe;->getAndAddInt(Ljava/lang/Object;JI)I -HSPLsun/misc/Unsafe;->getAndAddLong(Ljava/lang/Object;JJ)J -HSPLsun/misc/Unsafe;->getAndSetInt(Ljava/lang/Object;JI)I -HSPLsun/misc/Unsafe;->getAndSetLong(Ljava/lang/Object;JJ)J -HSPLsun/misc/Unsafe;->getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object; -HSPLsun/misc/Unsafe;->getUnsafe()Lsun/misc/Unsafe; -HSPLsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J -HSPLsun/misc/VM;->isBooted()Z -HSPLsun/net/NetHooks;->beforeTcpBind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V -HSPLsun/net/NetHooks;->beforeTcpConnect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V -HSPLsun/net/NetProperties;->get(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/net/ResourceManager;->beforeUdpCreate()V -HSPLsun/net/spi/DefaultProxySelector$1;-><init>(Lsun/net/spi/DefaultProxySelector;Ljava/lang/String;Lsun/net/spi/DefaultProxySelector$NonProxyInfo;Ljava/lang/String;)V -HSPLsun/net/spi/DefaultProxySelector$1;->run()Ljava/lang/Object; -HSPLsun/net/spi/DefaultProxySelector$1;->run()Ljava/net/Proxy; -HSPLsun/net/spi/DefaultProxySelector;->select(Ljava/net/URI;)Ljava/util/List; -HSPLsun/net/util/IPAddressUtil;->convertFromIPv4MappedAddress([B)[B -HSPLsun/net/util/IPAddressUtil;->isIPv4MappedAddress([B)Z -HSPLsun/net/www/ParseUtil;->decode(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/net/www/ParseUtil;->encodePath(Ljava/lang/String;Z)Ljava/lang/String; -HSPLsun/net/www/protocol/file/Handler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V -HSPLsun/net/www/protocol/jar/Handler;-><init>()V -HSPLsun/nio/ch/AbstractPollArrayWrapper;-><init>()V -HSPLsun/nio/ch/AbstractPollArrayWrapper;->getReventOps(I)I -HSPLsun/nio/ch/AbstractPollArrayWrapper;->putDescriptor(II)V -HSPLsun/nio/ch/AbstractPollArrayWrapper;->putEventOps(II)V -HSPLsun/nio/ch/AbstractPollArrayWrapper;->putReventOps(II)V -HSPLsun/nio/ch/AbstractPollSelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;II)V -HSPLsun/nio/ch/AbstractPollSelectorImpl;->implClose()V -HSPLsun/nio/ch/AbstractPollSelectorImpl;->implRegister(Lsun/nio/ch/SelectionKeyImpl;)V -HSPLsun/nio/ch/AbstractPollSelectorImpl;->putEventOps(Lsun/nio/ch/SelectionKeyImpl;I)V -HSPLsun/nio/ch/AbstractPollSelectorImpl;->updateSelectedKeys()I -HSPLsun/nio/ch/AllocatedNativeObject;-><init>(IZ)V -HSPLsun/nio/ch/AllocatedNativeObject;->free()V -HSPLsun/nio/ch/ChannelInputStream;-><init>(Ljava/nio/channels/ReadableByteChannel;)V -HSPLsun/nio/ch/ChannelInputStream;->available()I -HSPLsun/nio/ch/ChannelInputStream;->close()V -HSPLsun/nio/ch/ChannelInputStream;->read()I -HSPLsun/nio/ch/ChannelInputStream;->read(Ljava/nio/ByteBuffer;)I -HSPLsun/nio/ch/ChannelInputStream;->read(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;Z)I -HSPLsun/nio/ch/ChannelInputStream;->read([BII)I -HSPLsun/nio/ch/DefaultSelectorProvider;->create()Ljava/nio/channels/spi/SelectorProvider; -HSPLsun/nio/ch/FileChannelImpl$Unmapper;-><init>(JJILjava/io/FileDescriptor;)V -HSPLsun/nio/ch/FileChannelImpl$Unmapper;-><init>(JJILjava/io/FileDescriptor;Lsun/nio/ch/FileChannelImpl$Unmapper-IA;)V -HSPLsun/nio/ch/FileChannelImpl$Unmapper;->run()V -HSPLsun/nio/ch/FileChannelImpl;-><init>(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)V -HSPLsun/nio/ch/FileChannelImpl;->ensureOpen()V -HSPLsun/nio/ch/FileChannelImpl;->fileLockTable()Lsun/nio/ch/FileLockTable; -HSPLsun/nio/ch/FileChannelImpl;->finalize()V -HSPLsun/nio/ch/FileChannelImpl;->force(Z)V -HSPLsun/nio/ch/FileChannelImpl;->implCloseChannel()V -HSPLsun/nio/ch/FileChannelImpl;->isSharedFileLockTable()Z -HSPLsun/nio/ch/FileChannelImpl;->lock(JJZ)Ljava/nio/channels/FileLock; -HSPLsun/nio/ch/FileChannelImpl;->map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer; -HSPLsun/nio/ch/FileChannelImpl;->open(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)Ljava/nio/channels/FileChannel; -HSPLsun/nio/ch/FileChannelImpl;->position()J -HSPLsun/nio/ch/FileChannelImpl;->position(J)Ljava/nio/channels/FileChannel; -HSPLsun/nio/ch/FileChannelImpl;->read(Ljava/nio/ByteBuffer;)I -HSPLsun/nio/ch/FileChannelImpl;->release(Lsun/nio/ch/FileLockImpl;)V -HSPLsun/nio/ch/FileChannelImpl;->size()J -HSPLsun/nio/ch/FileChannelImpl;->tryLock(JJZ)Ljava/nio/channels/FileLock; -HSPLsun/nio/ch/FileChannelImpl;->write(Ljava/nio/ByteBuffer;)I -HSPLsun/nio/ch/FileDescriptorHolderSocketImpl;-><init>(Ljava/io/FileDescriptor;)V -HSPLsun/nio/ch/FileDispatcher;-><init>()V -HSPLsun/nio/ch/FileDispatcherImpl;-><init>()V -HSPLsun/nio/ch/FileDispatcherImpl;->close(Ljava/io/FileDescriptor;)V -HSPLsun/nio/ch/FileDispatcherImpl;->duplicateForMapping(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor; -HSPLsun/nio/ch/FileDispatcherImpl;->force(Ljava/io/FileDescriptor;Z)I -HSPLsun/nio/ch/FileDispatcherImpl;->lock(Ljava/io/FileDescriptor;ZJJZ)I -HSPLsun/nio/ch/FileDispatcherImpl;->read(Ljava/io/FileDescriptor;JI)I -HSPLsun/nio/ch/FileDispatcherImpl;->release(Ljava/io/FileDescriptor;JJ)V -HSPLsun/nio/ch/FileDispatcherImpl;->size(Ljava/io/FileDescriptor;)J -HSPLsun/nio/ch/FileDispatcherImpl;->truncate(Ljava/io/FileDescriptor;J)I -HSPLsun/nio/ch/FileDispatcherImpl;->write(Ljava/io/FileDescriptor;JI)I -HSPLsun/nio/ch/FileKey;-><init>()V -HSPLsun/nio/ch/FileKey;->create(Ljava/io/FileDescriptor;)Lsun/nio/ch/FileKey; -HSPLsun/nio/ch/FileKey;->hashCode()I -HSPLsun/nio/ch/FileLockImpl;-><init>(Ljava/nio/channels/FileChannel;JJZ)V -HSPLsun/nio/ch/FileLockImpl;->invalidate()V -HSPLsun/nio/ch/FileLockImpl;->isValid()Z -HSPLsun/nio/ch/FileLockImpl;->release()V -HSPLsun/nio/ch/FileLockTable;-><init>()V -HSPLsun/nio/ch/FileLockTable;->newSharedFileLockTable(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)Lsun/nio/ch/FileLockTable; -HSPLsun/nio/ch/IOStatus;->checkAll(J)Z -HSPLsun/nio/ch/IOStatus;->normalize(I)I -HSPLsun/nio/ch/IOStatus;->normalize(J)J -HSPLsun/nio/ch/IOUtil;->newFD(I)Ljava/io/FileDescriptor; -HSPLsun/nio/ch/IOUtil;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I -HSPLsun/nio/ch/IOUtil;->readIntoNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I -HSPLsun/nio/ch/IOUtil;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I -HSPLsun/nio/ch/IOUtil;->writeFromNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I -HSPLsun/nio/ch/NativeDispatcher;-><init>()V -HSPLsun/nio/ch/NativeDispatcher;->needsPositionLock()Z -HSPLsun/nio/ch/NativeObject;-><init>(IZ)V -HSPLsun/nio/ch/NativeObject;->address()J -HSPLsun/nio/ch/NativeObject;->getShort(I)S -HSPLsun/nio/ch/NativeObject;->putInt(II)V -HSPLsun/nio/ch/NativeObject;->putShort(IS)V -HSPLsun/nio/ch/NativeThreadSet;-><init>(I)V -HSPLsun/nio/ch/NativeThreadSet;->add()I -HSPLsun/nio/ch/NativeThreadSet;->remove(I)V -HSPLsun/nio/ch/NativeThreadSet;->signalAndWait()V -HSPLsun/nio/ch/Net;->checkAddress(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress; -HSPLsun/nio/ch/Net;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I -HSPLsun/nio/ch/Net;->connect(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I -HSPLsun/nio/ch/Net;->isIPv6Available()Z -HSPLsun/nio/ch/Net;->localAddress(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress; -HSPLsun/nio/ch/Net;->socket(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor; -HSPLsun/nio/ch/Net;->socket(Z)Ljava/io/FileDescriptor; -HSPLsun/nio/ch/PollArrayWrapper;-><init>(I)V -HSPLsun/nio/ch/PollArrayWrapper;->addEntry(Lsun/nio/ch/SelChImpl;)V -HSPLsun/nio/ch/PollArrayWrapper;->free()V -HSPLsun/nio/ch/PollArrayWrapper;->initInterrupt(II)V -HSPLsun/nio/ch/PollArrayWrapper;->interrupt()V -HSPLsun/nio/ch/PollArrayWrapper;->poll(IIJ)I -HSPLsun/nio/ch/PollArrayWrapper;->release(I)V -HSPLsun/nio/ch/PollSelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V -HSPLsun/nio/ch/PollSelectorImpl;->doSelect(J)I -HSPLsun/nio/ch/PollSelectorImpl;->implCloseInterrupt()V -HSPLsun/nio/ch/PollSelectorImpl;->wakeup()Ljava/nio/channels/Selector; -HSPLsun/nio/ch/PollSelectorProvider;-><init>()V -HSPLsun/nio/ch/PollSelectorProvider;->openSelector()Ljava/nio/channels/spi/AbstractSelector; -HSPLsun/nio/ch/SelectionKeyImpl;-><init>(Lsun/nio/ch/SelChImpl;Lsun/nio/ch/SelectorImpl;)V -HSPLsun/nio/ch/SelectionKeyImpl;->channel()Ljava/nio/channels/SelectableChannel; -HSPLsun/nio/ch/SelectionKeyImpl;->ensureValid()V -HSPLsun/nio/ch/SelectionKeyImpl;->getIndex()I -HSPLsun/nio/ch/SelectionKeyImpl;->interestOps(I)Ljava/nio/channels/SelectionKey; -HSPLsun/nio/ch/SelectionKeyImpl;->nioInterestOps()I -HSPLsun/nio/ch/SelectionKeyImpl;->nioInterestOps(I)Ljava/nio/channels/SelectionKey; -HSPLsun/nio/ch/SelectionKeyImpl;->nioReadyOps()I -HSPLsun/nio/ch/SelectionKeyImpl;->nioReadyOps(I)V -HSPLsun/nio/ch/SelectionKeyImpl;->setIndex(I)V -HSPLsun/nio/ch/SelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V -HSPLsun/nio/ch/SelectorImpl;->implCloseSelector()V -HSPLsun/nio/ch/SelectorImpl;->lockAndDoSelect(J)I -HSPLsun/nio/ch/SelectorImpl;->processDeregisterQueue()V -HSPLsun/nio/ch/SelectorImpl;->register(Ljava/nio/channels/spi/AbstractSelectableChannel;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey; -HSPLsun/nio/ch/SelectorImpl;->select(J)I -HSPLsun/nio/ch/SelectorProviderImpl;-><init>()V -HSPLsun/nio/ch/SelectorProviderImpl;->openSocketChannel()Ljava/nio/channels/SocketChannel; -HSPLsun/nio/ch/SharedFileLockTable$FileLockReference;-><init>(Ljava/nio/channels/FileLock;Ljava/lang/ref/ReferenceQueue;Lsun/nio/ch/FileKey;)V -HSPLsun/nio/ch/SharedFileLockTable$FileLockReference;->fileKey()Lsun/nio/ch/FileKey; -HSPLsun/nio/ch/SharedFileLockTable;-><init>(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)V -HSPLsun/nio/ch/SharedFileLockTable;->add(Ljava/nio/channels/FileLock;)V -HSPLsun/nio/ch/SharedFileLockTable;->checkList(Ljava/util/List;JJ)V -HSPLsun/nio/ch/SharedFileLockTable;->remove(Ljava/nio/channels/FileLock;)V -HSPLsun/nio/ch/SharedFileLockTable;->removeAll()Ljava/util/List; -HSPLsun/nio/ch/SharedFileLockTable;->removeKeyIfEmpty(Lsun/nio/ch/FileKey;Ljava/util/List;)V -HSPLsun/nio/ch/SharedFileLockTable;->removeStaleEntries()V -HSPLsun/nio/ch/SocketAdaptor;-><init>(Lsun/nio/ch/SocketChannelImpl;)V -HSPLsun/nio/ch/SocketAdaptor;->create(Lsun/nio/ch/SocketChannelImpl;)Ljava/net/Socket; -HSPLsun/nio/ch/SocketAdaptor;->getInetAddress()Ljava/net/InetAddress; -HSPLsun/nio/ch/SocketAdaptor;->isClosed()Z -HSPLsun/nio/ch/SocketAdaptor;->isConnected()Z -HSPLsun/nio/ch/SocketChannelImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V -HSPLsun/nio/ch/SocketChannelImpl;->connect(Ljava/net/SocketAddress;)Z -HSPLsun/nio/ch/SocketChannelImpl;->ensureOpenAndUnconnected()V -HSPLsun/nio/ch/SocketChannelImpl;->finishConnect()Z -HSPLsun/nio/ch/SocketChannelImpl;->getFD()Ljava/io/FileDescriptor; -HSPLsun/nio/ch/SocketChannelImpl;->implCloseSelectableChannel()V -HSPLsun/nio/ch/SocketChannelImpl;->implConfigureBlocking(Z)V -HSPLsun/nio/ch/SocketChannelImpl;->isConnected()Z -HSPLsun/nio/ch/SocketChannelImpl;->kill()V -HSPLsun/nio/ch/SocketChannelImpl;->readerCleanup()V -HSPLsun/nio/ch/SocketChannelImpl;->remoteAddress()Ljava/net/SocketAddress; -HSPLsun/nio/ch/SocketChannelImpl;->socket()Ljava/net/Socket; -HSPLsun/nio/ch/SocketChannelImpl;->translateAndSetInterestOps(ILsun/nio/ch/SelectionKeyImpl;)V -HSPLsun/nio/ch/SocketChannelImpl;->translateAndSetReadyOps(ILsun/nio/ch/SelectionKeyImpl;)Z -HSPLsun/nio/ch/SocketChannelImpl;->translateReadyOps(IILsun/nio/ch/SelectionKeyImpl;)Z -HSPLsun/nio/ch/SocketDispatcher;->close(Ljava/io/FileDescriptor;)V -HSPLsun/nio/ch/SocketDispatcher;->preClose(Ljava/io/FileDescriptor;)V -HSPLsun/nio/ch/Util$1;->initialValue()Ljava/lang/Object; -HSPLsun/nio/ch/Util$1;->initialValue()Lsun/nio/ch/Util$BufferCache; -HSPLsun/nio/ch/Util$3;-><init>(Ljava/util/Set;)V -HSPLsun/nio/ch/Util$BufferCache;-><init>()V -HSPLsun/nio/ch/Util$BufferCache;->get(I)Ljava/nio/ByteBuffer; -HSPLsun/nio/ch/Util$BufferCache;->isEmpty()Z -HSPLsun/nio/ch/Util$BufferCache;->next(I)I -HSPLsun/nio/ch/Util$BufferCache;->offerFirst(Ljava/nio/ByteBuffer;)Z -HSPLsun/nio/ch/Util$BufferCache;->removeFirst()Ljava/nio/ByteBuffer; -HSPLsun/nio/ch/Util;->atBugLevel(Ljava/lang/String;)Z -HSPLsun/nio/ch/Util;->free(Ljava/nio/ByteBuffer;)V -HSPLsun/nio/ch/Util;->getTemporaryDirectBuffer(I)Ljava/nio/ByteBuffer; -HSPLsun/nio/ch/Util;->isBufferTooLarge(I)Z -HSPLsun/nio/ch/Util;->isBufferTooLarge(Ljava/nio/ByteBuffer;)Z -HSPLsun/nio/ch/Util;->offerFirstTemporaryDirectBuffer(Ljava/nio/ByteBuffer;)V -HSPLsun/nio/ch/Util;->ungrowableSet(Ljava/util/Set;)Ljava/util/Set; -HSPLsun/nio/cs/StreamDecoder;-><init>(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V -HSPLsun/nio/cs/StreamDecoder;-><init>(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)V -HSPLsun/nio/cs/StreamDecoder;->close()V -HSPLsun/nio/cs/StreamDecoder;->ensureOpen()V -HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamDecoder; -HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamDecoder; -HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)Lsun/nio/cs/StreamDecoder; -HSPLsun/nio/cs/StreamDecoder;->implClose()V -HSPLsun/nio/cs/StreamDecoder;->implRead([CII)I -HSPLsun/nio/cs/StreamDecoder;->implReady()Z -HSPLsun/nio/cs/StreamDecoder;->inReady()Z -HSPLsun/nio/cs/StreamDecoder;->read()I -HSPLsun/nio/cs/StreamDecoder;->read([CII)I -HSPLsun/nio/cs/StreamDecoder;->read0()I -HSPLsun/nio/cs/StreamDecoder;->readBytes()I -HSPLsun/nio/cs/StreamDecoder;->ready()Z -HSPLsun/nio/cs/StreamEncoder;-><init>(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V -HSPLsun/nio/cs/StreamEncoder;-><init>(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetEncoder;)V -HSPLsun/nio/cs/StreamEncoder;->close()V -HSPLsun/nio/cs/StreamEncoder;->ensureOpen()V -HSPLsun/nio/cs/StreamEncoder;->flush()V -HSPLsun/nio/cs/StreamEncoder;->flushLeftoverChar(Ljava/nio/CharBuffer;Z)V -HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamEncoder; -HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamEncoder; -HSPLsun/nio/cs/StreamEncoder;->implClose()V -HSPLsun/nio/cs/StreamEncoder;->implFlush()V -HSPLsun/nio/cs/StreamEncoder;->implFlushBuffer()V -HSPLsun/nio/cs/StreamEncoder;->implWrite(Ljava/nio/CharBuffer;)V+]Ljava/nio/charset/CoderResult;Ljava/nio/charset/CoderResult; -HSPLsun/nio/cs/StreamEncoder;->implWrite([CII)V -HSPLsun/nio/cs/StreamEncoder;->write(I)V -HSPLsun/nio/cs/StreamEncoder;->write(Ljava/lang/String;II)V -HSPLsun/nio/cs/StreamEncoder;->write([CII)V -HSPLsun/nio/cs/StreamEncoder;->writeBytes()V -HSPLsun/nio/cs/ThreadLocalCoders$1;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/nio/cs/ThreadLocalCoders$1;->hasName(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLsun/nio/cs/ThreadLocalCoders$2;->create(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/nio/cs/ThreadLocalCoders$2;->hasName(Ljava/lang/Object;Ljava/lang/Object;)Z -HSPLsun/nio/cs/ThreadLocalCoders$Cache;->forName(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/nio/cs/ThreadLocalCoders$Cache;->moveToFront([Ljava/lang/Object;I)V -HSPLsun/nio/cs/ThreadLocalCoders;->decoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetDecoder; -HSPLsun/nio/cs/ThreadLocalCoders;->encoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetEncoder; -HSPLsun/nio/fs/AbstractBasicFileAttributeView;-><init>()V -HSPLsun/nio/fs/AbstractPath;-><init>()V -HSPLsun/nio/fs/AbstractPath;->resolve(Ljava/lang/String;)Ljava/nio/file/Path; -HSPLsun/nio/fs/AbstractPath;->toFile()Ljava/io/File; -HSPLsun/nio/fs/LinuxFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView; -HSPLsun/nio/fs/LinuxFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes; -HSPLsun/nio/fs/NativeBuffer$Deallocator;-><init>(J)V -HSPLsun/nio/fs/NativeBuffer$Deallocator;->run()V -HSPLsun/nio/fs/NativeBuffer;-><init>(I)V -HSPLsun/nio/fs/NativeBuffer;->address()J -HSPLsun/nio/fs/NativeBuffer;->owner()Ljava/lang/Object; -HSPLsun/nio/fs/NativeBuffer;->release()V -HSPLsun/nio/fs/NativeBuffer;->setOwner(Ljava/lang/Object;)V -HSPLsun/nio/fs/NativeBuffer;->size()I -HSPLsun/nio/fs/NativeBuffers;->allocNativeBuffer(I)Lsun/nio/fs/NativeBuffer; -HSPLsun/nio/fs/NativeBuffers;->copyCStringToNativeBuffer([BLsun/nio/fs/NativeBuffer;)V -HSPLsun/nio/fs/NativeBuffers;->getNativeBufferFromCache(I)Lsun/nio/fs/NativeBuffer; -HSPLsun/nio/fs/NativeBuffers;->releaseNativeBuffer(Lsun/nio/fs/NativeBuffer;)V -HSPLsun/nio/fs/UnixChannelFactory$1;-><clinit>()V -HSPLsun/nio/fs/UnixChannelFactory$Flags;-><init>()V -HSPLsun/nio/fs/UnixChannelFactory$Flags;->toFlags(Ljava/util/Set;)Lsun/nio/fs/UnixChannelFactory$Flags; -HSPLsun/nio/fs/UnixChannelFactory;->newFileChannel(ILsun/nio/fs/UnixPath;Ljava/lang/String;Ljava/util/Set;I)Ljava/nio/channels/FileChannel; -HSPLsun/nio/fs/UnixChannelFactory;->newFileChannel(Lsun/nio/fs/UnixPath;Ljava/util/Set;I)Ljava/nio/channels/FileChannel; -HSPLsun/nio/fs/UnixChannelFactory;->open(ILsun/nio/fs/UnixPath;Ljava/lang/String;Lsun/nio/fs/UnixChannelFactory$Flags;I)Ljava/io/FileDescriptor; -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;-><clinit>()V -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;-><init>(Lsun/nio/fs/UnixDirectoryStream;Ljava/nio/file/DirectoryStream;)V -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->hasNext()Z -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->isSelfOrParent([B)Z -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->next()Ljava/lang/Object; -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->next()Ljava/nio/file/Path; -HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;->readNextEntry()Ljava/nio/file/Path; -HSPLsun/nio/fs/UnixDirectoryStream;->-$$Nest$fgetdp(Lsun/nio/fs/UnixDirectoryStream;)J -HSPLsun/nio/fs/UnixDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JLjava/nio/file/DirectoryStream$Filter;)V -HSPLsun/nio/fs/UnixDirectoryStream;->close()V -HSPLsun/nio/fs/UnixDirectoryStream;->closeImpl()Z -HSPLsun/nio/fs/UnixDirectoryStream;->finalize()V -HSPLsun/nio/fs/UnixDirectoryStream;->isOpen()Z -HSPLsun/nio/fs/UnixDirectoryStream;->iterator(Ljava/nio/file/DirectoryStream;)Ljava/util/Iterator; -HSPLsun/nio/fs/UnixDirectoryStream;->readLock()Ljava/util/concurrent/locks/Lock; -HSPLsun/nio/fs/UnixDirectoryStream;->writeLock()Ljava/util/concurrent/locks/Lock; -HSPLsun/nio/fs/UnixException;-><init>(I)V -HSPLsun/nio/fs/UnixException;->errno()I -HSPLsun/nio/fs/UnixException;->fillInStackTrace()Ljava/lang/Throwable; -HSPLsun/nio/fs/UnixException;->rethrowAsIOException(Lsun/nio/fs/UnixPath;)V -HSPLsun/nio/fs/UnixException;->rethrowAsIOException(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixPath;)V -HSPLsun/nio/fs/UnixException;->translateToIOException(Ljava/lang/String;Ljava/lang/String;)Ljava/io/IOException; -HSPLsun/nio/fs/UnixFileAttributeViews$Basic;-><init>(Lsun/nio/fs/UnixPath;Z)V -HSPLsun/nio/fs/UnixFileAttributeViews$Basic;->readAttributes()Ljava/nio/file/attribute/BasicFileAttributes; -HSPLsun/nio/fs/UnixFileAttributeViews;->createBasicView(Lsun/nio/fs/UnixPath;Z)Lsun/nio/fs/UnixFileAttributeViews$Basic; -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;-><init>(Lsun/nio/fs/UnixFileAttributes;)V -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->fileKey()Ljava/lang/Object;+]Lsun/nio/fs/UnixFileAttributes;Lsun/nio/fs/UnixFileAttributes; -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isDirectory()Z -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isRegularFile()Z -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isSymbolicLink()Z -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->size()J -HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->wrap(Lsun/nio/fs/UnixFileAttributes;)Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes; -HSPLsun/nio/fs/UnixFileAttributes;-><init>()V -HSPLsun/nio/fs/UnixFileAttributes;->asBasicFileAttributes()Ljava/nio/file/attribute/BasicFileAttributes; -HSPLsun/nio/fs/UnixFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileAttributes;->fileKey()Lsun/nio/fs/UnixFileKey; -HSPLsun/nio/fs/UnixFileAttributes;->get(Lsun/nio/fs/UnixPath;Z)Lsun/nio/fs/UnixFileAttributes; -HSPLsun/nio/fs/UnixFileAttributes;->isDirectory()Z -HSPLsun/nio/fs/UnixFileAttributes;->isRegularFile()Z -HSPLsun/nio/fs/UnixFileAttributes;->isSymbolicLink()Z -HSPLsun/nio/fs/UnixFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileAttributes;->size()J -HSPLsun/nio/fs/UnixFileAttributes;->toFileTime(JJ)Ljava/nio/file/attribute/FileTime; -HSPLsun/nio/fs/UnixFileKey;-><init>(JJ)V -HSPLsun/nio/fs/UnixFileKey;->equals(Ljava/lang/Object;)Z -HSPLsun/nio/fs/UnixFileModeAttribute;->toUnixMode(I[Ljava/nio/file/attribute/FileAttribute;)I -HSPLsun/nio/fs/UnixFileSystem;->getPath(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path; -HSPLsun/nio/fs/UnixFileSystem;->needToResolveAgainstDefaultDirectory()Z -HSPLsun/nio/fs/UnixFileSystem;->normalizeJavaPath(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/nio/fs/UnixFileSystem;->normalizeNativePath([C)[C -HSPLsun/nio/fs/UnixFileSystem;->provider()Ljava/nio/file/spi/FileSystemProvider; -HSPLsun/nio/fs/UnixFileSystemProvider$3;-><clinit>()V -HSPLsun/nio/fs/UnixFileSystemProvider;->checkAccess(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)V -HSPLsun/nio/fs/UnixFileSystemProvider;->checkPath(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath; -HSPLsun/nio/fs/UnixFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView; -HSPLsun/nio/fs/UnixFileSystemProvider;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel; -HSPLsun/nio/fs/UnixFileSystemProvider;->newDirectoryStream(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream; -HSPLsun/nio/fs/UnixFileSystemProvider;->newFileChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel; -HSPLsun/nio/fs/UnixFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes; -HSPLsun/nio/fs/UnixNativeDispatcher;->access(Lsun/nio/fs/UnixPath;I)V -HSPLsun/nio/fs/UnixNativeDispatcher;->copyToNativeBuffer(Lsun/nio/fs/UnixPath;)Lsun/nio/fs/NativeBuffer; -HSPLsun/nio/fs/UnixNativeDispatcher;->lstat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V -HSPLsun/nio/fs/UnixNativeDispatcher;->open(Lsun/nio/fs/UnixPath;II)I -HSPLsun/nio/fs/UnixNativeDispatcher;->openatSupported()Z -HSPLsun/nio/fs/UnixNativeDispatcher;->stat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V -HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)V -HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;[B)V -HSPLsun/nio/fs/UnixPath;->asByteArray()[B -HSPLsun/nio/fs/UnixPath;->checkNotNul(Ljava/lang/String;C)V -HSPLsun/nio/fs/UnixPath;->checkRead()V -HSPLsun/nio/fs/UnixPath;->checkWrite()V -HSPLsun/nio/fs/UnixPath;->encode(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)[B -HSPLsun/nio/fs/UnixPath;->getByteArrayForSysCalls()[B -HSPLsun/nio/fs/UnixPath;->getFileSystem()Ljava/nio/file/FileSystem; -HSPLsun/nio/fs/UnixPath;->getFileSystem()Lsun/nio/fs/UnixFileSystem; -HSPLsun/nio/fs/UnixPath;->getParent()Ljava/nio/file/Path; -HSPLsun/nio/fs/UnixPath;->getParent()Lsun/nio/fs/UnixPath; -HSPLsun/nio/fs/UnixPath;->getPathForExceptionMessage()Ljava/lang/String; -HSPLsun/nio/fs/UnixPath;->initOffsets()V -HSPLsun/nio/fs/UnixPath;->isEmpty()Z -HSPLsun/nio/fs/UnixPath;->normalize(Ljava/lang/String;II)Ljava/lang/String; -HSPLsun/nio/fs/UnixPath;->normalizeAndCheck(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/nio/fs/UnixPath;->resolve(Ljava/nio/file/Path;)Ljava/nio/file/Path; -HSPLsun/nio/fs/UnixPath;->resolve(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath; -HSPLsun/nio/fs/UnixPath;->resolve([B)Lsun/nio/fs/UnixPath; -HSPLsun/nio/fs/UnixPath;->resolve([B[B)[B -HSPLsun/nio/fs/UnixPath;->toString()Ljava/lang/String; -HSPLsun/nio/fs/UnixPath;->toUnixPath(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath; -HSPLsun/nio/fs/UnixSecureDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JILjava/nio/file/DirectoryStream$Filter;)V -HSPLsun/nio/fs/UnixSecureDirectoryStream;->close()V -HSPLsun/nio/fs/UnixSecureDirectoryStream;->finalize()V -HSPLsun/nio/fs/UnixSecureDirectoryStream;->iterator()Ljava/util/Iterator; -HSPLsun/nio/fs/Util;->followLinks([Ljava/nio/file/LinkOption;)Z -HSPLsun/nio/fs/Util;->jnuEncoding()Ljava/nio/charset/Charset; -HSPLsun/nio/fs/Util;->toString([B)Ljava/lang/String; -HSPLsun/reflect/Reflection;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V -HSPLsun/reflect/Reflection;->getCallerClass()Ljava/lang/Class; -HSPLsun/reflect/Reflection;->isSameClassPackage(Ljava/lang/Class;Ljava/lang/Class;)Z -HSPLsun/reflect/Reflection;->isSameClassPackage(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Z -HSPLsun/reflect/Reflection;->verifyMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)Z -HSPLsun/reflect/misc/ReflectUtil;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V -HSPLsun/security/action/GetPropertyAction;-><init>(Ljava/lang/String;)V -HSPLsun/security/action/GetPropertyAction;->run()Ljava/lang/Object; -HSPLsun/security/action/GetPropertyAction;->run()Ljava/lang/String; -HSPLsun/security/jca/GetInstance$Instance;-><init>(Ljava/security/Provider;Ljava/lang/Object;)V -HSPLsun/security/jca/GetInstance$Instance;-><init>(Ljava/security/Provider;Ljava/lang/Object;Lsun/security/jca/GetInstance$Instance-IA;)V -HSPLsun/security/jca/GetInstance$Instance;->toArray()[Ljava/lang/Object; -HSPLsun/security/jca/GetInstance;->checkSuperClass(Ljava/security/Provider$Service;Ljava/lang/Class;Ljava/lang/Class;)V -HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance; -HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Lsun/security/jca/GetInstance$Instance; -HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance; -HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance; -HSPLsun/security/jca/GetInstance;->getInstance(Ljava/security/Provider$Service;Ljava/lang/Class;)Lsun/security/jca/GetInstance$Instance; -HSPLsun/security/jca/GetInstance;->getInstance(Ljava/security/Provider$Service;Ljava/lang/Class;Ljava/lang/Object;)Lsun/security/jca/GetInstance$Instance; -HSPLsun/security/jca/GetInstance;->getService(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service; -HSPLsun/security/jca/GetInstance;->getService(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Provider$Service; -HSPLsun/security/jca/GetInstance;->getServices(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLsun/security/jca/JCAUtil;->getSecureRandom()Ljava/security/SecureRandom; -HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/lang/String;)V -HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLsun/security/jca/ProviderConfig;-><init>(Ljava/security/Provider;)V -HSPLsun/security/jca/ProviderConfig;->equals(Ljava/lang/Object;)Z -HSPLsun/security/jca/ProviderConfig;->expand(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/security/jca/ProviderConfig;->getProvider()Ljava/security/Provider; -HSPLsun/security/jca/ProviderList$3;-><init>(Lsun/security/jca/ProviderList;)V -HSPLsun/security/jca/ProviderList$3;->get(I)Ljava/lang/Object; -HSPLsun/security/jca/ProviderList$3;->get(I)Ljava/security/Provider; -HSPLsun/security/jca/ProviderList$3;->size()I -HSPLsun/security/jca/ProviderList$ServiceList$1;-><init>(Lsun/security/jca/ProviderList$ServiceList;)V -HSPLsun/security/jca/ProviderList$ServiceList$1;->hasNext()Z -HSPLsun/security/jca/ProviderList$ServiceList$1;->next()Ljava/lang/Object; -HSPLsun/security/jca/ProviderList$ServiceList$1;->next()Ljava/security/Provider$Service; -HSPLsun/security/jca/ProviderList$ServiceList;->-$$Nest$mtryGet(Lsun/security/jca/ProviderList$ServiceList;I)Ljava/security/Provider$Service; -HSPLsun/security/jca/ProviderList$ServiceList;-><init>(Lsun/security/jca/ProviderList;Ljava/lang/String;Ljava/lang/String;)V -HSPLsun/security/jca/ProviderList$ServiceList;->addService(Ljava/security/Provider$Service;)V -HSPLsun/security/jca/ProviderList$ServiceList;->iterator()Ljava/util/Iterator; -HSPLsun/security/jca/ProviderList$ServiceList;->tryGet(I)Ljava/security/Provider$Service; -HSPLsun/security/jca/ProviderList;->-$$Nest$fgetconfigs(Lsun/security/jca/ProviderList;)[Lsun/security/jca/ProviderConfig; -HSPLsun/security/jca/ProviderList;-><init>([Lsun/security/jca/ProviderConfig;Z)V -HSPLsun/security/jca/ProviderList;->getIndex(Ljava/lang/String;)I -HSPLsun/security/jca/ProviderList;->getJarList([Ljava/lang/String;)Lsun/security/jca/ProviderList; -HSPLsun/security/jca/ProviderList;->getProvider(I)Ljava/security/Provider; -HSPLsun/security/jca/ProviderList;->getProvider(Ljava/lang/String;)Ljava/security/Provider; -HSPLsun/security/jca/ProviderList;->getProviderConfig(Ljava/lang/String;)Lsun/security/jca/ProviderConfig; -HSPLsun/security/jca/ProviderList;->getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service; -HSPLsun/security/jca/ProviderList;->getServices(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List; -HSPLsun/security/jca/ProviderList;->insertAt(Lsun/security/jca/ProviderList;Ljava/security/Provider;I)Lsun/security/jca/ProviderList; -HSPLsun/security/jca/ProviderList;->loadAll()I -HSPLsun/security/jca/ProviderList;->providers()Ljava/util/List; -HSPLsun/security/jca/ProviderList;->removeInvalid()Lsun/security/jca/ProviderList; -HSPLsun/security/jca/ProviderList;->toArray()[Ljava/security/Provider; -HSPLsun/security/jca/Providers;->beginThreadProviderList(Lsun/security/jca/ProviderList;)Lsun/security/jca/ProviderList; -HSPLsun/security/jca/Providers;->checkBouncyCastleDeprecation(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V -HSPLsun/security/jca/Providers;->checkBouncyCastleDeprecation(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;)V -HSPLsun/security/jca/Providers;->endThreadProviderList(Lsun/security/jca/ProviderList;)V -HSPLsun/security/jca/Providers;->getFullProviderList()Lsun/security/jca/ProviderList; -HSPLsun/security/jca/Providers;->getProviderList()Lsun/security/jca/ProviderList; -HSPLsun/security/jca/Providers;->getSystemProviderList()Lsun/security/jca/ProviderList; -HSPLsun/security/jca/Providers;->getThreadProviderList()Lsun/security/jca/ProviderList; -HSPLsun/security/jca/Providers;->setProviderList(Lsun/security/jca/ProviderList;)V -HSPLsun/security/jca/Providers;->setSystemProviderList(Lsun/security/jca/ProviderList;)V -HSPLsun/security/jca/Providers;->startJarVerification()Ljava/lang/Object; -HSPLsun/security/jca/Providers;->stopJarVerification(Ljava/lang/Object;)V -HSPLsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/DerInputStream;Z)V -HSPLsun/security/pkcs/ContentInfo;->getContent()Lsun/security/util/DerValue; -HSPLsun/security/pkcs/ContentInfo;->getData()[B -HSPLsun/security/pkcs/PKCS7$VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getIssuerDN()Ljava/security/Principal; -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getKeyUsage()[Z -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getPublicKey()Ljava/security/PublicKey; -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getSerialNumber()Ljava/math/BigInteger; -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getSubjectDN()Ljava/security/Principal; -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getTBSCertificate()[B -HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->hasUnsupportedCriticalExtension()Z -HSPLsun/security/pkcs/PKCS7;-><init>([B)V -HSPLsun/security/pkcs/PKCS7;->getCertificate(Ljava/math/BigInteger;Lsun/security/x509/X500Name;)Ljava/security/cert/X509Certificate; -HSPLsun/security/pkcs/PKCS7;->getCertificates()[Ljava/security/cert/X509Certificate; -HSPLsun/security/pkcs/PKCS7;->getContentInfo()Lsun/security/pkcs/ContentInfo; -HSPLsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;)V -HSPLsun/security/pkcs/PKCS7;->parse(Lsun/security/util/DerInputStream;Z)V -HSPLsun/security/pkcs/PKCS7;->parseSignedData(Lsun/security/util/DerValue;)V -HSPLsun/security/pkcs/PKCS7;->populateCertIssuerNames()V -HSPLsun/security/pkcs/PKCS7;->verify(Lsun/security/pkcs/SignerInfo;[B)Lsun/security/pkcs/SignerInfo; -HSPLsun/security/pkcs/PKCS7;->verify([B)[Lsun/security/pkcs/SignerInfo; -HSPLsun/security/pkcs/SignerInfo;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/pkcs/SignerInfo;-><init>(Lsun/security/util/DerInputStream;Z)V -HSPLsun/security/pkcs/SignerInfo;->getCertificate(Lsun/security/pkcs/PKCS7;)Ljava/security/cert/X509Certificate; -HSPLsun/security/pkcs/SignerInfo;->getCertificateChain(Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList; -HSPLsun/security/pkcs/SignerInfo;->getDigestAlgorithmId()Lsun/security/x509/AlgorithmId; -HSPLsun/security/pkcs/SignerInfo;->getDigestEncryptionAlgorithmId()Lsun/security/x509/AlgorithmId; -HSPLsun/security/pkcs/SignerInfo;->getTimestamp()Ljava/security/Timestamp; -HSPLsun/security/pkcs/SignerInfo;->getTsToken()Lsun/security/pkcs/PKCS7; -HSPLsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;Ljava/io/InputStream;)Lsun/security/pkcs/SignerInfo; -HSPLsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;[B)Lsun/security/pkcs/SignerInfo; -HSPLsun/security/provider/X509Factory;->addToCache(Lsun/security/util/Cache;[BLjava/lang/Object;)V -HSPLsun/security/provider/X509Factory;->getFromCache(Lsun/security/util/Cache;[B)Ljava/lang/Object; -HSPLsun/security/provider/X509Factory;->intern(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl; -HSPLsun/security/provider/certpath/AdaptableX509CertSelector;-><init>()V -HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->match(Ljava/security/cert/Certificate;)Z -HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z -HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->setSkiAndSerialNumber(Lsun/security/x509/AuthorityKeyIdentifierExtension;)V -HSPLsun/security/provider/certpath/AlgorithmChecker;-><init>(Ljava/security/cert/TrustAnchor;)V -HSPLsun/security/provider/certpath/AlgorithmChecker;-><init>(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;)V -HSPLsun/security/provider/certpath/AlgorithmChecker;->check(Ljava/security/PublicKey;Lsun/security/x509/AlgorithmId;)V -HSPLsun/security/provider/certpath/AlgorithmChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/AlgorithmChecker;->checkFingerprint(Ljava/security/cert/X509Certificate;)Z -HSPLsun/security/provider/certpath/AlgorithmChecker;->init(Z)V -HSPLsun/security/provider/certpath/BasicChecker;-><init>(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;Z)V -HSPLsun/security/provider/certpath/BasicChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/BasicChecker;->getPublicKey()Ljava/security/PublicKey; -HSPLsun/security/provider/certpath/BasicChecker;->init(Z)V -HSPLsun/security/provider/certpath/BasicChecker;->updateState(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/BasicChecker;->verifyNameChaining(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/BasicChecker;->verifySignature(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/BasicChecker;->verifyTimestamp(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/CertId;-><init>(Ljava/security/cert/X509Certificate;Lsun/security/x509/SerialNumber;)V -HSPLsun/security/provider/certpath/CertId;-><init>(Ljavax/security/auth/x500/X500Principal;Ljava/security/PublicKey;Lsun/security/x509/SerialNumber;)V -HSPLsun/security/provider/certpath/CertId;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/provider/certpath/CertId;->equals(Ljava/lang/Object;)Z -HSPLsun/security/provider/certpath/CertId;->getHashAlgorithm()Lsun/security/x509/AlgorithmId; -HSPLsun/security/provider/certpath/CertId;->getIssuerKeyHash()[B -HSPLsun/security/provider/certpath/CertId;->getIssuerNameHash()[B -HSPLsun/security/provider/certpath/CertId;->getSerialNumber()Ljava/math/BigInteger; -HSPLsun/security/provider/certpath/CertId;->hashCode()I -HSPLsun/security/provider/certpath/ConstraintsChecker;-><init>(I)V -HSPLsun/security/provider/certpath/ConstraintsChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/ConstraintsChecker;->checkBasicConstraints(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/ConstraintsChecker;->init(Z)V -HSPLsun/security/provider/certpath/ConstraintsChecker;->mergeNameConstraints(Ljava/security/cert/X509Certificate;Lsun/security/x509/NameConstraintsExtension;)Lsun/security/x509/NameConstraintsExtension; -HSPLsun/security/provider/certpath/ConstraintsChecker;->verifyNameConstraints(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/KeyChecker;-><init>(ILjava/security/cert/CertSelector;)V -HSPLsun/security/provider/certpath/KeyChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/KeyChecker;->init(Z)V -HSPLsun/security/provider/certpath/KeyChecker;->verifyCAKeyUsage(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->getCertId()Lsun/security/provider/certpath/CertId; -HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->getCertStatus()Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus; -HSPLsun/security/provider/certpath/OCSPResponse;-><init>([B)V -HSPLsun/security/provider/certpath/OCSPResponse;->getSingleResponse(Lsun/security/provider/certpath/CertId;)Lsun/security/provider/certpath/OCSPResponse$SingleResponse; -HSPLsun/security/provider/certpath/OCSPResponse;->verify(Ljava/util/List;Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;Ljava/util/Date;[B)V -HSPLsun/security/provider/certpath/OCSPResponse;->verifySignature(Ljava/security/cert/X509Certificate;)Z -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/PKIXParameters;)V -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;-><init>(Ljava/security/cert/PKIXParameters;)V -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->anyPolicyInhibited()Z -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certPath()Ljava/security/cert/CertPath; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certPathCheckers()Ljava/util/List; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certStores()Ljava/util/List; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certificates()Ljava/util/List; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->date()Ljava/util/Date; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->explicitPolicyRequired()Z -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->initialPolicies()Ljava/util/Set; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyMappingInhibited()Z -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyQualifiersRejected()Z -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->revocationEnabled()Z -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->sigProvider()Ljava/lang/String; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->targetCertConstraints()Ljava/security/cert/CertSelector; -HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->trustAnchors()Ljava/util/Set; -HSPLsun/security/provider/certpath/PKIX;->checkParams(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Lsun/security/provider/certpath/PKIX$ValidatorParams; -HSPLsun/security/provider/certpath/PKIX;->isDSAPublicKeyWithoutParams(Ljava/security/PublicKey;)Z -HSPLsun/security/provider/certpath/PKIXCertPathValidator;-><init>()V -HSPLsun/security/provider/certpath/PKIXCertPathValidator;->engineGetRevocationChecker()Ljava/security/cert/CertPathChecker; -HSPLsun/security/provider/certpath/PKIXCertPathValidator;->engineValidate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult; -HSPLsun/security/provider/certpath/PKIXCertPathValidator;->validate(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)Ljava/security/cert/PKIXCertPathValidatorResult; -HSPLsun/security/provider/certpath/PKIXCertPathValidator;->validate(Lsun/security/provider/certpath/PKIX$ValidatorParams;)Ljava/security/cert/PKIXCertPathValidatorResult; -HSPLsun/security/provider/certpath/PKIXMasterCertPathValidator;->validate(Ljava/security/cert/CertPath;Ljava/util/List;Ljava/util/List;)V -HSPLsun/security/provider/certpath/PolicyChecker;-><init>(Ljava/util/Set;IZZZZLsun/security/provider/certpath/PolicyNodeImpl;)V -HSPLsun/security/provider/certpath/PolicyChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/PolicyChecker;->checkPolicy(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/provider/certpath/PolicyChecker;->getPolicyTree()Ljava/security/cert/PolicyNode; -HSPLsun/security/provider/certpath/PolicyChecker;->init(Z)V -HSPLsun/security/provider/certpath/PolicyChecker;->mergeExplicitPolicy(ILsun/security/x509/X509CertImpl;Z)I -HSPLsun/security/provider/certpath/PolicyChecker;->mergeInhibitAnyPolicy(ILsun/security/x509/X509CertImpl;)I -HSPLsun/security/provider/certpath/PolicyChecker;->mergePolicyMapping(ILsun/security/x509/X509CertImpl;)I -HSPLsun/security/provider/certpath/PolicyChecker;->processParents(IZZLsun/security/provider/certpath/PolicyNodeImpl;Ljava/lang/String;Ljava/util/Set;Z)Z -HSPLsun/security/provider/certpath/PolicyChecker;->processPolicies(ILjava/util/Set;IIIZLsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/x509/X509CertImpl;Z)Lsun/security/provider/certpath/PolicyNodeImpl; -HSPLsun/security/provider/certpath/PolicyChecker;->processPolicyMappings(Lsun/security/x509/X509CertImpl;IILsun/security/provider/certpath/PolicyNodeImpl;ZLjava/util/Set;)Lsun/security/provider/certpath/PolicyNodeImpl; -HSPLsun/security/provider/certpath/PolicyNodeImpl;-><init>(Lsun/security/provider/certpath/PolicyNodeImpl;Ljava/lang/String;Ljava/util/Set;ZLjava/util/Set;Z)V -HSPLsun/security/provider/certpath/PolicyNodeImpl;-><init>(Lsun/security/provider/certpath/PolicyNodeImpl;Lsun/security/provider/certpath/PolicyNodeImpl;)V -HSPLsun/security/provider/certpath/PolicyNodeImpl;->addChild(Lsun/security/provider/certpath/PolicyNodeImpl;)V -HSPLsun/security/provider/certpath/PolicyNodeImpl;->copyTree()Lsun/security/provider/certpath/PolicyNodeImpl; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->copyTree(Lsun/security/provider/certpath/PolicyNodeImpl;)Lsun/security/provider/certpath/PolicyNodeImpl; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getChildren()Ljava/util/Iterator; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getDepth()I -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getExpectedPolicies()Ljava/util/Set; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodes(I)Ljava/util/Set; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodes(ILjava/util/Set;)V -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodesExpected(ILjava/lang/String;Z)Ljava/util/Set; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodesExpectedHelper(ILjava/lang/String;Z)Ljava/util/Set; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->getValidPolicy()Ljava/lang/String; -HSPLsun/security/provider/certpath/PolicyNodeImpl;->prune(I)V -HSPLsun/security/provider/certpath/PolicyNodeImpl;->setImmutable()V -HSPLsun/security/provider/certpath/RevocationChecker$1;-><init>()V -HSPLsun/security/provider/certpath/RevocationChecker$1;->run()Ljava/lang/Object; -HSPLsun/security/provider/certpath/RevocationChecker$1;->run()Lsun/security/provider/certpath/RevocationChecker$RevocationProperties; -HSPLsun/security/provider/certpath/RevocationChecker$RevocationProperties;-><init>()V -HSPLsun/security/provider/certpath/RevocationChecker;-><init>()V -HSPLsun/security/provider/certpath/RevocationChecker;->certCanSignCrl(Ljava/security/cert/X509Certificate;)Z -HSPLsun/security/provider/certpath/RevocationChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/RevocationChecker;->check(Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/PublicKey;Z)V -HSPLsun/security/provider/certpath/RevocationChecker;->checkOCSP(Ljava/security/cert/X509Certificate;Ljava/util/Collection;)V -HSPLsun/security/provider/certpath/RevocationChecker;->clone()Ljava/lang/Object; -HSPLsun/security/provider/certpath/RevocationChecker;->clone()Lsun/security/provider/certpath/RevocationChecker; -HSPLsun/security/provider/certpath/RevocationChecker;->getResponderCert(Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;Ljava/util/Set;Ljava/util/List;)Ljava/security/cert/X509Certificate; -HSPLsun/security/provider/certpath/RevocationChecker;->getRevocationProperties()Lsun/security/provider/certpath/RevocationChecker$RevocationProperties; -HSPLsun/security/provider/certpath/RevocationChecker;->init(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)V -HSPLsun/security/provider/certpath/RevocationChecker;->init(Z)V -HSPLsun/security/provider/certpath/RevocationChecker;->toURI(Ljava/lang/String;)Ljava/net/URI; -HSPLsun/security/provider/certpath/RevocationChecker;->updateState(Ljava/security/cert/X509Certificate;)V -HSPLsun/security/util/AbstractAlgorithmConstraints;->checkAlgorithm([Ljava/lang/String;Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)Z -HSPLsun/security/util/AlgorithmDecomposer;->decompose(Ljava/lang/String;)Ljava/util/Set; -HSPLsun/security/util/AlgorithmDecomposer;->decomposeImpl(Ljava/lang/String;)Ljava/util/Set; -HSPLsun/security/util/AlgorithmDecomposer;->decomposeOneHash(Ljava/lang/String;)Ljava/util/Set; -HSPLsun/security/util/AlgorithmDecomposer;->hasLoop(Ljava/util/Set;Ljava/lang/String;Ljava/lang/String;)V -HSPLsun/security/util/BitArray;-><init>(I[B)V -HSPLsun/security/util/BitArray;-><init>(I[BI)V -HSPLsun/security/util/BitArray;->get(I)Z -HSPLsun/security/util/BitArray;->length()I -HSPLsun/security/util/BitArray;->position(I)I -HSPLsun/security/util/BitArray;->subscript(I)I -HSPLsun/security/util/BitArray;->toBooleanArray()[Z -HSPLsun/security/util/BitArray;->toByteArray()[B -HSPLsun/security/util/Cache$EqualByteArray;-><init>([B)V -HSPLsun/security/util/Cache$EqualByteArray;->equals(Ljava/lang/Object;)Z -HSPLsun/security/util/Cache$EqualByteArray;->hashCode()I -HSPLsun/security/util/CertConstraintParameters;-><init>(Ljava/security/cert/X509Certificate;Z)V -HSPLsun/security/util/CertConstraintParameters;->getCertificate()Ljava/security/cert/X509Certificate; -HSPLsun/security/util/DerIndefLenConverter;->isIndefinite(I)Z -HSPLsun/security/util/DerIndefLenConverter;->isLongForm(I)Z -HSPLsun/security/util/DerInputBuffer;-><init>([B)V -HSPLsun/security/util/DerInputBuffer;-><init>([BII)V -HSPLsun/security/util/DerInputBuffer;->dup()Lsun/security/util/DerInputBuffer; -HSPLsun/security/util/DerInputBuffer;->getBigInteger(IZ)Ljava/math/BigInteger; -HSPLsun/security/util/DerInputBuffer;->getBitString()[B -HSPLsun/security/util/DerInputBuffer;->getBitString(I)[B -HSPLsun/security/util/DerInputBuffer;->getGeneralizedTime(I)Ljava/util/Date; -HSPLsun/security/util/DerInputBuffer;->getInteger(I)I -HSPLsun/security/util/DerInputBuffer;->getPos()I -HSPLsun/security/util/DerInputBuffer;->getSlice(II)[B -HSPLsun/security/util/DerInputBuffer;->getTime(IZ)Ljava/util/Date; -HSPLsun/security/util/DerInputBuffer;->getUTCTime(I)Ljava/util/Date; -HSPLsun/security/util/DerInputBuffer;->getUnalignedBitString()Lsun/security/util/BitArray; -HSPLsun/security/util/DerInputBuffer;->peek()I -HSPLsun/security/util/DerInputBuffer;->toByteArray()[B -HSPLsun/security/util/DerInputBuffer;->truncate(I)V -HSPLsun/security/util/DerInputStream;-><init>(Lsun/security/util/DerInputBuffer;)V -HSPLsun/security/util/DerInputStream;-><init>([B)V -HSPLsun/security/util/DerInputStream;->available()I -HSPLsun/security/util/DerInputStream;->getBigInteger()Ljava/math/BigInteger; -HSPLsun/security/util/DerInputStream;->getByte()I -HSPLsun/security/util/DerInputStream;->getBytes([B)V -HSPLsun/security/util/DerInputStream;->getDerValue()Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->getEnumerated()I -HSPLsun/security/util/DerInputStream;->getGeneralizedTime()Ljava/util/Date; -HSPLsun/security/util/DerInputStream;->getLength()I -HSPLsun/security/util/DerInputStream;->getLength(ILjava/io/InputStream;)I -HSPLsun/security/util/DerInputStream;->getLength(Ljava/io/InputStream;)I -HSPLsun/security/util/DerInputStream;->getOID()Lsun/security/util/ObjectIdentifier; -HSPLsun/security/util/DerInputStream;->getOctetString()[B -HSPLsun/security/util/DerInputStream;->getSequence(I)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->getSequence(IZ)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->getSet(I)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->getSet(IZ)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->getSet(IZZ)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->getUTCTime()Ljava/util/Date; -HSPLsun/security/util/DerInputStream;->getUnalignedBitString()Lsun/security/util/BitArray; -HSPLsun/security/util/DerInputStream;->init([BIIZ)V -HSPLsun/security/util/DerInputStream;->mark(I)V -HSPLsun/security/util/DerInputStream;->peekByte()I -HSPLsun/security/util/DerInputStream;->readVector(I)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->readVector(IZ)[Lsun/security/util/DerValue; -HSPLsun/security/util/DerInputStream;->reset()V -HSPLsun/security/util/DerInputStream;->subStream(IZ)Lsun/security/util/DerInputStream; -HSPLsun/security/util/DerInputStream;->toByteArray()[B -HSPLsun/security/util/DerOutputStream;-><init>()V -HSPLsun/security/util/DerOutputStream;->putDerValue(Lsun/security/util/DerValue;)V -HSPLsun/security/util/DerOutputStream;->putLength(I)V -HSPLsun/security/util/DerOutputStream;->putNull()V -HSPLsun/security/util/DerOutputStream;->putOID(Lsun/security/util/ObjectIdentifier;)V -HSPLsun/security/util/DerOutputStream;->putOctetString([B)V -HSPLsun/security/util/DerOutputStream;->putOrderedSet(B[Lsun/security/util/DerEncoder;Ljava/util/Comparator;)V -HSPLsun/security/util/DerOutputStream;->putOrderedSetOf(B[Lsun/security/util/DerEncoder;)V -HSPLsun/security/util/DerOutputStream;->putUnalignedBitString(Lsun/security/util/BitArray;)V -HSPLsun/security/util/DerOutputStream;->write(BLsun/security/util/DerOutputStream;)V -HSPLsun/security/util/DerOutputStream;->write(B[B)V -HSPLsun/security/util/DerValue;-><init>(B[B)V -HSPLsun/security/util/DerValue;-><init>(Ljava/io/InputStream;)V -HSPLsun/security/util/DerValue;-><init>(Ljava/lang/String;)V -HSPLsun/security/util/DerValue;-><init>(Lsun/security/util/DerInputBuffer;Z)V -HSPLsun/security/util/DerValue;-><init>([B)V -HSPLsun/security/util/DerValue;->encode(Lsun/security/util/DerOutputStream;)V -HSPLsun/security/util/DerValue;->getBigInteger()Ljava/math/BigInteger; -HSPLsun/security/util/DerValue;->getBitString()[B -HSPLsun/security/util/DerValue;->getBoolean()Z -HSPLsun/security/util/DerValue;->getData()Lsun/security/util/DerInputStream; -HSPLsun/security/util/DerValue;->getDataBytes()[B -HSPLsun/security/util/DerValue;->getIA5String()Ljava/lang/String; -HSPLsun/security/util/DerValue;->getInteger()I -HSPLsun/security/util/DerValue;->getOID()Lsun/security/util/ObjectIdentifier; -HSPLsun/security/util/DerValue;->getOctetString()[B -HSPLsun/security/util/DerValue;->getOriginalEncodedForm()[B -HSPLsun/security/util/DerValue;->getTag()B -HSPLsun/security/util/DerValue;->getUnalignedBitString()Lsun/security/util/BitArray; -HSPLsun/security/util/DerValue;->init(BLjava/lang/String;)Lsun/security/util/DerInputStream; -HSPLsun/security/util/DerValue;->init(ZLjava/io/InputStream;)Lsun/security/util/DerInputStream; -HSPLsun/security/util/DerValue;->isConstructed()Z -HSPLsun/security/util/DerValue;->isContextSpecific()Z -HSPLsun/security/util/DerValue;->isContextSpecific(B)Z -HSPLsun/security/util/DerValue;->isPrintableStringChar(C)Z -HSPLsun/security/util/DerValue;->length()I -HSPLsun/security/util/DerValue;->resetTag(B)V -HSPLsun/security/util/DerValue;->toByteArray()[B -HSPLsun/security/util/DerValue;->toDerInputStream()Lsun/security/util/DerInputStream; -HPLsun/security/util/DisabledAlgorithmConstraints$Constraints;-><init>([Ljava/lang/String;)V -HSPLsun/security/util/DisabledAlgorithmConstraints$Constraints;->getConstraints(Ljava/lang/String;)Ljava/util/Set; -HSPLsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Ljava/security/Key;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Lsun/security/util/CertConstraintParameters;)V -HSPLsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Ljava/security/Key;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permits(Lsun/security/util/CertConstraintParameters;)V -HSPLsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->permitsImpl(Ljava/security/Key;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints;->checkConstraints(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V -HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljava/security/Key;)Z -HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V -HSPLsun/security/util/KeyUtil;->getKeySize(Ljava/security/Key;)I -HSPLsun/security/util/ManifestDigester$Entry;-><init>(III[B)V -HSPLsun/security/util/ManifestDigester$Position;-><init>()V -HSPLsun/security/util/ManifestDigester;-><init>([B)V -HSPLsun/security/util/ManifestDigester;->findSection(ILsun/security/util/ManifestDigester$Position;)Z -HSPLsun/security/util/ManifestDigester;->isNameAttr([BI)Z -HSPLsun/security/util/ManifestDigester;->manifestDigest(Ljava/security/MessageDigest;)[B -HSPLsun/security/util/ManifestEntryVerifier;-><init>(Ljava/util/jar/Manifest;)V -HSPLsun/security/util/ManifestEntryVerifier;->getEntry()Ljava/util/jar/JarEntry; -HSPLsun/security/util/ManifestEntryVerifier;->setEntry(Ljava/lang/String;Ljava/util/jar/JarEntry;)V -HSPLsun/security/util/ManifestEntryVerifier;->update(B)V -HSPLsun/security/util/ManifestEntryVerifier;->update([BII)V -HSPLsun/security/util/ManifestEntryVerifier;->verify(Ljava/util/Hashtable;Ljava/util/Hashtable;)[Ljava/security/CodeSigner; -HSPLsun/security/util/MemoryCache$SoftCacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;JLjava/lang/ref/ReferenceQueue;)V -HSPLsun/security/util/MemoryCache$SoftCacheEntry;->getValue()Ljava/lang/Object; -HSPLsun/security/util/MemoryCache$SoftCacheEntry;->isValid(J)Z -HSPLsun/security/util/MemoryCache;->emptyQueue()V -HSPLsun/security/util/MemoryCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/security/util/MemoryCache;->newEntry(Ljava/lang/Object;Ljava/lang/Object;JLjava/lang/ref/ReferenceQueue;)Lsun/security/util/MemoryCache$CacheEntry; -HSPLsun/security/util/MemoryCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V -HSPLsun/security/util/ObjectIdentifier;-><init>(Lsun/security/util/DerInputBuffer;)V -HSPLsun/security/util/ObjectIdentifier;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/util/ObjectIdentifier;->check([B)V -HSPLsun/security/util/ObjectIdentifier;->encode(Lsun/security/util/DerOutputStream;)V -HSPLsun/security/util/ObjectIdentifier;->equals(Ljava/lang/Object;)Z -HSPLsun/security/util/ObjectIdentifier;->hashCode()I -HSPLsun/security/util/ObjectIdentifier;->toString()Ljava/lang/String; -HSPLsun/security/util/SignatureFileVerifier;-><init>(Ljava/util/ArrayList;Lsun/security/util/ManifestDigester;Ljava/lang/String;[B)V -HSPLsun/security/util/SignatureFileVerifier;->getDigest(Ljava/lang/String;)Ljava/security/MessageDigest; -HSPLsun/security/util/SignatureFileVerifier;->getSigners([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner; -HSPLsun/security/util/SignatureFileVerifier;->isBlockOrSF(Ljava/lang/String;)Z -HSPLsun/security/util/SignatureFileVerifier;->matches([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z -HSPLsun/security/util/SignatureFileVerifier;->needSignatureFileBytes()Z -HSPLsun/security/util/SignatureFileVerifier;->process(Ljava/util/Hashtable;Ljava/util/List;)V -HSPLsun/security/util/SignatureFileVerifier;->processImpl(Ljava/util/Hashtable;Ljava/util/List;)V -HSPLsun/security/util/SignatureFileVerifier;->setSignatureFile([B)V -HSPLsun/security/util/SignatureFileVerifier;->updateSigners([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V -HSPLsun/security/util/SignatureFileVerifier;->verifyManifestHash(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List;)Z -HSPLsun/security/x509/AVA;-><init>(Ljava/io/Reader;ILjava/util/Map;)V -HSPLsun/security/x509/AVA;-><init>(Ljava/io/Reader;Ljava/util/Map;)V -HSPLsun/security/x509/AVA;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/AVA;->derEncode(Ljava/io/OutputStream;)V -HSPLsun/security/x509/AVA;->isDerString(Lsun/security/util/DerValue;Z)Z -HSPLsun/security/x509/AVA;->isTerminator(II)Z -HSPLsun/security/x509/AVA;->parseString(Ljava/io/Reader;IILjava/lang/StringBuilder;)Lsun/security/util/DerValue; -HSPLsun/security/x509/AVA;->readChar(Ljava/io/Reader;Ljava/lang/String;)I -HSPLsun/security/x509/AVA;->toKeyword(ILjava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/AVA;->toRFC2253CanonicalString()Ljava/lang/String; -HSPLsun/security/x509/AVA;->toRFC2253String(Ljava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/AVAKeyword;->getKeyword(Lsun/security/util/ObjectIdentifier;ILjava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/AVAKeyword;->getOID(Ljava/lang/String;ILjava/util/Map;)Lsun/security/util/ObjectIdentifier; -HSPLsun/security/x509/AVAKeyword;->isCompliant(I)Z -HSPLsun/security/x509/AccessDescription;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/AlgorithmId;-><init>(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V -HSPLsun/security/x509/AlgorithmId;->decodeParams()V -HSPLsun/security/x509/AlgorithmId;->derEncode(Ljava/io/OutputStream;)V -HSPLsun/security/x509/AlgorithmId;->encode(Lsun/security/util/DerOutputStream;)V -HSPLsun/security/x509/AlgorithmId;->equals(Lsun/security/x509/AlgorithmId;)Z -HSPLsun/security/x509/AlgorithmId;->getEncAlgFromSigAlg(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/security/x509/AlgorithmId;->getName()Ljava/lang/String; -HSPLsun/security/x509/AlgorithmId;->getParameters()Ljava/security/AlgorithmParameters; -HSPLsun/security/x509/AlgorithmId;->hashCode()I -HSPLsun/security/x509/AlgorithmId;->makeSigAlg(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; -HSPLsun/security/x509/AlgorithmId;->paramsToString()Ljava/lang/String; -HSPLsun/security/x509/AlgorithmId;->parse(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId; -HSPLsun/security/x509/AuthorityInfoAccessExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/AuthorityInfoAccessExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/AuthorityKeyIdentifierExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/AuthorityKeyIdentifierExtension;->get(Ljava/lang/String;)Ljava/lang/Object; -HSPLsun/security/x509/AuthorityKeyIdentifierExtension;->getEncodedKeyIdentifier()[B -HSPLsun/security/x509/AuthorityKeyIdentifierExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/BasicConstraintsExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/BasicConstraintsExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/CRLDistributionPointsExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/CRLDistributionPointsExtension;-><init>(Lsun/security/util/ObjectIdentifier;Ljava/lang/Boolean;Ljava/lang/Object;Ljava/lang/String;)V -HSPLsun/security/x509/CRLDistributionPointsExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/CertificateAlgorithmId;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/CertificateAlgorithmId;->get(Ljava/lang/String;)Lsun/security/x509/AlgorithmId; -HSPLsun/security/x509/CertificateExtensions;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/CertificateExtensions;->get(Ljava/lang/String;)Lsun/security/x509/Extension; -HSPLsun/security/x509/CertificateExtensions;->getAllExtensions()Ljava/util/Collection; -HSPLsun/security/x509/CertificateExtensions;->getExtension(Ljava/lang/String;)Lsun/security/x509/Extension; -HSPLsun/security/x509/CertificateExtensions;->init(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/CertificateExtensions;->parseExtension(Lsun/security/x509/Extension;)V -HSPLsun/security/x509/CertificatePoliciesExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/CertificatePoliciesExtension;->get(Ljava/lang/String;)Ljava/util/List; -HSPLsun/security/x509/CertificatePoliciesExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/CertificatePolicyId;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/CertificatePolicyId;->getIdentifier()Lsun/security/util/ObjectIdentifier; -HSPLsun/security/x509/CertificateSerialNumber;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/CertificateSerialNumber;->get(Ljava/lang/String;)Lsun/security/x509/SerialNumber; -HSPLsun/security/x509/CertificateValidity;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/CertificateValidity;->construct(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/CertificateValidity;->valid(Ljava/util/Date;)V -HSPLsun/security/x509/CertificateVersion;-><init>()V -HSPLsun/security/x509/CertificateVersion;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/CertificateVersion;->compare(I)I -HSPLsun/security/x509/CertificateVersion;->construct(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/CertificateX509Key;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/CertificateX509Key;->get(Ljava/lang/String;)Ljava/security/PublicKey; -HSPLsun/security/x509/DNSName;-><init>(Ljava/lang/String;)V -HSPLsun/security/x509/DNSName;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/DistributionPoint;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/ExtendedKeyUsageExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/ExtendedKeyUsageExtension;->getExtendedKeyUsage()Ljava/util/List; -HSPLsun/security/x509/ExtendedKeyUsageExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/Extension;-><init>()V -HSPLsun/security/x509/Extension;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/Extension;->getExtensionId()Lsun/security/util/ObjectIdentifier; -HSPLsun/security/x509/Extension;->getExtensionValue()[B -HSPLsun/security/x509/Extension;->isCritical()Z -HSPLsun/security/x509/GeneralName;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/GeneralName;-><init>(Lsun/security/util/DerValue;Z)V -HSPLsun/security/x509/GeneralNames;-><init>()V -HSPLsun/security/x509/GeneralNames;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/GeneralNames;->add(Lsun/security/x509/GeneralName;)Lsun/security/x509/GeneralNames; -HSPLsun/security/x509/KeyIdentifier;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/KeyIdentifier;-><init>([B)V -HSPLsun/security/x509/KeyIdentifier;->encode(Lsun/security/util/DerOutputStream;)V -HSPLsun/security/x509/KeyIdentifier;->equals(Ljava/lang/Object;)Z -HSPLsun/security/x509/KeyUsageExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/KeyUsageExtension;->getBits()[Z -HSPLsun/security/x509/KeyUsageExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/OCSPNoCheckExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/OCSPNoCheckExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/OIDMap$OIDInfo;->getClazz()Ljava/lang/Class; -HSPLsun/security/x509/OIDMap;->getClass(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Class; -HSPLsun/security/x509/OIDMap;->getName(Lsun/security/util/ObjectIdentifier;)Ljava/lang/String; -HSPLsun/security/x509/PolicyInformation;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/PolicyInformation;->getPolicyIdentifier()Lsun/security/x509/CertificatePolicyId; -HSPLsun/security/x509/PolicyInformation;->getPolicyQualifiers()Ljava/util/Set; -HSPLsun/security/x509/RDN;-><init>(Ljava/lang/String;Ljava/util/Map;)V -HSPLsun/security/x509/RDN;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/RDN;->encode(Lsun/security/util/DerOutputStream;)V -HSPLsun/security/x509/RDN;->toRFC2253String(Ljava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/RDN;->toRFC2253String(Z)Ljava/lang/String; -HSPLsun/security/x509/RDN;->toRFC2253StringInternal(ZLjava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/SerialNumber;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/SerialNumber;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/SerialNumber;->construct(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/SerialNumber;->getNumber()Ljava/math/BigInteger; -HSPLsun/security/x509/SubjectAlternativeNameExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/SubjectAlternativeNameExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/SubjectKeyIdentifierExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V -HSPLsun/security/x509/SubjectKeyIdentifierExtension;->get(Ljava/lang/String;)Lsun/security/x509/KeyIdentifier; -HSPLsun/security/x509/SubjectKeyIdentifierExtension;->getName()Ljava/lang/String; -HSPLsun/security/x509/URIName;-><init>(Ljava/lang/String;)V -HSPLsun/security/x509/URIName;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/X500Name;-><init>(Ljava/lang/String;Ljava/util/Map;)V -HSPLsun/security/x509/X500Name;-><init>(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/X500Name;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/X500Name;-><init>([B)V -HSPLsun/security/x509/X500Name;->asX500Name(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name; -HSPLsun/security/x509/X500Name;->asX500Principal()Ljavax/security/auth/x500/X500Principal; -HSPLsun/security/x509/X500Name;->checkNoNewLinesNorTabsAtBeginningOfDN(Ljava/lang/String;)V -HSPLsun/security/x509/X500Name;->countQuotes(Ljava/lang/String;II)I -HSPLsun/security/x509/X500Name;->equals(Ljava/lang/Object;)Z -HSPLsun/security/x509/X500Name;->escaped(IILjava/lang/String;)Z -HSPLsun/security/x509/X500Name;->generateRFC2253DN(Ljava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/X500Name;->getEncoded()[B -HSPLsun/security/x509/X500Name;->getEncodedInternal()[B -HSPLsun/security/x509/X500Name;->getRFC2253CanonicalName()Ljava/lang/String; -HSPLsun/security/x509/X500Name;->getRFC2253Name()Ljava/lang/String; -HSPLsun/security/x509/X500Name;->getRFC2253Name(Ljava/util/Map;)Ljava/lang/String; -HSPLsun/security/x509/X500Name;->hashCode()I -HSPLsun/security/x509/X500Name;->intern(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/ObjectIdentifier; -HSPLsun/security/x509/X500Name;->isEmpty()Z -HSPLsun/security/x509/X500Name;->parseDER(Lsun/security/util/DerInputStream;)V -HSPLsun/security/x509/X500Name;->parseDN(Ljava/lang/String;Ljava/util/Map;)V -HSPLsun/security/x509/X509AttributeName;-><init>(Ljava/lang/String;)V -HSPLsun/security/x509/X509AttributeName;->getPrefix()Ljava/lang/String; -HSPLsun/security/x509/X509AttributeName;->getSuffix()Ljava/lang/String; -HSPLsun/security/x509/X509CertImpl;-><init>([B)V -HSPLsun/security/x509/X509CertImpl;->checkValidity(Ljava/util/Date;)V -HSPLsun/security/x509/X509CertImpl;->get(Ljava/lang/String;)Ljava/lang/Object; -HSPLsun/security/x509/X509CertImpl;->getAuthorityKeyIdentifierExtension()Lsun/security/x509/AuthorityKeyIdentifierExtension; -HSPLsun/security/x509/X509CertImpl;->getCertificatePoliciesExtension()Lsun/security/x509/CertificatePoliciesExtension; -HSPLsun/security/x509/X509CertImpl;->getEncodedInternal()[B -HSPLsun/security/x509/X509CertImpl;->getEncodedInternal(Ljava/security/cert/Certificate;)[B -HSPLsun/security/x509/X509CertImpl;->getExtendedKeyUsage()Ljava/util/List; -HSPLsun/security/x509/X509CertImpl;->getExtendedKeyUsageExtension()Lsun/security/x509/ExtendedKeyUsageExtension; -HSPLsun/security/x509/X509CertImpl;->getExtension(Lsun/security/util/ObjectIdentifier;)Lsun/security/x509/Extension; -HSPLsun/security/x509/X509CertImpl;->getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal; -HSPLsun/security/x509/X509CertImpl;->getKeyUsage()[Z -HSPLsun/security/x509/X509CertImpl;->getNameConstraintsExtension()Lsun/security/x509/NameConstraintsExtension; -HSPLsun/security/x509/X509CertImpl;->getPolicyConstraintsExtension()Lsun/security/x509/PolicyConstraintsExtension; -HSPLsun/security/x509/X509CertImpl;->getPolicyMappingsExtension()Lsun/security/x509/PolicyMappingsExtension; -HSPLsun/security/x509/X509CertImpl;->getPublicKey()Ljava/security/PublicKey; -HSPLsun/security/x509/X509CertImpl;->getSerialNumberObject()Lsun/security/x509/SerialNumber; -HSPLsun/security/x509/X509CertImpl;->getSigAlgName()Ljava/lang/String; -HSPLsun/security/x509/X509CertImpl;->getSubjectKeyId()Lsun/security/x509/KeyIdentifier; -HSPLsun/security/x509/X509CertImpl;->getSubjectKeyIdentifierExtension()Lsun/security/x509/SubjectKeyIdentifierExtension; -HSPLsun/security/x509/X509CertImpl;->getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal; -HSPLsun/security/x509/X509CertImpl;->isSelfIssued(Ljava/security/cert/X509Certificate;)Z -HSPLsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;[B)V -HSPLsun/security/x509/X509CertImpl;->toImpl(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl; -HSPLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;)V -HSPLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;Ljava/lang/String;)V -HSPLsun/security/x509/X509CertInfo;-><init>(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/X509CertInfo;-><init>([B)V -HSPLsun/security/x509/X509CertInfo;->attributeMap(Ljava/lang/String;)I -HSPLsun/security/x509/X509CertInfo;->get(Ljava/lang/String;)Ljava/lang/Object; -HSPLsun/security/x509/X509CertInfo;->getEncodedInfo()[B -HSPLsun/security/x509/X509CertInfo;->getX500Name(Ljava/lang/String;Z)Ljava/lang/Object; -HSPLsun/security/x509/X509CertInfo;->parse(Lsun/security/util/DerValue;)V -HSPLsun/security/x509/X509CertInfo;->verifyCert(Lsun/security/x509/X500Name;Lsun/security/x509/CertificateExtensions;)V -HSPLsun/security/x509/X509Key;->buildX509Key(Lsun/security/x509/AlgorithmId;Lsun/security/util/BitArray;)Ljava/security/PublicKey; -HSPLsun/security/x509/X509Key;->encode(Lsun/security/util/DerOutputStream;Lsun/security/x509/AlgorithmId;Lsun/security/util/BitArray;)V -HSPLsun/security/x509/X509Key;->parse(Lsun/security/util/DerValue;)Ljava/security/PublicKey; -HSPLsun/util/calendar/AbstractCalendar;-><init>()V -HSPLsun/util/calendar/AbstractCalendar;->getCalendarDate(JLsun/util/calendar/CalendarDate;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/AbstractCalendar;->getDayOfWeekDateOnOrBefore(JI)J -HSPLsun/util/calendar/AbstractCalendar;->getEras()[Lsun/util/calendar/Era; -HSPLsun/util/calendar/AbstractCalendar;->getTime(Lsun/util/calendar/CalendarDate;)J -HSPLsun/util/calendar/AbstractCalendar;->getTimeOfDay(Lsun/util/calendar/CalendarDate;)J -HSPLsun/util/calendar/AbstractCalendar;->getTimeOfDayValue(Lsun/util/calendar/CalendarDate;)J -HSPLsun/util/calendar/AbstractCalendar;->setEras([Lsun/util/calendar/Era;)V -HSPLsun/util/calendar/AbstractCalendar;->setTimeOfDay(Lsun/util/calendar/CalendarDate;I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/BaseCalendar$Date;-><init>(Ljava/util/TimeZone;)V -HSPLsun/util/calendar/BaseCalendar$Date;->getCachedJan1()J -HSPLsun/util/calendar/BaseCalendar$Date;->getCachedYear()I -HSPLsun/util/calendar/BaseCalendar$Date;->hit(I)Z -HSPLsun/util/calendar/BaseCalendar$Date;->hit(J)Z -HSPLsun/util/calendar/BaseCalendar$Date;->setCache(IJI)V -HSPLsun/util/calendar/BaseCalendar;-><init>()V -HSPLsun/util/calendar/BaseCalendar;->getCalendarDateFromFixedDate(Lsun/util/calendar/CalendarDate;J)V -HSPLsun/util/calendar/BaseCalendar;->getDayOfWeekFromFixedDate(J)I -HSPLsun/util/calendar/BaseCalendar;->getDayOfYear(III)J -HSPLsun/util/calendar/BaseCalendar;->getFixedDate(IIILsun/util/calendar/BaseCalendar$Date;)J -HSPLsun/util/calendar/BaseCalendar;->getFixedDate(Lsun/util/calendar/CalendarDate;)J -HSPLsun/util/calendar/BaseCalendar;->getGregorianYearFromFixedDate(J)I -HSPLsun/util/calendar/BaseCalendar;->isLeapYear(I)Z -HSPLsun/util/calendar/BaseCalendar;->isLeapYear(Lsun/util/calendar/CalendarDate;)Z -HSPLsun/util/calendar/BaseCalendar;->normalizeMonth(Lsun/util/calendar/CalendarDate;)V -HSPLsun/util/calendar/CalendarDate;-><init>(Ljava/util/TimeZone;)V -HSPLsun/util/calendar/CalendarDate;->clone()Ljava/lang/Object; -HSPLsun/util/calendar/CalendarDate;->getDayOfMonth()I -HSPLsun/util/calendar/CalendarDate;->getDayOfWeek()I -HSPLsun/util/calendar/CalendarDate;->getEra()Lsun/util/calendar/Era; -HSPLsun/util/calendar/CalendarDate;->getHours()I -HSPLsun/util/calendar/CalendarDate;->getMillis()I -HSPLsun/util/calendar/CalendarDate;->getMinutes()I -HSPLsun/util/calendar/CalendarDate;->getMonth()I -HSPLsun/util/calendar/CalendarDate;->getSeconds()I -HSPLsun/util/calendar/CalendarDate;->getTimeOfDay()J -HSPLsun/util/calendar/CalendarDate;->getYear()I -HSPLsun/util/calendar/CalendarDate;->getZone()Ljava/util/TimeZone; -HSPLsun/util/calendar/CalendarDate;->isDaylightTime()Z -HSPLsun/util/calendar/CalendarDate;->isLeapYear()Z -HSPLsun/util/calendar/CalendarDate;->isNormalized()Z -HSPLsun/util/calendar/CalendarDate;->isStandardTime()Z -HSPLsun/util/calendar/CalendarDate;->setDate(III)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setDayOfMonth(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setDayOfWeek(I)V -HSPLsun/util/calendar/CalendarDate;->setDaylightSaving(I)V -HSPLsun/util/calendar/CalendarDate;->setEra(Lsun/util/calendar/Era;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setHours(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setLeapYear(Z)V -HSPLsun/util/calendar/CalendarDate;->setMillis(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setMinutes(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setMonth(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setNormalized(Z)V -HSPLsun/util/calendar/CalendarDate;->setSeconds(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setTimeOfDay(IIII)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setTimeOfDay(J)V -HSPLsun/util/calendar/CalendarDate;->setYear(I)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setZone(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/CalendarDate;->setZoneOffset(I)V -HSPLsun/util/calendar/CalendarSystem;-><init>()V -HSPLsun/util/calendar/CalendarSystem;->forName(Ljava/lang/String;)Lsun/util/calendar/CalendarSystem; -HSPLsun/util/calendar/CalendarSystem;->getGregorianCalendar()Lsun/util/calendar/Gregorian; -HSPLsun/util/calendar/CalendarUtils;->floorDivide(II)I -HSPLsun/util/calendar/CalendarUtils;->floorDivide(JJ)J -HSPLsun/util/calendar/CalendarUtils;->isGregorianLeapYear(I)Z -HSPLsun/util/calendar/CalendarUtils;->isJulianLeapYear(I)Z -HSPLsun/util/calendar/CalendarUtils;->mod(II)I -HSPLsun/util/calendar/CalendarUtils;->mod(JJ)J -HSPLsun/util/calendar/CalendarUtils;->sprintf0d(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder; -HSPLsun/util/calendar/Gregorian$Date;-><init>(Ljava/util/TimeZone;)V -HSPLsun/util/calendar/Gregorian$Date;->getNormalizedYear()I -HSPLsun/util/calendar/Gregorian$Date;->setNormalizedYear(I)V -HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLjava/util/TimeZone;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLjava/util/TimeZone;)Lsun/util/calendar/Gregorian$Date; -HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLsun/util/calendar/CalendarDate;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/Gregorian;->getCalendarDate(JLsun/util/calendar/CalendarDate;)Lsun/util/calendar/Gregorian$Date; -HSPLsun/util/calendar/Gregorian;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/Gregorian;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/Gregorian$Date; -HSPLsun/util/calendar/JulianCalendar$Date;-><init>(Ljava/util/TimeZone;)V -HSPLsun/util/calendar/JulianCalendar$Date;->getNormalizedYear()I -HSPLsun/util/calendar/JulianCalendar$Date;->setKnownEra(Lsun/util/calendar/Era;)V -HSPLsun/util/calendar/JulianCalendar$Date;->setNormalizedYear(I)V -HSPLsun/util/calendar/JulianCalendar;-><init>()V -HSPLsun/util/calendar/JulianCalendar;->getCalendarDateFromFixedDate(Lsun/util/calendar/CalendarDate;J)V -HSPLsun/util/calendar/JulianCalendar;->getFixedDate(IIILsun/util/calendar/BaseCalendar$Date;)J -HSPLsun/util/calendar/JulianCalendar;->isLeapYear(I)Z -HSPLsun/util/calendar/JulianCalendar;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate; -HSPLsun/util/calendar/JulianCalendar;->newCalendarDate(Ljava/util/TimeZone;)Lsun/util/calendar/JulianCalendar$Date; -HSPLsun/util/locale/BaseLocale$Cache;->-$$Nest$sfgetCACHE()Lsun/util/locale/BaseLocale$Cache; -HSPLsun/util/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/util/locale/BaseLocale$Cache;->createObject(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/util/locale/BaseLocale$Cache;->normalizeKey(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key; -HSPLsun/util/locale/BaseLocale$Key;->-$$Nest$mgetBaseLocale(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V -HSPLsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLsun/util/locale/BaseLocale$Key-IA;)V -HSPLsun/util/locale/BaseLocale$Key;->equals(Ljava/lang/Object;)Z -HSPLsun/util/locale/BaseLocale$Key;->getBaseLocale()Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/BaseLocale$Key;->hashCode()I -HSPLsun/util/locale/BaseLocale$Key;->hashCode(Lsun/util/locale/BaseLocale;)I -HSPLsun/util/locale/BaseLocale$Key;->normalize(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key; -HSPLsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V -HSPLsun/util/locale/BaseLocale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLsun/util/locale/BaseLocale-IA;)V -HSPLsun/util/locale/BaseLocale;->cleanCache()V -HSPLsun/util/locale/BaseLocale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/BaseLocale;->equals(Ljava/lang/Object;)Z -HSPLsun/util/locale/BaseLocale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/BaseLocale;->getLanguage()Ljava/lang/String; -HSPLsun/util/locale/BaseLocale;->getRegion()Ljava/lang/String; -HSPLsun/util/locale/BaseLocale;->getScript()Ljava/lang/String; -HSPLsun/util/locale/BaseLocale;->getVariant()Ljava/lang/String; -HSPLsun/util/locale/BaseLocale;->hashCode()I -HSPLsun/util/locale/InternalLocaleBuilder;-><init>()V -HSPLsun/util/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I -HSPLsun/util/locale/InternalLocaleBuilder;->clear()Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->clearExtensions()Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->getBaseLocale()Lsun/util/locale/BaseLocale; -HSPLsun/util/locale/InternalLocaleBuilder;->getLocaleExtensions()Lsun/util/locale/LocaleExtensions; -HSPLsun/util/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->setLanguage(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->setLanguageTag(Lsun/util/locale/LanguageTag;)Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->setRegion(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->setScript(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/InternalLocaleBuilder;->setVariant(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder; -HSPLsun/util/locale/LanguageTag;-><init>()V -HSPLsun/util/locale/LanguageTag;->canonicalizeLanguage(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->canonicalizeRegion(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->canonicalizeScript(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->getExtensions()Ljava/util/List; -HSPLsun/util/locale/LanguageTag;->getExtlangs()Ljava/util/List; -HSPLsun/util/locale/LanguageTag;->getLanguage()Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->getPrivateuse()Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->getRegion()Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->getScript()Ljava/lang/String; -HSPLsun/util/locale/LanguageTag;->getVariants()Ljava/util/List; -HSPLsun/util/locale/LanguageTag;->isExtlang(Ljava/lang/String;)Z -HSPLsun/util/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z -HSPLsun/util/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z -HSPLsun/util/locale/LanguageTag;->isScript(Ljava/lang/String;)Z -HSPLsun/util/locale/LanguageTag;->isVariant(Ljava/lang/String;)Z -HSPLsun/util/locale/LanguageTag;->parse(Ljava/lang/String;Lsun/util/locale/ParseStatus;)Lsun/util/locale/LanguageTag; -HSPLsun/util/locale/LanguageTag;->parseExtensions(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LanguageTag;->parseExtlangs(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LanguageTag;->parseLanguage(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LanguageTag;->parseLocale(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Lsun/util/locale/LanguageTag; -HSPLsun/util/locale/LanguageTag;->parsePrivateuse(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z -HSPLsun/util/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V -HSPLsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object; -HSPLsun/util/locale/LocaleObjectCache;->cleanStaleEntries()V -HSPLsun/util/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/util/locale/LocaleObjectCache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object; -HSPLsun/util/locale/LocaleUtils;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z -HSPLsun/util/locale/LocaleUtils;->isAlpha(C)Z -HSPLsun/util/locale/LocaleUtils;->isAlphaNumeric(C)Z -HSPLsun/util/locale/LocaleUtils;->isAlphaNumericString(Ljava/lang/String;)Z -HSPLsun/util/locale/LocaleUtils;->isAlphaString(Ljava/lang/String;)Z -HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/lang/String;)Z -HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/List;)Z -HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/Map;)Z -HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/Set;)Z -HSPLsun/util/locale/LocaleUtils;->isLower(C)Z -HSPLsun/util/locale/LocaleUtils;->isNumeric(C)Z -HSPLsun/util/locale/LocaleUtils;->isNumericString(Ljava/lang/String;)Z -HSPLsun/util/locale/LocaleUtils;->isUpper(C)Z -HSPLsun/util/locale/LocaleUtils;->toLower(C)C -HSPLsun/util/locale/LocaleUtils;->toLowerString(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/LocaleUtils;->toTitleString(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/LocaleUtils;->toUpperString(Ljava/lang/String;)Ljava/lang/String; -HSPLsun/util/locale/ParseStatus;-><init>()V -HSPLsun/util/locale/ParseStatus;->isError()Z -HSPLsun/util/locale/ParseStatus;->reset()V -HSPLsun/util/locale/StringTokenIterator;-><init>(Ljava/lang/String;Ljava/lang/String;)V -HSPLsun/util/locale/StringTokenIterator;->current()Ljava/lang/String; -HSPLsun/util/locale/StringTokenIterator;->currentEnd()I -HSPLsun/util/locale/StringTokenIterator;->hasNext()Z -HSPLsun/util/locale/StringTokenIterator;->isDone()Z -HSPLsun/util/locale/StringTokenIterator;->next()Ljava/lang/String; -HSPLsun/util/locale/StringTokenIterator;->nextDelimiter(I)I -HSPLsun/util/locale/StringTokenIterator;->setStart(I)Lsun/util/locale/StringTokenIterator; -HSPLsun/util/locale/provider/CalendarDataUtility;->retrieveFirstDayOfWeek(Ljava/util/Locale;I)I -HSPLsun/util/logging/LoggingSupport$2;-><init>()V -HSPLsun/util/logging/LoggingSupport$2;->run()Ljava/lang/Object; -HSPLsun/util/logging/LoggingSupport$2;->run()Ljava/lang/String; -HSPLsun/util/logging/LoggingSupport;->getSimpleFormat()Ljava/lang/String; -HSPLsun/util/logging/LoggingSupport;->getSimpleFormat(Z)Ljava/lang/String; -HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;)V -HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;Lsun/util/logging/PlatformLogger$Level;)V -HSPLsun/util/logging/PlatformLogger$LoggerProxy;-><init>(Ljava/lang/String;)V -HSPLsun/util/logging/PlatformLogger;-><init>(Ljava/lang/String;)V -HSPLsun/util/logging/PlatformLogger;->getLogger(Ljava/lang/String;)Lsun/util/logging/PlatformLogger; -Landroid/R$attr; -Landroid/R$id; -Landroid/R$styleable; -Landroid/accessibilityservice/AccessibilityServiceInfo$1; -Landroid/accessibilityservice/AccessibilityServiceInfo$DynamicPropertyDefaults; -Landroid/accessibilityservice/AccessibilityServiceInfo; -Landroid/accessibilityservice/AccessibilityShortcutInfo; -Landroid/accessibilityservice/GestureDescription$MotionEventGenerator; -Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy; -Landroid/accessibilityservice/IAccessibilityServiceClient$Stub; -Landroid/accessibilityservice/IAccessibilityServiceClient; -Landroid/accessibilityservice/IAccessibilityServiceConnection$Default; -Landroid/accessibilityservice/IAccessibilityServiceConnection; -Landroid/accounts/AbstractAccountAuthenticator$Transport; -Landroid/accounts/AbstractAccountAuthenticator; -Landroid/accounts/Account$1; -Landroid/accounts/Account; -Landroid/accounts/AccountAndUser; -Landroid/accounts/AccountAuthenticatorResponse$1; -Landroid/accounts/AccountAuthenticatorResponse; -Landroid/accounts/AccountManager$10; -Landroid/accounts/AccountManager$11; -Landroid/accounts/AccountManager$15; -Landroid/accounts/AccountManager$16; -Landroid/accounts/AccountManager$17; -Landroid/accounts/AccountManager$18; -Landroid/accounts/AccountManager$1; -Landroid/accounts/AccountManager$20; -Landroid/accounts/AccountManager$2; -Landroid/accounts/AccountManager$3; -Landroid/accounts/AccountManager$4; -Landroid/accounts/AccountManager$5; -Landroid/accounts/AccountManager$8; -Landroid/accounts/AccountManager$AccountKeyData; -Landroid/accounts/AccountManager$AmsTask$1; -Landroid/accounts/AccountManager$AmsTask$Response-IA; -Landroid/accounts/AccountManager$AmsTask$Response; -Landroid/accounts/AccountManager$AmsTask; -Landroid/accounts/AccountManager$BaseFutureTask$1; -Landroid/accounts/AccountManager$BaseFutureTask$Response; -Landroid/accounts/AccountManager$BaseFutureTask; -Landroid/accounts/AccountManager$Future2Task$1; -Landroid/accounts/AccountManager$Future2Task; -Landroid/accounts/AccountManager; -Landroid/accounts/AccountManagerCallback; -Landroid/accounts/AccountManagerFuture; -Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener; -Landroid/accounts/AccountManagerInternal; -Landroid/accounts/AccountsException; -Landroid/accounts/AuthenticatorDescription$1; -Landroid/accounts/AuthenticatorDescription-IA; -Landroid/accounts/AuthenticatorDescription; -Landroid/accounts/AuthenticatorException; -Landroid/accounts/IAccountAuthenticator$Stub$Proxy; -Landroid/accounts/IAccountAuthenticator$Stub; -Landroid/accounts/IAccountAuthenticator; -Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy; -Landroid/accounts/IAccountAuthenticatorResponse$Stub; -Landroid/accounts/IAccountAuthenticatorResponse; -Landroid/accounts/IAccountManager$Stub$Proxy; -Landroid/accounts/IAccountManager$Stub; -Landroid/accounts/IAccountManager; -Landroid/accounts/IAccountManagerResponse$Stub$Proxy; -Landroid/accounts/IAccountManagerResponse$Stub; -Landroid/accounts/IAccountManagerResponse; -Landroid/accounts/NetworkErrorException; -Landroid/accounts/OnAccountsUpdateListener; -Landroid/accounts/OperationCanceledException; -Landroid/animation/AnimationHandler$$ExternalSyntheticLambda0; -Landroid/animation/AnimationHandler$1; -Landroid/animation/AnimationHandler$2; -Landroid/animation/AnimationHandler$AnimationFrameCallback; -Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider; -Landroid/animation/AnimationHandler$MyFrameCallbackProvider-IA; -Landroid/animation/AnimationHandler$MyFrameCallbackProvider; -Landroid/animation/AnimationHandler; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda0; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda1; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda2; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda3; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda4; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda5; -Landroid/animation/Animator$AnimatorCaller$$ExternalSyntheticLambda6; -Landroid/animation/Animator$AnimatorCaller; -Landroid/animation/Animator$AnimatorConstantState; -Landroid/animation/Animator$AnimatorListener; -Landroid/animation/Animator$AnimatorPauseListener; -Landroid/animation/Animator; -Landroid/animation/AnimatorInflater$PathDataEvaluator-IA; -Landroid/animation/AnimatorInflater$PathDataEvaluator; -Landroid/animation/AnimatorInflater; -Landroid/animation/AnimatorListenerAdapter; -Landroid/animation/AnimatorSet$$ExternalSyntheticLambda0; -Landroid/animation/AnimatorSet$$ExternalSyntheticLambda2; -Landroid/animation/AnimatorSet$1; -Landroid/animation/AnimatorSet$2; -Landroid/animation/AnimatorSet$3; -Landroid/animation/AnimatorSet$AnimationEvent; -Landroid/animation/AnimatorSet$Builder; -Landroid/animation/AnimatorSet$Node; -Landroid/animation/AnimatorSet$SeekState-IA; -Landroid/animation/AnimatorSet$SeekState; -Landroid/animation/AnimatorSet; -Landroid/animation/ArgbEvaluator; -Landroid/animation/BidirectionalTypeConverter; -Landroid/animation/FloatEvaluator; -Landroid/animation/FloatKeyframeSet; -Landroid/animation/IntEvaluator; -Landroid/animation/IntKeyframeSet; -Landroid/animation/Keyframe$FloatKeyframe; -Landroid/animation/Keyframe$IntKeyframe; -Landroid/animation/Keyframe$ObjectKeyframe; -Landroid/animation/Keyframe; -Landroid/animation/KeyframeSet; -Landroid/animation/Keyframes$FloatKeyframes; -Landroid/animation/Keyframes$IntKeyframes; -Landroid/animation/Keyframes; -Landroid/animation/LayoutTransition$1; -Landroid/animation/LayoutTransition$2; -Landroid/animation/LayoutTransition$3; -Landroid/animation/LayoutTransition$4; -Landroid/animation/LayoutTransition$5; -Landroid/animation/LayoutTransition$CleanupCallback; -Landroid/animation/LayoutTransition$TransitionListener; -Landroid/animation/LayoutTransition; -Landroid/animation/ObjectAnimator; -Landroid/animation/PathKeyframes$1; -Landroid/animation/PathKeyframes$2; -Landroid/animation/PathKeyframes$3; -Landroid/animation/PathKeyframes$4; -Landroid/animation/PathKeyframes$FloatKeyframesBase; -Landroid/animation/PathKeyframes$IntKeyframesBase; -Landroid/animation/PathKeyframes$SimpleKeyframes-IA; -Landroid/animation/PathKeyframes$SimpleKeyframes; -Landroid/animation/PathKeyframes; -Landroid/animation/PropertyValuesHolder$1; -Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder; -Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder; -Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource; -Landroid/animation/PropertyValuesHolder$PropertyValues; -Landroid/animation/PropertyValuesHolder-IA; -Landroid/animation/PropertyValuesHolder; -Landroid/animation/RectEvaluator; -Landroid/animation/RevealAnimator; -Landroid/animation/StateListAnimator$1; -Landroid/animation/StateListAnimator$StateListAnimatorConstantState; -Landroid/animation/StateListAnimator$Tuple-IA; -Landroid/animation/StateListAnimator$Tuple; -Landroid/animation/StateListAnimator; -Landroid/animation/TimeAnimator$TimeListener; -Landroid/animation/TimeAnimator; -Landroid/animation/TimeInterpolator; -Landroid/animation/TypeConverter; -Landroid/animation/TypeEvaluator; -Landroid/animation/ValueAnimator$AnimatorUpdateListener; -Landroid/animation/ValueAnimator$DurationScaleChangeListener; -Landroid/animation/ValueAnimator; -Landroid/annotation/ColorInt; -Landroid/annotation/CurrentTimeMillisLong; -Landroid/annotation/FloatRange; -Landroid/annotation/IdRes; -Landroid/annotation/IntRange; -Landroid/annotation/NonNull; -Landroid/annotation/RequiresPermission; -Landroid/annotation/Size; -Landroid/annotation/StringRes; -Landroid/annotation/SystemApi; -Landroid/apex/ApexInfo$1; -Landroid/apex/ApexInfo; -Landroid/apex/ApexSessionInfo$1; -Landroid/apex/ApexSessionInfo; -Landroid/apex/IApexService$Stub$Proxy; -Landroid/apex/IApexService$Stub; -Landroid/apex/IApexService; -Landroid/app/ActionBar$LayoutParams; -Landroid/app/ActionBar; -Landroid/app/Activity$$ExternalSyntheticLambda0; -Landroid/app/Activity$1; -Landroid/app/Activity$HostCallbacks; -Landroid/app/Activity$ManagedCursor; -Landroid/app/Activity$ManagedDialog-IA; -Landroid/app/Activity$ManagedDialog; -Landroid/app/Activity$NonConfigurationInstances; -Landroid/app/Activity$RequestFinishCallback; -Landroid/app/Activity$TranslucentConversionListener; -Landroid/app/Activity; -Landroid/app/ActivityClient$1; -Landroid/app/ActivityClient$ActivityClientControllerSingleton-IA; -Landroid/app/ActivityClient$ActivityClientControllerSingleton; -Landroid/app/ActivityClient-IA; -Landroid/app/ActivityClient; -Landroid/app/ActivityManager$1; -Landroid/app/ActivityManager$2; -Landroid/app/ActivityManager$3; -Landroid/app/ActivityManager$AppTask; -Landroid/app/ActivityManager$MemoryInfo$1; -Landroid/app/ActivityManager$MemoryInfo; -Landroid/app/ActivityManager$MyUidObserver; -Landroid/app/ActivityManager$OnUidImportanceListener; -Landroid/app/ActivityManager$PendingIntentInfo$1; -Landroid/app/ActivityManager$PendingIntentInfo; -Landroid/app/ActivityManager$ProcessErrorStateInfo$1; -Landroid/app/ActivityManager$ProcessErrorStateInfo; -Landroid/app/ActivityManager$RecentTaskInfo$1; -Landroid/app/ActivityManager$RecentTaskInfo$PersistedTaskSnapshotData; -Landroid/app/ActivityManager$RecentTaskInfo-IA; -Landroid/app/ActivityManager$RecentTaskInfo; -Landroid/app/ActivityManager$RunningAppProcessInfo$1; -Landroid/app/ActivityManager$RunningAppProcessInfo-IA; -Landroid/app/ActivityManager$RunningAppProcessInfo; -Landroid/app/ActivityManager$RunningServiceInfo$1; -Landroid/app/ActivityManager$RunningServiceInfo-IA; -Landroid/app/ActivityManager$RunningServiceInfo; -Landroid/app/ActivityManager$RunningTaskInfo$1; -Landroid/app/ActivityManager$RunningTaskInfo-IA; -Landroid/app/ActivityManager$RunningTaskInfo; -Landroid/app/ActivityManager$TaskDescription$1; -Landroid/app/ActivityManager$TaskDescription-IA; -Landroid/app/ActivityManager$TaskDescription; -Landroid/app/ActivityManager; -Landroid/app/ActivityManagerInternal; -Landroid/app/ActivityOptions$1; -Landroid/app/ActivityOptions$2; -Landroid/app/ActivityOptions$OnAnimationStartedListener; -Landroid/app/ActivityOptions$SceneTransitionInfo; -Landroid/app/ActivityOptions$SourceInfo$1; -Landroid/app/ActivityOptions$SourceInfo; -Landroid/app/ActivityOptions; -Landroid/app/ActivityTaskManager$1; -Landroid/app/ActivityTaskManager$2; -Landroid/app/ActivityTaskManager$RootTaskInfo$1; -Landroid/app/ActivityTaskManager$RootTaskInfo; -Landroid/app/ActivityTaskManager-IA; -Landroid/app/ActivityTaskManager; -Landroid/app/ActivityThread$$ExternalSyntheticLambda0; -Landroid/app/ActivityThread$$ExternalSyntheticLambda1; -Landroid/app/ActivityThread$$ExternalSyntheticLambda2; -Landroid/app/ActivityThread$$ExternalSyntheticLambda3; -Landroid/app/ActivityThread$$ExternalSyntheticLambda4; -Landroid/app/ActivityThread$$ExternalSyntheticLambda5; -Landroid/app/ActivityThread$1$$ExternalSyntheticLambda0; -Landroid/app/ActivityThread$1; -Landroid/app/ActivityThread$2; -Landroid/app/ActivityThread$3; -Landroid/app/ActivityThread$4; -Landroid/app/ActivityThread$ActivityClientRecord$1; -Landroid/app/ActivityThread$ActivityClientRecord; -Landroid/app/ActivityThread$AppBindData; -Landroid/app/ActivityThread$ApplicationThread$$ExternalSyntheticLambda2; -Landroid/app/ActivityThread$ApplicationThread$1; -Landroid/app/ActivityThread$ApplicationThread-IA; -Landroid/app/ActivityThread$BindServiceData; -Landroid/app/ActivityThread$ContextCleanupInfo; -Landroid/app/ActivityThread$CreateBackupAgentData; -Landroid/app/ActivityThread$CreateServiceData; -Landroid/app/ActivityThread$DumpComponentInfo; -Landroid/app/ActivityThread$DumpHeapData; -Landroid/app/ActivityThread$DumpResourcesData; -Landroid/app/ActivityThread$GcIdler; -Landroid/app/ActivityThread$H; -Landroid/app/ActivityThread$Idler-IA; -Landroid/app/ActivityThread$Idler; -Landroid/app/ActivityThread$Profiler; -Landroid/app/ActivityThread$ProviderClientRecord; -Landroid/app/ActivityThread$ProviderKey; -Landroid/app/ActivityThread$ProviderRefCount; -Landroid/app/ActivityThread$PurgeIdler; -Landroid/app/ActivityThread$ReceiverData; -Landroid/app/ActivityThread$RequestAssistContextExtras; -Landroid/app/ActivityThread$SafeCancellationTransport; -Landroid/app/ActivityThread$ServiceArgsData; -Landroid/app/ActivityThread$UpdateCompatibilityData; -Landroid/app/ActivityThread; -Landroid/app/ActivityThreadInternal; -Landroid/app/ActivityTransitionCoordinator; -Landroid/app/ActivityTransitionState$$ExternalSyntheticLambda0; -Landroid/app/ActivityTransitionState$1; -Landroid/app/ActivityTransitionState; -Landroid/app/AlarmManager$AlarmClockInfo$1; -Landroid/app/AlarmManager$AlarmClockInfo; -Landroid/app/AlarmManager$OnAlarmListener; -Landroid/app/AlarmManager; -Landroid/app/AlertDialog$Builder; -Landroid/app/AlertDialog; -Landroid/app/AppCompatCallbacks; -Landroid/app/AppCompatTaskInfo; -Landroid/app/AppComponentFactory; -Landroid/app/AppDetailsActivity; -Landroid/app/AppGlobals; -Landroid/app/AppOpInfo$Builder; -Landroid/app/AppOpInfo; -Landroid/app/AppOpsManager$$ExternalSyntheticLambda2; -Landroid/app/AppOpsManager$$ExternalSyntheticLambda3; -Landroid/app/AppOpsManager$$ExternalSyntheticLambda4; -Landroid/app/AppOpsManager$$ExternalSyntheticLambda5; -Landroid/app/AppOpsManager$$ExternalSyntheticLambda6; -Landroid/app/AppOpsManager$1; -Landroid/app/AppOpsManager$2; -Landroid/app/AppOpsManager$3; -Landroid/app/AppOpsManager$4; -Landroid/app/AppOpsManager$AppOpsCollector; -Landroid/app/AppOpsManager$AttributedHistoricalOps$1; -Landroid/app/AppOpsManager$AttributedHistoricalOps; -Landroid/app/AppOpsManager$AttributedOpEntry$1; -Landroid/app/AppOpsManager$AttributedOpEntry$LongSparseArrayParceling; -Landroid/app/AppOpsManager$AttributedOpEntry; -Landroid/app/AppOpsManager$HistoricalOp$1; -Landroid/app/AppOpsManager$HistoricalOp; -Landroid/app/AppOpsManager$HistoricalOps$1; -Landroid/app/AppOpsManager$HistoricalOps; -Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder; -Landroid/app/AppOpsManager$HistoricalOpsRequest; -Landroid/app/AppOpsManager$HistoricalPackageOps$1; -Landroid/app/AppOpsManager$HistoricalPackageOps; -Landroid/app/AppOpsManager$HistoricalUidOps$1; -Landroid/app/AppOpsManager$HistoricalUidOps; -Landroid/app/AppOpsManager$Mode; -Landroid/app/AppOpsManager$NoteOpEvent$1; -Landroid/app/AppOpsManager$NoteOpEvent; -Landroid/app/AppOpsManager$OnOpActiveChangedInternalListener; -Landroid/app/AppOpsManager$OnOpActiveChangedListener; -Landroid/app/AppOpsManager$OnOpChangedInternalListener; -Landroid/app/AppOpsManager$OnOpChangedListener; -Landroid/app/AppOpsManager$OnOpNotedCallback$1$$ExternalSyntheticLambda0; -Landroid/app/AppOpsManager$OnOpNotedCallback$1; -Landroid/app/AppOpsManager$OnOpNotedCallback; -Landroid/app/AppOpsManager$OnOpNotedInternalListener; -Landroid/app/AppOpsManager$OnOpNotedListener; -Landroid/app/AppOpsManager$OnOpStartedListener; -Landroid/app/AppOpsManager$OpEntry$1; -Landroid/app/AppOpsManager$OpEntry; -Landroid/app/AppOpsManager$OpEventProxyInfo$1; -Landroid/app/AppOpsManager$OpEventProxyInfo; -Landroid/app/AppOpsManager$PackageOps$1; -Landroid/app/AppOpsManager$PackageOps; -Landroid/app/AppOpsManager$PausedNotedAppOpsCollection; -Landroid/app/AppOpsManager$RestrictionBypass; -Landroid/app/AppOpsManager$SamplingStrategy; -Landroid/app/AppOpsManager; -Landroid/app/AppOpsManagerInternal; -Landroid/app/Application$ActivityLifecycleCallbacks; -Landroid/app/Application$OnProvideAssistDataListener; -Landroid/app/Application; -Landroid/app/ApplicationErrorReport$1; -Landroid/app/ApplicationErrorReport$AnrInfo; -Landroid/app/ApplicationErrorReport$BatteryInfo; -Landroid/app/ApplicationErrorReport$CrashInfo; -Landroid/app/ApplicationErrorReport$ParcelableCrashInfo$1; -Landroid/app/ApplicationErrorReport$ParcelableCrashInfo; -Landroid/app/ApplicationErrorReport$RunningServiceInfo; -Landroid/app/ApplicationErrorReport; -Landroid/app/ApplicationExitInfo$1; -Landroid/app/ApplicationExitInfo-IA; -Landroid/app/ApplicationExitInfo; -Landroid/app/ApplicationLoaders$CachedClassLoader-IA; -Landroid/app/ApplicationLoaders$CachedClassLoader; -Landroid/app/ApplicationLoaders; -Landroid/app/ApplicationPackageManager$$ExternalSyntheticLambda1; -Landroid/app/ApplicationPackageManager$$ExternalSyntheticLambda2; -Landroid/app/ApplicationPackageManager$1; -Landroid/app/ApplicationPackageManager$2; -Landroid/app/ApplicationPackageManager$3; -Landroid/app/ApplicationPackageManager$GetPackagesForUidResult; -Landroid/app/ApplicationPackageManager$HasSystemFeatureQuery; -Landroid/app/ApplicationPackageManager$MoveCallbackDelegate; -Landroid/app/ApplicationPackageManager$ResourceName; -Landroid/app/AsyncNotedAppOp$1; -Landroid/app/AsyncNotedAppOp; -Landroid/app/AutomaticZenRule$1; -Landroid/app/AutomaticZenRule; -Landroid/app/BackStackRecord$Op; -Landroid/app/BackStackRecord; -Landroid/app/BackStackState$1; -Landroid/app/BackStackState; -Landroid/app/BackgroundServiceStartNotAllowedException$1; -Landroid/app/BackgroundServiceStartNotAllowedException; -Landroid/app/BroadcastOptions; -Landroid/app/ClientTransactionHandler; -Landroid/app/ComponentCaller; -Landroid/app/ComponentOptions; -Landroid/app/ConfigurationChangedListenerController; -Landroid/app/ConfigurationController; -Landroid/app/ContentProviderHolder$1; -Landroid/app/ContentProviderHolder-IA; -Landroid/app/ContentProviderHolder; -Landroid/app/ContextImpl$1; -Landroid/app/ContextImpl$ApplicationContentResolver; -Landroid/app/DexLoadReporter; -Landroid/app/Dialog$$ExternalSyntheticLambda0; -Landroid/app/Dialog$$ExternalSyntheticLambda1; -Landroid/app/Dialog$$ExternalSyntheticLambda2; -Landroid/app/Dialog$ListenersHandler; -Landroid/app/Dialog; -Landroid/app/DialogFragment; -Landroid/app/DirectAction$1; -Landroid/app/DirectAction; -Landroid/app/DisabledWallpaperManager; -Landroid/app/DownloadManager$CursorTranslator; -Landroid/app/DownloadManager$Query; -Landroid/app/DownloadManager$Request; -Landroid/app/DownloadManager; -Landroid/app/DreamManager; -Landroid/app/EnterTransitionCoordinator; -Landroid/app/EventLogTags; -Landroid/app/ExitTransitionCoordinator$ActivityExitTransitionCallbacks; -Landroid/app/ExitTransitionCoordinator$ExitTransitionCallbacks; -Landroid/app/ExitTransitionCoordinator; -Landroid/app/FeatureFlags; -Landroid/app/FeatureFlagsImpl; -Landroid/app/Flags; -Landroid/app/ForegroundServiceStartNotAllowedException$1; -Landroid/app/ForegroundServiceStartNotAllowedException; -Landroid/app/ForegroundServiceTypePolicy$ForegroundServiceTypePolicyInfo; -Landroid/app/Fragment$1; -Landroid/app/Fragment$AnimationInfo; -Landroid/app/Fragment$InstantiationException; -Landroid/app/Fragment$OnStartEnterTransitionListener; -Landroid/app/Fragment; -Landroid/app/FragmentContainer; -Landroid/app/FragmentController; -Landroid/app/FragmentHostCallback; -Landroid/app/FragmentManager$BackStackEntry; -Landroid/app/FragmentManager$FragmentLifecycleCallbacks; -Landroid/app/FragmentManager$OnBackStackChangedListener; -Landroid/app/FragmentManager; -Landroid/app/FragmentManagerImpl$1; -Landroid/app/FragmentManagerImpl$2; -Landroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener; -Landroid/app/FragmentManagerImpl$OpGenerator; -Landroid/app/FragmentManagerImpl$StartEnterTransitionListener; -Landroid/app/FragmentManagerImpl; -Landroid/app/FragmentManagerNonConfig; -Landroid/app/FragmentManagerState$1; -Landroid/app/FragmentManagerState; -Landroid/app/FragmentState$1; -Landroid/app/FragmentState; -Landroid/app/FragmentTransaction; -Landroid/app/FragmentTransition$2; -Landroid/app/FragmentTransition$5; -Landroid/app/FragmentTransition$FragmentContainerTransition; -Landroid/app/FragmentTransition; -Landroid/app/GameManager; -Landroid/app/GrammaticalInflectionManager; -Landroid/app/IActivityClientController$Stub$Proxy; -Landroid/app/IActivityClientController$Stub; -Landroid/app/IActivityClientController; -Landroid/app/IActivityController$Stub$Proxy; -Landroid/app/IActivityController$Stub; -Landroid/app/IActivityController; -Landroid/app/IActivityManager$Stub$Proxy; -Landroid/app/IActivityManager$Stub; -Landroid/app/IActivityManager; -Landroid/app/IActivityTaskManager$Stub$Proxy; -Landroid/app/IActivityTaskManager$Stub; -Landroid/app/IActivityTaskManager; -Landroid/app/IAlarmCompleteListener$Stub$Proxy; -Landroid/app/IAlarmCompleteListener$Stub; -Landroid/app/IAlarmCompleteListener; -Landroid/app/IAlarmListener$Stub; -Landroid/app/IAlarmListener; -Landroid/app/IAlarmManager$Stub$Proxy; -Landroid/app/IAlarmManager$Stub; -Landroid/app/IAlarmManager; -Landroid/app/IAppTask$Stub$Proxy; -Landroid/app/IAppTask$Stub; -Landroid/app/IAppTask; -Landroid/app/IAppTraceRetriever$Stub$Proxy; -Landroid/app/IAppTraceRetriever$Stub; -Landroid/app/IAppTraceRetriever; -Landroid/app/IApplicationStartInfoCompleteListener$Stub$Proxy; -Landroid/app/IApplicationStartInfoCompleteListener$Stub; -Landroid/app/IApplicationStartInfoCompleteListener; -Landroid/app/IApplicationThread$Stub; -Landroid/app/IApplicationThread; -Landroid/app/IAssistDataReceiver$Stub$Proxy; -Landroid/app/IAssistDataReceiver$Stub; -Landroid/app/IAssistDataReceiver; -Landroid/app/IBackupAgent$Stub$Proxy; -Landroid/app/IBackupAgent$Stub; -Landroid/app/IBackupAgent; -Landroid/app/ICompatCameraControlCallback; -Landroid/app/IForegroundServiceObserver$Stub$Proxy; -Landroid/app/IForegroundServiceObserver$Stub; -Landroid/app/IForegroundServiceObserver; -Landroid/app/IGameManagerService$Stub$Proxy; -Landroid/app/IGameManagerService$Stub; -Landroid/app/IGameManagerService; -Landroid/app/IInstantAppResolver$Stub$Proxy; -Landroid/app/IInstantAppResolver$Stub; -Landroid/app/IInstantAppResolver; -Landroid/app/IInstrumentationWatcher$Stub$Proxy; -Landroid/app/IInstrumentationWatcher$Stub; -Landroid/app/IInstrumentationWatcher; -Landroid/app/ILocalWallpaperColorConsumer$Stub; -Landroid/app/ILocalWallpaperColorConsumer; -Landroid/app/ILocaleManager$Stub$Proxy; -Landroid/app/ILocaleManager$Stub; -Landroid/app/ILocaleManager; -Landroid/app/INotificationManager$Stub$Proxy; -Landroid/app/INotificationManager$Stub; -Landroid/app/INotificationManager; -Landroid/app/IOnProjectionStateChangedListener$Stub; -Landroid/app/IOnProjectionStateChangedListener; -Landroid/app/IParcelFileDescriptorRetriever$Stub$Proxy; -Landroid/app/IParcelFileDescriptorRetriever$Stub; -Landroid/app/IParcelFileDescriptorRetriever; -Landroid/app/IProcessObserver$Stub$Proxy; -Landroid/app/IProcessObserver$Stub; -Landroid/app/IProcessObserver; -Landroid/app/IRequestFinishCallback$Stub$Proxy; -Landroid/app/IRequestFinishCallback$Stub; -Landroid/app/IRequestFinishCallback; -Landroid/app/IScreenCaptureObserver; -Landroid/app/ISearchManager$Stub$Proxy; -Landroid/app/ISearchManager$Stub; -Landroid/app/ISearchManager; -Landroid/app/IServiceConnection$Stub; -Landroid/app/IServiceConnection; -Landroid/app/IStopUserCallback$Stub$Proxy; -Landroid/app/IStopUserCallback$Stub; -Landroid/app/IStopUserCallback; -Landroid/app/ITaskStackListener$Stub$Proxy; -Landroid/app/ITaskStackListener$Stub; -Landroid/app/ITaskStackListener; -Landroid/app/ITransientNotification$Stub$Proxy; -Landroid/app/ITransientNotification$Stub; -Landroid/app/ITransientNotification; -Landroid/app/ITransientNotificationCallback$Stub$Proxy; -Landroid/app/ITransientNotificationCallback$Stub; -Landroid/app/ITransientNotificationCallback; -Landroid/app/IUiAutomationConnection$Stub$Proxy; -Landroid/app/IUiAutomationConnection$Stub; -Landroid/app/IUiAutomationConnection; -Landroid/app/IUiModeManager$Stub$Proxy; -Landroid/app/IUiModeManager$Stub; -Landroid/app/IUiModeManager; -Landroid/app/IUiModeManagerCallback$Stub; -Landroid/app/IUiModeManagerCallback; -Landroid/app/IUidFrozenStateChangedCallback$Stub$Proxy; -Landroid/app/IUidFrozenStateChangedCallback$Stub; -Landroid/app/IUidFrozenStateChangedCallback; -Landroid/app/IUidObserver$Stub; -Landroid/app/IUidObserver; -Landroid/app/IUnsafeIntentStrictModeCallback$Stub; -Landroid/app/IUnsafeIntentStrictModeCallback; -Landroid/app/IUriGrantsManager$Stub$Proxy; -Landroid/app/IUriGrantsManager$Stub; -Landroid/app/IUriGrantsManager; -Landroid/app/IUserSwitchObserver$Stub$Proxy; -Landroid/app/IUserSwitchObserver$Stub; -Landroid/app/IUserSwitchObserver; -Landroid/app/IWallpaperManager$Stub$Proxy; -Landroid/app/IWallpaperManager$Stub; -Landroid/app/IWallpaperManager; -Landroid/app/IWallpaperManagerCallback$Stub$Proxy; -Landroid/app/IWallpaperManagerCallback$Stub; -Landroid/app/IWallpaperManagerCallback; -Landroid/app/InstantAppResolverService$1; -Landroid/app/InstantAppResolverService$InstantAppResolutionCallback; -Landroid/app/InstantAppResolverService$ServiceHandler; -Landroid/app/InstantAppResolverService; -Landroid/app/Instrumentation$ActivityGoing; -Landroid/app/Instrumentation$ActivityMonitor; -Landroid/app/Instrumentation$ActivityResult; -Landroid/app/Instrumentation$ActivityWaiter; -Landroid/app/Instrumentation; -Landroid/app/IntentReceiverLeaked; -Landroid/app/IntentService$ServiceHandler; -Landroid/app/IntentService; -Landroid/app/KeyguardManager$1; -Landroid/app/KeyguardManager$KeyguardDismissCallback; -Landroid/app/KeyguardManager; -Landroid/app/ListActivity; -Landroid/app/LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0; -Landroid/app/LoadedApk$ReceiverDispatcher$Args; -Landroid/app/LoadedApk$ReceiverDispatcher; -Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo-IA; -Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo; -Landroid/app/LoadedApk$ServiceDispatcher$DeathMonitor; -Landroid/app/LoadedApk$ServiceDispatcher$RunConnection; -Landroid/app/LoadedApk$ServiceDispatcher; -Landroid/app/LoadedApk$SplitDependencyLoaderImpl; -Landroid/app/LoadedApk$WarningContextClassLoader-IA; -Landroid/app/LoadedApk$WarningContextClassLoader; -Landroid/app/LoadedApk; -Landroid/app/LoaderManager$LoaderCallbacks; -Landroid/app/LoaderManager; -Landroid/app/LoaderManagerImpl$LoaderInfo; -Landroid/app/LoaderManagerImpl; -Landroid/app/LocaleConfig$1; -Landroid/app/LocaleConfig; -Landroid/app/LocaleManager; -Landroid/app/NativeActivity; -Landroid/app/Notification$$ExternalSyntheticLambda0; -Landroid/app/Notification$1; -Landroid/app/Notification$Action$1; -Landroid/app/Notification$Action$Builder; -Landroid/app/Notification$Action-IA; -Landroid/app/Notification$Action; -Landroid/app/Notification$BigPictureStyle; -Landroid/app/Notification$BigTextStyle; -Landroid/app/Notification$BubbleMetadata$1; -Landroid/app/Notification$BubbleMetadata$Builder; -Landroid/app/Notification$BubbleMetadata-IA; -Landroid/app/Notification$BubbleMetadata; -Landroid/app/Notification$Builder; -Landroid/app/Notification$BuilderRemoteViews; -Landroid/app/Notification$CallStyle; -Landroid/app/Notification$Colors; -Landroid/app/Notification$DecoratedCustomViewStyle; -Landroid/app/Notification$DecoratedMediaCustomViewStyle; -Landroid/app/Notification$Extender; -Landroid/app/Notification$InboxStyle; -Landroid/app/Notification$MediaStyle; -Landroid/app/Notification$MessagingStyle$Message; -Landroid/app/Notification$MessagingStyle; -Landroid/app/Notification$StandardTemplateParams-IA; -Landroid/app/Notification$StandardTemplateParams; -Landroid/app/Notification$Style; -Landroid/app/Notification$TemplateBindResult$MarginSet; -Landroid/app/Notification$TemplateBindResult; -Landroid/app/Notification$TvExtender; -Landroid/app/Notification; -Landroid/app/NotificationChannel$1; -Landroid/app/NotificationChannel; -Landroid/app/NotificationChannelGroup$1; -Landroid/app/NotificationChannelGroup; -Landroid/app/NotificationHistory$1; -Landroid/app/NotificationHistory$HistoricalNotification$Builder; -Landroid/app/NotificationHistory$HistoricalNotification; -Landroid/app/NotificationHistory; -Landroid/app/NotificationManager$Policy$1; -Landroid/app/NotificationManager$Policy; -Landroid/app/NotificationManager; -Landroid/app/OnActivityPausedListener; -Landroid/app/PackageInstallObserver$1; -Landroid/app/PackageInstallObserver; -Landroid/app/PendingIntent$$ExternalSyntheticLambda0; -Landroid/app/PendingIntent$$ExternalSyntheticLambda1; -Landroid/app/PendingIntent$$ExternalSyntheticLambda2; -Landroid/app/PendingIntent$$ExternalSyntheticLambda3; -Landroid/app/PendingIntent$1; -Landroid/app/PendingIntent$CancelListener; -Landroid/app/PendingIntent$CanceledException; -Landroid/app/PendingIntent$FinishedDispatcher; -Landroid/app/PendingIntent$OnFinished; -Landroid/app/PendingIntent$OnMarshaledListener; -Landroid/app/PendingIntent; -Landroid/app/Person$1; -Landroid/app/Person$Builder-IA; -Landroid/app/Person$Builder; -Landroid/app/Person-IA; -Landroid/app/Person; -Landroid/app/PictureInPictureParams$1; -Landroid/app/PictureInPictureParams$Builder; -Landroid/app/PictureInPictureParams; -Landroid/app/PictureInPictureUiState$1; -Landroid/app/PictureInPictureUiState; -Landroid/app/Presentation; -Landroid/app/ProcessMemoryState$1; -Landroid/app/ProcessMemoryState; -Landroid/app/ProfilerInfo$1; -Landroid/app/ProfilerInfo; -Landroid/app/ProgressDialog$1; -Landroid/app/ProgressDialog; -Landroid/app/PropertyInvalidatedCache$1; -Landroid/app/PropertyInvalidatedCache$AutoCorker$1; -Landroid/app/PropertyInvalidatedCache$AutoCorker; -Landroid/app/PropertyInvalidatedCache$DefaultComputer; -Landroid/app/PropertyInvalidatedCache$NoPreloadHolder; -Landroid/app/PropertyInvalidatedCache$QueryHandler; -Landroid/app/PropertyInvalidatedCache; -Landroid/app/QueuedWork$QueuedWorkHandler; -Landroid/app/QueuedWork; -Landroid/app/ReceiverInfo$1; -Landroid/app/ReceiverInfo; -Landroid/app/ReceiverRestrictedContext; -Landroid/app/RemoteAction$1; -Landroid/app/RemoteAction; -Landroid/app/RemoteInput$1; -Landroid/app/RemoteInput$Builder; -Landroid/app/RemoteInput-IA; -Landroid/app/RemoteInput; -Landroid/app/RemoteInputHistoryItem$1; -Landroid/app/RemoteInputHistoryItem; -Landroid/app/RemoteServiceException; -Landroid/app/ResourcesManager$$ExternalSyntheticLambda0; -Landroid/app/ResourcesManager$$ExternalSyntheticLambda1; -Landroid/app/ResourcesManager$ActivityResource-IA; -Landroid/app/ResourcesManager$ActivityResource; -Landroid/app/ResourcesManager$ActivityResources-IA; -Landroid/app/ResourcesManager$ActivityResources; -Landroid/app/ResourcesManager$ApkAssetsSupplier; -Landroid/app/ResourcesManager$ApkKey; -Landroid/app/ResourcesManager$UpdateHandler-IA; -Landroid/app/ResourcesManager$UpdateHandler; -Landroid/app/ResourcesManager; -Landroid/app/ResultInfo$1; -Landroid/app/ResultInfo; -Landroid/app/RuntimeAppOpAccessMessage$1; -Landroid/app/RuntimeAppOpAccessMessage; -Landroid/app/SearchDialog; -Landroid/app/SearchManager$OnCancelListener; -Landroid/app/SearchManager$OnDismissListener; -Landroid/app/SearchManager; -Landroid/app/SearchableInfo$1; -Landroid/app/SearchableInfo$ActionKeyInfo$1; -Landroid/app/SearchableInfo$ActionKeyInfo; -Landroid/app/SearchableInfo; -Landroid/app/Service; -Landroid/app/ServiceConnectionLeaked; -Landroid/app/ServiceStartArgs$1; -Landroid/app/ServiceStartArgs; -Landroid/app/ServiceStartNotAllowedException; -Landroid/app/SharedElementCallback$1; -Landroid/app/SharedElementCallback; -Landroid/app/SharedPreferencesImpl$$ExternalSyntheticLambda0; -Landroid/app/SharedPreferencesImpl$1; -Landroid/app/SharedPreferencesImpl$EditorImpl$$ExternalSyntheticLambda0; -Landroid/app/SharedPreferencesImpl$EditorImpl$1; -Landroid/app/SharedPreferencesImpl$EditorImpl$2; -Landroid/app/SharedPreferencesImpl$EditorImpl; -Landroid/app/SharedPreferencesImpl$MemoryCommitResult-IA; -Landroid/app/SharedPreferencesImpl$MemoryCommitResult; -Landroid/app/SharedPreferencesImpl$SharedPreferencesThreadFactory; -Landroid/app/SharedPreferencesImpl; -Landroid/app/StackTrace; -Landroid/app/StatusBarManager; -Landroid/app/SyncNotedAppOp$1; -Landroid/app/SyncNotedAppOp; -Landroid/app/SynchronousUserSwitchObserver; -Landroid/app/SystemServiceRegistry$100; -Landroid/app/SystemServiceRegistry$101; -Landroid/app/SystemServiceRegistry$102; -Landroid/app/SystemServiceRegistry$103; -Landroid/app/SystemServiceRegistry$104; -Landroid/app/SystemServiceRegistry$105; -Landroid/app/SystemServiceRegistry$106; -Landroid/app/SystemServiceRegistry$107; -Landroid/app/SystemServiceRegistry$108; -Landroid/app/SystemServiceRegistry$109; -Landroid/app/SystemServiceRegistry$10; -Landroid/app/SystemServiceRegistry$110; -Landroid/app/SystemServiceRegistry$111; -Landroid/app/SystemServiceRegistry$112; -Landroid/app/SystemServiceRegistry$113; -Landroid/app/SystemServiceRegistry$114; -Landroid/app/SystemServiceRegistry$115; -Landroid/app/SystemServiceRegistry$116; -Landroid/app/SystemServiceRegistry$117; -Landroid/app/SystemServiceRegistry$118; -Landroid/app/SystemServiceRegistry$119; -Landroid/app/SystemServiceRegistry$11; -Landroid/app/SystemServiceRegistry$120; -Landroid/app/SystemServiceRegistry$121; -Landroid/app/SystemServiceRegistry$122; -Landroid/app/SystemServiceRegistry$123; -Landroid/app/SystemServiceRegistry$124; -Landroid/app/SystemServiceRegistry$125; -Landroid/app/SystemServiceRegistry$126; -Landroid/app/SystemServiceRegistry$127; -Landroid/app/SystemServiceRegistry$128; -Landroid/app/SystemServiceRegistry$129; -Landroid/app/SystemServiceRegistry$12; -Landroid/app/SystemServiceRegistry$130; -Landroid/app/SystemServiceRegistry$131; -Landroid/app/SystemServiceRegistry$132; -Landroid/app/SystemServiceRegistry$133; -Landroid/app/SystemServiceRegistry$134; -Landroid/app/SystemServiceRegistry$135; -Landroid/app/SystemServiceRegistry$136; -Landroid/app/SystemServiceRegistry$137; -Landroid/app/SystemServiceRegistry$138; -Landroid/app/SystemServiceRegistry$139; -Landroid/app/SystemServiceRegistry$13; -Landroid/app/SystemServiceRegistry$140; -Landroid/app/SystemServiceRegistry$143; -Landroid/app/SystemServiceRegistry$144; -Landroid/app/SystemServiceRegistry$14; -Landroid/app/SystemServiceRegistry$15; -Landroid/app/SystemServiceRegistry$16; -Landroid/app/SystemServiceRegistry$17; -Landroid/app/SystemServiceRegistry$18; -Landroid/app/SystemServiceRegistry$19; -Landroid/app/SystemServiceRegistry$1; -Landroid/app/SystemServiceRegistry$20; -Landroid/app/SystemServiceRegistry$21; -Landroid/app/SystemServiceRegistry$22; -Landroid/app/SystemServiceRegistry$23; -Landroid/app/SystemServiceRegistry$24; -Landroid/app/SystemServiceRegistry$25; -Landroid/app/SystemServiceRegistry$26; -Landroid/app/SystemServiceRegistry$27; -Landroid/app/SystemServiceRegistry$28; -Landroid/app/SystemServiceRegistry$29; -Landroid/app/SystemServiceRegistry$2; -Landroid/app/SystemServiceRegistry$30; -Landroid/app/SystemServiceRegistry$31; -Landroid/app/SystemServiceRegistry$32; -Landroid/app/SystemServiceRegistry$33; -Landroid/app/SystemServiceRegistry$34; -Landroid/app/SystemServiceRegistry$35; -Landroid/app/SystemServiceRegistry$36; -Landroid/app/SystemServiceRegistry$37; -Landroid/app/SystemServiceRegistry$38; -Landroid/app/SystemServiceRegistry$39; -Landroid/app/SystemServiceRegistry$3; -Landroid/app/SystemServiceRegistry$40; -Landroid/app/SystemServiceRegistry$41; -Landroid/app/SystemServiceRegistry$42; -Landroid/app/SystemServiceRegistry$43; -Landroid/app/SystemServiceRegistry$44; -Landroid/app/SystemServiceRegistry$45; -Landroid/app/SystemServiceRegistry$46; -Landroid/app/SystemServiceRegistry$47; -Landroid/app/SystemServiceRegistry$48; -Landroid/app/SystemServiceRegistry$49; -Landroid/app/SystemServiceRegistry$4; -Landroid/app/SystemServiceRegistry$50; -Landroid/app/SystemServiceRegistry$51; -Landroid/app/SystemServiceRegistry$52; -Landroid/app/SystemServiceRegistry$53; -Landroid/app/SystemServiceRegistry$54; -Landroid/app/SystemServiceRegistry$55; -Landroid/app/SystemServiceRegistry$56; -Landroid/app/SystemServiceRegistry$57; -Landroid/app/SystemServiceRegistry$58; -Landroid/app/SystemServiceRegistry$59; -Landroid/app/SystemServiceRegistry$5; -Landroid/app/SystemServiceRegistry$60; -Landroid/app/SystemServiceRegistry$61; -Landroid/app/SystemServiceRegistry$62; -Landroid/app/SystemServiceRegistry$63; -Landroid/app/SystemServiceRegistry$64; -Landroid/app/SystemServiceRegistry$65; -Landroid/app/SystemServiceRegistry$66; -Landroid/app/SystemServiceRegistry$67; -Landroid/app/SystemServiceRegistry$68; -Landroid/app/SystemServiceRegistry$69; -Landroid/app/SystemServiceRegistry$6; -Landroid/app/SystemServiceRegistry$70; -Landroid/app/SystemServiceRegistry$71; -Landroid/app/SystemServiceRegistry$72; -Landroid/app/SystemServiceRegistry$73; -Landroid/app/SystemServiceRegistry$74; -Landroid/app/SystemServiceRegistry$75; -Landroid/app/SystemServiceRegistry$76; -Landroid/app/SystemServiceRegistry$77; -Landroid/app/SystemServiceRegistry$78; -Landroid/app/SystemServiceRegistry$79; -Landroid/app/SystemServiceRegistry$7; -Landroid/app/SystemServiceRegistry$80; -Landroid/app/SystemServiceRegistry$81; -Landroid/app/SystemServiceRegistry$82; -Landroid/app/SystemServiceRegistry$83; -Landroid/app/SystemServiceRegistry$84; -Landroid/app/SystemServiceRegistry$85; -Landroid/app/SystemServiceRegistry$86; -Landroid/app/SystemServiceRegistry$87; -Landroid/app/SystemServiceRegistry$88; -Landroid/app/SystemServiceRegistry$89; -Landroid/app/SystemServiceRegistry$8; -Landroid/app/SystemServiceRegistry$90; -Landroid/app/SystemServiceRegistry$91; -Landroid/app/SystemServiceRegistry$92; -Landroid/app/SystemServiceRegistry$93; -Landroid/app/SystemServiceRegistry$94; -Landroid/app/SystemServiceRegistry$95; -Landroid/app/SystemServiceRegistry$96; -Landroid/app/SystemServiceRegistry$97; -Landroid/app/SystemServiceRegistry$98; -Landroid/app/SystemServiceRegistry$99; -Landroid/app/SystemServiceRegistry$9; -Landroid/app/SystemServiceRegistry$CachedServiceFetcher; -Landroid/app/SystemServiceRegistry$ContextAwareServiceProducerWithBinder; -Landroid/app/SystemServiceRegistry$ContextAwareServiceProducerWithoutBinder; -Landroid/app/SystemServiceRegistry$ServiceFetcher; -Landroid/app/SystemServiceRegistry$StaticServiceFetcher; -Landroid/app/SystemServiceRegistry$StaticServiceProducerWithBinder; -Landroid/app/SystemServiceRegistry$StaticServiceProducerWithoutBinder; -Landroid/app/SystemServiceRegistry; -Landroid/app/TaskInfo; -Landroid/app/TaskStackListener; -Landroid/app/UiModeManager$1; -Landroid/app/UiModeManager$Globals; -Landroid/app/UiModeManager$InnerListener; -Landroid/app/UiModeManager$OnProjectionStateChangedListener; -Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager-IA; -Landroid/app/UiModeManager$OnProjectionStateChangedListenerResourceManager; -Landroid/app/UiModeManager; -Landroid/app/UidObserver; -Landroid/app/UriGrantsManager$1; -Landroid/app/UriGrantsManager; -Landroid/app/UserSwitchObserver; -Landroid/app/VoiceInteractor$Request; -Landroid/app/VoiceInteractor; -Landroid/app/Vr2dDisplayProperties$1; -Landroid/app/Vr2dDisplayProperties; -Landroid/app/VrManager; -Landroid/app/WaitResult$1; -Landroid/app/WaitResult; -Landroid/app/WallpaperColors$1; -Landroid/app/WallpaperColors; -Landroid/app/WallpaperInfo$1; -Landroid/app/WallpaperInfo; -Landroid/app/WallpaperManager$CachedWallpaper; -Landroid/app/WallpaperManager$ColorManagementProxy; -Landroid/app/WallpaperManager$Globals$$ExternalSyntheticLambda1; -Landroid/app/WallpaperManager$Globals$1; -Landroid/app/WallpaperManager$Globals; -Landroid/app/WallpaperManager$OnColorsChangedListener; -Landroid/app/WallpaperManager; -Landroid/app/WindowConfiguration$1; -Landroid/app/WindowConfiguration-IA; -Landroid/app/WindowConfiguration; -Landroid/app/admin/DeviceAdminInfo$1; -Landroid/app/admin/DeviceAdminInfo$PolicyInfo; -Landroid/app/admin/DeviceAdminInfo; -Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache; -Landroid/app/admin/DevicePolicyCache; -Landroid/app/admin/DevicePolicyEventLogger; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda10; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda11; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda2; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda3; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda4; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda5; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda6; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda7; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda8; -Landroid/app/admin/DevicePolicyManager$$ExternalSyntheticLambda9; -Landroid/app/admin/DevicePolicyManager$1; -Landroid/app/admin/DevicePolicyManager$2; -Landroid/app/admin/DevicePolicyManager$InstallSystemUpdateCallback; -Landroid/app/admin/DevicePolicyManager$OnClearApplicationUserDataListener; -Landroid/app/admin/DevicePolicyManager; -Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener; -Landroid/app/admin/DevicePolicyManagerInternal; -Landroid/app/admin/DevicePolicyResourcesManager; -Landroid/app/admin/DeviceStateCache; -Landroid/app/admin/FactoryResetProtectionPolicy$1; -Landroid/app/admin/FactoryResetProtectionPolicy; -Landroid/app/admin/IAuditLogEventsCallback$Stub; -Landroid/app/admin/IAuditLogEventsCallback; -Landroid/app/admin/IDeviceAdminService$Stub$Proxy; -Landroid/app/admin/IDeviceAdminService$Stub; -Landroid/app/admin/IDeviceAdminService; -Landroid/app/admin/IDevicePolicyManager$Stub$Proxy; -Landroid/app/admin/IDevicePolicyManager$Stub; -Landroid/app/admin/IDevicePolicyManager; -Landroid/app/admin/IKeyguardCallback$Stub; -Landroid/app/admin/IKeyguardCallback; -Landroid/app/admin/NetworkEvent$1; -Landroid/app/admin/NetworkEvent; -Landroid/app/admin/ParcelableResource$1; -Landroid/app/admin/ParcelableResource; -Landroid/app/admin/PasswordMetrics$1; -Landroid/app/admin/PasswordMetrics$ComplexityBucket$1; -Landroid/app/admin/PasswordMetrics$ComplexityBucket$2; -Landroid/app/admin/PasswordMetrics$ComplexityBucket$3; -Landroid/app/admin/PasswordMetrics$ComplexityBucket$4; -Landroid/app/admin/PasswordMetrics$ComplexityBucket; -Landroid/app/admin/PasswordMetrics; -Landroid/app/admin/PasswordPolicy; -Landroid/app/admin/SecurityLog$SecurityEvent$1; -Landroid/app/admin/SecurityLog$SecurityEvent; -Landroid/app/admin/SecurityLog; -Landroid/app/admin/StartInstallingUpdateCallback$Stub$Proxy; -Landroid/app/admin/StartInstallingUpdateCallback$Stub; -Landroid/app/admin/StartInstallingUpdateCallback; -Landroid/app/admin/SystemUpdateInfo$1; -Landroid/app/admin/SystemUpdateInfo; -Landroid/app/admin/SystemUpdatePolicy$1; -Landroid/app/admin/SystemUpdatePolicy; -Landroid/app/admin/WifiSsidPolicy$1; -Landroid/app/admin/WifiSsidPolicy; -Landroid/app/ambientcontext/AmbientContextManager; -Landroid/app/ambientcontext/IAmbientContextManager$Stub$Proxy; -Landroid/app/ambientcontext/IAmbientContextManager$Stub; -Landroid/app/ambientcontext/IAmbientContextManager; -Landroid/app/assist/ActivityId$1; -Landroid/app/assist/ActivityId; -Landroid/app/assist/AssistContent$1; -Landroid/app/assist/AssistContent; -Landroid/app/assist/AssistStructure$1; -Landroid/app/assist/AssistStructure$AutofillOverlay; -Landroid/app/assist/AssistStructure$HtmlInfoNode$1; -Landroid/app/assist/AssistStructure$HtmlInfoNode; -Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder; -Landroid/app/assist/AssistStructure$ParcelTransferReader; -Landroid/app/assist/AssistStructure$ParcelTransferWriter; -Landroid/app/assist/AssistStructure$SendChannel; -Landroid/app/assist/AssistStructure$ViewNode; -Landroid/app/assist/AssistStructure$ViewNodeBuilder; -Landroid/app/assist/AssistStructure$ViewNodeParcelable$1; -Landroid/app/assist/AssistStructure$ViewNodeParcelable; -Landroid/app/assist/AssistStructure$ViewNodeText; -Landroid/app/assist/AssistStructure$ViewStackEntry; -Landroid/app/assist/AssistStructure$WindowNode; -Landroid/app/assist/AssistStructure; -Landroid/app/backup/BackupAgent$BackupServiceBinder-IA; -Landroid/app/backup/BackupAgent$BackupServiceBinder; -Landroid/app/backup/BackupAgent$SharedPrefsSynchronizer; -Landroid/app/backup/BackupAgent; -Landroid/app/backup/BackupAgentHelper; -Landroid/app/backup/BackupDataInput$EntityHeader; -Landroid/app/backup/BackupDataInput; -Landroid/app/backup/BackupDataOutput; -Landroid/app/backup/BackupHelper; -Landroid/app/backup/BackupHelperDispatcher$Header-IA; -Landroid/app/backup/BackupHelperDispatcher$Header; -Landroid/app/backup/BackupHelperDispatcher; -Landroid/app/backup/BackupHelperWithLogger; -Landroid/app/backup/BackupManager$BackupObserverWrapper$1; -Landroid/app/backup/BackupManager$BackupObserverWrapper; -Landroid/app/backup/BackupManager; -Landroid/app/backup/BackupManagerMonitor; -Landroid/app/backup/BackupObserver; -Landroid/app/backup/BackupProgress$1; -Landroid/app/backup/BackupProgress; -Landroid/app/backup/BackupRestoreEventLogger; -Landroid/app/backup/BackupTransport$TransportImpl; -Landroid/app/backup/BackupTransport; -Landroid/app/backup/BlobBackupHelper; -Landroid/app/backup/FileBackupHelper; -Landroid/app/backup/FileBackupHelperBase; -Landroid/app/backup/FullBackup; -Landroid/app/backup/FullBackupDataOutput; -Landroid/app/backup/IBackupCallback$Stub$Proxy; -Landroid/app/backup/IBackupCallback$Stub; -Landroid/app/backup/IBackupCallback; -Landroid/app/backup/IBackupManager$Stub$Proxy; -Landroid/app/backup/IBackupManager$Stub; -Landroid/app/backup/IBackupManager; -Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy; -Landroid/app/backup/IBackupManagerMonitor$Stub; -Landroid/app/backup/IBackupManagerMonitor; -Landroid/app/backup/IBackupObserver$Stub$Proxy; -Landroid/app/backup/IBackupObserver$Stub; -Landroid/app/backup/IBackupObserver; -Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy; -Landroid/app/backup/IFullBackupRestoreObserver$Stub; -Landroid/app/backup/IFullBackupRestoreObserver; -Landroid/app/backup/IRestoreSession; -Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy; -Landroid/app/backup/ISelectBackupTransportCallback$Stub; -Landroid/app/backup/ISelectBackupTransportCallback; -Landroid/app/backup/RestoreDescription$1; -Landroid/app/backup/RestoreDescription; -Landroid/app/backup/SharedPreferencesBackupHelper; -Landroid/app/blob/BlobHandle$1; -Landroid/app/blob/BlobHandle; -Landroid/app/blob/BlobStoreManager; -Landroid/app/blob/BlobStoreManagerFrameworkInitializer$$ExternalSyntheticLambda0; -Landroid/app/blob/BlobStoreManagerFrameworkInitializer; -Landroid/app/blob/IBlobStoreManager$Stub$Proxy; -Landroid/app/blob/IBlobStoreManager$Stub; -Landroid/app/blob/IBlobStoreManager; -Landroid/app/blob/IBlobStoreSession; -Landroid/app/blob/LeaseInfo$1; -Landroid/app/blob/LeaseInfo; -Landroid/app/cloudsearch/CloudSearchManager; -Landroid/app/compat/ChangeIdStateCache; -Landroid/app/compat/ChangeIdStateQuery; -Landroid/app/compat/CompatChanges; -Landroid/app/contentsuggestions/ClassificationsRequest$1; -Landroid/app/contentsuggestions/ClassificationsRequest; -Landroid/app/contentsuggestions/ContentSelection$1; -Landroid/app/contentsuggestions/ContentSelection; -Landroid/app/contentsuggestions/ContentSuggestionsManager$SelectionsCallback; -Landroid/app/contentsuggestions/ContentSuggestionsManager$SelectionsCallbackWrapper; -Landroid/app/contentsuggestions/ContentSuggestionsManager; -Landroid/app/contentsuggestions/IClassificationsCallback$Stub$Proxy; -Landroid/app/contentsuggestions/IClassificationsCallback$Stub; -Landroid/app/contentsuggestions/IClassificationsCallback; -Landroid/app/contentsuggestions/IContentSuggestionsManager$Stub$Proxy; -Landroid/app/contentsuggestions/IContentSuggestionsManager$Stub; -Landroid/app/contentsuggestions/IContentSuggestionsManager; -Landroid/app/contentsuggestions/ISelectionsCallback$Stub$Proxy; -Landroid/app/contentsuggestions/ISelectionsCallback$Stub; -Landroid/app/contentsuggestions/ISelectionsCallback; -Landroid/app/contentsuggestions/SelectionsRequest$1; -Landroid/app/contentsuggestions/SelectionsRequest$Builder; -Landroid/app/contentsuggestions/SelectionsRequest-IA; -Landroid/app/contentsuggestions/SelectionsRequest; -Landroid/app/job/IJobCallback$Stub$Proxy; -Landroid/app/job/IJobCallback$Stub; -Landroid/app/job/IJobCallback; -Landroid/app/job/IJobScheduler$Stub$Proxy; -Landroid/app/job/IJobScheduler$Stub; -Landroid/app/job/IJobScheduler; -Landroid/app/job/IJobService$Stub$Proxy; -Landroid/app/job/IJobService$Stub; -Landroid/app/job/IJobService; -Landroid/app/job/IUserVisibleJobObserver; -Landroid/app/job/JobInfo$1; -Landroid/app/job/JobInfo$Builder; -Landroid/app/job/JobInfo$TriggerContentUri$1; -Landroid/app/job/JobInfo$TriggerContentUri-IA; -Landroid/app/job/JobInfo$TriggerContentUri; -Landroid/app/job/JobInfo-IA; -Landroid/app/job/JobInfo; -Landroid/app/job/JobParameters$1; -Landroid/app/job/JobParameters-IA; -Landroid/app/job/JobParameters; -Landroid/app/job/JobScheduler; -Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda0; -Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda1; -Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda2; -Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda3; -Landroid/app/job/JobSchedulerFrameworkInitializer$$ExternalSyntheticLambda4; -Landroid/app/job/JobSchedulerFrameworkInitializer; -Landroid/app/job/JobService$1; -Landroid/app/job/JobService; -Landroid/app/job/JobServiceEngine$JobHandler; -Landroid/app/job/JobServiceEngine$JobInterface; -Landroid/app/job/JobServiceEngine; -Landroid/app/job/JobWorkItem$1; -Landroid/app/job/JobWorkItem; -Landroid/app/people/IPeopleManager$Stub$Proxy; -Landroid/app/people/IPeopleManager$Stub; -Landroid/app/people/IPeopleManager; -Landroid/app/people/PeopleManager; -Landroid/app/prediction/AppPredictionContext$1; -Landroid/app/prediction/AppPredictionContext-IA; -Landroid/app/prediction/AppPredictionContext; -Landroid/app/prediction/AppPredictionManager; -Landroid/app/prediction/AppPredictionSessionId$1; -Landroid/app/prediction/AppPredictionSessionId-IA; -Landroid/app/prediction/AppPredictionSessionId; -Landroid/app/prediction/AppPredictor$CallbackWrapper; -Landroid/app/prediction/AppPredictor; -Landroid/app/prediction/AppTarget$1; -Landroid/app/prediction/AppTarget$Builder; -Landroid/app/prediction/AppTarget-IA; -Landroid/app/prediction/AppTarget; -Landroid/app/prediction/AppTargetEvent$1; -Landroid/app/prediction/AppTargetEvent-IA; -Landroid/app/prediction/AppTargetEvent; -Landroid/app/prediction/AppTargetId$1; -Landroid/app/prediction/AppTargetId-IA; -Landroid/app/prediction/AppTargetId; -Landroid/app/prediction/IPredictionCallback$Stub$Proxy; -Landroid/app/prediction/IPredictionCallback$Stub; -Landroid/app/prediction/IPredictionCallback; -Landroid/app/prediction/IPredictionManager$Stub$Proxy; -Landroid/app/prediction/IPredictionManager$Stub; -Landroid/app/prediction/IPredictionManager; -Landroid/app/search/SearchUiManager; -Landroid/app/servertransaction/ActivityConfigurationChangeItem$1; -Landroid/app/servertransaction/ActivityConfigurationChangeItem-IA; -Landroid/app/servertransaction/ActivityConfigurationChangeItem; -Landroid/app/servertransaction/ActivityLifecycleItem; -Landroid/app/servertransaction/ActivityRelaunchItem$1; -Landroid/app/servertransaction/ActivityRelaunchItem; -Landroid/app/servertransaction/ActivityResultItem$1; -Landroid/app/servertransaction/ActivityResultItem-IA; -Landroid/app/servertransaction/ActivityResultItem; -Landroid/app/servertransaction/ActivityTransactionItem; -Landroid/app/servertransaction/BaseClientRequest; -Landroid/app/servertransaction/ClientTransaction$1; -Landroid/app/servertransaction/ClientTransaction-IA; -Landroid/app/servertransaction/ClientTransaction; -Landroid/app/servertransaction/ClientTransactionItem; -Landroid/app/servertransaction/ClientTransactionListenerController; -Landroid/app/servertransaction/ConfigurationChangeItem$1; -Landroid/app/servertransaction/ConfigurationChangeItem-IA; -Landroid/app/servertransaction/ConfigurationChangeItem; -Landroid/app/servertransaction/DestroyActivityItem$1; -Landroid/app/servertransaction/DestroyActivityItem-IA; -Landroid/app/servertransaction/DestroyActivityItem; -Landroid/app/servertransaction/LaunchActivityItem$1; -Landroid/app/servertransaction/LaunchActivityItem-IA; -Landroid/app/servertransaction/LaunchActivityItem; -Landroid/app/servertransaction/NewIntentItem$1; -Landroid/app/servertransaction/NewIntentItem-IA; -Landroid/app/servertransaction/NewIntentItem; -Landroid/app/servertransaction/ObjectPool; -Landroid/app/servertransaction/ObjectPoolItem; -Landroid/app/servertransaction/PauseActivityItem$1; -Landroid/app/servertransaction/PauseActivityItem-IA; -Landroid/app/servertransaction/PauseActivityItem; -Landroid/app/servertransaction/PendingTransactionActions$StopInfo; -Landroid/app/servertransaction/PendingTransactionActions; -Landroid/app/servertransaction/ResumeActivityItem$1; -Landroid/app/servertransaction/ResumeActivityItem-IA; -Landroid/app/servertransaction/ResumeActivityItem; -Landroid/app/servertransaction/StartActivityItem$1; -Landroid/app/servertransaction/StartActivityItem-IA; -Landroid/app/servertransaction/StartActivityItem; -Landroid/app/servertransaction/StopActivityItem$1; -Landroid/app/servertransaction/StopActivityItem-IA; -Landroid/app/servertransaction/StopActivityItem; -Landroid/app/servertransaction/TopResumedActivityChangeItem$1; -Landroid/app/servertransaction/TopResumedActivityChangeItem-IA; -Landroid/app/servertransaction/TopResumedActivityChangeItem; -Landroid/app/servertransaction/TransactionExecutor; -Landroid/app/servertransaction/TransactionExecutorHelper; -Landroid/app/servertransaction/WindowStateResizeItem$ResizeListener; -Landroid/app/slice/ISliceManager$Stub$Proxy; -Landroid/app/slice/ISliceManager$Stub; -Landroid/app/slice/ISliceManager; -Landroid/app/slice/Slice$1; -Landroid/app/slice/Slice$Builder; -Landroid/app/slice/Slice; -Landroid/app/slice/SliceItem$1; -Landroid/app/slice/SliceItem; -Landroid/app/slice/SliceManager; -Landroid/app/slice/SliceProvider$$ExternalSyntheticLambda0; -Landroid/app/slice/SliceProvider; -Landroid/app/slice/SliceSpec$1; -Landroid/app/slice/SliceSpec; -Landroid/app/smartspace/ISmartspaceCallback$Stub; -Landroid/app/smartspace/ISmartspaceCallback; -Landroid/app/smartspace/ISmartspaceManager$Stub$Proxy; -Landroid/app/smartspace/ISmartspaceManager$Stub; -Landroid/app/smartspace/ISmartspaceManager; -Landroid/app/smartspace/SmartspaceAction$1; -Landroid/app/smartspace/SmartspaceAction$Builder; -Landroid/app/smartspace/SmartspaceAction; -Landroid/app/smartspace/SmartspaceConfig$1; -Landroid/app/smartspace/SmartspaceConfig$Builder; -Landroid/app/smartspace/SmartspaceConfig; -Landroid/app/smartspace/SmartspaceManager; -Landroid/app/smartspace/SmartspaceSession$$ExternalSyntheticLambda0; -Landroid/app/smartspace/SmartspaceSession$CallbackWrapper$$ExternalSyntheticLambda0; -Landroid/app/smartspace/SmartspaceSession$CallbackWrapper; -Landroid/app/smartspace/SmartspaceSession$OnTargetsAvailableListener; -Landroid/app/smartspace/SmartspaceSession$Token; -Landroid/app/smartspace/SmartspaceSession; -Landroid/app/smartspace/SmartspaceSessionId$1; -Landroid/app/smartspace/SmartspaceSessionId; -Landroid/app/smartspace/SmartspaceTarget$1; -Landroid/app/smartspace/SmartspaceTarget$Builder; -Landroid/app/smartspace/SmartspaceTarget; -Landroid/app/smartspace/SmartspaceTargetEvent$1; -Landroid/app/smartspace/SmartspaceTargetEvent$Builder; -Landroid/app/smartspace/SmartspaceTargetEvent; -Landroid/app/smartspace/uitemplatedata/BaseTemplateData$1; -Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo$1; -Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemInfo; -Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo$1; -Landroid/app/smartspace/uitemplatedata/BaseTemplateData$SubItemLoggingInfo; -Landroid/app/smartspace/uitemplatedata/BaseTemplateData; -Landroid/app/smartspace/uitemplatedata/Icon$1; -Landroid/app/smartspace/uitemplatedata/Icon; -Landroid/app/smartspace/uitemplatedata/TapAction$1; -Landroid/app/smartspace/uitemplatedata/TapAction; -Landroid/app/smartspace/uitemplatedata/Text$1; -Landroid/app/smartspace/uitemplatedata/Text; -Landroid/app/tare/EconomyManager; -Landroid/app/time/ITimeZoneDetectorListener$Stub$Proxy; -Landroid/app/time/ITimeZoneDetectorListener$Stub; -Landroid/app/time/ITimeZoneDetectorListener; -Landroid/app/time/TimeManager; -Landroid/app/time/TimeZoneCapabilities$1; -Landroid/app/time/TimeZoneCapabilities$Builder; -Landroid/app/time/TimeZoneCapabilities-IA; -Landroid/app/time/TimeZoneCapabilities; -Landroid/app/time/TimeZoneCapabilitiesAndConfig$1; -Landroid/app/time/TimeZoneCapabilitiesAndConfig; -Landroid/app/time/TimeZoneConfiguration$1; -Landroid/app/time/TimeZoneConfiguration$Builder; -Landroid/app/time/TimeZoneConfiguration-IA; -Landroid/app/time/TimeZoneConfiguration; -Landroid/app/timedetector/ITimeDetectorService$Stub$Proxy; -Landroid/app/timedetector/ITimeDetectorService$Stub; -Landroid/app/timedetector/ITimeDetectorService; -Landroid/app/timedetector/ManualTimeSuggestion$1; -Landroid/app/timedetector/ManualTimeSuggestion; -Landroid/app/timedetector/TelephonyTimeSuggestion$1; -Landroid/app/timedetector/TelephonyTimeSuggestion$Builder; -Landroid/app/timedetector/TelephonyTimeSuggestion; -Landroid/app/timedetector/TimeDetector; -Landroid/app/timedetector/TimeDetectorImpl; -Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub$Proxy; -Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub; -Landroid/app/timezonedetector/ITimeZoneDetectorService; -Landroid/app/timezonedetector/ManualTimeZoneSuggestion$1; -Landroid/app/timezonedetector/ManualTimeZoneSuggestion; -Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$1; -Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion$Builder; -Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion-IA; -Landroid/app/timezonedetector/TelephonyTimeZoneSuggestion; -Landroid/app/timezonedetector/TimeZoneDetector; -Landroid/app/trust/IStrongAuthTracker$Stub$Proxy; -Landroid/app/trust/IStrongAuthTracker$Stub; -Landroid/app/trust/IStrongAuthTracker; -Landroid/app/trust/ITrustListener$Stub$Proxy; -Landroid/app/trust/ITrustListener$Stub; -Landroid/app/trust/ITrustListener; -Landroid/app/trust/ITrustManager$Stub$Proxy; -Landroid/app/trust/ITrustManager$Stub; -Landroid/app/trust/ITrustManager; -Landroid/app/trust/TrustManager$1; -Landroid/app/trust/TrustManager$2; -Landroid/app/trust/TrustManager$TrustListener; -Landroid/app/trust/TrustManager; -Landroid/app/usage/AppStandbyInfo$1; -Landroid/app/usage/AppStandbyInfo-IA; -Landroid/app/usage/AppStandbyInfo; -Landroid/app/usage/CacheQuotaHint$1; -Landroid/app/usage/CacheQuotaHint$Builder; -Landroid/app/usage/CacheQuotaHint; -Landroid/app/usage/CacheQuotaService$CacheQuotaServiceWrapper; -Landroid/app/usage/CacheQuotaService$ServiceHandler; -Landroid/app/usage/CacheQuotaService; -Landroid/app/usage/ConfigurationStats$1; -Landroid/app/usage/ConfigurationStats; -Landroid/app/usage/EventList; -Landroid/app/usage/ExternalStorageStats$1; -Landroid/app/usage/ExternalStorageStats; -Landroid/app/usage/Flags; -Landroid/app/usage/ICacheQuotaService$Stub$Proxy; -Landroid/app/usage/ICacheQuotaService$Stub; -Landroid/app/usage/ICacheQuotaService; -Landroid/app/usage/IStorageStatsManager$Stub$Proxy; -Landroid/app/usage/IStorageStatsManager$Stub; -Landroid/app/usage/IStorageStatsManager; -Landroid/app/usage/IUsageStatsManager$Stub$Proxy; -Landroid/app/usage/IUsageStatsManager$Stub; -Landroid/app/usage/IUsageStatsManager; -Landroid/app/usage/StorageStats$1; -Landroid/app/usage/StorageStats; -Landroid/app/usage/StorageStatsManager; -Landroid/app/usage/UsageEvents$1; -Landroid/app/usage/UsageEvents$Event$UserInteractionEventExtrasToken; -Landroid/app/usage/UsageEvents$Event; -Landroid/app/usage/UsageEvents; -Landroid/app/usage/UsageStats$1; -Landroid/app/usage/UsageStats; -Landroid/app/usage/UsageStatsManager; -Landroid/app/wallpapereffectsgeneration/WallpaperEffectsGenerationManager; -Landroid/app/wearable/WearableSensingManager; -Landroid/apphibernation/AppHibernationManager; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda0; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda10; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda1; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda2; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda3; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda4; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda5; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda6; -Landroid/appwidget/AppWidgetManager$$ExternalSyntheticLambda7; -Landroid/appwidget/AppWidgetManager; -Landroid/appwidget/AppWidgetManagerInternal; -Landroid/appwidget/AppWidgetProvider; -Landroid/appwidget/AppWidgetProviderInfo$1; -Landroid/appwidget/AppWidgetProviderInfo; -Landroid/appwidget/PendingHostUpdate$1; -Landroid/appwidget/PendingHostUpdate; -Landroid/appwidget/flags/Flags; -Landroid/attention/AttentionManagerInternal$AttentionCallbackInternal; -Landroid/attention/AttentionManagerInternal; -Landroid/audio/policy/configuration/V7_0/AudioUsage; -Landroid/companion/AssociationInfo$1; -Landroid/companion/AssociationInfo; -Landroid/companion/AssociationRequest$1; -Landroid/companion/AssociationRequest; -Landroid/companion/CompanionDeviceManager; -Landroid/companion/ICompanionDeviceManager$Stub$Proxy; -Landroid/companion/ICompanionDeviceManager$Stub; -Landroid/companion/ICompanionDeviceManager; -Landroid/companion/virtual/IVirtualDevice$Stub$Proxy; -Landroid/companion/virtual/IVirtualDevice$Stub; -Landroid/companion/virtual/IVirtualDevice; -Landroid/companion/virtual/IVirtualDeviceManager$Stub$Proxy; -Landroid/companion/virtual/IVirtualDeviceManager$Stub; -Landroid/companion/virtual/IVirtualDeviceManager; -Landroid/companion/virtual/VirtualDeviceManager; -Landroid/companion/virtual/flags/FeatureFlags; -Landroid/companion/virtual/flags/FeatureFlagsImpl; -Landroid/companion/virtual/flags/Flags; -Landroid/compat/Compatibility$1; -Landroid/compat/Compatibility$BehaviorChangeDelegate; -Landroid/compat/Compatibility$ChangeConfig; -Landroid/compat/Compatibility; -Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl-IA; -Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl; -Landroid/content/AbstractThreadedSyncAdapter$SyncThread-IA; -Landroid/content/AbstractThreadedSyncAdapter$SyncThread; -Landroid/content/AbstractThreadedSyncAdapter; -Landroid/content/ActivityNotFoundException; -Landroid/content/ApexEnvironment; -Landroid/content/AsyncQueryHandler$WorkerArgs; -Landroid/content/AsyncQueryHandler$WorkerHandler; -Landroid/content/AsyncQueryHandler; -Landroid/content/AsyncTaskLoader$LoadTask; -Landroid/content/AsyncTaskLoader; -Landroid/content/Attributable; -Landroid/content/AttributionSource$1; -Landroid/content/AttributionSource$Builder; -Landroid/content/AttributionSource$ScopedParcelState; -Landroid/content/AttributionSource; -Landroid/content/AttributionSourceState$1; -Landroid/content/AttributionSourceState; -Landroid/content/AutofillOptions$1; -Landroid/content/AutofillOptions; -Landroid/content/BroadcastReceiver$PendingResult$1; -Landroid/content/BroadcastReceiver$PendingResult; -Landroid/content/BroadcastReceiver; -Landroid/content/ClipData$1; -Landroid/content/ClipData$Item-IA; -Landroid/content/ClipData$Item; -Landroid/content/ClipData; -Landroid/content/ClipDescription$1; -Landroid/content/ClipDescription; -Landroid/content/ClipboardManager$1; -Landroid/content/ClipboardManager$OnPrimaryClipChangedListener; -Landroid/content/ClipboardManager; -Landroid/content/ComponentCallbacks2; -Landroid/content/ComponentCallbacks; -Landroid/content/ComponentCallbacksController$$ExternalSyntheticLambda0; -Landroid/content/ComponentCallbacksController$$ExternalSyntheticLambda1; -Landroid/content/ComponentCallbacksController$$ExternalSyntheticLambda2; -Landroid/content/ComponentCallbacksController; -Landroid/content/ComponentName$1; -Landroid/content/ComponentName$WithComponentName; -Landroid/content/ComponentName; -Landroid/content/ContentCaptureOptions$1; -Landroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda0; -Landroid/content/ContentCaptureOptions$ContentProtectionOptions$$ExternalSyntheticLambda1; -Landroid/content/ContentCaptureOptions$ContentProtectionOptions; -Landroid/content/ContentCaptureOptions; -Landroid/content/ContentInterface; -Landroid/content/ContentProvider$1; -Landroid/content/ContentProvider$CallingIdentity; -Landroid/content/ContentProvider$PipeDataWriter; -Landroid/content/ContentProvider$Transport; -Landroid/content/ContentProvider; -Landroid/content/ContentProviderClient$CursorWrapperInner; -Landroid/content/ContentProviderClient$NotRespondingRunnable-IA; -Landroid/content/ContentProviderClient$NotRespondingRunnable; -Landroid/content/ContentProviderClient; -Landroid/content/ContentProviderNative; -Landroid/content/ContentProviderOperation$1; -Landroid/content/ContentProviderOperation$BackReference$1; -Landroid/content/ContentProviderOperation$BackReference; -Landroid/content/ContentProviderOperation$Builder-IA; -Landroid/content/ContentProviderOperation$Builder; -Landroid/content/ContentProviderOperation-IA; -Landroid/content/ContentProviderOperation; -Landroid/content/ContentProviderProxy; -Landroid/content/ContentProviderResult$1; -Landroid/content/ContentProviderResult; -Landroid/content/ContentResolver$1; -Landroid/content/ContentResolver$2; -Landroid/content/ContentResolver$CursorWrapperInner; -Landroid/content/ContentResolver$OpenResourceIdResult; -Landroid/content/ContentResolver$ParcelFileDescriptorInner; -Landroid/content/ContentResolver$ResultListener-IA; -Landroid/content/ContentResolver$ResultListener; -Landroid/content/ContentResolver$StringResultListener-IA; -Landroid/content/ContentResolver$StringResultListener; -Landroid/content/ContentResolver$UriResultListener; -Landroid/content/ContentResolver; -Landroid/content/ContentUris; -Landroid/content/ContentValues$1; -Landroid/content/ContentValues-IA; -Landroid/content/ContentValues; -Landroid/content/Context; -Landroid/content/ContextParams$Builder; -Landroid/content/ContextParams-IA; -Landroid/content/ContextParams; -Landroid/content/ContextWrapper; -Landroid/content/CursorLoader; -Landroid/content/DialogInterface$OnCancelListener; -Landroid/content/DialogInterface$OnClickListener; -Landroid/content/DialogInterface$OnDismissListener; -Landroid/content/DialogInterface$OnKeyListener; -Landroid/content/DialogInterface$OnShowListener; -Landroid/content/DialogInterface; -Landroid/content/IClipboard$Stub$Proxy; -Landroid/content/IClipboard$Stub; -Landroid/content/IClipboard; -Landroid/content/IContentProvider; -Landroid/content/IContentService$Stub$Proxy; -Landroid/content/IContentService$Stub; -Landroid/content/IContentService; -Landroid/content/IIntentReceiver$Stub; -Landroid/content/IIntentReceiver; -Landroid/content/IIntentSender$Stub$Proxy; -Landroid/content/IIntentSender$Stub; -Landroid/content/IIntentSender; -Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy; -Landroid/content/IOnPrimaryClipChangedListener$Stub; -Landroid/content/IOnPrimaryClipChangedListener; -Landroid/content/IRestrictionsManager$Stub$Proxy; -Landroid/content/IRestrictionsManager$Stub; -Landroid/content/IRestrictionsManager; -Landroid/content/ISyncAdapter$Stub$Proxy; -Landroid/content/ISyncAdapter$Stub; -Landroid/content/ISyncAdapter; -Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy; -Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub; -Landroid/content/ISyncAdapterUnsyncableAccountCallback; -Landroid/content/ISyncContext$Stub$Proxy; -Landroid/content/ISyncContext$Stub; -Landroid/content/ISyncContext; -Landroid/content/ISyncStatusObserver$Stub$Proxy; -Landroid/content/ISyncStatusObserver$Stub; -Landroid/content/ISyncStatusObserver; -Landroid/content/Intent$1; -Landroid/content/Intent$CommandOptionHandler; -Landroid/content/Intent$FilterComparison; -Landroid/content/Intent; -Landroid/content/IntentFilter$$ExternalSyntheticLambda0; -Landroid/content/IntentFilter$$ExternalSyntheticLambda2; -Landroid/content/IntentFilter$1; -Landroid/content/IntentFilter$AuthorityEntry; -Landroid/content/IntentFilter$MalformedMimeTypeException; -Landroid/content/IntentFilter; -Landroid/content/IntentSender$1; -Landroid/content/IntentSender$FinishedDispatcher; -Landroid/content/IntentSender$OnFinished; -Landroid/content/IntentSender$SendIntentException; -Landroid/content/IntentSender; -Landroid/content/Loader$ForceLoadContentObserver; -Landroid/content/Loader$OnLoadCanceledListener; -Landroid/content/Loader$OnLoadCompleteListener; -Landroid/content/Loader; -Landroid/content/LocusId$1; -Landroid/content/LocusId; -Landroid/content/LoggingContentInterface; -Landroid/content/MutableContextWrapper; -Landroid/content/OperationApplicationException; -Landroid/content/PeriodicSync$1; -Landroid/content/PeriodicSync-IA; -Landroid/content/PeriodicSync; -Landroid/content/PermissionChecker; -Landroid/content/ReceiverCallNotAllowedException; -Landroid/content/RestrictionEntry$1; -Landroid/content/RestrictionEntry; -Landroid/content/RestrictionsManager; -Landroid/content/SearchRecentSuggestionsProvider$DatabaseHelper; -Landroid/content/SearchRecentSuggestionsProvider; -Landroid/content/ServiceConnection; -Landroid/content/SharedPreferences$Editor; -Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener; -Landroid/content/SharedPreferences; -Landroid/content/SyncAdapterType$1; -Landroid/content/SyncAdapterType; -Landroid/content/SyncAdaptersCache$MySerializer; -Landroid/content/SyncAdaptersCache; -Landroid/content/SyncContext; -Landroid/content/SyncInfo$1; -Landroid/content/SyncInfo; -Landroid/content/SyncRequest$1; -Landroid/content/SyncRequest$Builder; -Landroid/content/SyncRequest; -Landroid/content/SyncResult$1; -Landroid/content/SyncResult; -Landroid/content/SyncStats$1; -Landroid/content/SyncStats; -Landroid/content/SyncStatusInfo$1; -Landroid/content/SyncStatusInfo$Stats; -Landroid/content/SyncStatusInfo; -Landroid/content/SyncStatusObserver; -Landroid/content/UndoManager$UndoState; -Landroid/content/UndoManager; -Landroid/content/UndoOperation; -Landroid/content/UndoOwner; -Landroid/content/UriMatcher; -Landroid/content/UriPermission$1; -Landroid/content/UriPermission; -Landroid/content/UriRelativeFilterGroup; -Landroid/content/integrity/AppIntegrityManager; -Landroid/content/integrity/AtomicFormula$StringAtomicFormula$1; -Landroid/content/integrity/AtomicFormula$StringAtomicFormula; -Landroid/content/integrity/AtomicFormula; -Landroid/content/integrity/CompoundFormula$1; -Landroid/content/integrity/CompoundFormula; -Landroid/content/integrity/IAppIntegrityManager$Stub; -Landroid/content/integrity/IAppIntegrityManager; -Landroid/content/integrity/InstallerAllowedByManifestFormula$1; -Landroid/content/integrity/InstallerAllowedByManifestFormula; -Landroid/content/integrity/IntegrityFormula; -Landroid/content/integrity/IntegrityUtils; -Landroid/content/integrity/Rule$1; -Landroid/content/integrity/Rule; -Landroid/content/om/CriticalOverlayInfo; -Landroid/content/om/IOverlayManager$Stub$Proxy; -Landroid/content/om/IOverlayManager$Stub; -Landroid/content/om/IOverlayManager; -Landroid/content/om/OverlayIdentifier$1; -Landroid/content/om/OverlayIdentifier; -Landroid/content/om/OverlayInfo$1; -Landroid/content/om/OverlayInfo; -Landroid/content/om/OverlayManager; -Landroid/content/om/OverlayableInfo; -Landroid/content/pm/ActivityInfo$1; -Landroid/content/pm/ActivityInfo$WindowLayout; -Landroid/content/pm/ActivityInfo-IA; -Landroid/content/pm/ActivityInfo; -Landroid/content/pm/ActivityPresentationInfo; -Landroid/content/pm/AndroidTestBaseUpdater; -Landroid/content/pm/ApkChecksum$1; -Landroid/content/pm/ApkChecksum; -Landroid/content/pm/ApplicationInfo$1$$ExternalSyntheticLambda0; -Landroid/content/pm/ApplicationInfo$1; -Landroid/content/pm/ApplicationInfo-IA; -Landroid/content/pm/ApplicationInfo; -Landroid/content/pm/ArchivedPackageParcel; -Landroid/content/pm/Attribution$1; -Landroid/content/pm/Attribution; -Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter; -Landroid/content/pm/AuxiliaryResolveInfo; -Landroid/content/pm/BaseParceledListSlice$1; -Landroid/content/pm/BaseParceledListSlice; -Landroid/content/pm/ChangedPackages$1; -Landroid/content/pm/ChangedPackages; -Landroid/content/pm/Checksum$1; -Landroid/content/pm/Checksum$Type; -Landroid/content/pm/Checksum; -Landroid/content/pm/ComponentInfo; -Landroid/content/pm/ConfigurationInfo$1; -Landroid/content/pm/ConfigurationInfo-IA; -Landroid/content/pm/ConfigurationInfo; -Landroid/content/pm/CrossProfileApps; -Landroid/content/pm/CrossProfileAppsInternal; -Landroid/content/pm/DataLoaderManager; -Landroid/content/pm/DataLoaderParams; -Landroid/content/pm/DataLoaderParamsParcel$1; -Landroid/content/pm/DataLoaderParamsParcel; -Landroid/content/pm/FallbackCategoryProvider; -Landroid/content/pm/FeatureFlags; -Landroid/content/pm/FeatureFlagsImpl; -Landroid/content/pm/FeatureGroupInfo$1; -Landroid/content/pm/FeatureGroupInfo; -Landroid/content/pm/FeatureInfo$1; -Landroid/content/pm/FeatureInfo-IA; -Landroid/content/pm/FeatureInfo; -Landroid/content/pm/FileSystemControlParcel$1; -Landroid/content/pm/FileSystemControlParcel; -Landroid/content/pm/Flags; -Landroid/content/pm/ICrossProfileApps$Stub$Proxy; -Landroid/content/pm/ICrossProfileApps$Stub; -Landroid/content/pm/ICrossProfileApps; -Landroid/content/pm/IDataLoader; -Landroid/content/pm/IDataLoaderManager$Stub$Proxy; -Landroid/content/pm/IDataLoaderManager$Stub; -Landroid/content/pm/IDataLoaderManager; -Landroid/content/pm/IDataLoaderStatusListener$Stub$Proxy; -Landroid/content/pm/IDataLoaderStatusListener$Stub; -Landroid/content/pm/IDataLoaderStatusListener; -Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy; -Landroid/content/pm/IDexModuleRegisterCallback$Stub; -Landroid/content/pm/IDexModuleRegisterCallback; -Landroid/content/pm/ILauncherApps$Stub$Proxy; -Landroid/content/pm/ILauncherApps$Stub; -Landroid/content/pm/ILauncherApps; -Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy; -Landroid/content/pm/IOnAppsChangedListener$Stub; -Landroid/content/pm/IOnAppsChangedListener; -Landroid/content/pm/IOnChecksumsReadyListener$Stub$Proxy; -Landroid/content/pm/IOnChecksumsReadyListener$Stub; -Landroid/content/pm/IOnChecksumsReadyListener; -Landroid/content/pm/IOtaDexopt$Stub; -Landroid/content/pm/IOtaDexopt; -Landroid/content/pm/IPackageDataObserver$Stub$Proxy; -Landroid/content/pm/IPackageDataObserver$Stub; -Landroid/content/pm/IPackageDataObserver; -Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy; -Landroid/content/pm/IPackageDeleteObserver$Stub; -Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy; -Landroid/content/pm/IPackageDeleteObserver2$Stub; -Landroid/content/pm/IPackageDeleteObserver2; -Landroid/content/pm/IPackageDeleteObserver; -Landroid/content/pm/IPackageInstallObserver2$Stub; -Landroid/content/pm/IPackageInstallObserver2; -Landroid/content/pm/IPackageInstaller$Stub$Proxy; -Landroid/content/pm/IPackageInstaller$Stub; -Landroid/content/pm/IPackageInstaller; -Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy; -Landroid/content/pm/IPackageInstallerCallback$Stub; -Landroid/content/pm/IPackageInstallerCallback; -Landroid/content/pm/IPackageInstallerSession$Stub$Proxy; -Landroid/content/pm/IPackageInstallerSession$Stub; -Landroid/content/pm/IPackageInstallerSession; -Landroid/content/pm/IPackageManager$Stub$$ExternalSyntheticLambda0; -Landroid/content/pm/IPackageManager$Stub$$ExternalSyntheticLambda1; -Landroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda0; -Landroid/content/pm/IPackageManager$Stub$Proxy$$ExternalSyntheticLambda1; -Landroid/content/pm/IPackageManager$Stub$Proxy; -Landroid/content/pm/IPackageManager$Stub; -Landroid/content/pm/IPackageManager; -Landroid/content/pm/IPackageManagerNative$Stub; -Landroid/content/pm/IPackageManagerNative; -Landroid/content/pm/IPackageMoveObserver$Stub$Proxy; -Landroid/content/pm/IPackageMoveObserver$Stub; -Landroid/content/pm/IPackageMoveObserver; -Landroid/content/pm/IPackageStatsObserver$Stub$Proxy; -Landroid/content/pm/IPackageStatsObserver$Stub; -Landroid/content/pm/IPackageStatsObserver; -Landroid/content/pm/IShortcutChangeCallback$Stub$Proxy; -Landroid/content/pm/IShortcutChangeCallback$Stub; -Landroid/content/pm/IShortcutChangeCallback; -Landroid/content/pm/IShortcutService$Stub$Proxy; -Landroid/content/pm/IShortcutService$Stub; -Landroid/content/pm/IShortcutService; -Landroid/content/pm/IncrementalStatesInfo$1; -Landroid/content/pm/IncrementalStatesInfo; -Landroid/content/pm/InstallSourceInfo$1; -Landroid/content/pm/InstallSourceInfo; -Landroid/content/pm/InstantAppIntentFilter$1; -Landroid/content/pm/InstantAppIntentFilter; -Landroid/content/pm/InstantAppRequest; -Landroid/content/pm/InstantAppRequestInfo$1; -Landroid/content/pm/InstantAppRequestInfo; -Landroid/content/pm/InstantAppResolveInfo$1; -Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest$1; -Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest; -Landroid/content/pm/InstantAppResolveInfo; -Landroid/content/pm/InstrumentationInfo$1; -Landroid/content/pm/InstrumentationInfo; -Landroid/content/pm/IntentFilterVerificationInfo$1; -Landroid/content/pm/IntentFilterVerificationInfo; -Landroid/content/pm/KeySet$1; -Landroid/content/pm/KeySet; -Landroid/content/pm/LauncherActivityInfo; -Landroid/content/pm/LauncherActivityInfoInternal$1; -Landroid/content/pm/LauncherActivityInfoInternal; -Landroid/content/pm/LauncherApps$1; -Landroid/content/pm/LauncherApps$AppUsageLimit$1; -Landroid/content/pm/LauncherApps$AppUsageLimit; -Landroid/content/pm/LauncherApps$Callback; -Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo-IA; -Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo; -Landroid/content/pm/LauncherApps$CallbackMessageHandler; -Landroid/content/pm/LauncherApps$ShortcutQuery$QueryFlags; -Landroid/content/pm/LauncherApps$ShortcutQuery; -Landroid/content/pm/LauncherApps; -Landroid/content/pm/ModuleInfo$1; -Landroid/content/pm/ModuleInfo-IA; -Landroid/content/pm/ModuleInfo; -Landroid/content/pm/PackageInfo$1; -Landroid/content/pm/PackageInfo-IA; -Landroid/content/pm/PackageInfo; -Landroid/content/pm/PackageInfoLite$1; -Landroid/content/pm/PackageInfoLite; -Landroid/content/pm/PackageInstaller$Session; -Landroid/content/pm/PackageInstaller$SessionCallback; -Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda0; -Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda1; -Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda2; -Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda3; -Landroid/content/pm/PackageInstaller$SessionCallbackDelegate$$ExternalSyntheticLambda4; -Landroid/content/pm/PackageInstaller$SessionCallbackDelegate; -Landroid/content/pm/PackageInstaller$SessionInfo$1; -Landroid/content/pm/PackageInstaller$SessionInfo; -Landroid/content/pm/PackageInstaller$SessionParams$1; -Landroid/content/pm/PackageInstaller$SessionParams; -Landroid/content/pm/PackageInstaller; -Landroid/content/pm/PackageItemInfo; -Landroid/content/pm/PackageManager$1; -Landroid/content/pm/PackageManager$2; -Landroid/content/pm/PackageManager$3; -Landroid/content/pm/PackageManager$ApplicationInfoFlags; -Landroid/content/pm/PackageManager$ApplicationInfoQuery; -Landroid/content/pm/PackageManager$ComponentEnabledSetting$1; -Landroid/content/pm/PackageManager$ComponentEnabledSetting; -Landroid/content/pm/PackageManager$ComponentInfoFlags; -Landroid/content/pm/PackageManager$Flags; -Landroid/content/pm/PackageManager$MoveCallback; -Landroid/content/pm/PackageManager$NameNotFoundException; -Landroid/content/pm/PackageManager$OnChecksumsReadyListener; -Landroid/content/pm/PackageManager$OnPermissionsChangedListener; -Landroid/content/pm/PackageManager$PackageInfoFlags; -Landroid/content/pm/PackageManager$PackageInfoQuery; -Landroid/content/pm/PackageManager$Property$1; -Landroid/content/pm/PackageManager$Property; -Landroid/content/pm/PackageManager$ResolveInfoFlags; -Landroid/content/pm/PackageManager; -Landroid/content/pm/PackageParser$Activity$1; -Landroid/content/pm/PackageParser$Activity-IA; -Landroid/content/pm/PackageParser$Activity; -Landroid/content/pm/PackageParser$ActivityIntentInfo; -Landroid/content/pm/PackageParser$ApkLite; -Landroid/content/pm/PackageParser$CachedComponentArgs; -Landroid/content/pm/PackageParser$Callback; -Landroid/content/pm/PackageParser$CallbackImpl; -Landroid/content/pm/PackageParser$Component; -Landroid/content/pm/PackageParser$DefaultSplitAssetLoader; -Landroid/content/pm/PackageParser$Instrumentation$1; -Landroid/content/pm/PackageParser$Instrumentation; -Landroid/content/pm/PackageParser$IntentInfo; -Landroid/content/pm/PackageParser$NewPermissionInfo; -Landroid/content/pm/PackageParser$Package$1; -Landroid/content/pm/PackageParser$Package; -Landroid/content/pm/PackageParser$PackageLite; -Landroid/content/pm/PackageParser$PackageParserException; -Landroid/content/pm/PackageParser$ParseComponentArgs; -Landroid/content/pm/PackageParser$ParsePackageItemArgs; -Landroid/content/pm/PackageParser$Permission$1; -Landroid/content/pm/PackageParser$Permission-IA; -Landroid/content/pm/PackageParser$Permission; -Landroid/content/pm/PackageParser$PermissionGroup$1; -Landroid/content/pm/PackageParser$PermissionGroup; -Landroid/content/pm/PackageParser$Provider$1; -Landroid/content/pm/PackageParser$Provider-IA; -Landroid/content/pm/PackageParser$Provider; -Landroid/content/pm/PackageParser$ProviderIntentInfo; -Landroid/content/pm/PackageParser$Service$1; -Landroid/content/pm/PackageParser$Service-IA; -Landroid/content/pm/PackageParser$Service; -Landroid/content/pm/PackageParser$ServiceIntentInfo; -Landroid/content/pm/PackageParser$SigningDetails$1; -Landroid/content/pm/PackageParser$SigningDetails$Builder; -Landroid/content/pm/PackageParser$SigningDetails; -Landroid/content/pm/PackageParser$SplitAssetLoader; -Landroid/content/pm/PackageParser$SplitDependencyLoader$IllegalDependencyException; -Landroid/content/pm/PackageParser$SplitNameComparator; -Landroid/content/pm/PackageParser; -Landroid/content/pm/PackageParserCacheHelper$ReadHelper; -Landroid/content/pm/PackageParserCacheHelper$WriteHelper; -Landroid/content/pm/PackagePartitions$DeferredCanonicalFile; -Landroid/content/pm/PackagePartitions$SystemPartition; -Landroid/content/pm/PackagePartitions; -Landroid/content/pm/PackageStats$1; -Landroid/content/pm/PackageStats; -Landroid/content/pm/ParceledListSlice$1; -Landroid/content/pm/ParceledListSlice-IA; -Landroid/content/pm/ParceledListSlice; -Landroid/content/pm/PathPermission$1; -Landroid/content/pm/PathPermission; -Landroid/content/pm/PermissionGroupInfo$1; -Landroid/content/pm/PermissionGroupInfo; -Landroid/content/pm/PermissionInfo$1; -Landroid/content/pm/PermissionInfo-IA; -Landroid/content/pm/PermissionInfo; -Landroid/content/pm/ProviderInfo$1; -Landroid/content/pm/ProviderInfo-IA; -Landroid/content/pm/ProviderInfo; -Landroid/content/pm/ProviderInfoList$1; -Landroid/content/pm/ProviderInfoList-IA; -Landroid/content/pm/ProviderInfoList; -Landroid/content/pm/RegisteredServicesCache$1; -Landroid/content/pm/RegisteredServicesCache$2; -Landroid/content/pm/RegisteredServicesCache$3; -Landroid/content/pm/RegisteredServicesCache$ServiceInfo; -Landroid/content/pm/RegisteredServicesCache$UserServices; -Landroid/content/pm/RegisteredServicesCache; -Landroid/content/pm/RegisteredServicesCacheListener; -Landroid/content/pm/ResolveInfo$1; -Landroid/content/pm/ResolveInfo-IA; -Landroid/content/pm/ResolveInfo; -Landroid/content/pm/ServiceInfo$1; -Landroid/content/pm/ServiceInfo-IA; -Landroid/content/pm/ServiceInfo; -Landroid/content/pm/SharedLibraryInfo$1; -Landroid/content/pm/SharedLibraryInfo-IA; -Landroid/content/pm/SharedLibraryInfo; -Landroid/content/pm/ShortcutInfo$$ExternalSyntheticLambda0; -Landroid/content/pm/ShortcutInfo$$ExternalSyntheticLambda1; -Landroid/content/pm/ShortcutInfo$1; -Landroid/content/pm/ShortcutInfo$Builder; -Landroid/content/pm/ShortcutInfo-IA; -Landroid/content/pm/ShortcutInfo; -Landroid/content/pm/ShortcutManager$ShareShortcutInfo$1; -Landroid/content/pm/ShortcutManager$ShareShortcutInfo; -Landroid/content/pm/ShortcutManager; -Landroid/content/pm/ShortcutQueryWrapper$1; -Landroid/content/pm/ShortcutQueryWrapper; -Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener; -Landroid/content/pm/ShortcutServiceInternal; -Landroid/content/pm/Signature$1; -Landroid/content/pm/Signature-IA; -Landroid/content/pm/Signature; -Landroid/content/pm/SigningDetails$1; -Landroid/content/pm/SigningDetails; -Landroid/content/pm/SigningInfo$1; -Landroid/content/pm/SigningInfo-IA; -Landroid/content/pm/SigningInfo; -Landroid/content/pm/StringParceledListSlice$1; -Landroid/content/pm/StringParceledListSlice-IA; -Landroid/content/pm/StringParceledListSlice; -Landroid/content/pm/SuspendDialogInfo$1; -Landroid/content/pm/SuspendDialogInfo$Builder; -Landroid/content/pm/SuspendDialogInfo; -Landroid/content/pm/UserInfo$1; -Landroid/content/pm/UserInfo-IA; -Landroid/content/pm/UserInfo; -Landroid/content/pm/UserPackage; -Landroid/content/pm/UserProperties$1; -Landroid/content/pm/UserProperties; -Landroid/content/pm/VerifierDeviceIdentity$1; -Landroid/content/pm/VerifierDeviceIdentity; -Landroid/content/pm/VerifierInfo$1; -Landroid/content/pm/VerifierInfo; -Landroid/content/pm/VersionedPackage$1; -Landroid/content/pm/VersionedPackage-IA; -Landroid/content/pm/VersionedPackage; -Landroid/content/pm/XmlSerializerAndParser; -Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate; -Landroid/content/pm/dex/ArtManager; -Landroid/content/pm/dex/ArtManagerInternal; -Landroid/content/pm/dex/DexMetadataHelper; -Landroid/content/pm/dex/IArtManager$Stub$Proxy; -Landroid/content/pm/dex/IArtManager$Stub; -Landroid/content/pm/dex/IArtManager; -Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy; -Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub; -Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback; -Landroid/content/pm/dex/PackageOptimizationInfo; -Landroid/content/pm/overlay/OverlayPaths; -Landroid/content/pm/parsing/ApkLite; -Landroid/content/pm/parsing/ApkLiteParseUtils$SplitNameComparator; -Landroid/content/pm/parsing/ApkLiteParseUtils; -Landroid/content/pm/parsing/FrameworkParsingPackageUtils; -Landroid/content/pm/parsing/PackageLite; -Landroid/content/pm/parsing/result/ParseInput$Callback; -Landroid/content/pm/parsing/result/ParseInput; -Landroid/content/pm/parsing/result/ParseResult; -Landroid/content/pm/parsing/result/ParseTypeImpl$$ExternalSyntheticLambda0; -Landroid/content/pm/parsing/result/ParseTypeImpl$$ExternalSyntheticLambda1; -Landroid/content/pm/parsing/result/ParseTypeImpl; -Landroid/content/pm/permission/SplitPermissionInfoParcelable$1; -Landroid/content/pm/permission/SplitPermissionInfoParcelable; -Landroid/content/pm/pkg/FrameworkPackageUserState; -Landroid/content/pm/pkg/FrameworkPackageUserStateDefault; -Landroid/content/pm/split/SplitDependencyLoader$IllegalDependencyException; -Landroid/content/pm/split/SplitDependencyLoader; -Landroid/content/pm/verify/domain/DomainSet$1; -Landroid/content/pm/verify/domain/DomainSet; -Landroid/content/pm/verify/domain/DomainVerificationInfo$1; -Landroid/content/pm/verify/domain/DomainVerificationInfo; -Landroid/content/pm/verify/domain/DomainVerificationManager; -Landroid/content/pm/verify/domain/DomainVerificationUserState$1; -Landroid/content/pm/verify/domain/DomainVerificationUserState; -Landroid/content/pm/verify/domain/DomainVerificationUtils; -Landroid/content/pm/verify/domain/IDomainVerificationManager$Stub; -Landroid/content/pm/verify/domain/IDomainVerificationManager; -Landroid/content/res/ApkAssets; -Landroid/content/res/AssetFileDescriptor$1; -Landroid/content/res/AssetFileDescriptor$AutoCloseInputStream; -Landroid/content/res/AssetFileDescriptor; -Landroid/content/res/AssetManager$AssetInputStream-IA; -Landroid/content/res/AssetManager$AssetInputStream; -Landroid/content/res/AssetManager$Builder; -Landroid/content/res/AssetManager-IA; -Landroid/content/res/AssetManager; -Landroid/content/res/ColorStateList$1; -Landroid/content/res/ColorStateList$ColorStateListFactory; -Landroid/content/res/ColorStateList; -Landroid/content/res/CompatResources; -Landroid/content/res/CompatibilityInfo$1; -Landroid/content/res/CompatibilityInfo$2; -Landroid/content/res/CompatibilityInfo$Translator; -Landroid/content/res/CompatibilityInfo-IA; -Landroid/content/res/CompatibilityInfo; -Landroid/content/res/ComplexColor; -Landroid/content/res/Configuration$1; -Landroid/content/res/Configuration-IA; -Landroid/content/res/Configuration; -Landroid/content/res/ConfigurationBoundResourceCache; -Landroid/content/res/ConstantState; -Landroid/content/res/DrawableCache; -Landroid/content/res/FeatureFlags; -Landroid/content/res/FeatureFlagsImpl; -Landroid/content/res/Flags; -Landroid/content/res/FontResourcesParser$FamilyResourceEntry; -Landroid/content/res/FontResourcesParser$FontFamilyFilesResourceEntry; -Landroid/content/res/FontResourcesParser$FontFileResourceEntry; -Landroid/content/res/FontResourcesParser$ProviderResourceEntry; -Landroid/content/res/FontResourcesParser; -Landroid/content/res/FontScaleConverter; -Landroid/content/res/FontScaleConverterFactory; -Landroid/content/res/FontScaleConverterImpl; -Landroid/content/res/GradientColor$GradientColorFactory; -Landroid/content/res/GradientColor; -Landroid/content/res/ObbInfo$1; -Landroid/content/res/ObbInfo; -Landroid/content/res/ObbScanner; -Landroid/content/res/ResourceId; -Landroid/content/res/ResourceTimer$Config; -Landroid/content/res/ResourceTimer$Timer; -Landroid/content/res/ResourceTimer; -Landroid/content/res/Resources$$ExternalSyntheticLambda0; -Landroid/content/res/Resources$$ExternalSyntheticLambda1; -Landroid/content/res/Resources$AssetManagerUpdateHandler; -Landroid/content/res/Resources$NotFoundException; -Landroid/content/res/Resources$Theme-IA; -Landroid/content/res/Resources$Theme; -Landroid/content/res/Resources$ThemeKey; -Landroid/content/res/Resources$UpdateCallbacks; -Landroid/content/res/Resources; -Landroid/content/res/ResourcesImpl$$ExternalSyntheticLambda0; -Landroid/content/res/ResourcesImpl$$ExternalSyntheticLambda1; -Landroid/content/res/ResourcesImpl$$ExternalSyntheticLambda2; -Landroid/content/res/ResourcesImpl$LookupStack-IA; -Landroid/content/res/ResourcesImpl$LookupStack; -Landroid/content/res/ResourcesImpl$ThemeImpl; -Landroid/content/res/ResourcesImpl; -Landroid/content/res/ResourcesKey; -Landroid/content/res/StringBlock$Height; -Landroid/content/res/StringBlock$StyleIDs; -Landroid/content/res/StringBlock; -Landroid/content/res/ThemedResourceCache; -Landroid/content/res/TypedArray; -Landroid/content/res/Validator; -Landroid/content/res/XmlBlock; -Landroid/content/res/XmlResourceParser; -Landroid/content/res/loader/AssetsProvider; -Landroid/content/res/loader/ResourcesLoader$UpdateCallbacks; -Landroid/content/res/loader/ResourcesLoader; -Landroid/content/res/loader/ResourcesProvider; -Landroid/content/rollback/IRollbackManager$Stub$Proxy; -Landroid/content/rollback/IRollbackManager$Stub; -Landroid/content/rollback/IRollbackManager; -Landroid/content/rollback/PackageRollbackInfo$1; -Landroid/content/rollback/PackageRollbackInfo; -Landroid/content/rollback/RollbackInfo$1; -Landroid/content/rollback/RollbackInfo; -Landroid/content/rollback/RollbackManager; -Landroid/content/rollback/RollbackManagerFrameworkInitializer$$ExternalSyntheticLambda0; -Landroid/content/rollback/RollbackManagerFrameworkInitializer; -Landroid/content/type/DefaultMimeMapFactory$$ExternalSyntheticLambda0; -Landroid/content/type/DefaultMimeMapFactory; -Landroid/credentials/CredentialManager; -Landroid/credentials/GetCredentialResponse; -Landroid/database/AbstractCursor$SelfContentObserver; -Landroid/database/AbstractCursor; -Landroid/database/AbstractWindowedCursor; -Landroid/database/BulkCursorDescriptor$1; -Landroid/database/BulkCursorDescriptor; -Landroid/database/BulkCursorNative; -Landroid/database/BulkCursorProxy; -Landroid/database/BulkCursorToCursorAdaptor; -Landroid/database/CharArrayBuffer; -Landroid/database/ContentObservable; -Landroid/database/ContentObserver$$ExternalSyntheticLambda0; -Landroid/database/ContentObserver$$ExternalSyntheticLambda1; -Landroid/database/ContentObserver; -Landroid/database/CrossProcessCursor; -Landroid/database/CrossProcessCursorWrapper; -Landroid/database/Cursor; -Landroid/database/CursorIndexOutOfBoundsException; -Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy; -Landroid/database/CursorToBulkCursorAdaptor; -Landroid/database/CursorWindow$1; -Landroid/database/CursorWindow-IA; -Landroid/database/CursorWindow; -Landroid/database/CursorWrapper; -Landroid/database/DataSetObservable; -Landroid/database/DataSetObserver; -Landroid/database/DatabaseErrorHandler; -Landroid/database/DatabaseUtils$InsertHelper; -Landroid/database/DatabaseUtils; -Landroid/database/DefaultDatabaseErrorHandler; -Landroid/database/IBulkCursor; -Landroid/database/IContentObserver$Stub; -Landroid/database/IContentObserver; -Landroid/database/MatrixCursor$RowBuilder; -Landroid/database/MatrixCursor; -Landroid/database/MergeCursor$1; -Landroid/database/MergeCursor; -Landroid/database/Observable; -Landroid/database/SQLException; -Landroid/database/StaleDataException; -Landroid/database/sqlite/DatabaseObjectNotClosedException; -Landroid/database/sqlite/FeatureFlags; -Landroid/database/sqlite/FeatureFlagsImpl; -Landroid/database/sqlite/Flags; -Landroid/database/sqlite/SQLiteAbortException; -Landroid/database/sqlite/SQLiteAccessPermException; -Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException; -Landroid/database/sqlite/SQLiteBlobTooBigException; -Landroid/database/sqlite/SQLiteCantOpenDatabaseException; -Landroid/database/sqlite/SQLiteClosable; -Landroid/database/sqlite/SQLiteCompatibilityWalFlags; -Landroid/database/sqlite/SQLiteConnection$Operation-IA; -Landroid/database/sqlite/SQLiteConnection$Operation; -Landroid/database/sqlite/SQLiteConnection$OperationLog; -Landroid/database/sqlite/SQLiteConnection$PreparedStatement; -Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache; -Landroid/database/sqlite/SQLiteConnection; -Landroid/database/sqlite/SQLiteConnectionPool$1; -Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus; -Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter-IA; -Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter; -Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler; -Landroid/database/sqlite/SQLiteConnectionPool; -Landroid/database/sqlite/SQLiteConstraintException; -Landroid/database/sqlite/SQLiteCursor; -Landroid/database/sqlite/SQLiteCursorDriver; -Landroid/database/sqlite/SQLiteCustomFunction; -Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda0; -Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda1; -Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda2; -Landroid/database/sqlite/SQLiteDatabase$$ExternalSyntheticLambda3; -Landroid/database/sqlite/SQLiteDatabase$1; -Landroid/database/sqlite/SQLiteDatabase$CursorFactory; -Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder; -Landroid/database/sqlite/SQLiteDatabase$OpenParams-IA; -Landroid/database/sqlite/SQLiteDatabase$OpenParams; -Landroid/database/sqlite/SQLiteDatabase; -Landroid/database/sqlite/SQLiteDatabaseConfiguration; -Landroid/database/sqlite/SQLiteDatabaseCorruptException; -Landroid/database/sqlite/SQLiteDatabaseLockedException; -Landroid/database/sqlite/SQLiteDatatypeMismatchException; -Landroid/database/sqlite/SQLiteDebug$DbStats; -Landroid/database/sqlite/SQLiteDebug$NoPreloadHolder; -Landroid/database/sqlite/SQLiteDebug$PagerStats; -Landroid/database/sqlite/SQLiteDebug; -Landroid/database/sqlite/SQLiteDirectCursorDriver; -Landroid/database/sqlite/SQLiteDiskIOException; -Landroid/database/sqlite/SQLiteDoneException; -Landroid/database/sqlite/SQLiteException; -Landroid/database/sqlite/SQLiteFullException; -Landroid/database/sqlite/SQLiteGlobal; -Landroid/database/sqlite/SQLiteMisuseException; -Landroid/database/sqlite/SQLiteOpenHelper; -Landroid/database/sqlite/SQLiteOutOfMemoryException; -Landroid/database/sqlite/SQLiteProgram; -Landroid/database/sqlite/SQLiteQuery; -Landroid/database/sqlite/SQLiteQueryBuilder; -Landroid/database/sqlite/SQLiteRawStatement; -Landroid/database/sqlite/SQLiteReadOnlyDatabaseException; -Landroid/database/sqlite/SQLiteSession$Transaction-IA; -Landroid/database/sqlite/SQLiteSession$Transaction; -Landroid/database/sqlite/SQLiteSession; -Landroid/database/sqlite/SQLiteStatement; -Landroid/database/sqlite/SQLiteStatementInfo; -Landroid/database/sqlite/SQLiteTableLockedException; -Landroid/database/sqlite/SQLiteTokenizer; -Landroid/database/sqlite/SQLiteTransactionListener; -Landroid/database/sqlite/SqliteWrapper; -Landroid/ddm/DdmHandle; -Landroid/ddm/DdmHandleAppName$Names-IA; -Landroid/ddm/DdmHandleAppName$Names; -Landroid/ddm/DdmHandleAppName; -Landroid/ddm/DdmHandleExit; -Landroid/ddm/DdmHandleHeap; -Landroid/ddm/DdmHandleHello; -Landroid/ddm/DdmHandleNativeHeap; -Landroid/ddm/DdmHandleProfiling; -Landroid/ddm/DdmHandleViewDebug; -Landroid/ddm/DdmRegister; -Landroid/debug/AdbManager; -Landroid/debug/AdbManagerInternal; -Landroid/debug/IAdbManager$Stub$Proxy; -Landroid/debug/IAdbManager$Stub; -Landroid/debug/IAdbManager; -Landroid/debug/IAdbTransport$Stub; -Landroid/debug/IAdbTransport; -Landroid/graphics/BLASTBufferQueue$TransactionHangCallback; -Landroid/graphics/BLASTBufferQueue; -Landroid/graphics/BaseCanvas; -Landroid/graphics/BaseRecordingCanvas; -Landroid/graphics/Bitmap$1; -Landroid/graphics/Bitmap$CompressFormat; -Landroid/graphics/Bitmap$Config; -Landroid/graphics/Bitmap; -Landroid/graphics/BitmapFactory$Options; -Landroid/graphics/BitmapFactory; -Landroid/graphics/BitmapRegionDecoder; -Landroid/graphics/BitmapShader; -Landroid/graphics/BlendMode; -Landroid/graphics/BlendModeColorFilter; -Landroid/graphics/BlurMaskFilter$Blur; -Landroid/graphics/BlurMaskFilter; -Landroid/graphics/Camera; -Landroid/graphics/Canvas$EdgeType; -Landroid/graphics/Canvas$NoImagePreloadHolder; -Landroid/graphics/Canvas; -Landroid/graphics/CanvasProperty; -Landroid/graphics/Color; -Landroid/graphics/ColorFilter$NoImagePreloadHolder; -Landroid/graphics/ColorFilter; -Landroid/graphics/ColorMatrix; -Landroid/graphics/ColorMatrixColorFilter; -Landroid/graphics/ColorSpace$$ExternalSyntheticLambda0; -Landroid/graphics/ColorSpace$$ExternalSyntheticLambda1; -Landroid/graphics/ColorSpace$$ExternalSyntheticLambda2; -Landroid/graphics/ColorSpace$$ExternalSyntheticLambda3; -Landroid/graphics/ColorSpace$$ExternalSyntheticLambda4; -Landroid/graphics/ColorSpace$$ExternalSyntheticLambda5; -Landroid/graphics/ColorSpace$Adaptation; -Landroid/graphics/ColorSpace$Connector; -Landroid/graphics/ColorSpace$Lab; -Landroid/graphics/ColorSpace$Model; -Landroid/graphics/ColorSpace$Named; -Landroid/graphics/ColorSpace$RenderIntent; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda0; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda1; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda2; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda3; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda4; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda5; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda6; -Landroid/graphics/ColorSpace$Rgb$$ExternalSyntheticLambda9; -Landroid/graphics/ColorSpace$Rgb$NoImagePreloadHolder; -Landroid/graphics/ColorSpace$Rgb$TransferParameters; -Landroid/graphics/ColorSpace$Rgb-IA; -Landroid/graphics/ColorSpace$Rgb; -Landroid/graphics/ColorSpace$Xyz; -Landroid/graphics/ColorSpace; -Landroid/graphics/Compatibility; -Landroid/graphics/ComposePathEffect; -Landroid/graphics/ComposeShader; -Landroid/graphics/CornerPathEffect; -Landroid/graphics/DashPathEffect; -Landroid/graphics/DiscretePathEffect; -Landroid/graphics/DrawFilter; -Landroid/graphics/EmbossMaskFilter; -Landroid/graphics/FontFamily; -Landroid/graphics/FontListParser; -Landroid/graphics/FrameInfo; -Landroid/graphics/Gainmap$1; -Landroid/graphics/Gainmap; -Landroid/graphics/GraphicBuffer$1; -Landroid/graphics/GraphicBuffer; -Landroid/graphics/GraphicsProtos; -Landroid/graphics/GraphicsStatsService$1; -Landroid/graphics/GraphicsStatsService$ActiveBuffer; -Landroid/graphics/GraphicsStatsService$BufferInfo; -Landroid/graphics/GraphicsStatsService$HistoricalBuffer; -Landroid/graphics/GraphicsStatsService; -Landroid/graphics/HardwareBufferRenderer; -Landroid/graphics/HardwareRenderer$ASurfaceTransactionCallback; -Landroid/graphics/HardwareRenderer$CopyRequest; -Landroid/graphics/HardwareRenderer$DestroyContextRunnable; -Landroid/graphics/HardwareRenderer$FrameCommitCallback; -Landroid/graphics/HardwareRenderer$FrameCompleteCallback; -Landroid/graphics/HardwareRenderer$FrameDrawingCallback; -Landroid/graphics/HardwareRenderer$FrameRenderRequest-IA; -Landroid/graphics/HardwareRenderer$FrameRenderRequest; -Landroid/graphics/HardwareRenderer$PrepareSurfaceControlForWebviewCallback; -Landroid/graphics/HardwareRenderer$ProcessInitializer$1; -Landroid/graphics/HardwareRenderer$ProcessInitializer; -Landroid/graphics/HardwareRenderer; -Landroid/graphics/HardwareRendererObserver$$ExternalSyntheticLambda0; -Landroid/graphics/HardwareRendererObserver$OnFrameMetricsAvailableListener; -Landroid/graphics/HardwareRendererObserver; -Landroid/graphics/ImageDecoder$AssetInputStreamSource; -Landroid/graphics/ImageDecoder$ByteArraySource; -Landroid/graphics/ImageDecoder$DecodeException; -Landroid/graphics/ImageDecoder$ImageDecoderSourceTrace; -Landroid/graphics/ImageDecoder$ImageInfo-IA; -Landroid/graphics/ImageDecoder$ImageInfo; -Landroid/graphics/ImageDecoder$InputStreamSource; -Landroid/graphics/ImageDecoder$OnHeaderDecodedListener; -Landroid/graphics/ImageDecoder$Source-IA; -Landroid/graphics/ImageDecoder$Source; -Landroid/graphics/ImageDecoder; -Landroid/graphics/ImageFormat; -Landroid/graphics/Insets$1; -Landroid/graphics/Insets-IA; -Landroid/graphics/Insets; -Landroid/graphics/Interpolator$Result; -Landroid/graphics/Interpolator; -Landroid/graphics/LeakyTypefaceStorage; -Landroid/graphics/LightingColorFilter; -Landroid/graphics/LinearGradient; -Landroid/graphics/MaskFilter; -Landroid/graphics/Matrix$1; -Landroid/graphics/Matrix$NoImagePreloadHolder; -Landroid/graphics/Matrix$ScaleToFit; -Landroid/graphics/Matrix; -Landroid/graphics/Mesh; -Landroid/graphics/MeshSpecification$Attribute; -Landroid/graphics/MeshSpecification$Varying; -Landroid/graphics/MeshSpecification; -Landroid/graphics/Movie; -Landroid/graphics/NinePatch$InsetStruct; -Landroid/graphics/NinePatch; -Landroid/graphics/Outline; -Landroid/graphics/Paint$Align; -Landroid/graphics/Paint$Cap; -Landroid/graphics/Paint$FontMetrics; -Landroid/graphics/Paint$FontMetricsInt; -Landroid/graphics/Paint$Join; -Landroid/graphics/Paint$NoImagePreloadHolder; -Landroid/graphics/Paint$RunInfo; -Landroid/graphics/Paint$Style; -Landroid/graphics/Paint; -Landroid/graphics/PaintFlagsDrawFilter; -Landroid/graphics/Path$Direction; -Landroid/graphics/Path$FillType; -Landroid/graphics/Path$Op; -Landroid/graphics/Path; -Landroid/graphics/PathDashPathEffect; -Landroid/graphics/PathEffect; -Landroid/graphics/PathIterator; -Landroid/graphics/PathMeasure; -Landroid/graphics/Picture$PictureCanvas; -Landroid/graphics/Picture; -Landroid/graphics/PixelFormat; -Landroid/graphics/Point$1; -Landroid/graphics/Point; -Landroid/graphics/PointF$1; -Landroid/graphics/PointF; -Landroid/graphics/PorterDuff$Mode; -Landroid/graphics/PorterDuff; -Landroid/graphics/PorterDuffColorFilter; -Landroid/graphics/PorterDuffXfermode; -Landroid/graphics/PostProcessor; -Landroid/graphics/RadialGradient; -Landroid/graphics/RecordingCanvas; -Landroid/graphics/Rect$1; -Landroid/graphics/Rect$UnflattenHelper; -Landroid/graphics/Rect; -Landroid/graphics/RectF$1; -Landroid/graphics/RectF; -Landroid/graphics/Region$1; -Landroid/graphics/Region$Op; -Landroid/graphics/Region; -Landroid/graphics/RegionIterator; -Landroid/graphics/RenderEffect$RenderEffectHolder; -Landroid/graphics/RenderEffect; -Landroid/graphics/RenderNode$AnimationHost; -Landroid/graphics/RenderNode$CompositePositionUpdateListener; -Landroid/graphics/RenderNode$NoImagePreloadHolder; -Landroid/graphics/RenderNode$PositionUpdateListener; -Landroid/graphics/RenderNode; -Landroid/graphics/RuntimeShader$NoImagePreloadHolder; -Landroid/graphics/RuntimeShader; -Landroid/graphics/Shader$NoImagePreloadHolder; -Landroid/graphics/Shader$TileMode; -Landroid/graphics/Shader; -Landroid/graphics/SumPathEffect; -Landroid/graphics/SurfaceTexture$1; -Landroid/graphics/SurfaceTexture$OnFrameAvailableListener; -Landroid/graphics/SurfaceTexture$OnSetFrameRateListener; -Landroid/graphics/SurfaceTexture; -Landroid/graphics/SweepGradient; -Landroid/graphics/TableMaskFilter; -Landroid/graphics/TemporaryBuffer; -Landroid/graphics/TextureLayer; -Landroid/graphics/Typeface$Builder; -Landroid/graphics/Typeface$CustomFallbackBuilder; -Landroid/graphics/Typeface-IA; -Landroid/graphics/Typeface; -Landroid/graphics/Xfermode; -Landroid/graphics/YuvImage; -Landroid/graphics/animation/FallbackLUTInterpolator; -Landroid/graphics/animation/HasNativeInterpolator; -Landroid/graphics/animation/NativeInterpolator; -Landroid/graphics/animation/NativeInterpolatorFactory; -Landroid/graphics/animation/RenderNodeAnimator$$ExternalSyntheticLambda0; -Landroid/graphics/animation/RenderNodeAnimator$DelayedAnimationHelper; -Landroid/graphics/animation/RenderNodeAnimator$ViewListener; -Landroid/graphics/animation/RenderNodeAnimator; -Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable; -Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState; -Landroid/graphics/drawable/AdaptiveIconDrawable; -Landroid/graphics/drawable/Animatable2$AnimationCallback; -Landroid/graphics/drawable/Animatable2; -Landroid/graphics/drawable/Animatable; -Landroid/graphics/drawable/AnimatedImageDrawable$State; -Landroid/graphics/drawable/AnimatedImageDrawable; -Landroid/graphics/drawable/AnimatedRotateDrawable$1; -Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState; -Landroid/graphics/drawable/AnimatedRotateDrawable; -Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition; -Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState; -Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition; -Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition; -Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator; -Landroid/graphics/drawable/AnimatedStateListDrawable$Transition-IA; -Landroid/graphics/drawable/AnimatedStateListDrawable$Transition; -Landroid/graphics/drawable/AnimatedStateListDrawable-IA; -Landroid/graphics/drawable/AnimatedStateListDrawable; -Landroid/graphics/drawable/AnimatedVectorDrawable$1; -Landroid/graphics/drawable/AnimatedVectorDrawable$2; -Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator; -Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState; -Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator; -Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT$$ExternalSyntheticLambda0; -Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT; -Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI; -Landroid/graphics/drawable/AnimatedVectorDrawable-IA; -Landroid/graphics/drawable/AnimatedVectorDrawable; -Landroid/graphics/drawable/AnimationDrawable$AnimationState; -Landroid/graphics/drawable/AnimationDrawable-IA; -Landroid/graphics/drawable/AnimationDrawable; -Landroid/graphics/drawable/BitmapDrawable$$ExternalSyntheticLambda1; -Landroid/graphics/drawable/BitmapDrawable$$ExternalSyntheticLambda2; -Landroid/graphics/drawable/BitmapDrawable$BitmapState; -Landroid/graphics/drawable/BitmapDrawable-IA; -Landroid/graphics/drawable/BitmapDrawable; -Landroid/graphics/drawable/ClipDrawable$ClipState; -Landroid/graphics/drawable/ClipDrawable-IA; -Landroid/graphics/drawable/ClipDrawable; -Landroid/graphics/drawable/ColorDrawable$ColorState; -Landroid/graphics/drawable/ColorDrawable-IA; -Landroid/graphics/drawable/ColorDrawable; -Landroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState; -Landroid/graphics/drawable/ColorStateListDrawable; -Landroid/graphics/drawable/Drawable$Callback; -Landroid/graphics/drawable/Drawable$ConstantState; -Landroid/graphics/drawable/Drawable; -Landroid/graphics/drawable/DrawableContainer$1; -Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback-IA; -Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback; -Landroid/graphics/drawable/DrawableContainer$DrawableContainerState; -Landroid/graphics/drawable/DrawableContainer; -Landroid/graphics/drawable/DrawableInflater; -Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState; -Landroid/graphics/drawable/DrawableWrapper; -Landroid/graphics/drawable/GradientDrawable$GradientState; -Landroid/graphics/drawable/GradientDrawable$Orientation; -Landroid/graphics/drawable/GradientDrawable-IA; -Landroid/graphics/drawable/GradientDrawable; -Landroid/graphics/drawable/Icon$1; -Landroid/graphics/drawable/Icon$LoadDrawableTask; -Landroid/graphics/drawable/Icon-IA; -Landroid/graphics/drawable/Icon; -Landroid/graphics/drawable/InsetDrawable$InsetState; -Landroid/graphics/drawable/InsetDrawable$InsetValue; -Landroid/graphics/drawable/InsetDrawable-IA; -Landroid/graphics/drawable/InsetDrawable; -Landroid/graphics/drawable/LayerDrawable$ChildDrawable; -Landroid/graphics/drawable/LayerDrawable$LayerState; -Landroid/graphics/drawable/LayerDrawable; -Landroid/graphics/drawable/LevelListDrawable$LevelListState; -Landroid/graphics/drawable/LevelListDrawable; -Landroid/graphics/drawable/NinePatchDrawable$$ExternalSyntheticLambda0; -Landroid/graphics/drawable/NinePatchDrawable$NinePatchState; -Landroid/graphics/drawable/NinePatchDrawable-IA; -Landroid/graphics/drawable/NinePatchDrawable; -Landroid/graphics/drawable/PaintDrawable; -Landroid/graphics/drawable/PictureDrawable; -Landroid/graphics/drawable/RippleAnimationSession$2; -Landroid/graphics/drawable/RippleAnimationSession$3; -Landroid/graphics/drawable/RippleAnimationSession$AnimationProperties; -Landroid/graphics/drawable/RippleAnimationSession$AnimatorListener; -Landroid/graphics/drawable/RippleAnimationSession; -Landroid/graphics/drawable/RippleBackground$1; -Landroid/graphics/drawable/RippleBackground$BackgroundProperty; -Landroid/graphics/drawable/RippleBackground; -Landroid/graphics/drawable/RippleComponent; -Landroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda0; -Landroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda1; -Landroid/graphics/drawable/RippleDrawable$$ExternalSyntheticLambda2; -Landroid/graphics/drawable/RippleDrawable$RippleState; -Landroid/graphics/drawable/RippleDrawable-IA; -Landroid/graphics/drawable/RippleDrawable; -Landroid/graphics/drawable/RippleForeground$1; -Landroid/graphics/drawable/RippleForeground$2; -Landroid/graphics/drawable/RippleForeground$3; -Landroid/graphics/drawable/RippleForeground$4; -Landroid/graphics/drawable/RippleForeground; -Landroid/graphics/drawable/RippleShader; -Landroid/graphics/drawable/RotateDrawable$RotateState; -Landroid/graphics/drawable/RotateDrawable-IA; -Landroid/graphics/drawable/RotateDrawable; -Landroid/graphics/drawable/ScaleDrawable$ScaleState; -Landroid/graphics/drawable/ScaleDrawable-IA; -Landroid/graphics/drawable/ScaleDrawable; -Landroid/graphics/drawable/ShapeDrawable$ShaderFactory; -Landroid/graphics/drawable/ShapeDrawable$ShapeState; -Landroid/graphics/drawable/ShapeDrawable; -Landroid/graphics/drawable/StateListDrawable$StateListState; -Landroid/graphics/drawable/StateListDrawable-IA; -Landroid/graphics/drawable/StateListDrawable; -Landroid/graphics/drawable/TransitionDrawable$TransitionState; -Landroid/graphics/drawable/TransitionDrawable; -Landroid/graphics/drawable/VectorDrawable$VClipPath; -Landroid/graphics/drawable/VectorDrawable$VFullPath$1; -Landroid/graphics/drawable/VectorDrawable$VFullPath$2; -Landroid/graphics/drawable/VectorDrawable$VFullPath$3; -Landroid/graphics/drawable/VectorDrawable$VFullPath$4; -Landroid/graphics/drawable/VectorDrawable$VFullPath$5; -Landroid/graphics/drawable/VectorDrawable$VFullPath$6; -Landroid/graphics/drawable/VectorDrawable$VFullPath$7; -Landroid/graphics/drawable/VectorDrawable$VFullPath$8; -Landroid/graphics/drawable/VectorDrawable$VFullPath; -Landroid/graphics/drawable/VectorDrawable$VGroup$1; -Landroid/graphics/drawable/VectorDrawable$VGroup$2; -Landroid/graphics/drawable/VectorDrawable$VGroup$3; -Landroid/graphics/drawable/VectorDrawable$VGroup$4; -Landroid/graphics/drawable/VectorDrawable$VGroup$5; -Landroid/graphics/drawable/VectorDrawable$VGroup$6; -Landroid/graphics/drawable/VectorDrawable$VGroup$7; -Landroid/graphics/drawable/VectorDrawable$VGroup; -Landroid/graphics/drawable/VectorDrawable$VObject; -Landroid/graphics/drawable/VectorDrawable$VPath$1; -Landroid/graphics/drawable/VectorDrawable$VPath; -Landroid/graphics/drawable/VectorDrawable$VectorDrawableState$1; -Landroid/graphics/drawable/VectorDrawable$VectorDrawableState; -Landroid/graphics/drawable/VectorDrawable-IA; -Landroid/graphics/drawable/VectorDrawable; -Landroid/graphics/drawable/shapes/OvalShape; -Landroid/graphics/drawable/shapes/PathShape; -Landroid/graphics/drawable/shapes/RectShape; -Landroid/graphics/drawable/shapes/RoundRectShape; -Landroid/graphics/drawable/shapes/Shape; -Landroid/graphics/fonts/Font$Builder; -Landroid/graphics/fonts/Font; -Landroid/graphics/fonts/FontCustomizationParser$Result; -Landroid/graphics/fonts/FontCustomizationParser; -Landroid/graphics/fonts/FontFamily$Builder; -Landroid/graphics/fonts/FontFamily; -Landroid/graphics/fonts/FontFileUtil; -Landroid/graphics/fonts/FontManager; -Landroid/graphics/fonts/FontStyle; -Landroid/graphics/fonts/FontVariationAxis; -Landroid/graphics/fonts/SystemFonts; -Landroid/graphics/pdf/PdfDocument; -Landroid/graphics/pdf/PdfEditor; -Landroid/graphics/text/GraphemeBreak; -Landroid/graphics/text/LineBreakConfig$1; -Landroid/graphics/text/LineBreakConfig$Builder; -Landroid/graphics/text/LineBreakConfig; -Landroid/graphics/text/LineBreaker$Builder; -Landroid/graphics/text/LineBreaker$ParagraphConstraints; -Landroid/graphics/text/LineBreaker$Result-IA; -Landroid/graphics/text/LineBreaker$Result; -Landroid/graphics/text/LineBreaker-IA; -Landroid/graphics/text/LineBreaker; -Landroid/graphics/text/MeasuredText$Builder; -Landroid/graphics/text/MeasuredText-IA; -Landroid/graphics/text/MeasuredText; -Landroid/graphics/text/PositionedGlyphs; -Landroid/graphics/text/TextRunShaper; -Landroid/gsi/AvbPublicKey$1; -Landroid/gsi/AvbPublicKey; -Landroid/gsi/GsiProgress$1; -Landroid/gsi/GsiProgress; -Landroid/gsi/IGsiService$Stub$Proxy; -Landroid/gsi/IGsiService$Stub; -Landroid/gsi/IGsiService; -Landroid/gui/StalledTransactionInfo$1; -Landroid/gui/StalledTransactionInfo; -Landroid/hardware/Camera$CameraInfo; -Landroid/hardware/Camera$Face; -Landroid/hardware/Camera; -Landroid/hardware/CameraSessionStats$1; -Landroid/hardware/CameraSessionStats; -Landroid/hardware/CameraStatus$1; -Landroid/hardware/CameraStatus; -Landroid/hardware/ConsumerIrManager; -Landroid/hardware/GeomagneticField$LegendreTable; -Landroid/hardware/GeomagneticField; -Landroid/hardware/HardwareBuffer$1; -Landroid/hardware/HardwareBuffer-IA; -Landroid/hardware/HardwareBuffer; -Landroid/hardware/ICameraService$Stub$Proxy; -Landroid/hardware/ICameraService$Stub; -Landroid/hardware/ICameraService; -Landroid/hardware/ICameraServiceListener$Stub; -Landroid/hardware/ICameraServiceListener; -Landroid/hardware/ICameraServiceProxy$Stub; -Landroid/hardware/ICameraServiceProxy; -Landroid/hardware/IConsumerIrService$Stub; -Landroid/hardware/IConsumerIrService; -Landroid/hardware/ISensorPrivacyListener$Stub$Proxy; -Landroid/hardware/ISensorPrivacyListener$Stub; -Landroid/hardware/ISensorPrivacyListener; -Landroid/hardware/ISensorPrivacyManager$Stub$Proxy; -Landroid/hardware/ISensorPrivacyManager$Stub; -Landroid/hardware/ISensorPrivacyManager; -Landroid/hardware/ISerialManager$Stub; -Landroid/hardware/ISerialManager; -Landroid/hardware/OverlayProperties$1; -Landroid/hardware/OverlayProperties-IA; -Landroid/hardware/OverlayProperties; -Landroid/hardware/Sensor; -Landroid/hardware/SensorAdditionalInfo; -Landroid/hardware/SensorDirectChannel; -Landroid/hardware/SensorEvent; -Landroid/hardware/SensorEventCallback; -Landroid/hardware/SensorEventListener2; -Landroid/hardware/SensorEventListener; -Landroid/hardware/SensorListener; -Landroid/hardware/SensorManager$DynamicSensorCallback; -Landroid/hardware/SensorManager; -Landroid/hardware/SensorPrivacyManager$1; -Landroid/hardware/SensorPrivacyManager$2; -Landroid/hardware/SensorPrivacyManager$OnSensorPrivacyChangedListener$SensorPrivacyChangedParams; -Landroid/hardware/SensorPrivacyManager$OnSensorPrivacyChangedListener; -Landroid/hardware/SensorPrivacyManager; -Landroid/hardware/SerialManager; -Landroid/hardware/SerialPort; -Landroid/hardware/SyncFence$1; -Landroid/hardware/SyncFence; -Landroid/hardware/SystemSensorManager$BaseEventQueue; -Landroid/hardware/SystemSensorManager$SensorEventQueue; -Landroid/hardware/SystemSensorManager$TriggerEventQueue; -Landroid/hardware/SystemSensorManager; -Landroid/hardware/TriggerEvent; -Landroid/hardware/TriggerEventListener; -Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback; -Landroid/hardware/biometrics/BiometricAuthenticator$Identifier; -Landroid/hardware/biometrics/BiometricAuthenticator; -Landroid/hardware/biometrics/BiometricFaceConstants; -Landroid/hardware/biometrics/BiometricFingerprintConstants; -Landroid/hardware/biometrics/BiometricManager; -Landroid/hardware/biometrics/BiometricSourceType$1; -Landroid/hardware/biometrics/BiometricSourceType; -Landroid/hardware/biometrics/ComponentInfoInternal$1; -Landroid/hardware/biometrics/ComponentInfoInternal; -Landroid/hardware/biometrics/CryptoObject; -Landroid/hardware/biometrics/IAuthService$Stub$Proxy; -Landroid/hardware/biometrics/IAuthService$Stub; -Landroid/hardware/biometrics/IAuthService; -Landroid/hardware/biometrics/IBiometricAuthenticator$Stub$Proxy; -Landroid/hardware/biometrics/IBiometricAuthenticator$Stub; -Landroid/hardware/biometrics/IBiometricAuthenticator; -Landroid/hardware/biometrics/IBiometricContextListener$Stub; -Landroid/hardware/biometrics/IBiometricContextListener; -Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy; -Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub; -Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback; -Landroid/hardware/biometrics/IBiometricSensorReceiver$Stub; -Landroid/hardware/biometrics/IBiometricSensorReceiver; -Landroid/hardware/biometrics/IBiometricService$Stub$Proxy; -Landroid/hardware/biometrics/IBiometricService$Stub; -Landroid/hardware/biometrics/IBiometricService; -Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy; -Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub; -Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback; -Landroid/hardware/biometrics/IBiometricServiceReceiver$Stub$Proxy; -Landroid/hardware/biometrics/IBiometricServiceReceiver$Stub; -Landroid/hardware/biometrics/IBiometricServiceReceiver; -Landroid/hardware/biometrics/IBiometricStateListener; -Landroid/hardware/biometrics/IBiometricSysuiReceiver$Stub$Proxy; -Landroid/hardware/biometrics/IBiometricSysuiReceiver$Stub; -Landroid/hardware/biometrics/IBiometricSysuiReceiver; -Landroid/hardware/biometrics/IInvalidationCallback$Stub; -Landroid/hardware/biometrics/IInvalidationCallback; -Landroid/hardware/biometrics/ITestSession; -Landroid/hardware/biometrics/PromptInfo$1; -Landroid/hardware/biometrics/PromptInfo; -Landroid/hardware/biometrics/SensorLocationInternal$1; -Landroid/hardware/biometrics/SensorLocationInternal; -Landroid/hardware/biometrics/SensorPropertiesInternal$1; -Landroid/hardware/biometrics/SensorPropertiesInternal; -Landroid/hardware/biometrics/common/AuthenticateReason$Fingerprint; -Landroid/hardware/camera2/CameraAccessException; -Landroid/hardware/camera2/CameraCaptureSession$CaptureCallback; -Landroid/hardware/camera2/CameraCaptureSession$StateCallback; -Landroid/hardware/camera2/CameraCharacteristics$1; -Landroid/hardware/camera2/CameraCharacteristics$2; -Landroid/hardware/camera2/CameraCharacteristics$3; -Landroid/hardware/camera2/CameraCharacteristics$4; -Landroid/hardware/camera2/CameraCharacteristics$5; -Landroid/hardware/camera2/CameraCharacteristics$6; -Landroid/hardware/camera2/CameraCharacteristics$7; -Landroid/hardware/camera2/CameraCharacteristics$8; -Landroid/hardware/camera2/CameraCharacteristics$9; -Landroid/hardware/camera2/CameraCharacteristics$Key; -Landroid/hardware/camera2/CameraCharacteristics; -Landroid/hardware/camera2/CameraDevice$StateCallback; -Landroid/hardware/camera2/CameraDevice; -Landroid/hardware/camera2/CameraManager$AvailabilityCallback; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$$ExternalSyntheticLambda2; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$1; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$3; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$4; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$5; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$6; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal$7; -Landroid/hardware/camera2/CameraManager$CameraManagerGlobal; -Landroid/hardware/camera2/CameraManager$DeviceStateListener; -Landroid/hardware/camera2/CameraManager$FoldStateListener$$ExternalSyntheticLambda0; -Landroid/hardware/camera2/CameraManager$FoldStateListener; -Landroid/hardware/camera2/CameraManager$TorchCallback; -Landroid/hardware/camera2/CameraManager; -Landroid/hardware/camera2/CameraMetadata; -Landroid/hardware/camera2/CameraOfflineSession$CameraOfflineSessionCallback; -Landroid/hardware/camera2/CaptureRequest$1; -Landroid/hardware/camera2/CaptureRequest$2; -Landroid/hardware/camera2/CaptureRequest$3; -Landroid/hardware/camera2/CaptureRequest$Key; -Landroid/hardware/camera2/CaptureRequest; -Landroid/hardware/camera2/CaptureResult$1; -Landroid/hardware/camera2/CaptureResult$2; -Landroid/hardware/camera2/CaptureResult$3; -Landroid/hardware/camera2/CaptureResult$4; -Landroid/hardware/camera2/CaptureResult$Key; -Landroid/hardware/camera2/CaptureResult; -Landroid/hardware/camera2/DngCreator; -Landroid/hardware/camera2/TotalCaptureResult; -Landroid/hardware/camera2/extension/ICaptureProcessorImpl; -Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor; -Landroid/hardware/camera2/impl/CameraDeviceImpl; -Landroid/hardware/camera2/impl/CameraExtensionJpegProcessor; -Landroid/hardware/camera2/impl/CameraMetadataNative$10; -Landroid/hardware/camera2/impl/CameraMetadataNative$11; -Landroid/hardware/camera2/impl/CameraMetadataNative$12; -Landroid/hardware/camera2/impl/CameraMetadataNative$13; -Landroid/hardware/camera2/impl/CameraMetadataNative$14; -Landroid/hardware/camera2/impl/CameraMetadataNative$15; -Landroid/hardware/camera2/impl/CameraMetadataNative$16; -Landroid/hardware/camera2/impl/CameraMetadataNative$17; -Landroid/hardware/camera2/impl/CameraMetadataNative$18; -Landroid/hardware/camera2/impl/CameraMetadataNative$19; -Landroid/hardware/camera2/impl/CameraMetadataNative$1; -Landroid/hardware/camera2/impl/CameraMetadataNative$20; -Landroid/hardware/camera2/impl/CameraMetadataNative$21; -Landroid/hardware/camera2/impl/CameraMetadataNative$22; -Landroid/hardware/camera2/impl/CameraMetadataNative$23; -Landroid/hardware/camera2/impl/CameraMetadataNative$24; -Landroid/hardware/camera2/impl/CameraMetadataNative$25; -Landroid/hardware/camera2/impl/CameraMetadataNative$26; -Landroid/hardware/camera2/impl/CameraMetadataNative$27; -Landroid/hardware/camera2/impl/CameraMetadataNative$28; -Landroid/hardware/camera2/impl/CameraMetadataNative$29; -Landroid/hardware/camera2/impl/CameraMetadataNative$2; -Landroid/hardware/camera2/impl/CameraMetadataNative$30; -Landroid/hardware/camera2/impl/CameraMetadataNative$31; -Landroid/hardware/camera2/impl/CameraMetadataNative$32; -Landroid/hardware/camera2/impl/CameraMetadataNative$33; -Landroid/hardware/camera2/impl/CameraMetadataNative$34; -Landroid/hardware/camera2/impl/CameraMetadataNative$35; -Landroid/hardware/camera2/impl/CameraMetadataNative$36; -Landroid/hardware/camera2/impl/CameraMetadataNative$37; -Landroid/hardware/camera2/impl/CameraMetadataNative$38; -Landroid/hardware/camera2/impl/CameraMetadataNative$39; -Landroid/hardware/camera2/impl/CameraMetadataNative$3; -Landroid/hardware/camera2/impl/CameraMetadataNative$4; -Landroid/hardware/camera2/impl/CameraMetadataNative$5; -Landroid/hardware/camera2/impl/CameraMetadataNative$6; -Landroid/hardware/camera2/impl/CameraMetadataNative$7; -Landroid/hardware/camera2/impl/CameraMetadataNative$8; -Landroid/hardware/camera2/impl/CameraMetadataNative$9; -Landroid/hardware/camera2/impl/CameraMetadataNative$Key; -Landroid/hardware/camera2/impl/CameraMetadataNative; -Landroid/hardware/camera2/impl/GetCommand; -Landroid/hardware/camera2/impl/SetCommand; -Landroid/hardware/camera2/marshal/MarshalHelpers; -Landroid/hardware/camera2/marshal/MarshalQueryable; -Landroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken; -Landroid/hardware/camera2/marshal/MarshalRegistry; -Landroid/hardware/camera2/marshal/Marshaler; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller$5; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray$PrimitiveArrayFiller; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableBlackLevelPattern; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableColorSpaceTransform; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableEnum; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableHighSpeedVideoConfiguration$MarshalerHighSpeedVideoConfiguration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableHighSpeedVideoConfiguration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableMeteringRectangle; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger; -Landroid/hardware/camera2/marshal/impl/MarshalQueryablePair; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableParcelable; -Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive; -Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableRange$MarshalerRange; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableRange; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableRecommendedStreamConfiguration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableRect$MarshalerRect; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableRect; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap$MarshalerReprocessFormatsMap; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableReprocessFormatsMap; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableRggbChannelVector; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize$MarshalerSize; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableSizeF; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration$MarshalerStreamConfiguration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfiguration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration$MarshalerStreamConfigurationDuration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableStreamConfigurationDuration; -Landroid/hardware/camera2/marshal/impl/MarshalQueryableString; -Landroid/hardware/camera2/params/BlackLevelPattern; -Landroid/hardware/camera2/params/Capability; -Landroid/hardware/camera2/params/ColorSpaceProfiles; -Landroid/hardware/camera2/params/ColorSpaceTransform; -Landroid/hardware/camera2/params/DeviceStateSensorOrientationMap; -Landroid/hardware/camera2/params/DynamicRangeProfiles; -Landroid/hardware/camera2/params/Face; -Landroid/hardware/camera2/params/HighSpeedVideoConfiguration; -Landroid/hardware/camera2/params/LensIntrinsicsSample; -Landroid/hardware/camera2/params/LensShadingMap; -Landroid/hardware/camera2/params/MandatoryStreamCombination$ReprocessType; -Landroid/hardware/camera2/params/MandatoryStreamCombination$SizeThreshold; -Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamCombinationTemplate; -Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamTemplate; -Landroid/hardware/camera2/params/MandatoryStreamCombination; -Landroid/hardware/camera2/params/MeteringRectangle; -Landroid/hardware/camera2/params/MultiResolutionStreamConfigurationMap; -Landroid/hardware/camera2/params/OisSample; -Landroid/hardware/camera2/params/RecommendedStreamConfiguration; -Landroid/hardware/camera2/params/ReprocessFormatsMap; -Landroid/hardware/camera2/params/RggbChannelVector; -Landroid/hardware/camera2/params/StreamConfiguration; -Landroid/hardware/camera2/params/StreamConfigurationDuration; -Landroid/hardware/camera2/params/StreamConfigurationMap; -Landroid/hardware/camera2/params/TonemapCurve; -Landroid/hardware/camera2/utils/ArrayUtils; -Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination$1; -Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination-IA; -Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; -Landroid/hardware/camera2/utils/ExceptionUtils; -Landroid/hardware/camera2/utils/HashCodeHelpers; -Landroid/hardware/camera2/utils/SurfaceUtils; -Landroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference; -Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference; -Landroid/hardware/camera2/utils/TypeReference-IA; -Landroid/hardware/camera2/utils/TypeReference; -Landroid/hardware/common/fmq/SynchronizedReadWrite; -Landroid/hardware/common/fmq/UnsynchronizedWrite; -Landroid/hardware/contexthub/V1_0/ContextHub; -Landroid/hardware/contexthub/V1_0/ContextHubMsg; -Landroid/hardware/contexthub/V1_0/HubAppInfo; -Landroid/hardware/contexthub/V1_0/IContexthub$Proxy; -Landroid/hardware/contexthub/V1_0/IContexthub; -Landroid/hardware/contexthub/V1_0/IContexthubCallback$Stub; -Landroid/hardware/contexthub/V1_0/IContexthubCallback; -Landroid/hardware/contexthub/V1_0/MemRange; -Landroid/hardware/contexthub/V1_0/NanoAppBinary; -Landroid/hardware/contexthub/V1_0/PhysicalSensor; -Landroid/hardware/contexthub/V1_1/Setting; -Landroid/hardware/devicestate/DeviceState; -Landroid/hardware/devicestate/DeviceStateInfo$1; -Landroid/hardware/devicestate/DeviceStateInfo; -Landroid/hardware/devicestate/DeviceStateManager$DeviceStateCallback; -Landroid/hardware/devicestate/DeviceStateManager$FoldStateListener; -Landroid/hardware/devicestate/DeviceStateManager; -Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda0; -Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda1; -Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper$$ExternalSyntheticLambda2; -Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateCallbackWrapper; -Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback-IA; -Landroid/hardware/devicestate/DeviceStateManagerGlobal$DeviceStateManagerCallback; -Landroid/hardware/devicestate/DeviceStateManagerGlobal; -Landroid/hardware/devicestate/IDeviceStateManager$Stub$Proxy; -Landroid/hardware/devicestate/IDeviceStateManager$Stub; -Landroid/hardware/devicestate/IDeviceStateManager; -Landroid/hardware/devicestate/IDeviceStateManagerCallback$Stub; -Landroid/hardware/devicestate/IDeviceStateManagerCallback; -Landroid/hardware/display/AmbientBrightnessDayStats$1; -Landroid/hardware/display/AmbientBrightnessDayStats; -Landroid/hardware/display/AmbientDisplayConfiguration; -Landroid/hardware/display/BrightnessChangeEvent$1; -Landroid/hardware/display/BrightnessChangeEvent$Builder; -Landroid/hardware/display/BrightnessChangeEvent; -Landroid/hardware/display/BrightnessConfiguration$1; -Landroid/hardware/display/BrightnessConfiguration$Builder; -Landroid/hardware/display/BrightnessConfiguration; -Landroid/hardware/display/BrightnessCorrection$1; -Landroid/hardware/display/BrightnessCorrection$BrightnessCorrectionImplementation; -Landroid/hardware/display/BrightnessCorrection$ScaleAndTranslateLog; -Landroid/hardware/display/BrightnessCorrection; -Landroid/hardware/display/BrightnessInfo$1; -Landroid/hardware/display/BrightnessInfo; -Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal; -Landroid/hardware/display/ColorDisplayManager; -Landroid/hardware/display/Curve$1; -Landroid/hardware/display/Curve; -Landroid/hardware/display/DeviceProductInfo$1; -Landroid/hardware/display/DeviceProductInfo$ManufactureDate$1; -Landroid/hardware/display/DeviceProductInfo$ManufactureDate; -Landroid/hardware/display/DeviceProductInfo-IA; -Landroid/hardware/display/DeviceProductInfo; -Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda0; -Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda1; -Landroid/hardware/display/DisplayManager$$ExternalSyntheticLambda2; -Landroid/hardware/display/DisplayManager$DisplayListener; -Landroid/hardware/display/DisplayManager$WeakDisplayCache-IA; -Landroid/hardware/display/DisplayManager$WeakDisplayCache; -Landroid/hardware/display/DisplayManager; -Landroid/hardware/display/DisplayManagerGlobal$1; -Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate$$ExternalSyntheticLambda0; -Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate; -Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback-IA; -Landroid/hardware/display/DisplayManagerGlobal; -Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks; -Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest; -Landroid/hardware/display/DisplayManagerInternal; -Landroid/hardware/display/DisplayViewport; -Landroid/hardware/display/DisplayedContentSample; -Landroid/hardware/display/DisplayedContentSamplingAttributes; -Landroid/hardware/display/HdrConversionMode$1; -Landroid/hardware/display/HdrConversionMode; -Landroid/hardware/display/IColorDisplayManager$Stub$Proxy; -Landroid/hardware/display/IColorDisplayManager$Stub; -Landroid/hardware/display/IColorDisplayManager; -Landroid/hardware/display/IDisplayManager$Stub$Proxy; -Landroid/hardware/display/IDisplayManager$Stub; -Landroid/hardware/display/IDisplayManager; -Landroid/hardware/display/IDisplayManagerCallback$Stub; -Landroid/hardware/display/IDisplayManagerCallback; -Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy; -Landroid/hardware/display/IVirtualDisplayCallback$Stub; -Landroid/hardware/display/IVirtualDisplayCallback; -Landroid/hardware/display/NightDisplayListener$1; -Landroid/hardware/display/NightDisplayListener$Callback; -Landroid/hardware/display/NightDisplayListener; -Landroid/hardware/display/Time$1; -Landroid/hardware/display/Time; -Landroid/hardware/display/VirtualDisplayConfig$1; -Landroid/hardware/display/VirtualDisplayConfig; -Landroid/hardware/display/WifiDisplay$1; -Landroid/hardware/display/WifiDisplay; -Landroid/hardware/display/WifiDisplaySessionInfo$1; -Landroid/hardware/display/WifiDisplaySessionInfo; -Landroid/hardware/display/WifiDisplayStatus$1; -Landroid/hardware/display/WifiDisplayStatus; -Landroid/hardware/face/Face$1; -Landroid/hardware/face/Face; -Landroid/hardware/face/FaceManager$1; -Landroid/hardware/face/FaceManager$AuthenticationCallback; -Landroid/hardware/face/FaceManager$AuthenticationResult; -Landroid/hardware/face/FaceManager$EnrollmentCallback; -Landroid/hardware/face/FaceManager$FaceDetectionCallback; -Landroid/hardware/face/FaceManager$GenerateChallengeCallback; -Landroid/hardware/face/FaceManager$GetFeatureCallback; -Landroid/hardware/face/FaceManager$LockoutResetCallback; -Landroid/hardware/face/FaceManager$OnAuthenticationCancelListener; -Landroid/hardware/face/FaceManager$RemovalCallback; -Landroid/hardware/face/FaceManager$SetFeatureCallback; -Landroid/hardware/face/FaceManager; -Landroid/hardware/face/FaceSensorPropertiesInternal$1; -Landroid/hardware/face/FaceSensorPropertiesInternal; -Landroid/hardware/face/IFaceAuthenticatorsRegisteredCallback$Stub; -Landroid/hardware/face/IFaceAuthenticatorsRegisteredCallback; -Landroid/hardware/face/IFaceService$Stub$Proxy; -Landroid/hardware/face/IFaceService$Stub; -Landroid/hardware/face/IFaceService; -Landroid/hardware/face/IFaceServiceReceiver$Stub$Proxy; -Landroid/hardware/face/IFaceServiceReceiver$Stub; -Landroid/hardware/face/IFaceServiceReceiver; -Landroid/hardware/fingerprint/Fingerprint$1; -Landroid/hardware/fingerprint/Fingerprint; -Landroid/hardware/fingerprint/FingerprintManager$1; -Landroid/hardware/fingerprint/FingerprintManager$2; -Landroid/hardware/fingerprint/FingerprintManager$3; -Landroid/hardware/fingerprint/FingerprintManager$AuthenticationCallback; -Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult; -Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback; -Landroid/hardware/fingerprint/FingerprintManager$MyHandler-IA; -Landroid/hardware/fingerprint/FingerprintManager$MyHandler; -Landroid/hardware/fingerprint/FingerprintManager; -Landroid/hardware/fingerprint/FingerprintSensorPropertiesInternal$1; -Landroid/hardware/fingerprint/FingerprintSensorPropertiesInternal; -Landroid/hardware/fingerprint/IFingerprintAuthenticatorsRegisteredCallback$Stub; -Landroid/hardware/fingerprint/IFingerprintAuthenticatorsRegisteredCallback; -Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy; -Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub; -Landroid/hardware/fingerprint/IFingerprintClientActiveCallback; -Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy; -Landroid/hardware/fingerprint/IFingerprintService$Stub; -Landroid/hardware/fingerprint/IFingerprintService; -Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy; -Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub; -Landroid/hardware/fingerprint/IFingerprintServiceReceiver; -Landroid/hardware/fingerprint/IUdfpsOverlayController; -Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback$Stub; -Landroid/hardware/fingerprint/IUdfpsRefreshRateRequestCallback; -Landroid/hardware/graphics/common/DisplayDecorationSupport$1; -Landroid/hardware/graphics/common/DisplayDecorationSupport; -Landroid/hardware/hdmi/HdmiControlManager; -Landroid/hardware/hdmi/HdmiPlaybackClient$DisplayStatusCallback; -Landroid/hardware/hdmi/HdmiRecordSources$OwnSource; -Landroid/hardware/hdmi/HdmiRecordSources$RecordSource; -Landroid/hardware/input/HostUsiVersion$1; -Landroid/hardware/input/HostUsiVersion; -Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy; -Landroid/hardware/input/IInputDevicesChangedListener$Stub; -Landroid/hardware/input/IInputDevicesChangedListener; -Landroid/hardware/input/IInputManager$Stub$Proxy; -Landroid/hardware/input/IInputManager$Stub; -Landroid/hardware/input/IInputManager; -Landroid/hardware/input/IInputSensorEventListener$Stub; -Landroid/hardware/input/IInputSensorEventListener; -Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy; -Landroid/hardware/input/ITabletModeChangedListener$Stub; -Landroid/hardware/input/ITabletModeChangedListener; -Landroid/hardware/input/InputDeviceIdentifier$1; -Landroid/hardware/input/InputDeviceIdentifier; -Landroid/hardware/input/InputManager$InputDeviceListener; -Landroid/hardware/input/InputManager; -Landroid/hardware/input/InputManagerGlobal$InputDeviceListenerDelegate; -Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener-IA; -Landroid/hardware/input/InputManagerGlobal$InputDevicesChangedListener; -Landroid/hardware/input/InputManagerGlobal$OnTabletModeChangedListenerDelegate; -Landroid/hardware/input/InputManagerGlobal; -Landroid/hardware/input/InputSettings; -Landroid/hardware/input/KeyboardLayout$1; -Landroid/hardware/input/KeyboardLayout; -Landroid/hardware/input/TouchCalibration$1; -Landroid/hardware/input/TouchCalibration; -Landroid/hardware/iris/IrisManager; -Landroid/hardware/lights/ILightsManager$Stub; -Landroid/hardware/lights/ILightsManager; -Landroid/hardware/lights/LightsManager; -Landroid/hardware/location/ActivityRecognitionHardware; -Landroid/hardware/location/ContextHubClient; -Landroid/hardware/location/ContextHubClientCallback; -Landroid/hardware/location/ContextHubInfo$1; -Landroid/hardware/location/ContextHubInfo-IA; -Landroid/hardware/location/ContextHubInfo; -Landroid/hardware/location/ContextHubManager$1; -Landroid/hardware/location/ContextHubManager$2; -Landroid/hardware/location/ContextHubManager$3; -Landroid/hardware/location/ContextHubManager$Callback; -Landroid/hardware/location/ContextHubManager$ICallback; -Landroid/hardware/location/ContextHubManager; -Landroid/hardware/location/ContextHubMessage$1; -Landroid/hardware/location/ContextHubMessage; -Landroid/hardware/location/ContextHubTransaction$$ExternalSyntheticLambda0; -Landroid/hardware/location/ContextHubTransaction$$ExternalSyntheticLambda1; -Landroid/hardware/location/ContextHubTransaction$OnCompleteListener; -Landroid/hardware/location/ContextHubTransaction$Response; -Landroid/hardware/location/ContextHubTransaction; -Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper; -Landroid/hardware/location/GeofenceHardware; -Landroid/hardware/location/GeofenceHardwareCallback; -Landroid/hardware/location/GeofenceHardwareImpl$1; -Landroid/hardware/location/GeofenceHardwareImpl$2; -Landroid/hardware/location/GeofenceHardwareImpl$3; -Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition; -Landroid/hardware/location/GeofenceHardwareImpl$Reaper; -Landroid/hardware/location/GeofenceHardwareImpl; -Landroid/hardware/location/GeofenceHardwareMonitorCallback; -Landroid/hardware/location/GeofenceHardwareMonitorEvent$1; -Landroid/hardware/location/GeofenceHardwareMonitorEvent; -Landroid/hardware/location/GeofenceHardwareRequest; -Landroid/hardware/location/GeofenceHardwareRequestParcelable$1; -Landroid/hardware/location/GeofenceHardwareRequestParcelable; -Landroid/hardware/location/GeofenceHardwareService$1; -Landroid/hardware/location/GeofenceHardwareService; -Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy; -Landroid/hardware/location/IActivityRecognitionHardware$Stub; -Landroid/hardware/location/IActivityRecognitionHardware; -Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy; -Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub; -Landroid/hardware/location/IActivityRecognitionHardwareClient; -Landroid/hardware/location/IContextHubCallback$Stub$Proxy; -Landroid/hardware/location/IContextHubCallback$Stub; -Landroid/hardware/location/IContextHubCallback; -Landroid/hardware/location/IContextHubClient$Stub$Proxy; -Landroid/hardware/location/IContextHubClient$Stub; -Landroid/hardware/location/IContextHubClient; -Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy; -Landroid/hardware/location/IContextHubClientCallback$Stub; -Landroid/hardware/location/IContextHubClientCallback; -Landroid/hardware/location/IContextHubService$Stub$Proxy; -Landroid/hardware/location/IContextHubService$Stub; -Landroid/hardware/location/IContextHubService; -Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy; -Landroid/hardware/location/IContextHubTransactionCallback$Stub; -Landroid/hardware/location/IContextHubTransactionCallback; -Landroid/hardware/location/IGeofenceHardware$Stub$Proxy; -Landroid/hardware/location/IGeofenceHardware$Stub; -Landroid/hardware/location/IGeofenceHardware; -Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy; -Landroid/hardware/location/IGeofenceHardwareCallback$Stub; -Landroid/hardware/location/IGeofenceHardwareCallback; -Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy; -Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub; -Landroid/hardware/location/IGeofenceHardwareMonitorCallback; -Landroid/hardware/location/MemoryRegion$1; -Landroid/hardware/location/MemoryRegion; -Landroid/hardware/location/NanoApp$1; -Landroid/hardware/location/NanoApp; -Landroid/hardware/location/NanoAppBinary$1; -Landroid/hardware/location/NanoAppBinary; -Landroid/hardware/location/NanoAppFilter$1; -Landroid/hardware/location/NanoAppFilter; -Landroid/hardware/location/NanoAppInstanceInfo$1; -Landroid/hardware/location/NanoAppInstanceInfo; -Landroid/hardware/location/NanoAppMessage$1; -Landroid/hardware/location/NanoAppMessage-IA; -Landroid/hardware/location/NanoAppMessage; -Landroid/hardware/location/NanoAppRpcService$1; -Landroid/hardware/location/NanoAppRpcService; -Landroid/hardware/location/NanoAppState$1; -Landroid/hardware/location/NanoAppState-IA; -Landroid/hardware/location/NanoAppState; -Landroid/hardware/power/SessionMode; -Landroid/hardware/radio/ITuner$Stub; -Landroid/hardware/radio/ITuner; -Landroid/hardware/radio/ITunerCallback; -Landroid/hardware/radio/ProgramSelector$1; -Landroid/hardware/radio/ProgramSelector$Identifier$1; -Landroid/hardware/radio/ProgramSelector$Identifier; -Landroid/hardware/radio/ProgramSelector; -Landroid/hardware/radio/RadioManager$AmBandConfig$1; -Landroid/hardware/radio/RadioManager$AmBandConfig; -Landroid/hardware/radio/RadioManager$AmBandDescriptor$1; -Landroid/hardware/radio/RadioManager$AmBandDescriptor; -Landroid/hardware/radio/RadioManager$BandConfig$1; -Landroid/hardware/radio/RadioManager$BandConfig; -Landroid/hardware/radio/RadioManager$BandDescriptor$1; -Landroid/hardware/radio/RadioManager$BandDescriptor; -Landroid/hardware/radio/RadioManager$FmBandConfig$1; -Landroid/hardware/radio/RadioManager$FmBandConfig; -Landroid/hardware/radio/RadioManager$FmBandDescriptor$1; -Landroid/hardware/radio/RadioManager$FmBandDescriptor; -Landroid/hardware/radio/RadioManager$ModuleProperties$1; -Landroid/hardware/radio/RadioManager$ModuleProperties; -Landroid/hardware/radio/RadioManager$ProgramInfo$1; -Landroid/hardware/radio/RadioManager$ProgramInfo; -Landroid/hardware/radio/RadioManager; -Landroid/hardware/radio/RadioMetadata$1; -Landroid/hardware/radio/RadioMetadata; -Landroid/hardware/radio/V1_0/ActivityStatsInfo; -Landroid/hardware/radio/V1_0/AppStatus; -Landroid/hardware/radio/V1_0/Call; -Landroid/hardware/radio/V1_0/CallForwardInfo; -Landroid/hardware/radio/V1_0/CardState; -Landroid/hardware/radio/V1_0/CardStatus; -Landroid/hardware/radio/V1_0/Carrier; -Landroid/hardware/radio/V1_0/CarrierRestrictions; -Landroid/hardware/radio/V1_0/CdmaBroadcastSmsConfigInfo; -Landroid/hardware/radio/V1_0/CdmaCallWaiting; -Landroid/hardware/radio/V1_0/CdmaDisplayInfoRecord; -Landroid/hardware/radio/V1_0/CdmaInformationRecord; -Landroid/hardware/radio/V1_0/CdmaInformationRecords; -Landroid/hardware/radio/V1_0/CdmaLineControlInfoRecord; -Landroid/hardware/radio/V1_0/CdmaNumberInfoRecord; -Landroid/hardware/radio/V1_0/CdmaRedirectingNumberInfoRecord; -Landroid/hardware/radio/V1_0/CdmaSignalInfoRecord; -Landroid/hardware/radio/V1_0/CdmaSignalStrength; -Landroid/hardware/radio/V1_0/CdmaSmsAck; -Landroid/hardware/radio/V1_0/CdmaSmsAddress; -Landroid/hardware/radio/V1_0/CdmaSmsMessage; -Landroid/hardware/radio/V1_0/CdmaSmsSubaddress; -Landroid/hardware/radio/V1_0/CdmaSmsWriteArgs; -Landroid/hardware/radio/V1_0/CdmaT53AudioControlInfoRecord; -Landroid/hardware/radio/V1_0/CdmaT53ClirInfoRecord; -Landroid/hardware/radio/V1_0/CellIdentity; -Landroid/hardware/radio/V1_0/CellIdentityCdma; -Landroid/hardware/radio/V1_0/CellIdentityGsm; -Landroid/hardware/radio/V1_0/CellIdentityLte; -Landroid/hardware/radio/V1_0/CellIdentityTdscdma; -Landroid/hardware/radio/V1_0/CellIdentityWcdma; -Landroid/hardware/radio/V1_0/CellInfo; -Landroid/hardware/radio/V1_0/CellInfoCdma; -Landroid/hardware/radio/V1_0/CellInfoGsm; -Landroid/hardware/radio/V1_0/CellInfoLte; -Landroid/hardware/radio/V1_0/CellInfoTdscdma; -Landroid/hardware/radio/V1_0/CellInfoType; -Landroid/hardware/radio/V1_0/CellInfoWcdma; -Landroid/hardware/radio/V1_0/CfData; -Landroid/hardware/radio/V1_0/DataCallFailCause; -Landroid/hardware/radio/V1_0/DataProfileInfo; -Landroid/hardware/radio/V1_0/DataRegStateResult; -Landroid/hardware/radio/V1_0/Dial; -Landroid/hardware/radio/V1_0/EvdoSignalStrength; -Landroid/hardware/radio/V1_0/GsmBroadcastSmsConfigInfo; -Landroid/hardware/radio/V1_0/GsmSignalStrength; -Landroid/hardware/radio/V1_0/GsmSmsMessage; -Landroid/hardware/radio/V1_0/HardwareConfig; -Landroid/hardware/radio/V1_0/HardwareConfigModem; -Landroid/hardware/radio/V1_0/HardwareConfigSim; -Landroid/hardware/radio/V1_0/IRadio; -Landroid/hardware/radio/V1_0/IRadioIndication; -Landroid/hardware/radio/V1_0/IRadioResponse; -Landroid/hardware/radio/V1_0/IccIo; -Landroid/hardware/radio/V1_0/IccIoResult; -Landroid/hardware/radio/V1_0/ImsSmsMessage; -Landroid/hardware/radio/V1_0/LastCallFailCauseInfo; -Landroid/hardware/radio/V1_0/LceDataInfo; -Landroid/hardware/radio/V1_0/LceStatusInfo; -Landroid/hardware/radio/V1_0/LteSignalStrength; -Landroid/hardware/radio/V1_0/NeighboringCell; -Landroid/hardware/radio/V1_0/NvWriteItem; -Landroid/hardware/radio/V1_0/OperatorInfo; -Landroid/hardware/radio/V1_0/PcoDataInfo; -Landroid/hardware/radio/V1_0/RadioCapability; -Landroid/hardware/radio/V1_0/RadioResponseInfo; -Landroid/hardware/radio/V1_0/RegState; -Landroid/hardware/radio/V1_0/SelectUiccSub; -Landroid/hardware/radio/V1_0/SendSmsResult; -Landroid/hardware/radio/V1_0/SetupDataCallResult; -Landroid/hardware/radio/V1_0/SignalStrength; -Landroid/hardware/radio/V1_0/SimApdu; -Landroid/hardware/radio/V1_0/SimRefreshResult; -Landroid/hardware/radio/V1_0/SmsWriteArgs; -Landroid/hardware/radio/V1_0/SsInfoData; -Landroid/hardware/radio/V1_0/StkCcUnsolSsResult; -Landroid/hardware/radio/V1_0/SuppSvcNotification; -Landroid/hardware/radio/V1_0/TdScdmaSignalStrength; -Landroid/hardware/radio/V1_0/UusInfo; -Landroid/hardware/radio/V1_0/VoiceRegStateResult; -Landroid/hardware/radio/V1_0/WcdmaSignalStrength; -Landroid/hardware/radio/V1_1/IRadio$Proxy; -Landroid/hardware/radio/V1_1/IRadio; -Landroid/hardware/radio/V1_1/IRadioIndication; -Landroid/hardware/radio/V1_1/IRadioResponse; -Landroid/hardware/radio/V1_1/ImsiEncryptionInfo; -Landroid/hardware/radio/V1_1/KeepaliveRequest; -Landroid/hardware/radio/V1_1/KeepaliveStatus; -Landroid/hardware/radio/V1_1/NetworkScanRequest; -Landroid/hardware/radio/V1_1/NetworkScanResult; -Landroid/hardware/radio/V1_1/RadioAccessSpecifier; -Landroid/hardware/radio/V1_2/Call; -Landroid/hardware/radio/V1_2/CardStatus; -Landroid/hardware/radio/V1_2/CellIdentity; -Landroid/hardware/radio/V1_2/CellIdentityCdma; -Landroid/hardware/radio/V1_2/CellIdentityGsm; -Landroid/hardware/radio/V1_2/CellIdentityLte; -Landroid/hardware/radio/V1_2/CellIdentityOperatorNames; -Landroid/hardware/radio/V1_2/CellIdentityTdscdma; -Landroid/hardware/radio/V1_2/CellIdentityWcdma; -Landroid/hardware/radio/V1_2/CellInfo; -Landroid/hardware/radio/V1_2/CellInfoCdma; -Landroid/hardware/radio/V1_2/CellInfoGsm; -Landroid/hardware/radio/V1_2/CellInfoLte; -Landroid/hardware/radio/V1_2/CellInfoTdscdma; -Landroid/hardware/radio/V1_2/CellInfoWcdma; -Landroid/hardware/radio/V1_2/DataRegStateResult; -Landroid/hardware/radio/V1_2/IRadio; -Landroid/hardware/radio/V1_2/IRadioIndication; -Landroid/hardware/radio/V1_2/IRadioResponse; -Landroid/hardware/radio/V1_2/LinkCapacityEstimate; -Landroid/hardware/radio/V1_2/NetworkScanRequest; -Landroid/hardware/radio/V1_2/NetworkScanResult; -Landroid/hardware/radio/V1_2/PhysicalChannelConfig; -Landroid/hardware/radio/V1_2/SignalStrength; -Landroid/hardware/radio/V1_2/TdscdmaSignalStrength; -Landroid/hardware/radio/V1_2/VoiceRegStateResult; -Landroid/hardware/radio/V1_2/WcdmaSignalStrength; -Landroid/hardware/radio/V1_3/IRadio$Proxy; -Landroid/hardware/radio/V1_3/IRadio; -Landroid/hardware/radio/V1_3/IRadioIndication; -Landroid/hardware/radio/V1_3/IRadioResponse; -Landroid/hardware/radio/V1_4/CardStatus; -Landroid/hardware/radio/V1_4/CarrierRestrictionsWithPriority; -Landroid/hardware/radio/V1_4/CellConfigLte; -Landroid/hardware/radio/V1_4/CellIdentityNr; -Landroid/hardware/radio/V1_4/CellInfo$Info; -Landroid/hardware/radio/V1_4/CellInfo; -Landroid/hardware/radio/V1_4/CellInfoLte; -Landroid/hardware/radio/V1_4/CellInfoNr; -Landroid/hardware/radio/V1_4/DataProfileInfo; -Landroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo$hidl_discriminator; -Landroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo; -Landroid/hardware/radio/V1_4/DataRegStateResult; -Landroid/hardware/radio/V1_4/EmergencyNumber; -Landroid/hardware/radio/V1_4/IRadio$Proxy; -Landroid/hardware/radio/V1_4/IRadio; -Landroid/hardware/radio/V1_4/IRadioIndication$Stub; -Landroid/hardware/radio/V1_4/IRadioIndication; -Landroid/hardware/radio/V1_4/IRadioResponse$Stub; -Landroid/hardware/radio/V1_4/IRadioResponse; -Landroid/hardware/radio/V1_4/LteVopsInfo; -Landroid/hardware/radio/V1_4/NetworkScanResult; -Landroid/hardware/radio/V1_4/NrIndicators; -Landroid/hardware/radio/V1_4/NrSignalStrength; -Landroid/hardware/radio/V1_4/PhysicalChannelConfig; -Landroid/hardware/radio/V1_4/RadioFrequencyInfo; -Landroid/hardware/radio/V1_4/SetupDataCallResult; -Landroid/hardware/radio/V1_4/SignalStrength; -Landroid/hardware/radio/V1_5/AppStatus; -Landroid/hardware/radio/V1_5/CardStatus; -Landroid/hardware/radio/V1_5/CellIdentity; -Landroid/hardware/radio/V1_5/CellIdentityGsm; -Landroid/hardware/radio/V1_5/CellIdentityLte; -Landroid/hardware/radio/V1_5/CellIdentityNr; -Landroid/hardware/radio/V1_5/CellIdentityTdscdma; -Landroid/hardware/radio/V1_5/CellIdentityWcdma; -Landroid/hardware/radio/V1_5/CellInfo; -Landroid/hardware/radio/V1_5/ClosedSubscriberGroupInfo; -Landroid/hardware/radio/V1_5/DataProfileInfo; -Landroid/hardware/radio/V1_5/IRadio; -Landroid/hardware/radio/V1_5/IRadioIndication$Stub; -Landroid/hardware/radio/V1_5/IRadioIndication; -Landroid/hardware/radio/V1_5/IRadioResponse$Stub; -Landroid/hardware/radio/V1_5/IRadioResponse; -Landroid/hardware/radio/V1_5/LinkAddress; -Landroid/hardware/radio/V1_5/NetworkScanRequest; -Landroid/hardware/radio/V1_5/NetworkScanResult; -Landroid/hardware/radio/V1_5/OptionalCsgInfo; -Landroid/hardware/radio/V1_5/RadioAccessSpecifier$Bands; -Landroid/hardware/radio/V1_5/RadioAccessSpecifier; -Landroid/hardware/radio/V1_5/RegStateResult$AccessTechnologySpecificInfo$Cdma2000RegistrationInfo; -Landroid/hardware/radio/V1_5/RegStateResult$AccessTechnologySpecificInfo$EutranRegistrationInfo; -Landroid/hardware/radio/V1_5/RegStateResult$AccessTechnologySpecificInfo; -Landroid/hardware/radio/V1_5/RegStateResult; -Landroid/hardware/radio/V1_5/SetupDataCallResult; -Landroid/hardware/radio/V1_5/SignalThresholdInfo; -Landroid/hardware/radio/V1_6/Call; -Landroid/hardware/radio/V1_6/CellInfo; -Landroid/hardware/radio/V1_6/IRadio; -Landroid/hardware/radio/V1_6/IRadioIndication$Stub; -Landroid/hardware/radio/V1_6/IRadioIndication; -Landroid/hardware/radio/V1_6/IRadioResponse$Stub; -Landroid/hardware/radio/V1_6/IRadioResponse; -Landroid/hardware/radio/V1_6/ImsiEncryptionInfo; -Landroid/hardware/radio/V1_6/LinkCapacityEstimate; -Landroid/hardware/radio/V1_6/NetworkScanResult; -Landroid/hardware/radio/V1_6/NrVopsInfo; -Landroid/hardware/radio/V1_6/OptionalDnn; -Landroid/hardware/radio/V1_6/OptionalOsAppId; -Landroid/hardware/radio/V1_6/OptionalSliceInfo; -Landroid/hardware/radio/V1_6/OptionalTrafficDescriptor; -Landroid/hardware/radio/V1_6/OsAppId; -Landroid/hardware/radio/V1_6/PhonebookCapacity; -Landroid/hardware/radio/V1_6/PhonebookRecordInfo; -Landroid/hardware/radio/V1_6/PhysicalChannelConfig$Band; -Landroid/hardware/radio/V1_6/PhysicalChannelConfig; -Landroid/hardware/radio/V1_6/Qos; -Landroid/hardware/radio/V1_6/QosSession; -Landroid/hardware/radio/V1_6/RadioResponseInfo; -Landroid/hardware/radio/V1_6/RegStateResult$AccessTechnologySpecificInfo; -Landroid/hardware/radio/V1_6/RegStateResult; -Landroid/hardware/radio/V1_6/SetupDataCallResult; -Landroid/hardware/radio/V1_6/SignalStrength; -Landroid/hardware/radio/V1_6/SliceInfo; -Landroid/hardware/radio/V1_6/SlicingConfig; -Landroid/hardware/radio/V1_6/TrafficDescriptor; -Landroid/hardware/radio/config/V1_0/IRadioConfig; -Landroid/hardware/radio/config/V1_0/IRadioConfigIndication; -Landroid/hardware/radio/config/V1_0/IRadioConfigResponse; -Landroid/hardware/radio/config/V1_0/SimSlotStatus; -Landroid/hardware/radio/config/V1_0/SlotState; -Landroid/hardware/radio/config/V1_1/IRadioConfig$Proxy; -Landroid/hardware/radio/config/V1_1/IRadioConfig; -Landroid/hardware/radio/config/V1_1/IRadioConfigResponse; -Landroid/hardware/radio/config/V1_1/ModemInfo; -Landroid/hardware/radio/config/V1_1/ModemsConfig; -Landroid/hardware/radio/config/V1_1/PhoneCapability; -Landroid/hardware/radio/config/V1_2/IRadioConfigIndication$Stub; -Landroid/hardware/radio/config/V1_2/IRadioConfigIndication; -Landroid/hardware/radio/config/V1_2/IRadioConfigResponse; -Landroid/hardware/radio/config/V1_2/SimSlotStatus; -Landroid/hardware/radio/config/V1_3/IRadioConfig$Proxy; -Landroid/hardware/radio/config/V1_3/IRadioConfig; -Landroid/hardware/radio/config/V1_3/IRadioConfigResponse$Stub; -Landroid/hardware/radio/config/V1_3/IRadioConfigResponse; -Landroid/hardware/security/keymint/KeyParameter$1; -Landroid/hardware/security/keymint/KeyParameter; -Landroid/hardware/security/keymint/KeyParameterValue$1; -Landroid/hardware/security/keymint/KeyParameterValue-IA; -Landroid/hardware/security/keymint/KeyParameterValue; -Landroid/hardware/sidekick/SidekickInternal; -Landroid/hardware/soundtrigger/ConversionUtil; -Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy; -Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub; -Landroid/hardware/soundtrigger/IRecognitionStatusCallback; -Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo; -Landroid/hardware/soundtrigger/KeyphraseMetadata$1; -Landroid/hardware/soundtrigger/KeyphraseMetadata; -Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1; -Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel; -Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent$1; -Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent; -Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel$1; -Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel; -Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase$1; -Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase; -Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent$1; -Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent; -Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1; -Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra; -Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel$1; -Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel; -Landroid/hardware/soundtrigger/SoundTrigger$ModelParamRange$1; -Landroid/hardware/soundtrigger/SoundTrigger$ModelParamRange; -Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties$1; -Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties; -Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1; -Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig; -Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent$1; -Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent; -Landroid/hardware/soundtrigger/SoundTrigger$SoundModel; -Landroid/hardware/soundtrigger/SoundTrigger$StatusListener; -Landroid/hardware/soundtrigger/SoundTrigger; -Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate$1; -Landroid/hardware/soundtrigger/SoundTriggerModule$EventHandlerDelegate; -Landroid/hardware/soundtrigger/SoundTriggerModule; -Landroid/hardware/thermal/V1_0/CoolingType; -Landroid/hardware/thermal/V1_0/IThermal; -Landroid/hardware/thermal/V1_0/ThermalStatus; -Landroid/hardware/thermal/V2_0/CoolingDevice; -Landroid/hardware/thermal/V2_0/IThermal$Proxy; -Landroid/hardware/thermal/V2_0/IThermal$getCurrentCoolingDevicesCallback; -Landroid/hardware/thermal/V2_0/IThermal$getCurrentTemperaturesCallback; -Landroid/hardware/thermal/V2_0/IThermal$getTemperatureThresholdsCallback; -Landroid/hardware/thermal/V2_0/IThermal; -Landroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub; -Landroid/hardware/thermal/V2_0/IThermalChangedCallback; -Landroid/hardware/thermal/V2_0/Temperature; -Landroid/hardware/thermal/V2_0/TemperatureThreshold; -Landroid/hardware/usb/AccessoryFilter; -Landroid/hardware/usb/DeviceFilter; -Landroid/hardware/usb/IUsbManager$Stub$Proxy; -Landroid/hardware/usb/IUsbManager$Stub; -Landroid/hardware/usb/IUsbManager; -Landroid/hardware/usb/IUsbSerialReader$Stub; -Landroid/hardware/usb/IUsbSerialReader; -Landroid/hardware/usb/ParcelableUsbPort$1; -Landroid/hardware/usb/ParcelableUsbPort; -Landroid/hardware/usb/UsbAccessory$2; -Landroid/hardware/usb/UsbAccessory; -Landroid/hardware/usb/UsbConfiguration$1; -Landroid/hardware/usb/UsbConfiguration; -Landroid/hardware/usb/UsbDevice$1; -Landroid/hardware/usb/UsbDevice$Builder; -Landroid/hardware/usb/UsbDevice; -Landroid/hardware/usb/UsbDeviceConnection; -Landroid/hardware/usb/UsbInterface$1; -Landroid/hardware/usb/UsbInterface; -Landroid/hardware/usb/UsbManager; -Landroid/hardware/usb/UsbPort; -Landroid/hardware/usb/UsbPortStatus$1; -Landroid/hardware/usb/UsbPortStatus; -Landroid/hardware/usb/UsbRequest; -Landroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy; -Landroid/hardware/usb/gadget/V1_0/IUsbGadget; -Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub; -Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback; -Landroid/icu/impl/Assert; -Landroid/icu/impl/BMPSet; -Landroid/icu/impl/CSCharacterIterator; -Landroid/icu/impl/CacheBase; -Landroid/icu/impl/CacheValue$NullValue; -Landroid/icu/impl/CacheValue$SoftValue; -Landroid/icu/impl/CacheValue$Strength; -Landroid/icu/impl/CacheValue$StrongValue; -Landroid/icu/impl/CacheValue; -Landroid/icu/impl/CalType; -Landroid/icu/impl/CalendarAstronomer$1; -Landroid/icu/impl/CalendarAstronomer$2; -Landroid/icu/impl/CalendarAstronomer$3; -Landroid/icu/impl/CalendarAstronomer$4; -Landroid/icu/impl/CalendarAstronomer$AngleFunc; -Landroid/icu/impl/CalendarAstronomer$CoordFunc; -Landroid/icu/impl/CalendarAstronomer$Ecliptic; -Landroid/icu/impl/CalendarAstronomer$Equatorial; -Landroid/icu/impl/CalendarAstronomer$Horizon; -Landroid/icu/impl/CalendarAstronomer$MoonAge; -Landroid/icu/impl/CalendarAstronomer$SolarLongitude; -Landroid/icu/impl/CalendarAstronomer; -Landroid/icu/impl/CalendarCache; -Landroid/icu/impl/CalendarUtil$CalendarPreferences; -Landroid/icu/impl/CalendarUtil; -Landroid/icu/impl/CaseMapImpl$GreekUpper; -Landroid/icu/impl/CaseMapImpl$StringContextIterator; -Landroid/icu/impl/CaseMapImpl$WholeStringBreakIterator; -Landroid/icu/impl/CaseMapImpl; -Landroid/icu/impl/CharTrie; -Landroid/icu/impl/CharacterIteration; -Landroid/icu/impl/CharacterIteratorWrapper; -Landroid/icu/impl/CharacterPropertiesImpl; -Landroid/icu/impl/ClassLoaderUtil$1; -Landroid/icu/impl/ClassLoaderUtil$BootstrapClassLoader; -Landroid/icu/impl/ClassLoaderUtil; -Landroid/icu/impl/CollectionSet; -Landroid/icu/impl/CurrencyData$1; -Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo; -Landroid/icu/impl/CurrencyData$CurrencyDisplayInfoProvider; -Landroid/icu/impl/CurrencyData$CurrencyFormatInfo; -Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern; -Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType; -Landroid/icu/impl/CurrencyData$CurrencySpacingInfo; -Landroid/icu/impl/CurrencyData$DefaultInfo; -Landroid/icu/impl/CurrencyData; -Landroid/icu/impl/DateNumberFormat; -Landroid/icu/impl/DayPeriodRules$CutoffType; -Landroid/icu/impl/DayPeriodRules$DayPeriod; -Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink; -Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData; -Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink; -Landroid/icu/impl/DayPeriodRules-IA; -Landroid/icu/impl/DayPeriodRules; -Landroid/icu/impl/DontCareFieldPosition; -Landroid/icu/impl/EmojiProps; -Landroid/icu/impl/EraRules; -Landroid/icu/impl/FormattedStringBuilder$FieldWrapper; -Landroid/icu/impl/FormattedStringBuilder; -Landroid/icu/impl/FormattedValueFieldPositionIteratorImpl$FieldWithValue; -Landroid/icu/impl/FormattedValueFieldPositionIteratorImpl; -Landroid/icu/impl/FormattedValueStringBuilderImpl$NullField; -Landroid/icu/impl/FormattedValueStringBuilderImpl$SpanFieldPlaceholder; -Landroid/icu/impl/FormattedValueStringBuilderImpl; -Landroid/icu/impl/Grego; -Landroid/icu/impl/ICUBinary$Authenticate; -Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable; -Landroid/icu/impl/ICUBinary$DatPackageReader; -Landroid/icu/impl/ICUBinary$DataFile; -Landroid/icu/impl/ICUBinary$PackageDataFile; -Landroid/icu/impl/ICUBinary$SingleDataFile; -Landroid/icu/impl/ICUBinary; -Landroid/icu/impl/ICUCache; -Landroid/icu/impl/ICUConfig$1; -Landroid/icu/impl/ICUConfig; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink$EntrypointTable; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$FormattingData; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$ParsingData; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$VariantSymbol; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo; -Landroid/icu/impl/ICUCurrencyDisplayInfoProvider; -Landroid/icu/impl/ICUCurrencyMetaInfo$Collector; -Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector-IA; -Landroid/icu/impl/ICUCurrencyMetaInfo$CurrencyCollector; -Landroid/icu/impl/ICUCurrencyMetaInfo$InfoCollector; -Landroid/icu/impl/ICUCurrencyMetaInfo$RegionCollector; -Landroid/icu/impl/ICUCurrencyMetaInfo$UniqueList; -Landroid/icu/impl/ICUCurrencyMetaInfo; -Landroid/icu/impl/ICUData$1; -Landroid/icu/impl/ICUData$2; -Landroid/icu/impl/ICUData$3; -Landroid/icu/impl/ICUData; -Landroid/icu/impl/ICUDataVersion; -Landroid/icu/impl/ICUDebug; -Landroid/icu/impl/ICULangDataTables; -Landroid/icu/impl/ICULocaleService$ICUResourceBundleFactory; -Landroid/icu/impl/ICULocaleService$LocaleKey; -Landroid/icu/impl/ICULocaleService$LocaleKeyFactory; -Landroid/icu/impl/ICULocaleService$SimpleLocaleKeyFactory; -Landroid/icu/impl/ICULocaleService; -Landroid/icu/impl/ICUNotifier$NotifyThread; -Landroid/icu/impl/ICUNotifier; -Landroid/icu/impl/ICURWLock$Stats; -Landroid/icu/impl/ICURWLock; -Landroid/icu/impl/ICURegionDataTables; -Landroid/icu/impl/ICUResourceBundle$1; -Landroid/icu/impl/ICUResourceBundle$1AllChildrenSink; -Landroid/icu/impl/ICUResourceBundle$2$1; -Landroid/icu/impl/ICUResourceBundle$2; -Landroid/icu/impl/ICUResourceBundle$3; -Landroid/icu/impl/ICUResourceBundle$4; -Landroid/icu/impl/ICUResourceBundle$5; -Landroid/icu/impl/ICUResourceBundle$AvailEntry; -Landroid/icu/impl/ICUResourceBundle$AvailableLocalesSink; -Landroid/icu/impl/ICUResourceBundle$Loader-IA; -Landroid/icu/impl/ICUResourceBundle$Loader; -Landroid/icu/impl/ICUResourceBundle$OpenType; -Landroid/icu/impl/ICUResourceBundle$WholeBundle; -Landroid/icu/impl/ICUResourceBundle; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceArray; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceBinary; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceContainer; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceInt; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceIntVector; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceString; -Landroid/icu/impl/ICUResourceBundleImpl$ResourceTable; -Landroid/icu/impl/ICUResourceBundleImpl; -Landroid/icu/impl/ICUResourceBundleReader$Array16; -Landroid/icu/impl/ICUResourceBundleReader$Array32; -Landroid/icu/impl/ICUResourceBundleReader$Array; -Landroid/icu/impl/ICUResourceBundleReader$Container; -Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable; -Landroid/icu/impl/ICUResourceBundleReader$ReaderCache; -Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey; -Landroid/icu/impl/ICUResourceBundleReader$ReaderValue; -Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level; -Landroid/icu/impl/ICUResourceBundleReader$ResourceCache; -Landroid/icu/impl/ICUResourceBundleReader$Table1632; -Landroid/icu/impl/ICUResourceBundleReader$Table16; -Landroid/icu/impl/ICUResourceBundleReader$Table32; -Landroid/icu/impl/ICUResourceBundleReader$Table; -Landroid/icu/impl/ICUResourceBundleReader-IA; -Landroid/icu/impl/ICUResourceBundleReader; -Landroid/icu/impl/ICUResourceTableAccess; -Landroid/icu/impl/ICUService$CacheEntry; -Landroid/icu/impl/ICUService$Factory; -Landroid/icu/impl/ICUService$Key; -Landroid/icu/impl/ICUService$LocaleRef; -Landroid/icu/impl/ICUService$ServiceListener; -Landroid/icu/impl/ICUService$SimpleFactory; -Landroid/icu/impl/ICUService; -Landroid/icu/impl/IDNA2003; -Landroid/icu/impl/IllegalIcuArgumentException; -Landroid/icu/impl/IntTrie; -Landroid/icu/impl/IntTrieBuilder; -Landroid/icu/impl/InvalidFormatException; -Landroid/icu/impl/IterableComparator; -Landroid/icu/impl/JavaTimeZone; -Landroid/icu/impl/LocaleDisplayNamesImpl$1; -Landroid/icu/impl/LocaleDisplayNamesImpl$Cache; -Landroid/icu/impl/LocaleDisplayNamesImpl$CapitalizationContextSink; -Landroid/icu/impl/LocaleDisplayNamesImpl$CapitalizationContextUsage; -Landroid/icu/impl/LocaleDisplayNamesImpl$DataTable; -Landroid/icu/impl/LocaleDisplayNamesImpl$DataTableType; -Landroid/icu/impl/LocaleDisplayNamesImpl$DataTables$1; -Landroid/icu/impl/LocaleDisplayNamesImpl$DataTables; -Landroid/icu/impl/LocaleDisplayNamesImpl$ICUDataTable; -Landroid/icu/impl/LocaleDisplayNamesImpl$ICUDataTables; -Landroid/icu/impl/LocaleDisplayNamesImpl$LangDataTables; -Landroid/icu/impl/LocaleDisplayNamesImpl$RegionDataTables; -Landroid/icu/impl/LocaleDisplayNamesImpl; -Landroid/icu/impl/LocaleFallbackData; -Landroid/icu/impl/LocaleIDParser$1; -Landroid/icu/impl/LocaleIDParser; -Landroid/icu/impl/LocaleIDs; -Landroid/icu/impl/LocaleUtility; -Landroid/icu/impl/Norm2AllModes$1; -Landroid/icu/impl/Norm2AllModes$ComposeNormalizer2; -Landroid/icu/impl/Norm2AllModes$DecomposeNormalizer2; -Landroid/icu/impl/Norm2AllModes$FCDNormalizer2; -Landroid/icu/impl/Norm2AllModes$NFCSingleton; -Landroid/icu/impl/Norm2AllModes$NFKCSingleton; -Landroid/icu/impl/Norm2AllModes$NFKC_CFSingleton; -Landroid/icu/impl/Norm2AllModes$NoopNormalizer2; -Landroid/icu/impl/Norm2AllModes$Norm2AllModesSingleton; -Landroid/icu/impl/Norm2AllModes$Normalizer2WithImpl; -Landroid/icu/impl/Norm2AllModes; -Landroid/icu/impl/Normalizer2Impl$1; -Landroid/icu/impl/Normalizer2Impl$Hangul; -Landroid/icu/impl/Normalizer2Impl$IsAcceptable; -Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer; -Landroid/icu/impl/Normalizer2Impl$UTF16Plus; -Landroid/icu/impl/Normalizer2Impl; -Landroid/icu/impl/OlsonTimeZone; -Landroid/icu/impl/PVecToTrieCompactHandler; -Landroid/icu/impl/Pair; -Landroid/icu/impl/PatternProps; -Landroid/icu/impl/PatternTokenizer; -Landroid/icu/impl/PluralRulesLoader; -Landroid/icu/impl/PropsVectors$1; -Landroid/icu/impl/PropsVectors$CompactHandler; -Landroid/icu/impl/PropsVectors$DefaultGetFoldedValue; -Landroid/icu/impl/PropsVectors$DefaultGetFoldingOffset; -Landroid/icu/impl/PropsVectors; -Landroid/icu/impl/Punycode; -Landroid/icu/impl/RBBIDataWrapper$IsAcceptable; -Landroid/icu/impl/RBBIDataWrapper$RBBIDataHeader; -Landroid/icu/impl/RBBIDataWrapper$RBBIStateTable; -Landroid/icu/impl/RBBIDataWrapper; -Landroid/icu/impl/Relation$SimpleEntry; -Landroid/icu/impl/Relation; -Landroid/icu/impl/RelativeDateFormat$RelDateFmtDataSink; -Landroid/icu/impl/RelativeDateFormat$URelativeString; -Landroid/icu/impl/RelativeDateFormat; -Landroid/icu/impl/ReplaceableUCharacterIterator; -Landroid/icu/impl/ResourceBundleWrapper$1; -Landroid/icu/impl/ResourceBundleWrapper$2$1; -Landroid/icu/impl/ResourceBundleWrapper$2; -Landroid/icu/impl/ResourceBundleWrapper$Loader; -Landroid/icu/impl/ResourceBundleWrapper; -Landroid/icu/impl/Row$R2; -Landroid/icu/impl/Row$R3; -Landroid/icu/impl/Row$R4; -Landroid/icu/impl/Row$R5; -Landroid/icu/impl/Row; -Landroid/icu/impl/RuleCharacterIterator$Position; -Landroid/icu/impl/RuleCharacterIterator; -Landroid/icu/impl/SimpleCache; -Landroid/icu/impl/SimpleFilteredSentenceBreakIterator$Builder; -Landroid/icu/impl/SimpleFilteredSentenceBreakIterator; -Landroid/icu/impl/SimpleFormatterImpl$IterInternal; -Landroid/icu/impl/SimpleFormatterImpl; -Landroid/icu/impl/SoftCache; -Landroid/icu/impl/SortedSetRelation; -Landroid/icu/impl/StandardPlural; -Landroid/icu/impl/StaticUnicodeSets$Key; -Landroid/icu/impl/StaticUnicodeSets$ParseDataSink; -Landroid/icu/impl/StaticUnicodeSets; -Landroid/icu/impl/StringPrepDataReader; -Landroid/icu/impl/StringRange$1; -Landroid/icu/impl/StringRange$Adder; -Landroid/icu/impl/StringRange$Range; -Landroid/icu/impl/StringRange$Ranges; -Landroid/icu/impl/StringRange; -Landroid/icu/impl/StringSegment; -Landroid/icu/impl/TZDBTimeZoneNames$1; -Landroid/icu/impl/TZDBTimeZoneNames$TZDBNameInfo; -Landroid/icu/impl/TZDBTimeZoneNames$TZDBNameSearchHandler; -Landroid/icu/impl/TZDBTimeZoneNames$TZDBNames; -Landroid/icu/impl/TZDBTimeZoneNames; -Landroid/icu/impl/TextTrieMap$CharIterator; -Landroid/icu/impl/TextTrieMap$LongestMatchHandler; -Landroid/icu/impl/TextTrieMap$Node-IA; -Landroid/icu/impl/TextTrieMap$Node; -Landroid/icu/impl/TextTrieMap$Output; -Landroid/icu/impl/TextTrieMap$ResultHandler; -Landroid/icu/impl/TextTrieMap; -Landroid/icu/impl/TimeZoneAdapter; -Landroid/icu/impl/TimeZoneGenericNames$1; -Landroid/icu/impl/TimeZoneGenericNames$Cache; -Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo; -Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler; -Landroid/icu/impl/TimeZoneGenericNames$GenericNameType; -Landroid/icu/impl/TimeZoneGenericNames$NameInfo; -Landroid/icu/impl/TimeZoneGenericNames$Pattern; -Landroid/icu/impl/TimeZoneGenericNames; -Landroid/icu/impl/TimeZoneNamesFactoryImpl; -Landroid/icu/impl/TimeZoneNamesImpl$1; -Landroid/icu/impl/TimeZoneNamesImpl$MZ2TZsCache; -Landroid/icu/impl/TimeZoneNamesImpl$MZMapEntry; -Landroid/icu/impl/TimeZoneNamesImpl$NameInfo; -Landroid/icu/impl/TimeZoneNamesImpl$NameSearchHandler; -Landroid/icu/impl/TimeZoneNamesImpl$TZ2MZsCache; -Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex; -Landroid/icu/impl/TimeZoneNamesImpl$ZNames; -Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader-IA; -Landroid/icu/impl/TimeZoneNamesImpl$ZNamesLoader; -Landroid/icu/impl/TimeZoneNamesImpl$ZoneStringsLoader; -Landroid/icu/impl/TimeZoneNamesImpl; -Landroid/icu/impl/Trie$DataManipulate; -Landroid/icu/impl/Trie$DefaultGetFoldingOffset; -Landroid/icu/impl/Trie2$1; -Landroid/icu/impl/Trie2$CharSequenceIterator; -Landroid/icu/impl/Trie2$CharSequenceValues; -Landroid/icu/impl/Trie2$Range; -Landroid/icu/impl/Trie2$Trie2Iterator; -Landroid/icu/impl/Trie2$UTrie2Header; -Landroid/icu/impl/Trie2$ValueMapper; -Landroid/icu/impl/Trie2$ValueWidth; -Landroid/icu/impl/Trie2; -Landroid/icu/impl/Trie2Writable$1; -Landroid/icu/impl/Trie2Writable; -Landroid/icu/impl/Trie2_16; -Landroid/icu/impl/Trie2_32; -Landroid/icu/impl/Trie; -Landroid/icu/impl/TrieBuilder$DataManipulate; -Landroid/icu/impl/TrieBuilder; -Landroid/icu/impl/TrieIterator; -Landroid/icu/impl/UBiDiProps$IsAcceptable; -Landroid/icu/impl/UBiDiProps; -Landroid/icu/impl/UCaseProps$ContextIterator; -Landroid/icu/impl/UCaseProps$IsAcceptable; -Landroid/icu/impl/UCaseProps$LatinCase; -Landroid/icu/impl/UCaseProps; -Landroid/icu/impl/UCharArrayIterator; -Landroid/icu/impl/UCharacterIteratorWrapper; -Landroid/icu/impl/UCharacterName$AlgorithmName; -Landroid/icu/impl/UCharacterName; -Landroid/icu/impl/UCharacterNameChoice; -Landroid/icu/impl/UCharacterNameReader; -Landroid/icu/impl/UCharacterProperty$10; -Landroid/icu/impl/UCharacterProperty$11; -Landroid/icu/impl/UCharacterProperty$12; -Landroid/icu/impl/UCharacterProperty$13; -Landroid/icu/impl/UCharacterProperty$14; -Landroid/icu/impl/UCharacterProperty$15; -Landroid/icu/impl/UCharacterProperty$16; -Landroid/icu/impl/UCharacterProperty$17; -Landroid/icu/impl/UCharacterProperty$18; -Landroid/icu/impl/UCharacterProperty$19; -Landroid/icu/impl/UCharacterProperty$1; -Landroid/icu/impl/UCharacterProperty$20; -Landroid/icu/impl/UCharacterProperty$21; -Landroid/icu/impl/UCharacterProperty$22; -Landroid/icu/impl/UCharacterProperty$23; -Landroid/icu/impl/UCharacterProperty$24; -Landroid/icu/impl/UCharacterProperty$25; -Landroid/icu/impl/UCharacterProperty$26; -Landroid/icu/impl/UCharacterProperty$27; -Landroid/icu/impl/UCharacterProperty$2; -Landroid/icu/impl/UCharacterProperty$3; -Landroid/icu/impl/UCharacterProperty$4; -Landroid/icu/impl/UCharacterProperty$5; -Landroid/icu/impl/UCharacterProperty$6; -Landroid/icu/impl/UCharacterProperty$7; -Landroid/icu/impl/UCharacterProperty$8; -Landroid/icu/impl/UCharacterProperty$9; -Landroid/icu/impl/UCharacterProperty$BiDiIntProperty; -Landroid/icu/impl/UCharacterProperty$BinaryProperty; -Landroid/icu/impl/UCharacterProperty$CaseBinaryProperty; -Landroid/icu/impl/UCharacterProperty$CombiningClassIntProperty; -Landroid/icu/impl/UCharacterProperty$EmojiBinaryProperty; -Landroid/icu/impl/UCharacterProperty$IntProperty; -Landroid/icu/impl/UCharacterProperty$IsAcceptable; -Landroid/icu/impl/UCharacterProperty$LayoutProps$IsAcceptable; -Landroid/icu/impl/UCharacterProperty$LayoutProps; -Landroid/icu/impl/UCharacterProperty$NormInertBinaryProperty; -Landroid/icu/impl/UCharacterProperty$NormQuickCheckIntProperty; -Landroid/icu/impl/UCharacterProperty; -Landroid/icu/impl/UCharacterUtility; -Landroid/icu/impl/UPropertyAliases$IsAcceptable; -Landroid/icu/impl/UPropertyAliases; -Landroid/icu/impl/URLHandler$FileURLHandler; -Landroid/icu/impl/URLHandler$JarURLHandler; -Landroid/icu/impl/URLHandler$URLVisitor; -Landroid/icu/impl/URLHandler; -Landroid/icu/impl/UResource$Array; -Landroid/icu/impl/UResource$Key; -Landroid/icu/impl/UResource$Sink; -Landroid/icu/impl/UResource$Table; -Landroid/icu/impl/UResource$Value; -Landroid/icu/impl/UResource; -Landroid/icu/impl/USerializedSet; -Landroid/icu/impl/UTS46; -Landroid/icu/impl/UnicodeRegex$1; -Landroid/icu/impl/UnicodeRegex; -Landroid/icu/impl/UnicodeSetStringSpan$OffsetList; -Landroid/icu/impl/UnicodeSetStringSpan; -Landroid/icu/impl/Utility; -Landroid/icu/impl/UtilityExtensions; -Landroid/icu/impl/ValidIdentifiers$Datasubtype; -Landroid/icu/impl/ValidIdentifiers$Datatype; -Landroid/icu/impl/ValidIdentifiers$ValidityData; -Landroid/icu/impl/ValidIdentifiers$ValiditySet; -Landroid/icu/impl/ValidIdentifiers; -Landroid/icu/impl/ZoneMeta$1; -Landroid/icu/impl/ZoneMeta$CustomTimeZoneCache; -Landroid/icu/impl/ZoneMeta$SystemTimeZoneCache; -Landroid/icu/impl/ZoneMeta; -Landroid/icu/impl/breakiter/DictionaryBreakEngine$DequeI; -Landroid/icu/impl/breakiter/DictionaryBreakEngine; -Landroid/icu/impl/breakiter/LanguageBreakEngine; -Landroid/icu/impl/breakiter/UnhandledBreakEngine; -Landroid/icu/impl/coll/BOCSU; -Landroid/icu/impl/coll/Collation; -Landroid/icu/impl/coll/CollationBuilder$1; -Landroid/icu/impl/coll/CollationBuilder$BundleImporter; -Landroid/icu/impl/coll/CollationBuilder$CEFinalizer; -Landroid/icu/impl/coll/CollationBuilder; -Landroid/icu/impl/coll/CollationCompare; -Landroid/icu/impl/coll/CollationData; -Landroid/icu/impl/coll/CollationDataBuilder$CEModifier; -Landroid/icu/impl/coll/CollationDataBuilder$ConditionalCE32; -Landroid/icu/impl/coll/CollationDataBuilder$CopyHelper; -Landroid/icu/impl/coll/CollationDataBuilder$DataBuilderCollationIterator; -Landroid/icu/impl/coll/CollationDataBuilder; -Landroid/icu/impl/coll/CollationDataReader$IsAcceptable; -Landroid/icu/impl/coll/CollationDataReader; -Landroid/icu/impl/coll/CollationFCD; -Landroid/icu/impl/coll/CollationFastLatin; -Landroid/icu/impl/coll/CollationFastLatinBuilder; -Landroid/icu/impl/coll/CollationIterator$CEBuffer; -Landroid/icu/impl/coll/CollationIterator$SkippedState; -Landroid/icu/impl/coll/CollationIterator; -Landroid/icu/impl/coll/CollationKeys$LevelCallback; -Landroid/icu/impl/coll/CollationKeys$SortKeyByteSink; -Landroid/icu/impl/coll/CollationKeys$SortKeyLevel; -Landroid/icu/impl/coll/CollationKeys; -Landroid/icu/impl/coll/CollationLoader$ASCII; -Landroid/icu/impl/coll/CollationLoader; -Landroid/icu/impl/coll/CollationRoot; -Landroid/icu/impl/coll/CollationRootElements; -Landroid/icu/impl/coll/CollationRuleParser$Importer; -Landroid/icu/impl/coll/CollationRuleParser$Position; -Landroid/icu/impl/coll/CollationRuleParser$Sink; -Landroid/icu/impl/coll/CollationRuleParser; -Landroid/icu/impl/coll/CollationSettings; -Landroid/icu/impl/coll/CollationTailoring; -Landroid/icu/impl/coll/CollationWeights$WeightRange; -Landroid/icu/impl/coll/CollationWeights; -Landroid/icu/impl/coll/ContractionsAndExpansions$CESink; -Landroid/icu/impl/coll/ContractionsAndExpansions; -Landroid/icu/impl/coll/FCDIterCollationIterator$State; -Landroid/icu/impl/coll/FCDIterCollationIterator; -Landroid/icu/impl/coll/FCDUTF16CollationIterator; -Landroid/icu/impl/coll/IterCollationIterator; -Landroid/icu/impl/coll/SharedObject$Reference; -Landroid/icu/impl/coll/SharedObject; -Landroid/icu/impl/coll/TailoredSet; -Landroid/icu/impl/coll/UTF16CollationIterator; -Landroid/icu/impl/coll/UVector32; -Landroid/icu/impl/coll/UVector64; -Landroid/icu/impl/data/HolidayBundle; -Landroid/icu/impl/data/HolidayBundle_da; -Landroid/icu/impl/data/HolidayBundle_da_DK; -Landroid/icu/impl/data/HolidayBundle_de; -Landroid/icu/impl/data/HolidayBundle_de_AT; -Landroid/icu/impl/data/HolidayBundle_de_DE; -Landroid/icu/impl/data/HolidayBundle_el; -Landroid/icu/impl/data/HolidayBundle_el_GR; -Landroid/icu/impl/data/HolidayBundle_en; -Landroid/icu/impl/data/HolidayBundle_en_CA; -Landroid/icu/impl/data/HolidayBundle_en_GB; -Landroid/icu/impl/data/HolidayBundle_en_US; -Landroid/icu/impl/data/HolidayBundle_es; -Landroid/icu/impl/data/HolidayBundle_es_MX; -Landroid/icu/impl/data/HolidayBundle_fr; -Landroid/icu/impl/data/HolidayBundle_fr_CA; -Landroid/icu/impl/data/HolidayBundle_fr_FR; -Landroid/icu/impl/data/HolidayBundle_it; -Landroid/icu/impl/data/HolidayBundle_it_IT; -Landroid/icu/impl/data/HolidayBundle_iw; -Landroid/icu/impl/data/HolidayBundle_iw_IL; -Landroid/icu/impl/data/HolidayBundle_ja_JP; -Landroid/icu/impl/data/ResourceReader; -Landroid/icu/impl/data/TokenIterator; -Landroid/icu/impl/duration/BasicDurationFormat; -Landroid/icu/impl/duration/BasicDurationFormatter; -Landroid/icu/impl/duration/BasicDurationFormatterFactory; -Landroid/icu/impl/duration/BasicPeriodBuilderFactory$Settings; -Landroid/icu/impl/duration/BasicPeriodBuilderFactory; -Landroid/icu/impl/duration/BasicPeriodFormatter; -Landroid/icu/impl/duration/BasicPeriodFormatterFactory$Customizations; -Landroid/icu/impl/duration/BasicPeriodFormatterFactory; -Landroid/icu/impl/duration/BasicPeriodFormatterService; -Landroid/icu/impl/duration/DateFormatter; -Landroid/icu/impl/duration/DurationFormatter; -Landroid/icu/impl/duration/DurationFormatterFactory; -Landroid/icu/impl/duration/FixedUnitBuilder; -Landroid/icu/impl/duration/MultiUnitBuilder; -Landroid/icu/impl/duration/OneOrTwoUnitBuilder; -Landroid/icu/impl/duration/Period; -Landroid/icu/impl/duration/PeriodBuilder; -Landroid/icu/impl/duration/PeriodBuilderFactory; -Landroid/icu/impl/duration/PeriodBuilderImpl; -Landroid/icu/impl/duration/PeriodFormatter; -Landroid/icu/impl/duration/PeriodFormatterFactory; -Landroid/icu/impl/duration/PeriodFormatterService; -Landroid/icu/impl/duration/SingleUnitBuilder; -Landroid/icu/impl/duration/TimeUnit; -Landroid/icu/impl/duration/TimeUnitConstants; -Landroid/icu/impl/duration/impl/DataRecord$ECountVariant; -Landroid/icu/impl/duration/impl/DataRecord$EDecimalHandling; -Landroid/icu/impl/duration/impl/DataRecord$EFractionHandling; -Landroid/icu/impl/duration/impl/DataRecord$EGender; -Landroid/icu/impl/duration/impl/DataRecord$EHalfPlacement; -Landroid/icu/impl/duration/impl/DataRecord$EHalfSupport; -Landroid/icu/impl/duration/impl/DataRecord$EMilliSupport; -Landroid/icu/impl/duration/impl/DataRecord$ENumberSystem; -Landroid/icu/impl/duration/impl/DataRecord$EPluralization; -Landroid/icu/impl/duration/impl/DataRecord$ESeparatorVariant; -Landroid/icu/impl/duration/impl/DataRecord$ETimeDirection; -Landroid/icu/impl/duration/impl/DataRecord$ETimeLimit; -Landroid/icu/impl/duration/impl/DataRecord$EUnitVariant; -Landroid/icu/impl/duration/impl/DataRecord$EZeroHandling; -Landroid/icu/impl/duration/impl/DataRecord$ScopeData; -Landroid/icu/impl/duration/impl/DataRecord; -Landroid/icu/impl/duration/impl/PeriodFormatterData; -Landroid/icu/impl/duration/impl/PeriodFormatterDataService; -Landroid/icu/impl/duration/impl/RecordReader; -Landroid/icu/impl/duration/impl/RecordWriter; -Landroid/icu/impl/duration/impl/ResourceBasedPeriodFormatterDataService; -Landroid/icu/impl/duration/impl/Utils$ChineseDigits; -Landroid/icu/impl/duration/impl/Utils; -Landroid/icu/impl/duration/impl/XMLRecordReader; -Landroid/icu/impl/duration/impl/XMLRecordWriter; -Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey; -Landroid/icu/impl/locale/AsciiUtil; -Landroid/icu/impl/locale/BaseLocale$Cache; -Landroid/icu/impl/locale/BaseLocale$Key; -Landroid/icu/impl/locale/BaseLocale-IA; -Landroid/icu/impl/locale/BaseLocale; -Landroid/icu/impl/locale/Extension; -Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar; -Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString; -Landroid/icu/impl/locale/InternalLocaleBuilder; -Landroid/icu/impl/locale/KeyTypeData$CodepointsTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$KeyData; -Landroid/icu/impl/locale/KeyTypeData$KeyInfoType; -Landroid/icu/impl/locale/KeyTypeData$PrivateUseKeyValueTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$ReorderCodeTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$RgKeyValueTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$ScriptCodeTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$SpecialType; -Landroid/icu/impl/locale/KeyTypeData$SpecialTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$SubdivisionKeyValueTypeHandler; -Landroid/icu/impl/locale/KeyTypeData$Type; -Landroid/icu/impl/locale/KeyTypeData$TypeInfoType; -Landroid/icu/impl/locale/KeyTypeData$ValueType; -Landroid/icu/impl/locale/KeyTypeData; -Landroid/icu/impl/locale/LSR; -Landroid/icu/impl/locale/LanguageTag; -Landroid/icu/impl/locale/LocaleDistance$Data; -Landroid/icu/impl/locale/LocaleDistance; -Landroid/icu/impl/locale/LocaleExtensions; -Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry; -Landroid/icu/impl/locale/LocaleObjectCache; -Landroid/icu/impl/locale/LocaleSyntaxException; -Landroid/icu/impl/locale/LocaleValidityChecker$1; -Landroid/icu/impl/locale/LocaleValidityChecker$SpecialCase; -Landroid/icu/impl/locale/LocaleValidityChecker$Where; -Landroid/icu/impl/locale/LocaleValidityChecker; -Landroid/icu/impl/locale/ParseStatus; -Landroid/icu/impl/locale/StringTokenIterator; -Landroid/icu/impl/locale/UnicodeLocaleExtension; -Landroid/icu/impl/locale/XCldrStub$CollectionUtilities; -Landroid/icu/impl/locale/XCldrStub$FileUtilities; -Landroid/icu/impl/locale/XCldrStub$HashMultimap; -Landroid/icu/impl/locale/XCldrStub$ImmutableMap; -Landroid/icu/impl/locale/XCldrStub$ImmutableMultimap; -Landroid/icu/impl/locale/XCldrStub$ImmutableSet; -Landroid/icu/impl/locale/XCldrStub$Joiner; -Landroid/icu/impl/locale/XCldrStub$LinkedHashMultimap; -Landroid/icu/impl/locale/XCldrStub$Multimap; -Landroid/icu/impl/locale/XCldrStub$MultimapIterator; -Landroid/icu/impl/locale/XCldrStub$Multimaps; -Landroid/icu/impl/locale/XCldrStub$Predicate; -Landroid/icu/impl/locale/XCldrStub$RegexUtilities; -Landroid/icu/impl/locale/XCldrStub$ReusableEntry; -Landroid/icu/impl/locale/XCldrStub$Splitter; -Landroid/icu/impl/locale/XCldrStub$TreeMultimap; -Landroid/icu/impl/locale/XCldrStub; -Landroid/icu/impl/locale/XLikelySubtags$1; -Landroid/icu/impl/locale/XLikelySubtags$Data; -Landroid/icu/impl/locale/XLikelySubtags; -Landroid/icu/impl/number/AdoptingModifierStore$1; -Landroid/icu/impl/number/AdoptingModifierStore; -Landroid/icu/impl/number/AffixPatternProvider$Flags; -Landroid/icu/impl/number/AffixPatternProvider; -Landroid/icu/impl/number/AffixUtils$SymbolProvider; -Landroid/icu/impl/number/AffixUtils$TokenConsumer; -Landroid/icu/impl/number/AffixUtils; -Landroid/icu/impl/number/CompactData$CompactDataSink; -Landroid/icu/impl/number/CompactData$CompactType; -Landroid/icu/impl/number/CompactData; -Landroid/icu/impl/number/ConstantAffixModifier; -Landroid/icu/impl/number/ConstantMultiFieldModifier; -Landroid/icu/impl/number/CurrencyPluralInfoAffixProvider; -Landroid/icu/impl/number/CurrencySpacingEnabledModifier; -Landroid/icu/impl/number/CustomSymbolCurrency; -Landroid/icu/impl/number/DecimalFormatProperties$ParseMode; -Landroid/icu/impl/number/DecimalFormatProperties; -Landroid/icu/impl/number/DecimalQuantity; -Landroid/icu/impl/number/DecimalQuantity_AbstractBCD$1; -Landroid/icu/impl/number/DecimalQuantity_AbstractBCD; -Landroid/icu/impl/number/DecimalQuantity_DualStorageBCD; -Landroid/icu/impl/number/Grouper$1; -Landroid/icu/impl/number/Grouper; -Landroid/icu/impl/number/LocalizedNumberFormatterAsFormat$Proxy; -Landroid/icu/impl/number/LocalizedNumberFormatterAsFormat; -Landroid/icu/impl/number/LongNameHandler$AliasSink; -Landroid/icu/impl/number/LongNameHandler$PluralTableSink; -Landroid/icu/impl/number/LongNameHandler; -Landroid/icu/impl/number/LongNameMultiplexer$ParentlessMicroPropsGenerator; -Landroid/icu/impl/number/LongNameMultiplexer; -Landroid/icu/impl/number/MacroProps; -Landroid/icu/impl/number/MicroProps; -Landroid/icu/impl/number/MicroPropsGenerator; -Landroid/icu/impl/number/MicroPropsMutator; -Landroid/icu/impl/number/MixedUnitLongNameHandler; -Landroid/icu/impl/number/Modifier$Parameters; -Landroid/icu/impl/number/Modifier$Signum; -Landroid/icu/impl/number/Modifier; -Landroid/icu/impl/number/ModifierStore; -Landroid/icu/impl/number/MultiplierFormatHandler; -Landroid/icu/impl/number/MultiplierProducer; -Landroid/icu/impl/number/MutablePatternModifier$1; -Landroid/icu/impl/number/MutablePatternModifier$ImmutablePatternModifier; -Landroid/icu/impl/number/MutablePatternModifier; -Landroid/icu/impl/number/Padder$PadPosition; -Landroid/icu/impl/number/Padder; -Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo-IA; -Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo; -Landroid/icu/impl/number/PatternStringParser$ParsedSubpatternInfo; -Landroid/icu/impl/number/PatternStringParser$ParserState; -Landroid/icu/impl/number/PatternStringParser; -Landroid/icu/impl/number/PatternStringUtils$1; -Landroid/icu/impl/number/PatternStringUtils$PatternSignType; -Landroid/icu/impl/number/PatternStringUtils; -Landroid/icu/impl/number/Properties; -Landroid/icu/impl/number/PropertiesAffixPatternProvider; -Landroid/icu/impl/number/RoundingUtils; -Landroid/icu/impl/number/SimpleModifier; -Landroid/icu/impl/number/UnitConversionHandler; -Landroid/icu/impl/number/UsagePrefsHandler; -Landroid/icu/impl/number/parse/AffixMatcher$1; -Landroid/icu/impl/number/parse/AffixMatcher; -Landroid/icu/impl/number/parse/AffixPatternMatcher; -Landroid/icu/impl/number/parse/AffixTokenMatcherFactory; -Landroid/icu/impl/number/parse/CodePointMatcher; -Landroid/icu/impl/number/parse/CombinedCurrencyMatcher; -Landroid/icu/impl/number/parse/DecimalMatcher; -Landroid/icu/impl/number/parse/IgnorablesMatcher; -Landroid/icu/impl/number/parse/InfinityMatcher; -Landroid/icu/impl/number/parse/MinusSignMatcher; -Landroid/icu/impl/number/parse/MultiplierParseHandler; -Landroid/icu/impl/number/parse/NanMatcher; -Landroid/icu/impl/number/parse/NumberParseMatcher$Flexible; -Landroid/icu/impl/number/parse/NumberParseMatcher; -Landroid/icu/impl/number/parse/NumberParserImpl; -Landroid/icu/impl/number/parse/PaddingMatcher; -Landroid/icu/impl/number/parse/ParsedNumber$1; -Landroid/icu/impl/number/parse/ParsedNumber; -Landroid/icu/impl/number/parse/ParsingUtils; -Landroid/icu/impl/number/parse/PercentMatcher; -Landroid/icu/impl/number/parse/PermilleMatcher; -Landroid/icu/impl/number/parse/PlusSignMatcher; -Landroid/icu/impl/number/parse/RequireAffixValidator; -Landroid/icu/impl/number/parse/RequireCurrencyValidator; -Landroid/icu/impl/number/parse/RequireDecimalSeparatorValidator; -Landroid/icu/impl/number/parse/RequireNumberValidator; -Landroid/icu/impl/number/parse/ScientificMatcher; -Landroid/icu/impl/number/parse/SeriesMatcher; -Landroid/icu/impl/number/parse/SymbolMatcher; -Landroid/icu/impl/number/parse/ValidationMatcher; -Landroid/icu/impl/number/range/PrefixInfixSuffixLengthHelper; -Landroid/icu/impl/number/range/RangeMacroProps; -Landroid/icu/impl/number/range/StandardPluralRanges$PluralRangeSetsDataSink; -Landroid/icu/impl/number/range/StandardPluralRanges$PluralRangesDataSink; -Landroid/icu/impl/number/range/StandardPluralRanges; -Landroid/icu/impl/text/RbnfScannerProviderImpl$RbnfLenientScannerImpl; -Landroid/icu/impl/text/RbnfScannerProviderImpl; -Landroid/icu/impl/units/ComplexUnitsConverter; -Landroid/icu/impl/units/ConversionRates$ConversionRateInfo; -Landroid/icu/impl/units/ConversionRates$ConversionRatesSink; -Landroid/icu/impl/units/ConversionRates; -Landroid/icu/impl/units/MeasureUnitImpl$CompoundPart; -Landroid/icu/impl/units/MeasureUnitImpl$InitialCompoundPart; -Landroid/icu/impl/units/MeasureUnitImpl$MeasureUnitImplComparator; -Landroid/icu/impl/units/MeasureUnitImpl$PowerPart; -Landroid/icu/impl/units/MeasureUnitImpl$SingleUnitComparator; -Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token$Type; -Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token; -Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser; -Landroid/icu/impl/units/MeasureUnitImpl; -Landroid/icu/impl/units/SingleUnitImpl; -Landroid/icu/impl/units/UnitPreferences$UnitPreference; -Landroid/icu/impl/units/UnitPreferences$UnitPreferencesSink; -Landroid/icu/impl/units/UnitPreferences; -Landroid/icu/impl/units/UnitsData$Categories; -Landroid/icu/impl/units/UnitsData$CategoriesSink; -Landroid/icu/impl/units/UnitsData$Constants; -Landroid/icu/impl/units/UnitsData$SimpleUnitIdentifiersSink; -Landroid/icu/impl/units/UnitsData; -Landroid/icu/impl/units/UnitsRouter$ConverterPreference; -Landroid/icu/impl/units/UnitsRouter$RouteResult; -Landroid/icu/impl/units/UnitsRouter; -Landroid/icu/lang/CharSequences; -Landroid/icu/lang/CharacterProperties; -Landroid/icu/lang/UCharacter$BidiPairedBracketType; -Landroid/icu/lang/UCharacter$DecompositionType; -Landroid/icu/lang/UCharacter$DummyValueIterator; -Landroid/icu/lang/UCharacter$EastAsianWidth; -Landroid/icu/lang/UCharacter$GraphemeClusterBreak; -Landroid/icu/lang/UCharacter$HangulSyllableType; -Landroid/icu/lang/UCharacter$IndicPositionalCategory; -Landroid/icu/lang/UCharacter$IndicSyllabicCategory; -Landroid/icu/lang/UCharacter$JoiningGroup; -Landroid/icu/lang/UCharacter$JoiningType; -Landroid/icu/lang/UCharacter$LineBreak; -Landroid/icu/lang/UCharacter$NumericType; -Landroid/icu/lang/UCharacter$SentenceBreak; -Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType; -Landroid/icu/lang/UCharacter$UCharacterTypeIterator; -Landroid/icu/lang/UCharacter$UnicodeBlock; -Landroid/icu/lang/UCharacter$VerticalOrientation; -Landroid/icu/lang/UCharacter$WordBreak; -Landroid/icu/lang/UCharacter; -Landroid/icu/lang/UCharacterCategory; -Landroid/icu/lang/UCharacterDirection; -Landroid/icu/lang/UCharacterEnums$ECharacterCategory; -Landroid/icu/lang/UCharacterEnums$ECharacterDirection; -Landroid/icu/lang/UCharacterEnums; -Landroid/icu/lang/UCharacterNameIterator; -Landroid/icu/lang/UProperty$NameChoice; -Landroid/icu/lang/UProperty; -Landroid/icu/lang/UScript$ScriptMetadata; -Landroid/icu/lang/UScript$ScriptUsage; -Landroid/icu/lang/UScript; -Landroid/icu/lang/UScriptRun$ParenStackEntry; -Landroid/icu/lang/UScriptRun; -Landroid/icu/math/BigDecimal; -Landroid/icu/math/MathContext; -Landroid/icu/number/CompactNotation$CompactHandler; -Landroid/icu/number/CompactNotation; -Landroid/icu/number/CurrencyPrecision; -Landroid/icu/number/FormattedNumber; -Landroid/icu/number/FormattedNumberRange; -Landroid/icu/number/FractionPrecision; -Landroid/icu/number/IntegerWidth; -Landroid/icu/number/LocalizedNumberFormatter; -Landroid/icu/number/LocalizedNumberRangeFormatter; -Landroid/icu/number/Notation; -Landroid/icu/number/NumberFormatter$DecimalSeparatorDisplay; -Landroid/icu/number/NumberFormatter$GroupingStrategy; -Landroid/icu/number/NumberFormatter$RoundingPriority; -Landroid/icu/number/NumberFormatter$SignDisplay; -Landroid/icu/number/NumberFormatter$TrailingZeroDisplay; -Landroid/icu/number/NumberFormatter$UnitWidth; -Landroid/icu/number/NumberFormatter; -Landroid/icu/number/NumberFormatterImpl; -Landroid/icu/number/NumberFormatterSettings; -Landroid/icu/number/NumberPropertyMapper; -Landroid/icu/number/NumberRangeFormatter$RangeCollapse; -Landroid/icu/number/NumberRangeFormatter$RangeIdentityFallback; -Landroid/icu/number/NumberRangeFormatter$RangeIdentityResult; -Landroid/icu/number/NumberRangeFormatter; -Landroid/icu/number/NumberRangeFormatterImpl$1; -Landroid/icu/number/NumberRangeFormatterImpl$NumberRangeDataSink; -Landroid/icu/number/NumberRangeFormatterImpl; -Landroid/icu/number/NumberRangeFormatterSettings; -Landroid/icu/number/NumberSkeletonImpl$1; -Landroid/icu/number/NumberSkeletonImpl$2; -Landroid/icu/number/NumberSkeletonImpl$BlueprintHelpers; -Landroid/icu/number/NumberSkeletonImpl$EnumToStemString; -Landroid/icu/number/NumberSkeletonImpl$GeneratorHelpers; -Landroid/icu/number/NumberSkeletonImpl$ParseState; -Landroid/icu/number/NumberSkeletonImpl$StemEnum; -Landroid/icu/number/NumberSkeletonImpl$StemToObject; -Landroid/icu/number/NumberSkeletonImpl; -Landroid/icu/number/Precision$BogusRounder; -Landroid/icu/number/Precision$CurrencyRounderImpl; -Landroid/icu/number/Precision$FracSigRounderImpl; -Landroid/icu/number/Precision$FractionRounderImpl; -Landroid/icu/number/Precision$IncrementFiveRounderImpl; -Landroid/icu/number/Precision$IncrementOneRounderImpl; -Landroid/icu/number/Precision$IncrementRounderImpl; -Landroid/icu/number/Precision$InfiniteRounderImpl; -Landroid/icu/number/Precision$SignificantRounderImpl; -Landroid/icu/number/Precision; -Landroid/icu/number/Scale; -Landroid/icu/number/ScientificNotation$ScientificHandler; -Landroid/icu/number/ScientificNotation$ScientificModifier; -Landroid/icu/number/ScientificNotation; -Landroid/icu/number/SimpleNotation; -Landroid/icu/number/SkeletonSyntaxException; -Landroid/icu/number/UnlocalizedNumberFormatter; -Landroid/icu/number/UnlocalizedNumberRangeFormatter; -Landroid/icu/platform/AndroidDataFiles; -Landroid/icu/text/AbsoluteValueSubstitution; -Landroid/icu/text/AlphabeticIndex$1; -Landroid/icu/text/AlphabeticIndex$Bucket$LabelType; -Landroid/icu/text/AlphabeticIndex$Bucket; -Landroid/icu/text/AlphabeticIndex$BucketList; -Landroid/icu/text/AlphabeticIndex$ImmutableIndex; -Landroid/icu/text/AlphabeticIndex$Record; -Landroid/icu/text/AlphabeticIndex; -Landroid/icu/text/AnyTransliterator$ScriptRunIterator; -Landroid/icu/text/AnyTransliterator; -Landroid/icu/text/ArabicShaping; -Landroid/icu/text/ArabicShapingException; -Landroid/icu/text/Bidi$BracketData; -Landroid/icu/text/Bidi$ImpTabPair; -Landroid/icu/text/Bidi$InsertPoints; -Landroid/icu/text/Bidi$IsoRun; -Landroid/icu/text/Bidi$Isolate; -Landroid/icu/text/Bidi$LevState; -Landroid/icu/text/Bidi$Opening; -Landroid/icu/text/Bidi$Point; -Landroid/icu/text/Bidi; -Landroid/icu/text/BidiClassifier; -Landroid/icu/text/BidiLine; -Landroid/icu/text/BidiRun; -Landroid/icu/text/BidiTransform$Mirroring; -Landroid/icu/text/BidiTransform$Order; -Landroid/icu/text/BidiTransform$ReorderingScheme$10; -Landroid/icu/text/BidiTransform$ReorderingScheme$11; -Landroid/icu/text/BidiTransform$ReorderingScheme$12; -Landroid/icu/text/BidiTransform$ReorderingScheme$13; -Landroid/icu/text/BidiTransform$ReorderingScheme$14; -Landroid/icu/text/BidiTransform$ReorderingScheme$15; -Landroid/icu/text/BidiTransform$ReorderingScheme$16; -Landroid/icu/text/BidiTransform$ReorderingScheme$1; -Landroid/icu/text/BidiTransform$ReorderingScheme$2; -Landroid/icu/text/BidiTransform$ReorderingScheme$3; -Landroid/icu/text/BidiTransform$ReorderingScheme$4; -Landroid/icu/text/BidiTransform$ReorderingScheme$5; -Landroid/icu/text/BidiTransform$ReorderingScheme$6; -Landroid/icu/text/BidiTransform$ReorderingScheme$7; -Landroid/icu/text/BidiTransform$ReorderingScheme$8; -Landroid/icu/text/BidiTransform$ReorderingScheme$9; -Landroid/icu/text/BidiTransform$ReorderingScheme; -Landroid/icu/text/BidiTransform; -Landroid/icu/text/BidiWriter; -Landroid/icu/text/BreakIterator$BreakIteratorCache; -Landroid/icu/text/BreakIterator$BreakIteratorServiceShim; -Landroid/icu/text/BreakIterator; -Landroid/icu/text/BreakIteratorFactory$BFService$1RBBreakIteratorFactory; -Landroid/icu/text/BreakIteratorFactory$BFService; -Landroid/icu/text/BreakIteratorFactory; -Landroid/icu/text/BreakTransliterator$ReplaceableCharacterIterator; -Landroid/icu/text/BreakTransliterator; -Landroid/icu/text/CanonicalIterator; -Landroid/icu/text/CaseFoldTransliterator$1; -Landroid/icu/text/CaseFoldTransliterator$2; -Landroid/icu/text/CaseFoldTransliterator; -Landroid/icu/text/CaseMap$Fold; -Landroid/icu/text/CaseMap$Lower; -Landroid/icu/text/CaseMap$Title; -Landroid/icu/text/CaseMap$Upper; -Landroid/icu/text/CaseMap; -Landroid/icu/text/CharsetDetector$CSRecognizerInfo; -Landroid/icu/text/CharsetDetector; -Landroid/icu/text/CharsetMatch; -Landroid/icu/text/CharsetRecog_2022$CharsetRecog_2022CN; -Landroid/icu/text/CharsetRecog_2022$CharsetRecog_2022JP; -Landroid/icu/text/CharsetRecog_2022$CharsetRecog_2022KR; -Landroid/icu/text/CharsetRecog_2022; -Landroid/icu/text/CharsetRecog_UTF8; -Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_16_BE; -Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_16_LE; -Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_32; -Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_32_BE; -Landroid/icu/text/CharsetRecog_Unicode$CharsetRecog_UTF_32_LE; -Landroid/icu/text/CharsetRecog_Unicode; -Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_big5; -Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_euc$CharsetRecog_euc_jp; -Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_euc$CharsetRecog_euc_kr; -Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_euc; -Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_gb_18030; -Landroid/icu/text/CharsetRecog_mbcs$CharsetRecog_sjis; -Landroid/icu/text/CharsetRecog_mbcs$iteratedChar; -Landroid/icu/text/CharsetRecog_mbcs; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_1; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_2; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_5; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_5_ru; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_6; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_6_ar; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_7; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_7_el; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_8; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_8_I_he; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_8_he; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_9; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_8859_9_tr; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM420_ar; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM420_ar_ltr; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM420_ar_rtl; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM424_he; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM424_he_ltr; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_IBM424_he_rtl; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_KOI8_R; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_windows_1251; -Landroid/icu/text/CharsetRecog_sbcs$CharsetRecog_windows_1256; -Landroid/icu/text/CharsetRecog_sbcs$NGramParser; -Landroid/icu/text/CharsetRecog_sbcs$NGramParser_IBM420; -Landroid/icu/text/CharsetRecog_sbcs$NGramsPlusLang; -Landroid/icu/text/CharsetRecog_sbcs; -Landroid/icu/text/CharsetRecognizer; -Landroid/icu/text/ChineseDateFormat$Field; -Landroid/icu/text/ChineseDateFormat; -Landroid/icu/text/ChineseDateFormatSymbols; -Landroid/icu/text/CollationElementIterator$MaxExpSink; -Landroid/icu/text/CollationElementIterator; -Landroid/icu/text/CollationKey$BoundMode; -Landroid/icu/text/CollationKey; -Landroid/icu/text/Collator$ASCII; -Landroid/icu/text/Collator$CollatorFactory; -Landroid/icu/text/Collator$KeywordsSink; -Landroid/icu/text/Collator$ReorderCodes; -Landroid/icu/text/Collator$ServiceShim; -Landroid/icu/text/Collator; -Landroid/icu/text/CollatorServiceShim$1CFactory; -Landroid/icu/text/CollatorServiceShim$CService$1CollatorFactory; -Landroid/icu/text/CollatorServiceShim$CService; -Landroid/icu/text/CollatorServiceShim; -Landroid/icu/text/CompactDecimalFormat$CompactStyle; -Landroid/icu/text/CompactDecimalFormat; -Landroid/icu/text/ComposedCharIter; -Landroid/icu/text/CompoundTransliterator; -Landroid/icu/text/ConstrainedFieldPosition$ConstraintType; -Landroid/icu/text/ConstrainedFieldPosition; -Landroid/icu/text/CurrencyDisplayNames; -Landroid/icu/text/CurrencyFormat; -Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits; -Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter; -Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo; -Landroid/icu/text/CurrencyMetaInfo; -Landroid/icu/text/CurrencyPluralInfo; -Landroid/icu/text/DateFormat$BooleanAttribute; -Landroid/icu/text/DateFormat$Field; -Landroid/icu/text/DateFormat$HourCycle; -Landroid/icu/text/DateFormat; -Landroid/icu/text/DateFormatSymbols$1; -Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols-IA; -Landroid/icu/text/DateFormatSymbols$AospExtendedDateFormatSymbols; -Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType; -Landroid/icu/text/DateFormatSymbols$CalendarDataSink; -Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage; -Landroid/icu/text/DateFormatSymbols-IA; -Landroid/icu/text/DateFormatSymbols; -Landroid/icu/text/DateIntervalFormat$BestMatchInfo; -Landroid/icu/text/DateIntervalFormat$FormatOutput; -Landroid/icu/text/DateIntervalFormat$FormattedDateInterval; -Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch; -Landroid/icu/text/DateIntervalFormat$SpanField; -Landroid/icu/text/DateIntervalFormat; -Landroid/icu/text/DateIntervalInfo$DateIntervalSink; -Landroid/icu/text/DateIntervalInfo$PatternInfo; -Landroid/icu/text/DateIntervalInfo; -Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink-IA; -Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink; -Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink-IA; -Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink; -Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink; -Landroid/icu/text/DateTimePatternGenerator$DTPGflags; -Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher-IA; -Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher; -Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink; -Landroid/icu/text/DateTimePatternGenerator$DisplayWidth; -Landroid/icu/text/DateTimePatternGenerator$DistanceInfo-IA; -Landroid/icu/text/DateTimePatternGenerator$DistanceInfo; -Landroid/icu/text/DateTimePatternGenerator$FormatParser; -Landroid/icu/text/DateTimePatternGenerator$PatternInfo; -Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher; -Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag; -Landroid/icu/text/DateTimePatternGenerator$SkeletonFields-IA; -Landroid/icu/text/DateTimePatternGenerator$SkeletonFields; -Landroid/icu/text/DateTimePatternGenerator$VariableField; -Landroid/icu/text/DateTimePatternGenerator; -Landroid/icu/text/DecimalFormat$PropertySetter; -Landroid/icu/text/DecimalFormat; -Landroid/icu/text/DecimalFormatSymbols$1; -Landroid/icu/text/DecimalFormatSymbols$CacheData; -Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink; -Landroid/icu/text/DecimalFormatSymbols; -Landroid/icu/text/DisplayContext$Type; -Landroid/icu/text/DisplayContext; -Landroid/icu/text/DurationFormat; -Landroid/icu/text/Edits$Iterator-IA; -Landroid/icu/text/Edits$Iterator; -Landroid/icu/text/Edits; -Landroid/icu/text/EscapeTransliterator$1; -Landroid/icu/text/EscapeTransliterator$2; -Landroid/icu/text/EscapeTransliterator$3; -Landroid/icu/text/EscapeTransliterator$4; -Landroid/icu/text/EscapeTransliterator$5; -Landroid/icu/text/EscapeTransliterator$6; -Landroid/icu/text/EscapeTransliterator$7; -Landroid/icu/text/EscapeTransliterator$8; -Landroid/icu/text/EscapeTransliterator; -Landroid/icu/text/FilteredBreakIteratorBuilder; -Landroid/icu/text/FilteredNormalizer2; -Landroid/icu/text/FormattedValue; -Landroid/icu/text/FractionalPartSubstitution; -Landroid/icu/text/FunctionReplacer; -Landroid/icu/text/IDNA$Error; -Landroid/icu/text/IDNA$Info; -Landroid/icu/text/IDNA; -Landroid/icu/text/IntegralPartSubstitution; -Landroid/icu/text/ListFormatter$Cache; -Landroid/icu/text/ListFormatter$ContextualHandler; -Landroid/icu/text/ListFormatter$Field; -Landroid/icu/text/ListFormatter$FormattedList; -Landroid/icu/text/ListFormatter$FormattedListBuilder; -Landroid/icu/text/ListFormatter$PatternHandler; -Landroid/icu/text/ListFormatter$SpanField; -Landroid/icu/text/ListFormatter$StaticHandler; -Landroid/icu/text/ListFormatter$Type; -Landroid/icu/text/ListFormatter$Width; -Landroid/icu/text/ListFormatter; -Landroid/icu/text/LocaleDisplayNames$DialectHandling; -Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames; -Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator; -Landroid/icu/text/LocaleDisplayNames$UiListItem; -Landroid/icu/text/LocaleDisplayNames; -Landroid/icu/text/LowercaseTransliterator$1; -Landroid/icu/text/LowercaseTransliterator$2; -Landroid/icu/text/LowercaseTransliterator; -Landroid/icu/text/MeasureFormat$FormatWidth; -Landroid/icu/text/MeasureFormat$MeasureProxy; -Landroid/icu/text/MeasureFormat$NumberFormatterCacheEntry; -Landroid/icu/text/MeasureFormat$NumericFormatters; -Landroid/icu/text/MeasureFormat; -Landroid/icu/text/MessageFormat$AppendableWrapper; -Landroid/icu/text/MessageFormat$AttributeAndPosition; -Landroid/icu/text/MessageFormat$Field; -Landroid/icu/text/MessageFormat$PluralSelectorContext; -Landroid/icu/text/MessageFormat$PluralSelectorProvider; -Landroid/icu/text/MessageFormat; -Landroid/icu/text/MessagePattern$ApostropheMode; -Landroid/icu/text/MessagePattern$ArgType; -Landroid/icu/text/MessagePattern$Part$Type; -Landroid/icu/text/MessagePattern$Part; -Landroid/icu/text/MessagePattern; -Landroid/icu/text/MessagePatternUtil$1; -Landroid/icu/text/MessagePatternUtil$ArgNode; -Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode; -Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type; -Landroid/icu/text/MessagePatternUtil$MessageContentsNode; -Landroid/icu/text/MessagePatternUtil$MessageNode; -Landroid/icu/text/MessagePatternUtil$Node; -Landroid/icu/text/MessagePatternUtil$TextNode; -Landroid/icu/text/MessagePatternUtil$VariantNode; -Landroid/icu/text/MessagePatternUtil; -Landroid/icu/text/ModulusSubstitution; -Landroid/icu/text/MultiplierSubstitution; -Landroid/icu/text/NFRule; -Landroid/icu/text/NFRuleSet; -Landroid/icu/text/NFSubstitution; -Landroid/icu/text/NameUnicodeTransliterator$1; -Landroid/icu/text/NameUnicodeTransliterator; -Landroid/icu/text/NormalizationTransliterator$1; -Landroid/icu/text/NormalizationTransliterator$2; -Landroid/icu/text/NormalizationTransliterator$3; -Landroid/icu/text/NormalizationTransliterator$4; -Landroid/icu/text/NormalizationTransliterator$5; -Landroid/icu/text/NormalizationTransliterator$6; -Landroid/icu/text/NormalizationTransliterator$NormalizingTransform; -Landroid/icu/text/NormalizationTransliterator; -Landroid/icu/text/Normalizer$CharsAppendable; -Landroid/icu/text/Normalizer$CmpEquivLevel; -Landroid/icu/text/Normalizer$FCD32ModeImpl; -Landroid/icu/text/Normalizer$FCDMode; -Landroid/icu/text/Normalizer$FCDModeImpl; -Landroid/icu/text/Normalizer$Mode; -Landroid/icu/text/Normalizer$ModeImpl; -Landroid/icu/text/Normalizer$NFC32ModeImpl; -Landroid/icu/text/Normalizer$NFCMode; -Landroid/icu/text/Normalizer$NFCModeImpl; -Landroid/icu/text/Normalizer$NFD32ModeImpl; -Landroid/icu/text/Normalizer$NFDMode; -Landroid/icu/text/Normalizer$NFDModeImpl; -Landroid/icu/text/Normalizer$NFKC32ModeImpl; -Landroid/icu/text/Normalizer$NFKCMode; -Landroid/icu/text/Normalizer$NFKCModeImpl; -Landroid/icu/text/Normalizer$NFKD32ModeImpl; -Landroid/icu/text/Normalizer$NFKDMode; -Landroid/icu/text/Normalizer$NFKDModeImpl; -Landroid/icu/text/Normalizer$NONEMode; -Landroid/icu/text/Normalizer$QuickCheckResult; -Landroid/icu/text/Normalizer$Unicode32; -Landroid/icu/text/Normalizer2$Mode; -Landroid/icu/text/Normalizer2; -Landroid/icu/text/Normalizer; -Landroid/icu/text/NullTransliterator; -Landroid/icu/text/NumberFormat$Field; -Landroid/icu/text/NumberFormat$NumberFormatFactory; -Landroid/icu/text/NumberFormat$NumberFormatShim; -Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory; -Landroid/icu/text/NumberFormat; -Landroid/icu/text/NumberFormatServiceShim$NFFactory; -Landroid/icu/text/NumberFormatServiceShim$NFService$1RBNumberFormatFactory; -Landroid/icu/text/NumberFormatServiceShim$NFService; -Landroid/icu/text/NumberFormatServiceShim; -Landroid/icu/text/NumberingSystem$1; -Landroid/icu/text/NumberingSystem$2; -Landroid/icu/text/NumberingSystem$LocaleLookupData; -Landroid/icu/text/NumberingSystem; -Landroid/icu/text/NumeratorSubstitution; -Landroid/icu/text/PluralFormat$PluralSelector; -Landroid/icu/text/PluralFormat$PluralSelectorAdapter; -Landroid/icu/text/PluralFormat; -Landroid/icu/text/PluralRules$1; -Landroid/icu/text/PluralRules$AndConstraint; -Landroid/icu/text/PluralRules$BinaryConstraint; -Landroid/icu/text/PluralRules$Constraint; -Landroid/icu/text/PluralRules$DecimalQuantitySamples; -Landroid/icu/text/PluralRules$DecimalQuantitySamplesRange; -Landroid/icu/text/PluralRules$Factory; -Landroid/icu/text/PluralRules$FixedDecimal; -Landroid/icu/text/PluralRules$IFixedDecimal; -Landroid/icu/text/PluralRules$KeywordStatus; -Landroid/icu/text/PluralRules$Operand; -Landroid/icu/text/PluralRules$OrConstraint; -Landroid/icu/text/PluralRules$PluralType; -Landroid/icu/text/PluralRules$RangeConstraint; -Landroid/icu/text/PluralRules$Rule; -Landroid/icu/text/PluralRules$RuleList-IA; -Landroid/icu/text/PluralRules$RuleList; -Landroid/icu/text/PluralRules$SampleType; -Landroid/icu/text/PluralRules$SimpleTokenizer; -Landroid/icu/text/PluralRules; -Landroid/icu/text/PluralRulesSerialProxy; -Landroid/icu/text/Quantifier; -Landroid/icu/text/QuantityFormatter; -Landroid/icu/text/RBBINode; -Landroid/icu/text/RBBIRuleBuilder$IntPair; -Landroid/icu/text/RBBIRuleBuilder; -Landroid/icu/text/RBBIRuleParseTable$RBBIRuleTableElement; -Landroid/icu/text/RBBIRuleParseTable; -Landroid/icu/text/RBBIRuleScanner$RBBIRuleChar; -Landroid/icu/text/RBBIRuleScanner$RBBISetTableEl; -Landroid/icu/text/RBBIRuleScanner; -Landroid/icu/text/RBBISetBuilder$RangeDescriptor; -Landroid/icu/text/RBBISetBuilder; -Landroid/icu/text/RBBISymbolTable$RBBISymbolTableEntry; -Landroid/icu/text/RBBISymbolTable; -Landroid/icu/text/RBBITableBuilder$RBBIStateDescriptor; -Landroid/icu/text/RBBITableBuilder; -Landroid/icu/text/RBNFChinesePostProcessor; -Landroid/icu/text/RBNFPostProcessor; -Landroid/icu/text/RawCollationKey; -Landroid/icu/text/RbnfLenientScanner; -Landroid/icu/text/RbnfLenientScannerProvider; -Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit; -Landroid/icu/text/RelativeDateTimeFormatter$Cache$1; -Landroid/icu/text/RelativeDateTimeFormatter$Cache; -Landroid/icu/text/RelativeDateTimeFormatter$Direction; -Landroid/icu/text/RelativeDateTimeFormatter$Field; -Landroid/icu/text/RelativeDateTimeFormatter$FormattedRelativeDateTime; -Landroid/icu/text/RelativeDateTimeFormatter$Loader; -Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit; -Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink; -Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData; -Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit; -Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit; -Landroid/icu/text/RelativeDateTimeFormatter$Style; -Landroid/icu/text/RelativeDateTimeFormatter; -Landroid/icu/text/RemoveTransliterator$1; -Landroid/icu/text/RemoveTransliterator; -Landroid/icu/text/Replaceable; -Landroid/icu/text/ReplaceableContextIterator; -Landroid/icu/text/ReplaceableString; -Landroid/icu/text/RuleBasedBreakIterator$BreakCache; -Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache; -Landroid/icu/text/RuleBasedBreakIterator; -Landroid/icu/text/RuleBasedCollator$CollationBuffer-IA; -Landroid/icu/text/RuleBasedCollator$CollationBuffer; -Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink; -Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator; -Landroid/icu/text/RuleBasedCollator$NFDIterator; -Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator; -Landroid/icu/text/RuleBasedCollator; -Landroid/icu/text/RuleBasedNumberFormat; -Landroid/icu/text/RuleBasedTransliterator$Data; -Landroid/icu/text/RuleBasedTransliterator; -Landroid/icu/text/SCSU; -Landroid/icu/text/SameValueSubstitution; -Landroid/icu/text/ScientificNumberFormatter$MarkupStyle; -Landroid/icu/text/ScientificNumberFormatter$Style; -Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle; -Landroid/icu/text/ScientificNumberFormatter; -Landroid/icu/text/SearchIterator$ElementComparisonType; -Landroid/icu/text/SearchIterator$Search; -Landroid/icu/text/SearchIterator; -Landroid/icu/text/SelectFormat; -Landroid/icu/text/SimpleDateFormat$1; -Landroid/icu/text/SimpleDateFormat$ContextValue; -Landroid/icu/text/SimpleDateFormat$PatternItem; -Landroid/icu/text/SimpleDateFormat; -Landroid/icu/text/SimpleFormatter; -Landroid/icu/text/SourceTargetUtility; -Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString; -Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator; -Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool; -Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder; -Landroid/icu/text/SpoofChecker$Builder; -Landroid/icu/text/SpoofChecker$CheckResult; -Landroid/icu/text/SpoofChecker$ConfusableDataUtils; -Landroid/icu/text/SpoofChecker$RestrictionLevel; -Landroid/icu/text/SpoofChecker$ScriptSet; -Landroid/icu/text/SpoofChecker$SpoofData$DefaultData; -Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable; -Landroid/icu/text/SpoofChecker$SpoofData; -Landroid/icu/text/SpoofChecker; -Landroid/icu/text/StringCharacterIterator; -Landroid/icu/text/StringMatcher; -Landroid/icu/text/StringPrep$Values; -Landroid/icu/text/StringPrep; -Landroid/icu/text/StringPrepParseException; -Landroid/icu/text/StringReplacer; -Landroid/icu/text/StringSearch$CEBuffer; -Landroid/icu/text/StringSearch$CEI; -Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer; -Landroid/icu/text/StringSearch$CollationPCE$PCEI; -Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer; -Landroid/icu/text/StringSearch$CollationPCE$RCEI; -Landroid/icu/text/StringSearch$CollationPCE$Range; -Landroid/icu/text/StringSearch$CollationPCE; -Landroid/icu/text/StringSearch$Match; -Landroid/icu/text/StringSearch$Pattern; -Landroid/icu/text/StringSearch; -Landroid/icu/text/StringTransform; -Landroid/icu/text/SymbolTable; -Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink; -Landroid/icu/text/TimeUnitFormat; -Landroid/icu/text/TimeZoneFormat$1; -Landroid/icu/text/TimeZoneFormat$GMTOffsetField; -Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType; -Landroid/icu/text/TimeZoneFormat$OffsetFields; -Landroid/icu/text/TimeZoneFormat$ParseOption; -Landroid/icu/text/TimeZoneFormat$Style; -Landroid/icu/text/TimeZoneFormat$TimeType; -Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache; -Landroid/icu/text/TimeZoneFormat; -Landroid/icu/text/TimeZoneNames$Cache; -Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames$FactoryImpl; -Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames; -Landroid/icu/text/TimeZoneNames$Factory; -Landroid/icu/text/TimeZoneNames$MatchInfo; -Landroid/icu/text/TimeZoneNames$NameType; -Landroid/icu/text/TimeZoneNames; -Landroid/icu/text/TitlecaseTransliterator$1; -Landroid/icu/text/TitlecaseTransliterator$2; -Landroid/icu/text/TitlecaseTransliterator; -Landroid/icu/text/Transform; -Landroid/icu/text/TransliterationRule; -Landroid/icu/text/TransliterationRuleSet; -Landroid/icu/text/Transliterator$Factory; -Landroid/icu/text/Transliterator$Position; -Landroid/icu/text/Transliterator; -Landroid/icu/text/TransliteratorIDParser$SingleID; -Landroid/icu/text/TransliteratorIDParser$Specs; -Landroid/icu/text/TransliteratorIDParser; -Landroid/icu/text/TransliteratorParser$ParseData; -Landroid/icu/text/TransliteratorParser$RuleArray; -Landroid/icu/text/TransliteratorParser$RuleBody; -Landroid/icu/text/TransliteratorParser$RuleHalf; -Landroid/icu/text/TransliteratorParser; -Landroid/icu/text/TransliteratorRegistry$AliasEntry; -Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry; -Landroid/icu/text/TransliteratorRegistry$IDEnumeration; -Landroid/icu/text/TransliteratorRegistry$LocaleEntry; -Landroid/icu/text/TransliteratorRegistry$ResourceEntry; -Landroid/icu/text/TransliteratorRegistry$Spec; -Landroid/icu/text/TransliteratorRegistry; -Landroid/icu/text/UCharacterIterator; -Landroid/icu/text/UFieldPosition; -Landroid/icu/text/UFormat$SpanField; -Landroid/icu/text/UFormat; -Landroid/icu/text/UForwardCharacterIterator; -Landroid/icu/text/UTF16$StringComparator; -Landroid/icu/text/UTF16; -Landroid/icu/text/UnescapeTransliterator$1; -Landroid/icu/text/UnescapeTransliterator$2; -Landroid/icu/text/UnescapeTransliterator$3; -Landroid/icu/text/UnescapeTransliterator$4; -Landroid/icu/text/UnescapeTransliterator$5; -Landroid/icu/text/UnescapeTransliterator$6; -Landroid/icu/text/UnescapeTransliterator$7; -Landroid/icu/text/UnescapeTransliterator; -Landroid/icu/text/UnicodeCompressor; -Landroid/icu/text/UnicodeDecompressor; -Landroid/icu/text/UnicodeFilter; -Landroid/icu/text/UnicodeMatcher; -Landroid/icu/text/UnicodeNameTransliterator$1; -Landroid/icu/text/UnicodeNameTransliterator; -Landroid/icu/text/UnicodeReplacer; -Landroid/icu/text/UnicodeSet$ComparisonStyle; -Landroid/icu/text/UnicodeSet$EntryRange; -Landroid/icu/text/UnicodeSet$EntryRangeIterable; -Landroid/icu/text/UnicodeSet$EntryRangeIterator; -Landroid/icu/text/UnicodeSet$Filter; -Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter; -Landroid/icu/text/UnicodeSet$IntPropertyFilter; -Landroid/icu/text/UnicodeSet$NumericValueFilter; -Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter; -Landroid/icu/text/UnicodeSet$SpanCondition; -Landroid/icu/text/UnicodeSet$UnicodeSetIterator2; -Landroid/icu/text/UnicodeSet$VersionFilter; -Landroid/icu/text/UnicodeSet$XSymbolTable; -Landroid/icu/text/UnicodeSet; -Landroid/icu/text/UnicodeSetIterator; -Landroid/icu/text/UnicodeSetSpanner$CountMethod; -Landroid/icu/text/UnicodeSetSpanner$TrimOption; -Landroid/icu/text/UnicodeSetSpanner; -Landroid/icu/text/UppercaseTransliterator$1; -Landroid/icu/text/UppercaseTransliterator$2; -Landroid/icu/text/UppercaseTransliterator; -Landroid/icu/util/AnnualTimeZoneRule; -Landroid/icu/util/BasicTimeZone$LocalOption; -Landroid/icu/util/BasicTimeZone; -Landroid/icu/util/BuddhistCalendar; -Landroid/icu/util/ByteArrayWrapper; -Landroid/icu/util/BytesTrie$Entry; -Landroid/icu/util/BytesTrie$Iterator; -Landroid/icu/util/BytesTrie$Result; -Landroid/icu/util/BytesTrie$State; -Landroid/icu/util/BytesTrie; -Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence; -Landroid/icu/util/BytesTrieBuilder; -Landroid/icu/util/CECalendar; -Landroid/icu/util/Calendar$1; -Landroid/icu/util/Calendar$FormatConfiguration-IA; -Landroid/icu/util/Calendar$FormatConfiguration; -Landroid/icu/util/Calendar$PatternData; -Landroid/icu/util/Calendar$WeekData; -Landroid/icu/util/Calendar$WeekDataCache; -Landroid/icu/util/Calendar; -Landroid/icu/util/CaseInsensitiveString; -Landroid/icu/util/CharsTrie$Entry; -Landroid/icu/util/CharsTrie$Iterator; -Landroid/icu/util/CharsTrie$State; -Landroid/icu/util/CharsTrie; -Landroid/icu/util/CharsTrieBuilder; -Landroid/icu/util/ChineseCalendar; -Landroid/icu/util/CodePointMap$Range; -Landroid/icu/util/CodePointMap$RangeIterator; -Landroid/icu/util/CodePointMap$RangeOption; -Landroid/icu/util/CodePointMap$StringIterator; -Landroid/icu/util/CodePointMap$ValueFilter; -Landroid/icu/util/CodePointMap; -Landroid/icu/util/CodePointTrie$Data-IA; -Landroid/icu/util/CodePointTrie$Data16; -Landroid/icu/util/CodePointTrie$Data32; -Landroid/icu/util/CodePointTrie$Data8; -Landroid/icu/util/CodePointTrie$Data; -Landroid/icu/util/CodePointTrie$Fast$FastStringIterator; -Landroid/icu/util/CodePointTrie$Fast-IA; -Landroid/icu/util/CodePointTrie$Fast16; -Landroid/icu/util/CodePointTrie$Fast32; -Landroid/icu/util/CodePointTrie$Fast8; -Landroid/icu/util/CodePointTrie$Fast; -Landroid/icu/util/CodePointTrie$Small$SmallStringIterator; -Landroid/icu/util/CodePointTrie$Small-IA; -Landroid/icu/util/CodePointTrie$Small16; -Landroid/icu/util/CodePointTrie$Small32; -Landroid/icu/util/CodePointTrie$Small8; -Landroid/icu/util/CodePointTrie$Small; -Landroid/icu/util/CodePointTrie$Type; -Landroid/icu/util/CodePointTrie$ValueWidth; -Landroid/icu/util/CodePointTrie-IA; -Landroid/icu/util/CodePointTrie; -Landroid/icu/util/CompactByteArray; -Landroid/icu/util/CompactCharArray; -Landroid/icu/util/CopticCalendar; -Landroid/icu/util/Currency$1; -Landroid/icu/util/Currency$CurrencyNameResultHandler; -Landroid/icu/util/Currency$CurrencyStringInfo; -Landroid/icu/util/Currency$CurrencyUsage; -Landroid/icu/util/Currency$ServiceShim; -Landroid/icu/util/Currency; -Landroid/icu/util/CurrencyAmount; -Landroid/icu/util/CurrencyServiceShim$CFService$1CurrencyFactory; -Landroid/icu/util/CurrencyServiceShim$CFService; -Landroid/icu/util/CurrencyServiceShim; -Landroid/icu/util/DangiCalendar; -Landroid/icu/util/DateInterval; -Landroid/icu/util/DateRule; -Landroid/icu/util/DateTimeRule; -Landroid/icu/util/EasterHoliday; -Landroid/icu/util/EasterRule; -Landroid/icu/util/EthiopicCalendar; -Landroid/icu/util/Freezable; -Landroid/icu/util/GenderInfo$Cache; -Landroid/icu/util/GenderInfo$Gender; -Landroid/icu/util/GenderInfo$ListGenderStyle; -Landroid/icu/util/GenderInfo; -Landroid/icu/util/GlobalizationPreferences; -Landroid/icu/util/GregorianCalendar; -Landroid/icu/util/HebrewCalendar; -Landroid/icu/util/HebrewHoliday; -Landroid/icu/util/Holiday; -Landroid/icu/util/ICUCloneNotSupportedException; -Landroid/icu/util/ICUException; -Landroid/icu/util/ICUInputTooLongException; -Landroid/icu/util/ICUUncheckedIOException; -Landroid/icu/util/IllformedLocaleException; -Landroid/icu/util/IndianCalendar; -Landroid/icu/util/InitialTimeZoneRule; -Landroid/icu/util/IslamicCalendar$CalculationType; -Landroid/icu/util/IslamicCalendar; -Landroid/icu/util/JapaneseCalendar; -Landroid/icu/util/LocaleData$MeasurementSystem; -Landroid/icu/util/LocaleData$PaperSize; -Landroid/icu/util/LocaleData; -Landroid/icu/util/LocaleMatcher$Builder; -Landroid/icu/util/LocaleMatcher$Demotion; -Landroid/icu/util/LocaleMatcher$Direction; -Landroid/icu/util/LocaleMatcher$FavorSubtag; -Landroid/icu/util/LocaleMatcher$LocaleLsrIterator; -Landroid/icu/util/LocaleMatcher$LsrIterator; -Landroid/icu/util/LocaleMatcher$Result; -Landroid/icu/util/LocaleMatcher$ULocaleLsrIterator; -Landroid/icu/util/LocaleMatcher; -Landroid/icu/util/LocalePriorityList$1; -Landroid/icu/util/LocalePriorityList$Builder; -Landroid/icu/util/LocalePriorityList; -Landroid/icu/util/Measure; -Landroid/icu/util/MeasureUnit$1; -Landroid/icu/util/MeasureUnit$2; -Landroid/icu/util/MeasureUnit$3; -Landroid/icu/util/MeasureUnit$Complexity; -Landroid/icu/util/MeasureUnit$CurrencyNumericCodeSink; -Landroid/icu/util/MeasureUnit$Factory; -Landroid/icu/util/MeasureUnit$MeasurePrefix; -Landroid/icu/util/MeasureUnit$MeasureUnitProxy; -Landroid/icu/util/MeasureUnit$MeasureUnitSink; -Landroid/icu/util/MeasureUnit; -Landroid/icu/util/MutableCodePointTrie$1; -Landroid/icu/util/MutableCodePointTrie$AllSameBlocks; -Landroid/icu/util/MutableCodePointTrie$MixedBlocks-IA; -Landroid/icu/util/MutableCodePointTrie$MixedBlocks; -Landroid/icu/util/MutableCodePointTrie; -Landroid/icu/util/NoUnit; -Landroid/icu/util/Output; -Landroid/icu/util/OutputInt; -Landroid/icu/util/PersianCalendar; -Landroid/icu/util/Range; -Landroid/icu/util/RangeDateRule; -Landroid/icu/util/RangeValueIterator$Element; -Landroid/icu/util/RangeValueIterator; -Landroid/icu/util/Region$RegionType; -Landroid/icu/util/Region; -Landroid/icu/util/RuleBasedTimeZone; -Landroid/icu/util/STZInfo; -Landroid/icu/util/SimpleDateRule; -Landroid/icu/util/SimpleHoliday; -Landroid/icu/util/SimpleTimeZone; -Landroid/icu/util/StringTokenizer; -Landroid/icu/util/StringTrieBuilder$BranchHeadNode; -Landroid/icu/util/StringTrieBuilder$BranchNode; -Landroid/icu/util/StringTrieBuilder$DynamicBranchNode; -Landroid/icu/util/StringTrieBuilder$IntermediateValueNode; -Landroid/icu/util/StringTrieBuilder$LinearMatchNode; -Landroid/icu/util/StringTrieBuilder$ListBranchNode; -Landroid/icu/util/StringTrieBuilder$Node; -Landroid/icu/util/StringTrieBuilder$Option; -Landroid/icu/util/StringTrieBuilder$SplitBranchNode; -Landroid/icu/util/StringTrieBuilder$State; -Landroid/icu/util/StringTrieBuilder$ValueNode; -Landroid/icu/util/StringTrieBuilder; -Landroid/icu/util/TaiwanCalendar; -Landroid/icu/util/TimeArrayTimeZoneRule; -Landroid/icu/util/TimeUnit; -Landroid/icu/util/TimeUnitAmount; -Landroid/icu/util/TimeZone$ConstantZone; -Landroid/icu/util/TimeZone$SystemTimeZoneType; -Landroid/icu/util/TimeZone; -Landroid/icu/util/TimeZoneRule; -Landroid/icu/util/TimeZoneTransition; -Landroid/icu/util/ULocale$1; -Landroid/icu/util/ULocale$2; -Landroid/icu/util/ULocale$AliasReplacer; -Landroid/icu/util/ULocale$AvailableType; -Landroid/icu/util/ULocale$Builder; -Landroid/icu/util/ULocale$Category; -Landroid/icu/util/ULocale$JDKLocaleHelper; -Landroid/icu/util/ULocale$Minimize; -Landroid/icu/util/ULocale$Type; -Landroid/icu/util/ULocale-IA; -Landroid/icu/util/ULocale; -Landroid/icu/util/UResourceBundle$RootType; -Landroid/icu/util/UResourceBundle; -Landroid/icu/util/UResourceBundleIterator; -Landroid/icu/util/UResourceTypeMismatchException; -Landroid/icu/util/UniversalTimeScale$TimeScaleData; -Landroid/icu/util/UniversalTimeScale; -Landroid/icu/util/VTimeZone; -Landroid/icu/util/ValueIterator$Element; -Landroid/icu/util/ValueIterator; -Landroid/icu/util/VersionInfo; -Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl; -Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl; -Landroid/inputmethodservice/AbstractInputMethodService; -Landroid/inputmethodservice/ExtractEditText; -Landroid/inputmethodservice/IInputMethodSessionWrapper$ImeInputEventReceiver; -Landroid/inputmethodservice/IInputMethodSessionWrapper; -Landroid/inputmethodservice/IInputMethodWrapper$InputMethodSessionCallbackWrapper; -Landroid/inputmethodservice/IInputMethodWrapper; -Landroid/inputmethodservice/InputMethodService$InputMethodImpl; -Landroid/inputmethodservice/InputMethodService$InputMethodSessionImpl; -Landroid/inputmethodservice/InputMethodService$Insets; -Landroid/inputmethodservice/InputMethodService$SettingsObserver; -Landroid/inputmethodservice/InputMethodService; -Landroid/inputmethodservice/SoftInputWindow; -Landroid/internal/hidl/base/V1_0/DebugInfo; -Landroid/internal/hidl/base/V1_0/IBase; -Landroid/internal/hidl/manager/V1_0/IServiceManager; -Landroid/internal/hidl/manager/V1_1/IServiceManager; -Landroid/internal/hidl/manager/V1_2/IServiceManager$Stub; -Landroid/internal/hidl/manager/V1_2/IServiceManager; -Landroid/internal/hidl/safe_union/V1_0/Monostate; -Landroid/internal/modules/utils/build/SdkLevel; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda0; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda10; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda11; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda12; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda13; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda14; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda1; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda2; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda3; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda4; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda5; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda6; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda7; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda8; -Landroid/internal/telephony/sysprop/TelephonyProperties$$ExternalSyntheticLambda9; -Landroid/internal/telephony/sysprop/TelephonyProperties; -Landroid/location/Geofence$1; -Landroid/location/Geofence; -Landroid/location/IFusedGeofenceHardware$Stub$Proxy; -Landroid/location/IFusedGeofenceHardware$Stub; -Landroid/location/IFusedGeofenceHardware; -Landroid/location/IGpsGeofenceHardware$Stub$Proxy; -Landroid/location/IGpsGeofenceHardware$Stub; -Landroid/location/IGpsGeofenceHardware; -Landroid/location/Location$$ExternalSyntheticLambda0; -Landroid/location/Location$1; -Landroid/location/Location$BearingDistanceCache-IA; -Landroid/location/Location$BearingDistanceCache; -Landroid/location/Location; -Landroid/location/LocationTime$1; -Landroid/location/LocationTime; -Landroid/media/AudioAttributes$1; -Landroid/media/AudioAttributes$Builder; -Landroid/media/AudioAttributes-IA; -Landroid/media/AudioAttributes; -Landroid/media/AudioDescriptor$1; -Landroid/media/AudioDescriptor; -Landroid/media/AudioDeviceAttributes$1; -Landroid/media/AudioDeviceAttributes; -Landroid/media/AudioDeviceCallback; -Landroid/media/AudioDeviceInfo; -Landroid/media/AudioDevicePort; -Landroid/media/AudioDevicePortConfig; -Landroid/media/AudioDeviceVolumeManager; -Landroid/media/AudioFocusInfo$1; -Landroid/media/AudioFocusInfo; -Landroid/media/AudioFocusRequest$Builder; -Landroid/media/AudioFocusRequest-IA; -Landroid/media/AudioFocusRequest; -Landroid/media/AudioFormat$1; -Landroid/media/AudioFormat$Builder; -Landroid/media/AudioFormat-IA; -Landroid/media/AudioFormat; -Landroid/media/AudioGain; -Landroid/media/AudioGainConfig; -Landroid/media/AudioHandle; -Landroid/media/AudioManager$1; -Landroid/media/AudioManager$2; -Landroid/media/AudioManager$3; -Landroid/media/AudioManager$4; -Landroid/media/AudioManager$AudioPlaybackCallback; -Landroid/media/AudioManager$AudioPlaybackCallbackInfo; -Landroid/media/AudioManager$AudioRecordingCallback; -Landroid/media/AudioManager$AudioRecordingCallbackInfo; -Landroid/media/AudioManager$BlockingFocusResultReceiver; -Landroid/media/AudioManager$DevRoleListeners-IA; -Landroid/media/AudioManager$DevRoleListeners; -Landroid/media/AudioManager$FocusRequestInfo; -Landroid/media/AudioManager$NativeEventHandlerDelegate$1; -Landroid/media/AudioManager$NativeEventHandlerDelegate; -Landroid/media/AudioManager$OnAmPortUpdateListener-IA; -Landroid/media/AudioManager$OnAmPortUpdateListener; -Landroid/media/AudioManager$OnAudioFocusChangeListener; -Landroid/media/AudioManager$OnAudioPortUpdateListener; -Landroid/media/AudioManager$OnModeChangedListener; -Landroid/media/AudioManager$PlaybackConfigChangeCallbackData; -Landroid/media/AudioManager$RecordConfigChangeCallbackData; -Landroid/media/AudioManager$SafeWaitObject-IA; -Landroid/media/AudioManager$SafeWaitObject; -Landroid/media/AudioManager$ServiceEventHandlerDelegate$1; -Landroid/media/AudioManager$ServiceEventHandlerDelegate; -Landroid/media/AudioManager; -Landroid/media/AudioManagerInternal$RingerModeDelegate; -Landroid/media/AudioManagerInternal; -Landroid/media/AudioMetadata$2; -Landroid/media/AudioMetadata$3; -Landroid/media/AudioMetadata$4; -Landroid/media/AudioMetadata$5; -Landroid/media/AudioMetadata$6; -Landroid/media/AudioMetadata$BaseMap; -Landroid/media/AudioMetadata$BaseMapPackage; -Landroid/media/AudioMetadata$DataPackage; -Landroid/media/AudioMetadata$ObjectPackage; -Landroid/media/AudioMetadata; -Landroid/media/AudioMetadataMap; -Landroid/media/AudioMetadataReadMap; -Landroid/media/AudioMixCallbackFlag; -Landroid/media/AudioMixPort; -Landroid/media/AudioMixPortConfig; -Landroid/media/AudioMixerAttributes$1; -Landroid/media/AudioMixerAttributes; -Landroid/media/AudioPatch; -Landroid/media/AudioPlaybackConfiguration$1; -Landroid/media/AudioPlaybackConfiguration$IPlayerShell; -Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor; -Landroid/media/AudioPlaybackConfiguration; -Landroid/media/AudioPort$$ExternalSyntheticLambda0; -Landroid/media/AudioPort; -Landroid/media/AudioPortConfig; -Landroid/media/AudioPortEventHandler$1; -Landroid/media/AudioPortEventHandler; -Landroid/media/AudioPresentation$1; -Landroid/media/AudioPresentation; -Landroid/media/AudioProfile$1; -Landroid/media/AudioProfile; -Landroid/media/AudioRecord$NativeEventHandler; -Landroid/media/AudioRecord$OnRecordPositionUpdateListener; -Landroid/media/AudioRecord; -Landroid/media/AudioRecordRoutingProxy; -Landroid/media/AudioRecordingConfiguration$1; -Landroid/media/AudioRecordingConfiguration; -Landroid/media/AudioRecordingMonitor; -Landroid/media/AudioRecordingMonitorClient; -Landroid/media/AudioRecordingMonitorImpl$1; -Landroid/media/AudioRecordingMonitorImpl; -Landroid/media/AudioRoutesInfo$1; -Landroid/media/AudioRoutesInfo; -Landroid/media/AudioRouting; -Landroid/media/AudioSystem$AudioRecordingCallback; -Landroid/media/AudioSystem$DynamicPolicyCallback; -Landroid/media/AudioSystem$ErrorCallback; -Landroid/media/AudioSystem; -Landroid/media/AudioTimestamp$1; -Landroid/media/AudioTimestamp; -Landroid/media/AudioTrack$1; -Landroid/media/AudioTrack$NativePositionEventHandlerDelegate; -Landroid/media/AudioTrack$TunerConfiguration; -Landroid/media/AudioTrack; -Landroid/media/AudioTrackRoutingProxy; -Landroid/media/CallbackUtil$DispatcherStub; -Landroid/media/CallbackUtil$LazyListenerManager$$ExternalSyntheticLambda0; -Landroid/media/CallbackUtil$LazyListenerManager; -Landroid/media/CallbackUtil$ListenerInfo; -Landroid/media/CallbackUtil; -Landroid/media/CamcorderProfile; -Landroid/media/CameraProfile; -Landroid/media/DecoderCapabilities; -Landroid/media/DeniedByServerException; -Landroid/media/DrmInitData$SchemeInitData; -Landroid/media/DrmInitData; -Landroid/media/EncoderCapabilities; -Landroid/media/ExifInterface$ByteOrderedDataInputStream; -Landroid/media/ExifInterface$ByteOrderedDataOutputStream; -Landroid/media/ExifInterface$ExifAttribute; -Landroid/media/ExifInterface$ExifTag; -Landroid/media/ExifInterface$Rational; -Landroid/media/ExifInterface; -Landroid/media/ExifInterfaceUtils; -Landroid/media/ExternalRingtonesCursorWrapper; -Landroid/media/IAudioFocusDispatcher$Stub$Proxy; -Landroid/media/IAudioFocusDispatcher$Stub; -Landroid/media/IAudioFocusDispatcher; -Landroid/media/IAudioModeDispatcher; -Landroid/media/IAudioRoutesObserver$Stub$Proxy; -Landroid/media/IAudioRoutesObserver$Stub; -Landroid/media/IAudioRoutesObserver; -Landroid/media/IAudioServerStateDispatcher$Stub$Proxy; -Landroid/media/IAudioServerStateDispatcher$Stub; -Landroid/media/IAudioServerStateDispatcher; -Landroid/media/IAudioService$Stub$Proxy; -Landroid/media/IAudioService$Stub; -Landroid/media/IAudioService; -Landroid/media/ICapturePresetDevicesRoleDispatcher$Stub$Proxy; -Landroid/media/ICapturePresetDevicesRoleDispatcher$Stub; -Landroid/media/ICapturePresetDevicesRoleDispatcher; -Landroid/media/ICommunicationDeviceDispatcher$Stub; -Landroid/media/ICommunicationDeviceDispatcher; -Landroid/media/IMediaHTTPConnection$Stub; -Landroid/media/IMediaHTTPConnection; -Landroid/media/IMediaHTTPService$Stub; -Landroid/media/IMediaHTTPService; -Landroid/media/IMediaResourceMonitor$Stub; -Landroid/media/IMediaResourceMonitor; -Landroid/media/IMediaRoute2ProviderService$Stub$Proxy; -Landroid/media/IMediaRoute2ProviderService$Stub; -Landroid/media/IMediaRoute2ProviderService; -Landroid/media/IMediaRoute2ProviderServiceCallback$Stub; -Landroid/media/IMediaRoute2ProviderServiceCallback; -Landroid/media/IMediaRouter2$Stub$Proxy; -Landroid/media/IMediaRouter2$Stub; -Landroid/media/IMediaRouter2; -Landroid/media/IMediaRouter2Manager$Stub$Proxy; -Landroid/media/IMediaRouter2Manager$Stub; -Landroid/media/IMediaRouter2Manager; -Landroid/media/IMediaRouterClient$Stub$Proxy; -Landroid/media/IMediaRouterClient$Stub; -Landroid/media/IMediaRouterClient; -Landroid/media/IMediaRouterService$Stub$Proxy; -Landroid/media/IMediaRouterService$Stub; -Landroid/media/IMediaRouterService; -Landroid/media/INearbyMediaDevicesProvider; -Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy; -Landroid/media/IPlaybackConfigDispatcher$Stub; -Landroid/media/IPlaybackConfigDispatcher; -Landroid/media/IPlayer$Stub$Proxy; -Landroid/media/IPlayer$Stub; -Landroid/media/IPlayer; -Landroid/media/IRecordingConfigDispatcher$Stub$Proxy; -Landroid/media/IRecordingConfigDispatcher$Stub; -Landroid/media/IRecordingConfigDispatcher; -Landroid/media/IRemoteSessionCallback$Stub; -Landroid/media/IRemoteSessionCallback; -Landroid/media/IRemoteVolumeObserver$Stub; -Landroid/media/IRemoteVolumeObserver; -Landroid/media/IRingtonePlayer$Stub$Proxy; -Landroid/media/IRingtonePlayer$Stub; -Landroid/media/IRingtonePlayer; -Landroid/media/IStrategyPreferredDevicesDispatcher$Stub$Proxy; -Landroid/media/IStrategyPreferredDevicesDispatcher$Stub; -Landroid/media/IStrategyPreferredDevicesDispatcher; -Landroid/media/IVolumeController$Stub$Proxy; -Landroid/media/IVolumeController$Stub; -Landroid/media/IVolumeController; -Landroid/media/Image$Plane; -Landroid/media/Image; -Landroid/media/ImageReader$ImagePlane; -Landroid/media/ImageReader$ListenerHandler; -Landroid/media/ImageReader$OnImageAvailableListener; -Landroid/media/ImageReader$SurfaceImage$SurfacePlane; -Landroid/media/ImageReader$SurfaceImage; -Landroid/media/ImageReader; -Landroid/media/ImageUtils; -Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane; -Landroid/media/ImageWriter$WriterSurfaceImage; -Landroid/media/ImageWriter; -Landroid/media/JetPlayer; -Landroid/media/MediaCodec$BufferInfo; -Landroid/media/MediaCodec$BufferMap$CodecBuffer-IA; -Landroid/media/MediaCodec$BufferMap$CodecBuffer; -Landroid/media/MediaCodec$BufferMap-IA; -Landroid/media/MediaCodec$BufferMap; -Landroid/media/MediaCodec$Callback; -Landroid/media/MediaCodec$CodecException; -Landroid/media/MediaCodec$CryptoException; -Landroid/media/MediaCodec$CryptoInfo$Pattern; -Landroid/media/MediaCodec$CryptoInfo; -Landroid/media/MediaCodec$EventHandler; -Landroid/media/MediaCodec$IncompatibleWithBlockModelException; -Landroid/media/MediaCodec$InvalidBufferFlagsException; -Landroid/media/MediaCodec$LinearBlock; -Landroid/media/MediaCodec$OnFrameRenderedListener; -Landroid/media/MediaCodec$OutputFrame; -Landroid/media/MediaCodec$ParameterDescriptor; -Landroid/media/MediaCodec$PersistentSurface; -Landroid/media/MediaCodec$QueueRequest; -Landroid/media/MediaCodec; -Landroid/media/MediaCodecInfo$AudioCapabilities; -Landroid/media/MediaCodecInfo$CodecCapabilities$FeatureList; -Landroid/media/MediaCodecInfo$CodecCapabilities; -Landroid/media/MediaCodecInfo$CodecProfileLevel; -Landroid/media/MediaCodecInfo$EncoderCapabilities; -Landroid/media/MediaCodecInfo$Feature; -Landroid/media/MediaCodecInfo$LazyHolder; -Landroid/media/MediaCodecInfo$VideoCapabilities$$ExternalSyntheticLambda0; -Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint; -Landroid/media/MediaCodecInfo$VideoCapabilities; -Landroid/media/MediaCodecInfo; -Landroid/media/MediaCodecList; -Landroid/media/MediaCrypto; -Landroid/media/MediaCryptoException; -Landroid/media/MediaDataSource; -Landroid/media/MediaDescrambler; -Landroid/media/MediaDescription$1; -Landroid/media/MediaDescription$Builder; -Landroid/media/MediaDescription-IA; -Landroid/media/MediaDescription; -Landroid/media/MediaDrm$Certificate; -Landroid/media/MediaDrm$CryptoSession; -Landroid/media/MediaDrm$KeyRequest; -Landroid/media/MediaDrm$KeyStatus; -Landroid/media/MediaDrm$ListenerWithExecutor; -Landroid/media/MediaDrm$LogMessage; -Landroid/media/MediaDrm$MediaDrmStateException; -Landroid/media/MediaDrm$OnEventListener; -Landroid/media/MediaDrm$ProvisionRequest; -Landroid/media/MediaDrm$SessionException; -Landroid/media/MediaDrm; -Landroid/media/MediaDrmException; -Landroid/media/MediaDrmThrowable; -Landroid/media/MediaExtractor; -Landroid/media/MediaFile; -Landroid/media/MediaFormat; -Landroid/media/MediaFrameworkPlatformInitializer$$ExternalSyntheticLambda0; -Landroid/media/MediaFrameworkPlatformInitializer; -Landroid/media/MediaHTTPConnection; -Landroid/media/MediaHTTPService; -Landroid/media/MediaMetadata$1; -Landroid/media/MediaMetadata$Builder; -Landroid/media/MediaMetadata-IA; -Landroid/media/MediaMetadata; -Landroid/media/MediaMetadataRetriever$BitmapParams; -Landroid/media/MediaMetadataRetriever; -Landroid/media/MediaMetrics$1; -Landroid/media/MediaMetrics$Item; -Landroid/media/MediaMetrics$Key; -Landroid/media/MediaMetrics$Property; -Landroid/media/MediaMetrics; -Landroid/media/MediaMuxer; -Landroid/media/MediaPlayer$1; -Landroid/media/MediaPlayer$2$1; -Landroid/media/MediaPlayer$2; -Landroid/media/MediaPlayer$3; -Landroid/media/MediaPlayer$6; -Landroid/media/MediaPlayer$7; -Landroid/media/MediaPlayer$DrmInfo-IA; -Landroid/media/MediaPlayer$DrmInfo; -Landroid/media/MediaPlayer$EventHandler$$ExternalSyntheticLambda0; -Landroid/media/MediaPlayer$EventHandler$1; -Landroid/media/MediaPlayer$EventHandler$2; -Landroid/media/MediaPlayer$EventHandler; -Landroid/media/MediaPlayer$OnBufferingUpdateListener; -Landroid/media/MediaPlayer$OnCompletionListener; -Landroid/media/MediaPlayer$OnDrmConfigHelper; -Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate; -Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate; -Landroid/media/MediaPlayer$OnErrorListener; -Landroid/media/MediaPlayer$OnInfoListener; -Landroid/media/MediaPlayer$OnMediaTimeDiscontinuityListener; -Landroid/media/MediaPlayer$OnPreparedListener; -Landroid/media/MediaPlayer$OnRtpRxNoticeListener; -Landroid/media/MediaPlayer$OnSeekCompleteListener; -Landroid/media/MediaPlayer$OnSubtitleDataListener; -Landroid/media/MediaPlayer$OnTimedMetaDataAvailableListener; -Landroid/media/MediaPlayer$OnTimedTextListener; -Landroid/media/MediaPlayer$OnVideoSizeChangedListener; -Landroid/media/MediaPlayer$ProvisioningThread; -Landroid/media/MediaPlayer$TimeProvider$EventHandler; -Landroid/media/MediaPlayer$TimeProvider; -Landroid/media/MediaPlayer$TrackInfo$1; -Landroid/media/MediaPlayer$TrackInfo; -Landroid/media/MediaPlayer; -Landroid/media/MediaRecorder; -Landroid/media/MediaRoute2Info$1; -Landroid/media/MediaRoute2Info$Builder; -Landroid/media/MediaRoute2Info; -Landroid/media/MediaRoute2ProviderInfo$1; -Landroid/media/MediaRoute2ProviderInfo$Builder; -Landroid/media/MediaRoute2ProviderInfo; -Landroid/media/MediaRouter$Callback; -Landroid/media/MediaRouter$CallbackInfo; -Landroid/media/MediaRouter$RouteCategory; -Landroid/media/MediaRouter$RouteGroup; -Landroid/media/MediaRouter$RouteInfo$1; -Landroid/media/MediaRouter$RouteInfo; -Landroid/media/MediaRouter$SimpleCallback; -Landroid/media/MediaRouter$Static$1$1; -Landroid/media/MediaRouter$Static$1; -Landroid/media/MediaRouter$Static$Client$$ExternalSyntheticLambda0; -Landroid/media/MediaRouter$Static$Client$$ExternalSyntheticLambda1; -Landroid/media/MediaRouter$Static$Client$1; -Landroid/media/MediaRouter$Static$Client; -Landroid/media/MediaRouter$Static; -Landroid/media/MediaRouter$UserRouteInfo$SessionVolumeProvider; -Landroid/media/MediaRouter$UserRouteInfo; -Landroid/media/MediaRouter$VolumeCallback; -Landroid/media/MediaRouter$VolumeCallbackInfo; -Landroid/media/MediaRouter$VolumeChangeReceiver; -Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver; -Landroid/media/MediaRouter2$$ExternalSyntheticLambda7; -Landroid/media/MediaRouter2$$ExternalSyntheticLambda8; -Landroid/media/MediaRouter2Manager$Callback; -Landroid/media/MediaRouter2Manager$CallbackRecord; -Landroid/media/MediaRouter2Manager$Client$$ExternalSyntheticLambda5; -Landroid/media/MediaRouter2Manager$Client; -Landroid/media/MediaRouter2Manager$TransferRequest; -Landroid/media/MediaRouter2Manager; -Landroid/media/MediaRouter2Utils; -Landroid/media/MediaRouter; -Landroid/media/MediaRouterClientState$1; -Landroid/media/MediaRouterClientState$RouteInfo$1; -Landroid/media/MediaRouterClientState$RouteInfo; -Landroid/media/MediaRouterClientState; -Landroid/media/MediaScanner; -Landroid/media/MediaScannerConnection$MediaScannerConnectionClient; -Landroid/media/MediaScannerConnection$OnScanCompletedListener; -Landroid/media/MediaServiceManager$ServiceRegisterer; -Landroid/media/MediaServiceManager; -Landroid/media/MediaSync; -Landroid/media/MediaTimeProvider$OnMediaTimeListener; -Landroid/media/MediaTimeProvider; -Landroid/media/MediaTimestamp; -Landroid/media/MicrophoneDirection; -Landroid/media/MicrophoneInfo$Coordinate3F; -Landroid/media/MicrophoneInfo; -Landroid/media/NativeRoutingEventHandlerDelegate; -Landroid/media/NotProvisionedException; -Landroid/media/PlaybackParams$1; -Landroid/media/PlaybackParams; -Landroid/media/PlayerBase$IPlayerWrapper; -Landroid/media/PlayerBase$PlayerIdCard$1; -Landroid/media/PlayerBase$PlayerIdCard; -Landroid/media/PlayerBase; -Landroid/media/PublicFormatUtils; -Landroid/media/Rating$1; -Landroid/media/Rating; -Landroid/media/RemoteControlClient; -Landroid/media/RemoteDisplay; -Landroid/media/ResampleInputStream; -Landroid/media/ResourceBusyException; -Landroid/media/Ringtone; -Landroid/media/RingtoneManager; -Landroid/media/RouteDiscoveryPreference$1; -Landroid/media/RouteDiscoveryPreference$Builder$$ExternalSyntheticLambda0; -Landroid/media/RouteDiscoveryPreference$Builder; -Landroid/media/RouteDiscoveryPreference; -Landroid/media/RouteListingPreference$1; -Landroid/media/RouteListingPreference; -Landroid/media/RoutingSessionInfo$1; -Landroid/media/RoutingSessionInfo$Builder; -Landroid/media/RoutingSessionInfo; -Landroid/media/SoundPool$Builder; -Landroid/media/SoundPool$EventHandler; -Landroid/media/SoundPool$OnLoadCompleteListener; -Landroid/media/SoundPool-IA; -Landroid/media/SoundPool; -Landroid/media/Spatializer; -Landroid/media/SubtitleController$1; -Landroid/media/SubtitleController$2; -Landroid/media/SubtitleController$Anchor; -Landroid/media/SubtitleController$Listener; -Landroid/media/SubtitleController; -Landroid/media/SubtitleData; -Landroid/media/SubtitleTrack$RenderingWidget; -Landroid/media/SubtitleTrack; -Landroid/media/SyncParams; -Landroid/media/ThumbnailUtils$Resizer; -Landroid/media/ThumbnailUtils$SizedThumbnailBitmap; -Landroid/media/ThumbnailUtils; -Landroid/media/TimedMetaData; -Landroid/media/TimedText; -Landroid/media/ToneGenerator; -Landroid/media/UnsupportedSchemeException; -Landroid/media/Utils$1; -Landroid/media/Utils$2; -Landroid/media/Utils$ListenerList; -Landroid/media/Utils; -Landroid/media/VolumeAutomation; -Landroid/media/VolumePolicy$1; -Landroid/media/VolumePolicy; -Landroid/media/VolumeProvider$Callback; -Landroid/media/VolumeProvider; -Landroid/media/VolumeShaper$Configuration$1; -Landroid/media/VolumeShaper$Configuration$Builder; -Landroid/media/VolumeShaper$Configuration; -Landroid/media/VolumeShaper$Operation$1; -Landroid/media/VolumeShaper$Operation$Builder; -Landroid/media/VolumeShaper$Operation; -Landroid/media/VolumeShaper$State$1; -Landroid/media/VolumeShaper$State; -Landroid/media/VolumeShaper; -Landroid/media/audio/Flags; -Landroid/media/audio/common/AidlConversion; -Landroid/media/audio/common/HeadTracking$SensorData$Tag; -Landroid/media/audiofx/AudioEffect$Descriptor; -Landroid/media/audiofx/AudioEffect; -Landroid/media/audiofx/DefaultEffect; -Landroid/media/audiofx/SourceDefaultEffect; -Landroid/media/audiofx/StreamDefaultEffect; -Landroid/media/audiofx/Visualizer$MeasurementPeakRms; -Landroid/media/audiofx/Visualizer; -Landroid/media/audiopolicy/AudioMix$1; -Landroid/media/audiopolicy/AudioMix$Builder; -Landroid/media/audiopolicy/AudioMix; -Landroid/media/audiopolicy/AudioMixingRule$1; -Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion$1; -Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion; -Landroid/media/audiopolicy/AudioMixingRule$Builder; -Landroid/media/audiopolicy/AudioMixingRule; -Landroid/media/audiopolicy/AudioPolicy$1; -Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener; -Landroid/media/audiopolicy/AudioPolicy$EventHandler; -Landroid/media/audiopolicy/AudioPolicy; -Landroid/media/audiopolicy/AudioPolicyConfig$1; -Landroid/media/audiopolicy/AudioPolicyConfig; -Landroid/media/audiopolicy/AudioProductStrategy$1; -Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup$1; -Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup; -Landroid/media/audiopolicy/AudioProductStrategy; -Landroid/media/audiopolicy/AudioVolumeGroup$1; -Landroid/media/audiopolicy/AudioVolumeGroup; -Landroid/media/audiopolicy/AudioVolumeGroupChangeHandler; -Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy; -Landroid/media/audiopolicy/IAudioPolicyCallback$Stub; -Landroid/media/audiopolicy/IAudioPolicyCallback; -Landroid/media/browse/MediaBrowser$1; -Landroid/media/browse/MediaBrowser$2; -Landroid/media/browse/MediaBrowser$6; -Landroid/media/browse/MediaBrowser$7; -Landroid/media/browse/MediaBrowser$8; -Landroid/media/browse/MediaBrowser$ConnectionCallback; -Landroid/media/browse/MediaBrowser$MediaItem$1; -Landroid/media/browse/MediaBrowser$MediaItem; -Landroid/media/browse/MediaBrowser$MediaServiceConnection$1; -Landroid/media/browse/MediaBrowser$MediaServiceConnection-IA; -Landroid/media/browse/MediaBrowser$MediaServiceConnection; -Landroid/media/browse/MediaBrowser$ServiceCallbacks; -Landroid/media/browse/MediaBrowser$Subscription; -Landroid/media/browse/MediaBrowser$SubscriptionCallback; -Landroid/media/browse/MediaBrowser; -Landroid/media/browse/MediaBrowserUtils; -Landroid/media/metrics/Event; -Landroid/media/metrics/IMediaMetricsManager$Stub$Proxy; -Landroid/media/metrics/IMediaMetricsManager$Stub; -Landroid/media/metrics/IMediaMetricsManager; -Landroid/media/metrics/LogSessionId; -Landroid/media/metrics/MediaMetricsManager; -Landroid/media/metrics/NetworkEvent$1; -Landroid/media/metrics/NetworkEvent; -Landroid/media/metrics/PlaybackSession; -Landroid/media/midi/IMidiDeviceListener$Stub$Proxy; -Landroid/media/midi/IMidiDeviceListener$Stub; -Landroid/media/midi/IMidiDeviceListener; -Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy; -Landroid/media/midi/IMidiDeviceOpenCallback$Stub; -Landroid/media/midi/IMidiDeviceOpenCallback; -Landroid/media/midi/IMidiDeviceServer$Stub$Proxy; -Landroid/media/midi/IMidiDeviceServer$Stub; -Landroid/media/midi/IMidiDeviceServer; -Landroid/media/midi/IMidiManager$Stub; -Landroid/media/midi/IMidiManager; -Landroid/media/midi/MidiDevice; -Landroid/media/midi/MidiDeviceInfo$1; -Landroid/media/midi/MidiDeviceInfo; -Landroid/media/midi/MidiDeviceStatus$1; -Landroid/media/midi/MidiDeviceStatus; -Landroid/media/midi/MidiManager; -Landroid/media/musicrecognition/IMusicRecognitionManager$Stub; -Landroid/media/musicrecognition/IMusicRecognitionManager; -Landroid/media/musicrecognition/IMusicRecognitionServiceCallback$Stub; -Landroid/media/musicrecognition/IMusicRecognitionServiceCallback; -Landroid/media/musicrecognition/MusicRecognitionManager; -Landroid/media/permission/ClearCallingIdentityContext; -Landroid/media/permission/CompositeSafeCloseable; -Landroid/media/permission/Identity$1; -Landroid/media/permission/Identity; -Landroid/media/permission/IdentityContext; -Landroid/media/permission/PermissionUtil; -Landroid/media/permission/SafeCloseable; -Landroid/media/projection/IMediaProjection$Stub$Proxy; -Landroid/media/projection/IMediaProjection$Stub; -Landroid/media/projection/IMediaProjection; -Landroid/media/projection/IMediaProjectionManager$Stub$Proxy; -Landroid/media/projection/IMediaProjectionManager$Stub; -Landroid/media/projection/IMediaProjectionManager; -Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy; -Landroid/media/projection/IMediaProjectionWatcherCallback$Stub; -Landroid/media/projection/IMediaProjectionWatcherCallback; -Landroid/media/projection/MediaProjection; -Landroid/media/projection/MediaProjectionInfo$1; -Landroid/media/projection/MediaProjectionInfo; -Landroid/media/projection/MediaProjectionManager$Callback; -Landroid/media/projection/MediaProjectionManager$CallbackDelegate; -Landroid/media/projection/MediaProjectionManager; -Landroid/media/session/IActiveSessionsListener$Stub$Proxy; -Landroid/media/session/IActiveSessionsListener$Stub; -Landroid/media/session/IActiveSessionsListener; -Landroid/media/session/IOnMediaKeyEventDispatchedListener$Stub$Proxy; -Landroid/media/session/IOnMediaKeyEventDispatchedListener$Stub; -Landroid/media/session/IOnMediaKeyEventDispatchedListener; -Landroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub$Proxy; -Landroid/media/session/IOnMediaKeyEventSessionChangedListener$Stub; -Landroid/media/session/IOnMediaKeyEventSessionChangedListener; -Landroid/media/session/IOnMediaKeyListener$Stub$Proxy; -Landroid/media/session/IOnMediaKeyListener$Stub; -Landroid/media/session/IOnMediaKeyListener; -Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy; -Landroid/media/session/IOnVolumeKeyLongPressListener$Stub; -Landroid/media/session/IOnVolumeKeyLongPressListener; -Landroid/media/session/ISession$Stub$Proxy; -Landroid/media/session/ISession$Stub; -Landroid/media/session/ISession2TokensListener$Stub$Proxy; -Landroid/media/session/ISession2TokensListener$Stub; -Landroid/media/session/ISession2TokensListener; -Landroid/media/session/ISession; -Landroid/media/session/ISessionCallback$Stub$Proxy; -Landroid/media/session/ISessionCallback$Stub; -Landroid/media/session/ISessionCallback; -Landroid/media/session/ISessionController$Stub$Proxy; -Landroid/media/session/ISessionController$Stub; -Landroid/media/session/ISessionController; -Landroid/media/session/ISessionControllerCallback$Stub$Proxy; -Landroid/media/session/ISessionControllerCallback$Stub; -Landroid/media/session/ISessionControllerCallback; -Landroid/media/session/ISessionManager$Stub$Proxy; -Landroid/media/session/ISessionManager$Stub; -Landroid/media/session/ISessionManager; -Landroid/media/session/MediaController$Callback; -Landroid/media/session/MediaController$CallbackStub; -Landroid/media/session/MediaController$MessageHandler; -Landroid/media/session/MediaController$PlaybackInfo$1; -Landroid/media/session/MediaController$PlaybackInfo; -Landroid/media/session/MediaController$TransportControls-IA; -Landroid/media/session/MediaController$TransportControls; -Landroid/media/session/MediaController; -Landroid/media/session/MediaSession$Callback; -Landroid/media/session/MediaSession$CallbackMessageHandler; -Landroid/media/session/MediaSession$CallbackStub; -Landroid/media/session/MediaSession$QueueItem$1; -Landroid/media/session/MediaSession$QueueItem; -Landroid/media/session/MediaSession$Token$1; -Landroid/media/session/MediaSession$Token; -Landroid/media/session/MediaSession; -Landroid/media/session/MediaSessionLegacyHelper; -Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener; -Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListener; -Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub-IA; -Landroid/media/session/MediaSessionManager$OnMediaKeyEventDispatchedListenerStub; -Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListener; -Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub-IA; -Landroid/media/session/MediaSessionManager$OnMediaKeyEventSessionChangedListenerStub; -Landroid/media/session/MediaSessionManager$OnMediaKeyListener; -Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl; -Landroid/media/session/MediaSessionManager$OnSession2TokensChangedListener; -Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListener; -Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl; -Landroid/media/session/MediaSessionManager$RemoteSessionCallbackStub-IA; -Landroid/media/session/MediaSessionManager$RemoteSessionCallbackStub; -Landroid/media/session/MediaSessionManager$RemoteUserInfo; -Landroid/media/session/MediaSessionManager$Session2TokensChangedWrapper; -Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$$ExternalSyntheticLambda0; -Landroid/media/session/MediaSessionManager$SessionsChangedWrapper$1; -Landroid/media/session/MediaSessionManager$SessionsChangedWrapper; -Landroid/media/session/MediaSessionManager; -Landroid/media/session/ParcelableListBinder; -Landroid/media/session/PlaybackState$1; -Landroid/media/session/PlaybackState$Builder; -Landroid/media/session/PlaybackState$CustomAction$1; -Landroid/media/session/PlaybackState$CustomAction-IA; -Landroid/media/session/PlaybackState$CustomAction; -Landroid/media/session/PlaybackState-IA; -Landroid/media/session/PlaybackState; -Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub; -Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient; -Landroid/media/soundtrigger/SoundTriggerManager; -Landroid/media/soundtrigger_middleware/ISoundTriggerCallback$Stub$Proxy; -Landroid/media/soundtrigger_middleware/ISoundTriggerCallback$Stub; -Landroid/media/soundtrigger_middleware/ISoundTriggerCallback; -Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub$Proxy; -Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService$Stub; -Landroid/media/soundtrigger_middleware/ISoundTriggerMiddlewareService; -Landroid/media/soundtrigger_middleware/ISoundTriggerModule$Stub; -Landroid/media/soundtrigger_middleware/ISoundTriggerModule; -Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor$1; -Landroid/media/soundtrigger_middleware/SoundTriggerModuleDescriptor; -Landroid/media/tv/TvInputHardwareInfo$Builder; -Landroid/media/tv/TvInputManager; -Landroid/media/tv/TvStreamConfig$1; -Landroid/media/tv/TvStreamConfig$Builder; -Landroid/media/tv/TvStreamConfig; -Landroid/media/tv/ad/TvAdManager; -Landroid/media/tv/interactive/TvInteractiveAppManager; -Landroid/media/tv/tuner/filter/FilterEvent; -Landroid/media/tv/tuner/filter/RestartEvent; -Landroid/media/tv/tunerresourcemanager/TunerResourceManager; -Landroid/metrics/LogMaker; -Landroid/metrics/MetricsReader$Event; -Landroid/metrics/MetricsReader$LogReader; -Landroid/metrics/MetricsReader; -Landroid/mtp/MtpDatabase$1; -Landroid/mtp/MtpDatabase$2; -Landroid/mtp/MtpDatabase; -Landroid/mtp/MtpDevice; -Landroid/mtp/MtpDeviceInfo; -Landroid/mtp/MtpEvent; -Landroid/mtp/MtpObjectInfo; -Landroid/mtp/MtpPropertyGroup; -Landroid/mtp/MtpPropertyList; -Landroid/mtp/MtpServer; -Landroid/mtp/MtpStorage; -Landroid/mtp/MtpStorageInfo; -Landroid/mtp/MtpStorageManager$MtpNotifier; -Landroid/mtp/MtpStorageManager$MtpObject; -Landroid/mtp/MtpStorageManager; -Landroid/multiuser/FeatureFlags; -Landroid/multiuser/FeatureFlagsImpl; -Landroid/multiuser/Flags; -Landroid/net/ConnectivityMetricsEvent$1; -Landroid/net/ConnectivityMetricsEvent; -Landroid/net/Credentials; -Landroid/net/EventLogTags; -Landroid/net/IIpConnectivityMetrics$Stub$Proxy; -Landroid/net/IIpConnectivityMetrics$Stub; -Landroid/net/IIpConnectivityMetrics; -Landroid/net/INetdEventCallback$Stub$Proxy; -Landroid/net/INetdEventCallback$Stub; -Landroid/net/INetdEventCallback; -Landroid/net/INetworkManagementEventObserver$Stub$Proxy; -Landroid/net/INetworkManagementEventObserver$Stub; -Landroid/net/INetworkManagementEventObserver; -Landroid/net/INetworkPolicyListener$Stub; -Landroid/net/INetworkPolicyListener; -Landroid/net/INetworkPolicyManager$Stub$Proxy; -Landroid/net/INetworkPolicyManager$Stub; -Landroid/net/INetworkPolicyManager; -Landroid/net/INetworkRecommendationProvider$Stub$Proxy; -Landroid/net/INetworkRecommendationProvider$Stub; -Landroid/net/INetworkRecommendationProvider; -Landroid/net/INetworkScoreCache$Stub$Proxy; -Landroid/net/INetworkScoreCache$Stub; -Landroid/net/INetworkScoreCache; -Landroid/net/INetworkScoreService$Stub$Proxy; -Landroid/net/INetworkScoreService$Stub; -Landroid/net/INetworkScoreService; -Landroid/net/IVpnManager$Stub$Proxy; -Landroid/net/IVpnManager$Stub; -Landroid/net/IVpnManager; -Landroid/net/InterfaceConfiguration$1; -Landroid/net/InterfaceConfiguration; -Landroid/net/LocalServerSocket; -Landroid/net/LocalSocket; -Landroid/net/LocalSocketAddress$Namespace; -Landroid/net/LocalSocketAddress; -Landroid/net/LocalSocketImpl$SocketInputStream; -Landroid/net/LocalSocketImpl; -Landroid/net/MatchAllNetworkSpecifier$1; -Landroid/net/MatchAllNetworkSpecifier; -Landroid/net/NetworkKey$1; -Landroid/net/NetworkKey-IA; -Landroid/net/NetworkKey; -Landroid/net/NetworkPolicy$1; -Landroid/net/NetworkPolicy; -Landroid/net/NetworkPolicyManager$1; -Landroid/net/NetworkPolicyManager$Listener; -Landroid/net/NetworkPolicyManager$SubscriptionCallback; -Landroid/net/NetworkPolicyManager$SubscriptionCallbackProxy; -Landroid/net/NetworkPolicyManager; -Landroid/net/NetworkQuotaInfo$1; -Landroid/net/NetworkQuotaInfo; -Landroid/net/NetworkRecommendationProvider$ServiceWrapper$1; -Landroid/net/NetworkRecommendationProvider$ServiceWrapper; -Landroid/net/NetworkRecommendationProvider; -Landroid/net/NetworkScoreManager$NetworkScoreCallback; -Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy; -Landroid/net/NetworkScoreManager; -Landroid/net/NetworkScorerAppData$1; -Landroid/net/NetworkScorerAppData; -Landroid/net/NetworkSpecifier; -Landroid/net/NetworkStack; -Landroid/net/NetworkWatchlistManager; -Landroid/net/PacProxyManager; -Landroid/net/PacProxySelector; -Landroid/net/PrivateDnsConnectivityChecker; -Landroid/net/Proxy; -Landroid/net/RssiCurve$1; -Landroid/net/RssiCurve; -Landroid/net/SSLCertificateSocketFactory$1; -Landroid/net/SSLCertificateSocketFactory; -Landroid/net/SSLSessionCache; -Landroid/net/ScoredNetwork$1; -Landroid/net/ScoredNetwork; -Landroid/net/SntpClient$InvalidServerReplyException; -Landroid/net/SntpClient; -Landroid/net/StringNetworkSpecifier$1; -Landroid/net/StringNetworkSpecifier; -Landroid/net/TelephonyNetworkSpecifier$1; -Landroid/net/TelephonyNetworkSpecifier$Builder; -Landroid/net/TelephonyNetworkSpecifier; -Landroid/net/Uri$1; -Landroid/net/Uri$AbstractHierarchicalUri-IA; -Landroid/net/Uri$AbstractHierarchicalUri; -Landroid/net/Uri$AbstractPart; -Landroid/net/Uri$Builder; -Landroid/net/Uri$HierarchicalUri-IA; -Landroid/net/Uri$NotCachedHolder; -Landroid/net/Uri$OpaqueUri-IA; -Landroid/net/Uri$Part$EmptyPart; -Landroid/net/Uri$Part; -Landroid/net/Uri$PathPart; -Landroid/net/Uri$PathSegmentsBuilder; -Landroid/net/Uri$StringUri-IA; -Landroid/net/Uri-IA; -Landroid/net/Uri; -Landroid/net/UriCodec; -Landroid/net/VpnManager; -Landroid/net/WebAddress; -Landroid/net/WifiKey$1; -Landroid/net/WifiKey-IA; -Landroid/net/WifiKey; -Landroid/net/http/HttpResponseCache; -Landroid/net/http/SslCertificate; -Landroid/net/http/X509TrustManagerExtensions; -Landroid/net/metrics/ApfProgramEvent$1; -Landroid/net/metrics/ApfProgramEvent$Decoder; -Landroid/net/metrics/ApfProgramEvent; -Landroid/net/metrics/ApfStats$1; -Landroid/net/metrics/ApfStats; -Landroid/net/metrics/ConnectStats; -Landroid/net/metrics/DefaultNetworkEvent; -Landroid/net/metrics/DhcpClientEvent$1; -Landroid/net/metrics/DhcpClientEvent; -Landroid/net/metrics/DhcpErrorEvent$1; -Landroid/net/metrics/DhcpErrorEvent$Decoder; -Landroid/net/metrics/DhcpErrorEvent; -Landroid/net/metrics/DnsEvent; -Landroid/net/metrics/IpConnectivityLog$Event; -Landroid/net/metrics/IpConnectivityLog; -Landroid/net/metrics/IpManagerEvent$1; -Landroid/net/metrics/IpManagerEvent$Decoder; -Landroid/net/metrics/IpManagerEvent; -Landroid/net/metrics/IpReachabilityEvent$1; -Landroid/net/metrics/IpReachabilityEvent$Decoder; -Landroid/net/metrics/IpReachabilityEvent; -Landroid/net/metrics/NetworkEvent$1; -Landroid/net/metrics/NetworkEvent$Decoder; -Landroid/net/metrics/NetworkEvent; -Landroid/net/metrics/NetworkMetrics$Metrics; -Landroid/net/metrics/NetworkMetrics$Summary; -Landroid/net/metrics/NetworkMetrics; -Landroid/net/metrics/RaEvent$1; -Landroid/net/metrics/RaEvent; -Landroid/net/metrics/ValidationProbeEvent$1; -Landroid/net/metrics/ValidationProbeEvent$Decoder; -Landroid/net/metrics/ValidationProbeEvent; -Landroid/net/metrics/WakeupEvent; -Landroid/net/metrics/WakeupStats; -Landroid/net/rtp/AudioCodec; -Landroid/net/rtp/AudioGroup; -Landroid/net/rtp/AudioStream; -Landroid/net/rtp/RtpStream; -Landroid/net/sip/ISipService$Default; -Landroid/net/sip/ISipService$Stub$Proxy; -Landroid/net/sip/ISipService$Stub; -Landroid/net/sip/ISipService; -Landroid/net/sip/ISipSession$Default; -Landroid/net/sip/ISipSession$Stub$Proxy; -Landroid/net/sip/ISipSession$Stub; -Landroid/net/sip/ISipSession; -Landroid/net/sip/ISipSessionListener$Default; -Landroid/net/sip/ISipSessionListener$Stub$Proxy; -Landroid/net/sip/ISipSessionListener$Stub; -Landroid/net/sip/ISipSessionListener; -Landroid/net/sip/SimpleSessionDescription$Fields; -Landroid/net/sip/SimpleSessionDescription$Media; -Landroid/net/sip/SimpleSessionDescription; -Landroid/net/sip/SipAudioCall$1; -Landroid/net/sip/SipAudioCall$Listener; -Landroid/net/sip/SipAudioCall; -Landroid/net/sip/SipErrorCode; -Landroid/net/sip/SipException; -Landroid/net/sip/SipManager$ListenerRelay; -Landroid/net/sip/SipManager; -Landroid/net/sip/SipProfile$1; -Landroid/net/sip/SipProfile$Builder; -Landroid/net/sip/SipProfile; -Landroid/net/sip/SipRegistrationListener; -Landroid/net/sip/SipSession$1; -Landroid/net/sip/SipSession$Listener; -Landroid/net/sip/SipSession$State; -Landroid/net/sip/SipSession; -Landroid/net/sip/SipSessionAdapter; -Landroid/net/util/SocketUtils; -Landroid/net/vcn/VcnManager$VcnNetworkPolicyChangeListener; -Landroid/net/vcn/VcnManager$VcnUnderlyingNetworkPolicyListener; -Landroid/net/vcn/VcnManager; -Landroid/net/vcn/VcnNetworkPolicyResult$1; -Landroid/net/vcn/VcnNetworkPolicyResult; -Landroid/net/vcn/VcnTransportInfo$1; -Landroid/net/vcn/VcnTransportInfo-IA; -Landroid/net/vcn/VcnTransportInfo; -Landroid/net/vcn/VcnUnderlyingNetworkPolicy$1; -Landroid/net/vcn/VcnUnderlyingNetworkPolicy; -Landroid/net/wifi/SoftApConfToXmlMigrationUtil; -Landroid/net/wifi/WifiMigration$1; -Landroid/net/wifi/WifiMigration; -Landroid/net/wifi/WifiNetworkScoreCache$CacheListener$1; -Landroid/net/wifi/WifiNetworkScoreCache$CacheListener; -Landroid/net/wifi/WifiNetworkScoreCache; -Landroid/net/wifi/nl80211/ChannelSettings$1; -Landroid/net/wifi/nl80211/ChannelSettings; -Landroid/net/wifi/nl80211/DeviceWiphyCapabilities$1; -Landroid/net/wifi/nl80211/DeviceWiphyCapabilities; -Landroid/net/wifi/nl80211/HiddenNetwork$1; -Landroid/net/wifi/nl80211/HiddenNetwork; -Landroid/net/wifi/nl80211/IClientInterface$Stub$Proxy; -Landroid/net/wifi/nl80211/IClientInterface$Stub; -Landroid/net/wifi/nl80211/IClientInterface; -Landroid/net/wifi/nl80211/IPnoScanEvent$Stub; -Landroid/net/wifi/nl80211/IPnoScanEvent; -Landroid/net/wifi/nl80211/IScanEvent$Stub; -Landroid/net/wifi/nl80211/IScanEvent; -Landroid/net/wifi/nl80211/IWifiScannerImpl$Stub$Proxy; -Landroid/net/wifi/nl80211/IWifiScannerImpl$Stub; -Landroid/net/wifi/nl80211/IWifiScannerImpl; -Landroid/net/wifi/nl80211/IWificond$Stub$Proxy; -Landroid/net/wifi/nl80211/IWificond$Stub; -Landroid/net/wifi/nl80211/IWificond; -Landroid/net/wifi/nl80211/NativeScanResult$1; -Landroid/net/wifi/nl80211/NativeScanResult; -Landroid/net/wifi/nl80211/RadioChainInfo$1; -Landroid/net/wifi/nl80211/RadioChainInfo; -Landroid/net/wifi/nl80211/SingleScanSettings$1; -Landroid/net/wifi/nl80211/SingleScanSettings; -Landroid/net/wifi/nl80211/WifiNl80211Manager$PnoScanEventHandler; -Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventCallback; -Landroid/net/wifi/nl80211/WifiNl80211Manager$ScanEventHandler; -Landroid/net/wifi/nl80211/WifiNl80211Manager$SignalPollResult; -Landroid/net/wifi/nl80211/WifiNl80211Manager; -Landroid/net/wifi/sharedconnectivity/app/SharedConnectivityManager; -Landroid/nfc/NfcFrameworkInitializer$$ExternalSyntheticLambda0; -Landroid/nfc/NfcFrameworkInitializer; -Landroid/nfc/NfcManager; -Landroid/nfc/NfcServiceManager$ServiceRegisterer; -Landroid/nfc/NfcServiceManager; -Landroid/nfc/cardemulation/AidGroup$1; -Landroid/nfc/cardemulation/AidGroup; -Landroid/nfc/cardemulation/ApduServiceInfo$1; -Landroid/nfc/cardemulation/ApduServiceInfo; -Landroid/opengl/EGL14; -Landroid/opengl/EGL15; -Landroid/opengl/EGLConfig; -Landroid/opengl/EGLContext; -Landroid/opengl/EGLDisplay; -Landroid/opengl/EGLExt; -Landroid/opengl/EGLImage; -Landroid/opengl/EGLLogWrapper; -Landroid/opengl/EGLObjectHandle; -Landroid/opengl/EGLSurface; -Landroid/opengl/EGLSync; -Landroid/opengl/ETC1; -Landroid/opengl/GLES10; -Landroid/opengl/GLES10Ext; -Landroid/opengl/GLES11; -Landroid/opengl/GLES11Ext; -Landroid/opengl/GLES20; -Landroid/opengl/GLES30; -Landroid/opengl/GLES31; -Landroid/opengl/GLES31Ext; -Landroid/opengl/GLES32; -Landroid/opengl/GLException; -Landroid/opengl/GLSurfaceView$BaseConfigChooser; -Landroid/opengl/GLSurfaceView$ComponentSizeChooser; -Landroid/opengl/GLSurfaceView$DefaultContextFactory; -Landroid/opengl/GLSurfaceView$DefaultWindowSurfaceFactory; -Landroid/opengl/GLSurfaceView$EGLConfigChooser; -Landroid/opengl/GLSurfaceView$EGLContextFactory; -Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory; -Landroid/opengl/GLSurfaceView$EglHelper; -Landroid/opengl/GLSurfaceView$GLThread; -Landroid/opengl/GLSurfaceView$GLThreadManager; -Landroid/opengl/GLSurfaceView$Renderer; -Landroid/opengl/GLSurfaceView$SimpleEGLConfigChooser; -Landroid/opengl/GLSurfaceView; -Landroid/opengl/GLUtils; -Landroid/opengl/Matrix$1; -Landroid/opengl/Matrix; -Landroid/opengl/Visibility; -Landroid/os/AppZygote; -Landroid/os/AsyncResult; -Landroid/os/AsyncTask$1; -Landroid/os/AsyncTask$2; -Landroid/os/AsyncTask$3; -Landroid/os/AsyncTask$4; -Landroid/os/AsyncTask$AsyncTaskResult; -Landroid/os/AsyncTask$InternalHandler; -Landroid/os/AsyncTask$SerialExecutor$1; -Landroid/os/AsyncTask$SerialExecutor; -Landroid/os/AsyncTask$Status; -Landroid/os/AsyncTask$WorkerRunnable-IA; -Landroid/os/AsyncTask$WorkerRunnable; -Landroid/os/AsyncTask; -Landroid/os/BadParcelableException; -Landroid/os/BadTypeParcelableException; -Landroid/os/BaseBundle$NoImagePreloadHolder; -Landroid/os/BaseBundle; -Landroid/os/BatteryConsumer$Dimensions; -Landroid/os/BatteryConsumer$Key; -Landroid/os/BatteryConsumer; -Landroid/os/BatteryManager; -Landroid/os/BatteryManagerInternal; -Landroid/os/BatteryProperty$1; -Landroid/os/BatteryProperty; -Landroid/os/BatterySaverPolicyConfig$1; -Landroid/os/BatterySaverPolicyConfig; -Landroid/os/BatteryStats$$ExternalSyntheticLambda0; -Landroid/os/BatteryStats$$ExternalSyntheticLambda1; -Landroid/os/BatteryStats$1; -Landroid/os/BatteryStats$BitDescription; -Landroid/os/BatteryStats$ControllerActivityCounter; -Landroid/os/BatteryStats$Counter; -Landroid/os/BatteryStats$DailyItem; -Landroid/os/BatteryStats$HistoryEventTracker; -Landroid/os/BatteryStats$HistoryItem; -Landroid/os/BatteryStats$HistoryPrinter; -Landroid/os/BatteryStats$HistoryStepDetails; -Landroid/os/BatteryStats$HistoryTag; -Landroid/os/BatteryStats$IntToString; -Landroid/os/BatteryStats$LevelStepTracker; -Landroid/os/BatteryStats$LongCounter; -Landroid/os/BatteryStats$LongCounterArray; -Landroid/os/BatteryStats$PackageChange; -Landroid/os/BatteryStats$Timer; -Landroid/os/BatteryStats$TimerEntry; -Landroid/os/BatteryStats$Uid$Pid; -Landroid/os/BatteryStats$Uid$Pkg$Serv; -Landroid/os/BatteryStats$Uid$Pkg; -Landroid/os/BatteryStats$Uid$Proc$ExcessivePower; -Landroid/os/BatteryStats$Uid$Proc; -Landroid/os/BatteryStats$Uid$Sensor; -Landroid/os/BatteryStats$Uid$Wakelock; -Landroid/os/BatteryStats$Uid; -Landroid/os/BatteryStats; -Landroid/os/BatteryStatsManager; -Landroid/os/BatteryUsageStats$1; -Landroid/os/BatteryUsageStats; -Landroid/os/BatteryUsageStatsQuery$1; -Landroid/os/BatteryUsageStatsQuery$Builder; -Landroid/os/BatteryUsageStatsQuery; -Landroid/os/BestClock; -Landroid/os/Binder$$ExternalSyntheticLambda0; -Landroid/os/Binder$$ExternalSyntheticLambda1; -Landroid/os/Binder$NoImagePreloadHolder; -Landroid/os/Binder$PropagateWorkSourceTransactListener; -Landroid/os/Binder$ProxyTransactListener; -Landroid/os/Binder; -Landroid/os/BinderProxy$BinderProxyMapSizeException; -Landroid/os/BinderProxy$NoImagePreloadHolder; -Landroid/os/BinderProxy$ProxyMap; -Landroid/os/BluetoothServiceManager$ServiceRegisterer; -Landroid/os/BluetoothServiceManager; -Landroid/os/BugreportManager; -Landroid/os/Build$$ExternalSyntheticLambda0; -Landroid/os/Build$VERSION; -Landroid/os/Build; -Landroid/os/Bundle$1; -Landroid/os/Bundle; -Landroid/os/CancellationSignal$OnCancelListener; -Landroid/os/CancellationSignal$Transport-IA; -Landroid/os/CancellationSignal$Transport; -Landroid/os/CancellationSignal; -Landroid/os/CarrierAssociatedAppEntry$1; -Landroid/os/CarrierAssociatedAppEntry; -Landroid/os/ChildZygoteProcess; -Landroid/os/CombinedVibration$1; -Landroid/os/CombinedVibration$Mono$1; -Landroid/os/CombinedVibration$Mono; -Landroid/os/CombinedVibration; -Landroid/os/ConditionVariable; -Landroid/os/CoolingDevice$1; -Landroid/os/CoolingDevice; -Landroid/os/CountDownTimer$1; -Landroid/os/CountDownTimer; -Landroid/os/CpuUsageInfo$1; -Landroid/os/CpuUsageInfo; -Landroid/os/CreateAppDataArgs$1; -Landroid/os/CreateAppDataArgs; -Landroid/os/CreateAppDataResult$1; -Landroid/os/CreateAppDataResult; -Landroid/os/DdmSyncStageUpdater; -Landroid/os/DdmSyncState$Stage; -Landroid/os/DdmSyncState; -Landroid/os/DeadObjectException; -Landroid/os/DeadSystemException; -Landroid/os/Debug$MemoryInfo$1; -Landroid/os/Debug$MemoryInfo-IA; -Landroid/os/Debug$MemoryInfo; -Landroid/os/Debug; -Landroid/os/DeviceIdleManager; -Landroid/os/DropBoxManager$Entry$1; -Landroid/os/DropBoxManager$Entry; -Landroid/os/DropBoxManager; -Landroid/os/Environment$UserEnvironment; -Landroid/os/Environment; -Landroid/os/EventLogTags; -Landroid/os/ExternalVibration$1; -Landroid/os/ExternalVibration; -Landroid/os/FabricatedOverlayInfo$1; -Landroid/os/FabricatedOverlayInfo; -Landroid/os/FabricatedOverlayInternal$1; -Landroid/os/FabricatedOverlayInternal; -Landroid/os/FabricatedOverlayInternalEntry$1; -Landroid/os/FabricatedOverlayInternalEntry; -Landroid/os/FactoryTest; -Landroid/os/FileBridge$FileBridgeOutputStream; -Landroid/os/FileBridge; -Landroid/os/FileObserver$ObserverThread; -Landroid/os/FileObserver; -Landroid/os/FileUtils$$ExternalSyntheticLambda0; -Landroid/os/FileUtils$$ExternalSyntheticLambda1; -Landroid/os/FileUtils$$ExternalSyntheticLambda2; -Landroid/os/FileUtils$$ExternalSyntheticLambda3; -Landroid/os/FileUtils$$ExternalSyntheticLambda4; -Landroid/os/FileUtils$$ExternalSyntheticLambda5; -Landroid/os/FileUtils$1; -Landroid/os/FileUtils$ProgressListener; -Landroid/os/FileUtils; -Landroid/os/GraphicsEnvironment$1; -Landroid/os/GraphicsEnvironment; -Landroid/os/Handler$BlockingRunnable; -Landroid/os/Handler$Callback; -Landroid/os/Handler$MessengerImpl-IA; -Landroid/os/Handler$MessengerImpl; -Landroid/os/Handler; -Landroid/os/HandlerExecutor; -Landroid/os/HandlerThread; -Landroid/os/HardwarePropertiesManager; -Landroid/os/HidlMemory; -Landroid/os/HidlMemoryUtil; -Landroid/os/HidlSupport$Mutable; -Landroid/os/HidlSupport; -Landroid/os/HwBinder; -Landroid/os/HwBlob; -Landroid/os/HwNoService; -Landroid/os/HwParcel; -Landroid/os/HwRemoteBinder; -Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy; -Landroid/os/IBatteryPropertiesRegistrar$Stub; -Landroid/os/IBatteryPropertiesRegistrar; -Landroid/os/IBinder$DeathRecipient; -Landroid/os/IBinder; -Landroid/os/IBinderCallback; -Landroid/os/ICancellationSignal$Stub$Proxy; -Landroid/os/ICancellationSignal$Stub; -Landroid/os/ICancellationSignal; -Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy; -Landroid/os/IDeviceIdentifiersPolicyService$Stub; -Landroid/os/IDeviceIdentifiersPolicyService; -Landroid/os/IDeviceIdleController$Stub$Proxy; -Landroid/os/IDeviceIdleController$Stub; -Landroid/os/IDeviceIdleController; -Landroid/os/IDumpstate$Stub$Proxy; -Landroid/os/IDumpstate$Stub; -Landroid/os/IDumpstate; -Landroid/os/IDumpstateListener$Stub$Proxy; -Landroid/os/IDumpstateListener$Stub; -Landroid/os/IDumpstateListener; -Landroid/os/IExternalVibratorService$Stub; -Landroid/os/IExternalVibratorService; -Landroid/os/IHardwarePropertiesManager$Stub$Proxy; -Landroid/os/IHardwarePropertiesManager$Stub; -Landroid/os/IHardwarePropertiesManager; -Landroid/os/IHintManager$Stub$Proxy; -Landroid/os/IHintManager$Stub; -Landroid/os/IHintManager; -Landroid/os/IHintSession$Stub$Proxy; -Landroid/os/IHintSession$Stub; -Landroid/os/IHintSession; -Landroid/os/IHwBinder$DeathRecipient; -Landroid/os/IHwBinder; -Landroid/os/IHwInterface; -Landroid/os/IIncidentAuthListener$Stub$Proxy; -Landroid/os/IIncidentAuthListener$Stub; -Landroid/os/IIncidentAuthListener; -Landroid/os/IIncidentCompanion$Stub$Proxy; -Landroid/os/IIncidentCompanion$Stub; -Landroid/os/IIncidentCompanion; -Landroid/os/IIncidentManager$Stub$Proxy; -Landroid/os/IIncidentManager$Stub; -Landroid/os/IIncidentManager; -Landroid/os/IInstalld$Stub$Proxy; -Landroid/os/IInstalld$Stub; -Landroid/os/IInstalld; -Landroid/os/IInterface; -Landroid/os/IMessenger$Stub$Proxy; -Landroid/os/IMessenger$Stub; -Landroid/os/IMessenger; -Landroid/os/INetworkManagementService$Stub$Proxy; -Landroid/os/INetworkManagementService$Stub; -Landroid/os/INetworkManagementService; -Landroid/os/IPermissionController$Stub; -Landroid/os/IPermissionController; -Landroid/os/IPowerManager$LowPowerStandbyPolicy$1; -Landroid/os/IPowerManager$LowPowerStandbyPolicy; -Landroid/os/IPowerManager$LowPowerStandbyPortDescription$1; -Landroid/os/IPowerManager$LowPowerStandbyPortDescription; -Landroid/os/IPowerManager$Stub$Proxy; -Landroid/os/IPowerManager$Stub; -Landroid/os/IPowerManager; -Landroid/os/IProcessInfoService$Stub; -Landroid/os/IProcessInfoService; -Landroid/os/IProgressListener$Stub$Proxy; -Landroid/os/IProgressListener$Stub; -Landroid/os/IProgressListener; -Landroid/os/IRecoverySystem$Stub; -Landroid/os/IRecoverySystem; -Landroid/os/IRecoverySystemProgressListener$Stub$Proxy; -Landroid/os/IRecoverySystemProgressListener$Stub; -Landroid/os/IRecoverySystemProgressListener; -Landroid/os/IRemoteCallback$Stub$Proxy; -Landroid/os/IRemoteCallback$Stub; -Landroid/os/IRemoteCallback; -Landroid/os/ISchedulingPolicyService$Stub; -Landroid/os/ISchedulingPolicyService; -Landroid/os/IServiceManager$Stub$Proxy; -Landroid/os/IServiceManager$Stub; -Landroid/os/IServiceManager; -Landroid/os/IStoraged$Stub$Proxy; -Landroid/os/IStoraged$Stub; -Landroid/os/IStoraged; -Landroid/os/ISystemConfig$Stub$Proxy; -Landroid/os/ISystemConfig$Stub; -Landroid/os/ISystemConfig; -Landroid/os/ISystemUpdateManager$Stub$Proxy; -Landroid/os/ISystemUpdateManager$Stub; -Landroid/os/ISystemUpdateManager; -Landroid/os/IThermalEventListener$Stub$Proxy; -Landroid/os/IThermalEventListener$Stub; -Landroid/os/IThermalEventListener; -Landroid/os/IThermalService$Stub$Proxy; -Landroid/os/IThermalService$Stub; -Landroid/os/IThermalService; -Landroid/os/IThermalStatusListener$Stub$Proxy; -Landroid/os/IThermalStatusListener$Stub; -Landroid/os/IThermalStatusListener; -Landroid/os/IUpdateEngine$Stub$Proxy; -Landroid/os/IUpdateEngine$Stub; -Landroid/os/IUpdateEngine; -Landroid/os/IUpdateEngineCallback$Stub; -Landroid/os/IUpdateEngineCallback; -Landroid/os/IUpdateLock$Stub; -Landroid/os/IUpdateLock; -Landroid/os/IUserManager$Stub$Proxy; -Landroid/os/IUserManager$Stub; -Landroid/os/IUserManager; -Landroid/os/IUserRestrictionsListener$Stub$Proxy; -Landroid/os/IUserRestrictionsListener$Stub; -Landroid/os/IUserRestrictionsListener; -Landroid/os/IVibratorManagerService$Stub$Proxy; -Landroid/os/IVibratorManagerService$Stub; -Landroid/os/IVibratorManagerService; -Landroid/os/IVibratorStateListener$Stub$Proxy; -Landroid/os/IVibratorStateListener$Stub; -Landroid/os/IVibratorStateListener; -Landroid/os/IVold$Stub$Proxy; -Landroid/os/IVold$Stub; -Landroid/os/IVold; -Landroid/os/IVoldListener$Stub; -Landroid/os/IVoldListener; -Landroid/os/IVoldMountCallback$Stub; -Landroid/os/IVoldMountCallback; -Landroid/os/IVoldTaskListener$Stub$Proxy; -Landroid/os/IVoldTaskListener$Stub; -Landroid/os/IVoldTaskListener; -Landroid/os/IWakeLockCallback$Stub$Proxy; -Landroid/os/IWakeLockCallback$Stub; -Landroid/os/IWakeLockCallback; -Landroid/os/IncidentManager$IncidentReport$1; -Landroid/os/IncidentManager$IncidentReport; -Landroid/os/IncidentManager; -Landroid/os/IpcDataCache$Config; -Landroid/os/IpcDataCache$QueryHandler; -Landroid/os/IpcDataCache$RemoteCall; -Landroid/os/IpcDataCache$SystemServerCallHandler; -Landroid/os/IpcDataCache; -Landroid/os/LimitExceededException; -Landroid/os/LocaleList$1; -Landroid/os/LocaleList; -Landroid/os/Looper$Observer; -Landroid/os/Looper; -Landroid/os/MemoryFile; -Landroid/os/Message$1; -Landroid/os/Message; -Landroid/os/MessageQueue$FileDescriptorRecord; -Landroid/os/MessageQueue$IdleHandler; -Landroid/os/MessageQueue$OnFileDescriptorEventListener; -Landroid/os/MessageQueue; -Landroid/os/Messenger$1; -Landroid/os/Messenger; -Landroid/os/NativeHandle; -Landroid/os/NetworkOnMainThreadException; -Landroid/os/NullVibrator; -Landroid/os/OperationCanceledException; -Landroid/os/OutcomeReceiver; -Landroid/os/PackageTagsList$1; -Landroid/os/PackageTagsList; -Landroid/os/Parcel$1; -Landroid/os/Parcel$LazyValue; -Landroid/os/Parcel$ReadWriteHelper; -Landroid/os/Parcel$SquashReadHelper; -Landroid/os/Parcel; -Landroid/os/ParcelDuration$1; -Landroid/os/ParcelDuration; -Landroid/os/ParcelFileDescriptor$1; -Landroid/os/ParcelFileDescriptor$2; -Landroid/os/ParcelFileDescriptor$AutoCloseInputStream; -Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream; -Landroid/os/ParcelFileDescriptor$OnCloseListener; -Landroid/os/ParcelFileDescriptor$Status; -Landroid/os/ParcelFileDescriptor; -Landroid/os/ParcelFormatException; -Landroid/os/ParcelUuid$1; -Landroid/os/ParcelUuid; -Landroid/os/Parcelable$ClassLoaderCreator; -Landroid/os/Parcelable$Creator; -Landroid/os/Parcelable; -Landroid/os/ParcelableException$1; -Landroid/os/ParcelableException; -Landroid/os/ParcelableParcel$1; -Landroid/os/ParcelableParcel; -Landroid/os/PatternMatcher$1; -Landroid/os/PatternMatcher; -Landroid/os/PerformanceHintManager$Session; -Landroid/os/PerformanceHintManager; -Landroid/os/PermissionEnforcer; -Landroid/os/PersistableBundle$1; -Landroid/os/PersistableBundle$MyReadMapCallback; -Landroid/os/PersistableBundle; -Landroid/os/PooledStringReader; -Landroid/os/PooledStringWriter; -Landroid/os/PowerExemptionManager; -Landroid/os/PowerManager$1; -Landroid/os/PowerManager$2; -Landroid/os/PowerManager$3$$ExternalSyntheticLambda0; -Landroid/os/PowerManager$3; -Landroid/os/PowerManager$OnThermalStatusChangedListener; -Landroid/os/PowerManager$WakeData; -Landroid/os/PowerManager$WakeLock$$ExternalSyntheticLambda0; -Landroid/os/PowerManager$WakeLock; -Landroid/os/PowerManager; -Landroid/os/PowerManagerInternal$1; -Landroid/os/PowerManagerInternal$LowPowerModeListener; -Landroid/os/PowerManagerInternal; -Landroid/os/PowerSaveState$1; -Landroid/os/PowerSaveState$Builder; -Landroid/os/PowerSaveState; -Landroid/os/PowerWhitelistManager; -Landroid/os/Process$ProcessStartResult; -Landroid/os/Process; -Landroid/os/ProfilingServiceManager; -Landroid/os/ProxyFileDescriptorCallback; -Landroid/os/RecoverySystem$1; -Landroid/os/RecoverySystem$2; -Landroid/os/RecoverySystem$3; -Landroid/os/RecoverySystem$4; -Landroid/os/RecoverySystem$5; -Landroid/os/RecoverySystem$ProgressListener; -Landroid/os/RecoverySystem; -Landroid/os/Registrant; -Landroid/os/RegistrantList; -Landroid/os/RemoteCallback$1; -Landroid/os/RemoteCallback$2; -Landroid/os/RemoteCallback$3; -Landroid/os/RemoteCallback$OnResultListener; -Landroid/os/RemoteCallback; -Landroid/os/RemoteCallbackList$Callback; -Landroid/os/RemoteCallbackList; -Landroid/os/RemoteException; -Landroid/os/ResultReceiver$1; -Landroid/os/ResultReceiver$MyResultReceiver; -Landroid/os/ResultReceiver$MyRunnable; -Landroid/os/ResultReceiver; -Landroid/os/SELinux; -Landroid/os/SecurityStateManager; -Landroid/os/ServiceManager$ServiceNotFoundException; -Landroid/os/ServiceManager; -Landroid/os/ServiceManagerNative; -Landroid/os/ServiceManagerProxy; -Landroid/os/ServiceSpecificException; -Landroid/os/SharedMemory$1; -Landroid/os/SharedMemory$Closer-IA; -Landroid/os/SharedMemory$Closer; -Landroid/os/SharedMemory$MemoryRegistration-IA; -Landroid/os/SharedMemory$MemoryRegistration; -Landroid/os/SharedMemory$Unmapper-IA; -Landroid/os/SharedMemory$Unmapper; -Landroid/os/SharedMemory-IA; -Landroid/os/SharedMemory; -Landroid/os/ShellCallback$1; -Landroid/os/ShellCallback; -Landroid/os/ShellCommand; -Landroid/os/SimpleClock; -Landroid/os/StatFs; -Landroid/os/StatsServiceManager$ServiceRegisterer; -Landroid/os/StatsServiceManager; -Landroid/os/StrictMode$$ExternalSyntheticLambda0; -Landroid/os/StrictMode$$ExternalSyntheticLambda1; -Landroid/os/StrictMode$$ExternalSyntheticLambda2; -Landroid/os/StrictMode$$ExternalSyntheticLambda3; -Landroid/os/StrictMode$1; -Landroid/os/StrictMode$2; -Landroid/os/StrictMode$3; -Landroid/os/StrictMode$4; -Landroid/os/StrictMode$5; -Landroid/os/StrictMode$6; -Landroid/os/StrictMode$7; -Landroid/os/StrictMode$8; -Landroid/os/StrictMode$9; -Landroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda0; -Landroid/os/StrictMode$AndroidBlockGuardPolicy$$ExternalSyntheticLambda1; -Landroid/os/StrictMode$AndroidBlockGuardPolicy; -Landroid/os/StrictMode$AndroidCloseGuardReporter-IA; -Landroid/os/StrictMode$AndroidCloseGuardReporter; -Landroid/os/StrictMode$InstanceTracker; -Landroid/os/StrictMode$OnThreadViolationListener; -Landroid/os/StrictMode$OnVmViolationListener; -Landroid/os/StrictMode$Span; -Landroid/os/StrictMode$ThreadPolicy$Builder; -Landroid/os/StrictMode$ThreadPolicy-IA; -Landroid/os/StrictMode$ThreadPolicy; -Landroid/os/StrictMode$ThreadSpanState-IA; -Landroid/os/StrictMode$ThreadSpanState; -Landroid/os/StrictMode$UnsafeIntentStrictModeCallback-IA; -Landroid/os/StrictMode$UnsafeIntentStrictModeCallback; -Landroid/os/StrictMode$ViolationInfo$1; -Landroid/os/StrictMode$ViolationInfo; -Landroid/os/StrictMode$ViolationLogger; -Landroid/os/StrictMode$VmPolicy$Builder; -Landroid/os/StrictMode$VmPolicy-IA; -Landroid/os/StrictMode$VmPolicy; -Landroid/os/StrictMode; -Landroid/os/SynchronousResultReceiver$Result; -Landroid/os/SynchronousResultReceiver; -Landroid/os/SystemClock$2; -Landroid/os/SystemClock$3; -Landroid/os/SystemClock; -Landroid/os/SystemConfigManager; -Landroid/os/SystemProperties$Handle-IA; -Landroid/os/SystemProperties$Handle; -Landroid/os/SystemProperties; -Landroid/os/SystemService$1; -Landroid/os/SystemService$State; -Landroid/os/SystemService; -Landroid/os/SystemUpdateManager; -Landroid/os/SystemVibrator; -Landroid/os/SystemVibratorManager$SingleVibrator; -Landroid/os/SystemVibratorManager; -Landroid/os/TelephonyServiceManager$ServiceRegisterer; -Landroid/os/TelephonyServiceManager; -Landroid/os/Temperature$1; -Landroid/os/Temperature; -Landroid/os/ThreadLocalWorkSource$$ExternalSyntheticLambda0; -Landroid/os/ThreadLocalWorkSource; -Landroid/os/TimestampedValue$1; -Landroid/os/TimestampedValue; -Landroid/os/TokenWatcher$1; -Landroid/os/TokenWatcher$Death; -Landroid/os/TokenWatcher; -Landroid/os/Trace; -Landroid/os/TraceNameSupplier; -Landroid/os/TransactionTooLargeException; -Landroid/os/TransactionTracker; -Landroid/os/UEventObserver$UEvent; -Landroid/os/UEventObserver$UEventThread; -Landroid/os/UEventObserver; -Landroid/os/UidBatteryConsumer; -Landroid/os/UpdateEngine$1$1; -Landroid/os/UpdateEngine$1; -Landroid/os/UpdateEngine; -Landroid/os/UpdateEngineCallback; -Landroid/os/UpdateLock; -Landroid/os/UserHandle$1; -Landroid/os/UserHandle; -Landroid/os/UserManager$1; -Landroid/os/UserManager$2; -Landroid/os/UserManager$3; -Landroid/os/UserManager$4; -Landroid/os/UserManager$EnforcingUser$1; -Landroid/os/UserManager$EnforcingUser; -Landroid/os/UserManager$UserOperationException; -Landroid/os/UserManager; -Landroid/os/VibrationAttributes$1; -Landroid/os/VibrationAttributes$Builder; -Landroid/os/VibrationAttributes-IA; -Landroid/os/VibrationAttributes; -Landroid/os/VibrationEffect$1; -Landroid/os/VibrationEffect$Composed$1; -Landroid/os/VibrationEffect$Composed; -Landroid/os/VibrationEffect$Composition; -Landroid/os/VibrationEffect; -Landroid/os/Vibrator; -Landroid/os/VibratorInfo$1; -Landroid/os/VibratorInfo$FrequencyProfile$1; -Landroid/os/VibratorInfo$FrequencyProfile; -Landroid/os/VibratorInfo; -Landroid/os/VibratorManager; -Landroid/os/VintfObject; -Landroid/os/VintfRuntimeInfo; -Landroid/os/WorkSource$1; -Landroid/os/WorkSource$WorkChain$1; -Landroid/os/WorkSource$WorkChain; -Landroid/os/WorkSource; -Landroid/os/ZygoteProcess$ZygoteState; -Landroid/os/ZygoteProcess; -Landroid/os/ZygoteStartFailedEx; -Landroid/os/connectivity/CellularBatteryStats$1; -Landroid/os/connectivity/CellularBatteryStats; -Landroid/os/connectivity/GpsBatteryStats$1; -Landroid/os/connectivity/GpsBatteryStats; -Landroid/os/connectivity/WifiActivityEnergyInfo$1; -Landroid/os/connectivity/WifiActivityEnergyInfo; -Landroid/os/connectivity/WifiBatteryStats$1; -Landroid/os/connectivity/WifiBatteryStats; -Landroid/os/health/HealthKeys$Constant; -Landroid/os/health/HealthKeys$Constants; -Landroid/os/health/HealthKeys$SortedIntArray; -Landroid/os/health/HealthStats; -Landroid/os/health/HealthStatsParceler$1; -Landroid/os/health/HealthStatsParceler; -Landroid/os/health/HealthStatsWriter; -Landroid/os/health/PackageHealthStats; -Landroid/os/health/PidHealthStats; -Landroid/os/health/ProcessHealthStats; -Landroid/os/health/ServiceHealthStats; -Landroid/os/health/SystemHealthManager$$ExternalSyntheticLambda1; -Landroid/os/health/SystemHealthManager; -Landroid/os/health/TimerStat$1; -Landroid/os/health/TimerStat; -Landroid/os/health/UidHealthStats; -Landroid/os/image/DynamicSystemClient; -Landroid/os/image/DynamicSystemManager; -Landroid/os/image/IDynamicSystemService$Stub; -Landroid/os/image/IDynamicSystemService; -Landroid/os/incremental/IncrementalManager; -Landroid/os/incremental/V4Signature$HashingInfo; -Landroid/os/incremental/V4Signature$SigningInfo; -Landroid/os/incremental/V4Signature; -Landroid/os/storage/DiskInfo$1; -Landroid/os/storage/DiskInfo; -Landroid/os/storage/IObbActionListener$Stub$Proxy; -Landroid/os/storage/IObbActionListener$Stub; -Landroid/os/storage/IObbActionListener; -Landroid/os/storage/IStorageEventListener$Stub$Proxy; -Landroid/os/storage/IStorageEventListener$Stub; -Landroid/os/storage/IStorageEventListener; -Landroid/os/storage/IStorageManager$Stub$Proxy; -Landroid/os/storage/IStorageManager$Stub; -Landroid/os/storage/IStorageManager; -Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy; -Landroid/os/storage/IStorageShutdownObserver$Stub; -Landroid/os/storage/IStorageShutdownObserver; -Landroid/os/storage/OnObbStateChangeListener; -Landroid/os/storage/StorageEventListener; -Landroid/os/storage/StorageManager$1; -Landroid/os/storage/StorageManager$ObbActionListener-IA; -Landroid/os/storage/StorageManager$ObbActionListener; -Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda2; -Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda3; -Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda4; -Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda5; -Landroid/os/storage/StorageManager$StorageEventListenerDelegate$$ExternalSyntheticLambda6; -Landroid/os/storage/StorageManager$StorageEventListenerDelegate; -Landroid/os/storage/StorageManager$StorageVolumeCallback; -Landroid/os/storage/StorageManager; -Landroid/os/storage/StorageManagerInternal; -Landroid/os/storage/StorageVolume$1; -Landroid/os/storage/StorageVolume-IA; -Landroid/os/storage/StorageVolume; -Landroid/os/storage/VolumeInfo$1; -Landroid/os/storage/VolumeInfo$2; -Landroid/os/storage/VolumeInfo; -Landroid/os/storage/VolumeRecord$1; -Landroid/os/storage/VolumeRecord; -Landroid/os/strictmode/ContentUriWithoutPermissionViolation; -Landroid/os/strictmode/CredentialProtectedWhileLockedViolation; -Landroid/os/strictmode/CustomViolation; -Landroid/os/strictmode/DiskReadViolation; -Landroid/os/strictmode/DiskWriteViolation; -Landroid/os/strictmode/ExplicitGcViolation; -Landroid/os/strictmode/ImplicitDirectBootViolation; -Landroid/os/strictmode/IncorrectContextUseViolation; -Landroid/os/strictmode/InstanceCountViolation; -Landroid/os/strictmode/IntentReceiverLeakedViolation; -Landroid/os/strictmode/LeakedClosableViolation; -Landroid/os/strictmode/NetworkViolation; -Landroid/os/strictmode/ResourceMismatchViolation; -Landroid/os/strictmode/ServiceConnectionLeakedViolation; -Landroid/os/strictmode/SqliteObjectLeakedViolation; -Landroid/os/strictmode/UnbufferedIoViolation; -Landroid/os/strictmode/UnsafeIntentLaunchViolation; -Landroid/os/strictmode/UntaggedSocketViolation; -Landroid/os/strictmode/Violation; -Landroid/os/strictmode/WebViewMethodCalledOnWrongThreadViolation; -Landroid/os/vibrator/Flags; -Landroid/os/vibrator/PrebakedSegment$1; -Landroid/os/vibrator/PrebakedSegment; -Landroid/os/vibrator/PrimitiveSegment$1; -Landroid/os/vibrator/PrimitiveSegment; -Landroid/os/vibrator/StepSegment$1; -Landroid/os/vibrator/StepSegment; -Landroid/os/vibrator/VibrationEffectSegment$1; -Landroid/os/vibrator/VibrationEffectSegment; -Landroid/ota/nano/OtaPackageMetadata$ApexInfo; -Landroid/ota/nano/OtaPackageMetadata$ApexMetadata; -Landroid/ota/nano/OtaPackageMetadata$DeviceState; -Landroid/ota/nano/OtaPackageMetadata$PartitionState; -Landroid/permission/ILegacyPermissionManager$Stub$Proxy; -Landroid/permission/ILegacyPermissionManager$Stub; -Landroid/permission/ILegacyPermissionManager; -Landroid/permission/IOnPermissionsChangeListener$Stub; -Landroid/permission/IOnPermissionsChangeListener; -Landroid/permission/IPermissionChecker$Stub$Proxy; -Landroid/permission/IPermissionChecker$Stub; -Landroid/permission/IPermissionChecker; -Landroid/permission/IPermissionController$Stub$Proxy; -Landroid/permission/IPermissionController$Stub; -Landroid/permission/IPermissionController; -Landroid/permission/IPermissionManager$Stub$Proxy; -Landroid/permission/IPermissionManager$Stub; -Landroid/permission/IPermissionManager; -Landroid/permission/LegacyPermissionManager; -Landroid/permission/PermissionCheckerManager; -Landroid/permission/PermissionControllerManager$1; -Landroid/permission/PermissionControllerManager; -Landroid/permission/PermissionManager$1; -Landroid/permission/PermissionManager$2; -Landroid/permission/PermissionManager$PackageNamePermissionQuery; -Landroid/permission/PermissionManager$PermissionQuery; -Landroid/permission/PermissionManager$SplitPermissionInfo-IA; -Landroid/permission/PermissionManager$SplitPermissionInfo; -Landroid/permission/PermissionManager; -Landroid/permission/PermissionManagerInternal; -Landroid/permission/flags/FeatureFlags; -Landroid/permission/flags/FeatureFlagsImpl; -Landroid/permission/flags/Flags; -Landroid/preference/DialogPreference; -Landroid/preference/GenericInflater$Parent; -Landroid/preference/GenericInflater; -Landroid/preference/ListPreference; -Landroid/preference/Preference$OnPreferenceChangeListener; -Landroid/preference/Preference; -Landroid/preference/PreferenceActivity; -Landroid/preference/PreferenceFragment$OnPreferenceStartFragmentCallback; -Landroid/preference/PreferenceFragment; -Landroid/preference/PreferenceGroup; -Landroid/preference/PreferenceInflater; -Landroid/preference/PreferenceManager$OnActivityDestroyListener; -Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener; -Landroid/preference/PreferenceManager; -Landroid/preference/PreferenceScreen; -Landroid/preference/TwoStatePreference; -Landroid/print/IPrintDocumentAdapter$Stub$Proxy; -Landroid/print/IPrintDocumentAdapter$Stub; -Landroid/print/IPrintDocumentAdapter; -Landroid/print/IPrintJobStateChangeListener$Stub$Proxy; -Landroid/print/IPrintJobStateChangeListener$Stub; -Landroid/print/IPrintJobStateChangeListener; -Landroid/print/IPrintManager$Stub$Proxy; -Landroid/print/IPrintManager$Stub; -Landroid/print/IPrintManager; -Landroid/print/IPrintServicesChangeListener$Stub$Proxy; -Landroid/print/IPrintServicesChangeListener$Stub; -Landroid/print/IPrintServicesChangeListener; -Landroid/print/IPrintSpooler$Stub$Proxy; -Landroid/print/IPrintSpooler$Stub; -Landroid/print/IPrintSpooler; -Landroid/print/IPrintSpoolerCallbacks$Stub; -Landroid/print/IPrintSpoolerCallbacks; -Landroid/print/IPrintSpoolerClient$Stub; -Landroid/print/IPrintSpoolerClient; -Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy; -Landroid/print/IPrinterDiscoveryObserver$Stub; -Landroid/print/IPrinterDiscoveryObserver; -Landroid/print/PrintAttributes$1; -Landroid/print/PrintAttributes; -Landroid/print/PrintDocumentAdapter; -Landroid/print/PrintJobId$1; -Landroid/print/PrintJobId; -Landroid/print/PrintJobInfo$1; -Landroid/print/PrintJobInfo; -Landroid/print/PrintManager$1; -Landroid/print/PrintManager; -Landroid/print/PrinterId$1; -Landroid/print/PrinterId; -Landroid/printservice/IPrintServiceClient$Stub; -Landroid/printservice/IPrintServiceClient; -Landroid/printservice/PrintServiceInfo$1; -Landroid/printservice/PrintServiceInfo; -Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy; -Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub; -Landroid/printservice/recommendation/IRecommendationsChangeListener; -Landroid/privacy/DifferentialPrivacyConfig; -Landroid/privacy/DifferentialPrivacyEncoder; -Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig; -Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder; -Landroid/privacy/internal/rappor/RapporConfig; -Landroid/privacy/internal/rappor/RapporEncoder; -Landroid/provider/BaseColumns; -Landroid/provider/BlockedNumberContract$BlockedNumbers; -Landroid/provider/BlockedNumberContract$SystemContract; -Landroid/provider/BlockedNumberContract; -Landroid/provider/CalendarContract$Attendees; -Landroid/provider/CalendarContract$AttendeesColumns; -Landroid/provider/CalendarContract$CalendarColumns; -Landroid/provider/CalendarContract$CalendarSyncColumns; -Landroid/provider/CalendarContract$Calendars; -Landroid/provider/CalendarContract$Events; -Landroid/provider/CalendarContract$EventsColumns; -Landroid/provider/CalendarContract$Instances; -Landroid/provider/CalendarContract$SyncColumns; -Landroid/provider/CalendarContract; -Landroid/provider/CallLog$CallComposerLoggingException; -Landroid/provider/CallLog$Calls; -Landroid/provider/CallLog; -Landroid/provider/ContactsContract$BaseSyncColumns; -Landroid/provider/ContactsContract$CommonDataKinds$BaseTypes; -Landroid/provider/ContactsContract$CommonDataKinds$Callable; -Landroid/provider/ContactsContract$CommonDataKinds$CommonColumns; -Landroid/provider/ContactsContract$CommonDataKinds$Email; -Landroid/provider/ContactsContract$CommonDataKinds$Event; -Landroid/provider/ContactsContract$CommonDataKinds$Im; -Landroid/provider/ContactsContract$CommonDataKinds$Phone; -Landroid/provider/ContactsContract$CommonDataKinds$Relation; -Landroid/provider/ContactsContract$CommonDataKinds$StructuredPostal; -Landroid/provider/ContactsContract$ContactCounts; -Landroid/provider/ContactsContract$ContactNameColumns; -Landroid/provider/ContactsContract$ContactOptionsColumns; -Landroid/provider/ContactsContract$ContactStatusColumns; -Landroid/provider/ContactsContract$Contacts; -Landroid/provider/ContactsContract$ContactsColumns; -Landroid/provider/ContactsContract$Data; -Landroid/provider/ContactsContract$DataColumns; -Landroid/provider/ContactsContract$DataColumnsWithJoins; -Landroid/provider/ContactsContract$DataUsageFeedback; -Landroid/provider/ContactsContract$DataUsageStatColumns; -Landroid/provider/ContactsContract$DeletedContacts; -Landroid/provider/ContactsContract$DeletedContactsColumns; -Landroid/provider/ContactsContract$Directory; -Landroid/provider/ContactsContract$DisplayPhoto; -Landroid/provider/ContactsContract$Groups; -Landroid/provider/ContactsContract$GroupsColumns; -Landroid/provider/ContactsContract$MetadataSync; -Landroid/provider/ContactsContract$MetadataSyncColumns; -Landroid/provider/ContactsContract$PhoneLookup; -Landroid/provider/ContactsContract$PhoneLookupColumns; -Landroid/provider/ContactsContract$Profile; -Landroid/provider/ContactsContract$ProviderStatus; -Landroid/provider/ContactsContract$RawContacts; -Landroid/provider/ContactsContract$RawContactsColumns; -Landroid/provider/ContactsContract$RawContactsEntity; -Landroid/provider/ContactsContract$Settings; -Landroid/provider/ContactsContract$SettingsColumns; -Landroid/provider/ContactsContract$StatusColumns; -Landroid/provider/ContactsContract$SyncColumns; -Landroid/provider/ContactsContract$SyncState; -Landroid/provider/ContactsContract; -Landroid/provider/DeviceConfigInitializer; -Landroid/provider/DeviceConfigServiceManager$ServiceRegisterer; -Landroid/provider/DeviceConfigServiceManager; -Landroid/provider/DocumentsContract$Path$1; -Landroid/provider/DocumentsContract$Path; -Landroid/provider/DocumentsContract; -Landroid/provider/DocumentsProvider; -Landroid/provider/Downloads$Impl; -Landroid/provider/Downloads; -Landroid/provider/E2eeContactKeysManager; -Landroid/provider/FontRequest; -Landroid/provider/FontsContract$$ExternalSyntheticLambda0; -Landroid/provider/FontsContract$$ExternalSyntheticLambda12; -Landroid/provider/FontsContract$$ExternalSyntheticLambda13; -Landroid/provider/FontsContract$$ExternalSyntheticLambda1; -Landroid/provider/FontsContract$1; -Landroid/provider/FontsContract$FontFamilyResult; -Landroid/provider/FontsContract$FontInfo; -Landroid/provider/FontsContract; -Landroid/provider/OpenableColumns; -Landroid/provider/SearchIndexableData; -Landroid/provider/SearchIndexableResource; -Landroid/provider/SearchIndexablesContract; -Landroid/provider/SearchIndexablesProvider; -Landroid/provider/SearchRecentSuggestions; -Landroid/provider/Settings$Config; -Landroid/provider/Settings$ContentProviderHolder; -Landroid/provider/Settings$GenerationTracker; -Landroid/provider/Settings$Global; -Landroid/provider/Settings$NameValueCache$$ExternalSyntheticLambda0; -Landroid/provider/Settings$NameValueCache; -Landroid/provider/Settings$NameValueTable; -Landroid/provider/Settings$Readable; -Landroid/provider/Settings$Secure; -Landroid/provider/Settings$SettingNotFoundException; -Landroid/provider/Settings$System; -Landroid/provider/Settings; -Landroid/provider/SyncStateContract$Columns; -Landroid/provider/Telephony$BaseMmsColumns; -Landroid/provider/Telephony$CarrierColumns; -Landroid/provider/Telephony$CarrierId$All; -Landroid/provider/Telephony$CarrierId; -Landroid/provider/Telephony$Carriers; -Landroid/provider/Telephony$Mms$Inbox; -Landroid/provider/Telephony$Mms$Sent; -Landroid/provider/Telephony$Mms; -Landroid/provider/Telephony$MmsSms; -Landroid/provider/Telephony$ServiceStateTable; -Landroid/provider/Telephony$SimInfo; -Landroid/provider/Telephony$Sms$Intents; -Landroid/provider/Telephony$Sms$Sent; -Landroid/provider/Telephony$Sms; -Landroid/provider/Telephony$TextBasedSmsColumns; -Landroid/provider/Telephony$Threads; -Landroid/provider/Telephony$ThreadsColumns; -Landroid/provider/UserDictionary$Words; -Landroid/provider/VoicemailContract$Status; -Landroid/provider/VoicemailContract$Voicemails; -Landroid/renderscript/Allocation; -Landroid/renderscript/BaseObj; -Landroid/renderscript/Element$DataKind; -Landroid/renderscript/Element$DataType; -Landroid/renderscript/Element; -Landroid/renderscript/RSDriverException; -Landroid/renderscript/RSIllegalArgumentException; -Landroid/renderscript/RSInvalidStateException; -Landroid/renderscript/RSRuntimeException; -Landroid/renderscript/RenderScript$ContextType; -Landroid/renderscript/RenderScript$MessageThread; -Landroid/renderscript/RenderScript$RSErrorHandler; -Landroid/renderscript/RenderScript$RSMessageHandler; -Landroid/renderscript/RenderScript; -Landroid/renderscript/RenderScriptCacheDir; -Landroid/renderscript/Script; -Landroid/renderscript/ScriptIntrinsic; -Landroid/renderscript/ScriptIntrinsicBlur; -Landroid/se/omapi/SeFrameworkInitializer; -Landroid/se/omapi/SeServiceManager; -Landroid/security/AttestedKeyPair; -Landroid/security/CheckedRemoteRequest; -Landroid/security/Credentials; -Landroid/security/FeatureFlags; -Landroid/security/FeatureFlagsImpl; -Landroid/security/FileIntegrityManager; -Landroid/security/Flags; -Landroid/security/GateKeeper; -Landroid/security/IFileIntegrityService$Stub; -Landroid/security/IFileIntegrityService; -Landroid/security/IKeyChainAliasCallback$Stub; -Landroid/security/IKeyChainAliasCallback; -Landroid/security/IKeyChainService$Stub$Proxy; -Landroid/security/IKeyChainService$Stub; -Landroid/security/IKeyChainService; -Landroid/security/KeyChain$1; -Landroid/security/KeyChain$AliasResponse; -Landroid/security/KeyChain$KeyChainConnection; -Landroid/security/KeyChain; -Landroid/security/KeyChainAliasCallback; -Landroid/security/KeyChainException; -Landroid/security/KeyPairGeneratorSpec; -Landroid/security/KeyStore2$$ExternalSyntheticLambda0; -Landroid/security/KeyStore2$$ExternalSyntheticLambda1; -Landroid/security/KeyStore2$$ExternalSyntheticLambda3; -Landroid/security/KeyStore2$$ExternalSyntheticLambda4; -Landroid/security/KeyStore2$$ExternalSyntheticLambda8; -Landroid/security/KeyStore2$CheckedRemoteRequest; -Landroid/security/KeyStore2; -Landroid/security/KeyStore; -Landroid/security/KeyStoreException$PublicErrorInformation; -Landroid/security/KeyStoreException; -Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda0; -Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda1; -Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda2; -Landroid/security/KeyStoreOperation$$ExternalSyntheticLambda3; -Landroid/security/KeyStoreOperation; -Landroid/security/KeyStoreSecurityLevel$$ExternalSyntheticLambda1; -Landroid/security/KeyStoreSecurityLevel; -Landroid/security/NetworkSecurityPolicy; -Landroid/security/Scrypt; -Landroid/security/attestationverification/AttestationVerificationManager; -Landroid/security/keymaster/ExportResult$1; -Landroid/security/keymaster/ExportResult; -Landroid/security/keymaster/KeyCharacteristics$1; -Landroid/security/keymaster/KeyCharacteristics; -Landroid/security/keymaster/KeymasterArgument$1; -Landroid/security/keymaster/KeymasterArgument; -Landroid/security/keymaster/KeymasterArguments$1; -Landroid/security/keymaster/KeymasterArguments-IA; -Landroid/security/keymaster/KeymasterArguments; -Landroid/security/keymaster/KeymasterBlob$1; -Landroid/security/keymaster/KeymasterBlob; -Landroid/security/keymaster/KeymasterBlobArgument; -Landroid/security/keymaster/KeymasterBooleanArgument; -Landroid/security/keymaster/KeymasterCertificateChain$1; -Landroid/security/keymaster/KeymasterCertificateChain; -Landroid/security/keymaster/KeymasterDateArgument; -Landroid/security/keymaster/KeymasterDefs; -Landroid/security/keymaster/KeymasterIntArgument; -Landroid/security/keymaster/KeymasterLongArgument; -Landroid/security/keymaster/OperationResult$1; -Landroid/security/keymaster/OperationResult; -Landroid/security/keystore/AndroidKeyStoreProvider; -Landroid/security/keystore/ArrayUtils; -Landroid/security/keystore/AttestationUtils; -Landroid/security/keystore/BackendBusyException; -Landroid/security/keystore/DelegatingX509Certificate; -Landroid/security/keystore/DeviceIdAttestationException; -Landroid/security/keystore/KeyAttestationException; -Landroid/security/keystore/KeyExpiredException; -Landroid/security/keystore/KeyGenParameterSpec$Builder; -Landroid/security/keystore/KeyGenParameterSpec; -Landroid/security/keystore/KeyInfo; -Landroid/security/keystore/KeyNotYetValidException; -Landroid/security/keystore/KeyPermanentlyInvalidatedException; -Landroid/security/keystore/KeyProperties$BlockMode; -Landroid/security/keystore/KeyProperties$Digest; -Landroid/security/keystore/KeyProperties$EncryptionPadding; -Landroid/security/keystore/KeyProperties$KeyAlgorithm; -Landroid/security/keystore/KeyProperties$Origin; -Landroid/security/keystore/KeyProperties$Purpose; -Landroid/security/keystore/KeyProperties$SignaturePadding; -Landroid/security/keystore/KeyProperties; -Landroid/security/keystore/KeyProtection$Builder; -Landroid/security/keystore/KeyProtection; -Landroid/security/keystore/KeyStoreConnectException; -Landroid/security/keystore/KeyStoreCryptoOperation; -Landroid/security/keystore/KeystoreResponse$1; -Landroid/security/keystore/KeystoreResponse; -Landroid/security/keystore/ParcelableKeyGenParameterSpec$1; -Landroid/security/keystore/ParcelableKeyGenParameterSpec; -Landroid/security/keystore/SecureKeyImportUnavailableException; -Landroid/security/keystore/StrongBoxUnavailableException; -Landroid/security/keystore/UserAuthArgs; -Landroid/security/keystore/UserNotAuthenticatedException; -Landroid/security/keystore/Utils; -Landroid/security/keystore/WrappedKeyEntry; -Landroid/security/keystore/recovery/InternalRecoveryServiceException; -Landroid/security/keystore/recovery/KeyChainProtectionParams$1; -Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder; -Landroid/security/keystore/recovery/KeyChainProtectionParams; -Landroid/security/keystore/recovery/KeyChainSnapshot$1; -Landroid/security/keystore/recovery/KeyChainSnapshot$Builder; -Landroid/security/keystore/recovery/KeyChainSnapshot; -Landroid/security/keystore/recovery/KeyDerivationParams$1; -Landroid/security/keystore/recovery/KeyDerivationParams; -Landroid/security/keystore/recovery/LockScreenRequiredException; -Landroid/security/keystore/recovery/RecoveryCertPath$1; -Landroid/security/keystore/recovery/RecoveryCertPath; -Landroid/security/keystore/recovery/RecoveryController; -Landroid/security/keystore/recovery/TrustedRootCertificates; -Landroid/security/keystore/recovery/WrappedApplicationKey$1; -Landroid/security/keystore/recovery/WrappedApplicationKey$Builder; -Landroid/security/keystore/recovery/WrappedApplicationKey; -Landroid/security/keystore/recovery/X509CertificateParsingUtils; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream-IA; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer-IA; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM; -Landroid/security/keystore2/AndroidKeyStoreAuthenticatedAESCipherSpi; -Landroid/security/keystore2/AndroidKeyStoreBCWorkaroundProvider; -Landroid/security/keystore2/AndroidKeyStoreCipherSpiBase; -Landroid/security/keystore2/AndroidKeyStoreECDSASignatureSpi$SHA256; -Landroid/security/keystore2/AndroidKeyStoreECDSASignatureSpi; -Landroid/security/keystore2/AndroidKeyStoreECPrivateKey; -Landroid/security/keystore2/AndroidKeyStoreECPublicKey; -Landroid/security/keystore2/AndroidKeyStoreKey; -Landroid/security/keystore2/AndroidKeyStoreKeyFactorySpi; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda2; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda3; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda4; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda5; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$$ExternalSyntheticLambda6; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi$EC; -Landroid/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi; -Landroid/security/keystore2/AndroidKeyStoreLoadStoreParameter; -Landroid/security/keystore2/AndroidKeyStorePrivateKey; -Landroid/security/keystore2/AndroidKeyStoreProvider; -Landroid/security/keystore2/AndroidKeyStorePublicKey; -Landroid/security/keystore2/AndroidKeyStoreRSAPrivateKey; -Landroid/security/keystore2/AndroidKeyStoreRSAPublicKey; -Landroid/security/keystore2/AndroidKeyStoreSecretKey; -Landroid/security/keystore2/AndroidKeyStoreSignatureSpiBase; -Landroid/security/keystore2/AndroidKeyStoreSpi; -Landroid/security/keystore2/KeyStore2ParameterUtils; -Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$MainDataStream; -Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer$Stream; -Landroid/security/keystore2/KeyStoreCryptoOperationChunkedStreamer; -Landroid/security/keystore2/KeyStoreCryptoOperationStreamer; -Landroid/security/keystore2/KeyStoreCryptoOperationUtils; -Landroid/security/keystore2/KeymasterUtils; -Landroid/security/net/config/ApplicationConfig; -Landroid/security/net/config/CertificateSource; -Landroid/security/net/config/CertificatesEntryRef; -Landroid/security/net/config/ConfigNetworkSecurityPolicy; -Landroid/security/net/config/ConfigSource; -Landroid/security/net/config/DirectoryCertificateSource$1; -Landroid/security/net/config/DirectoryCertificateSource$3; -Landroid/security/net/config/DirectoryCertificateSource$CertSelector; -Landroid/security/net/config/DirectoryCertificateSource; -Landroid/security/net/config/Domain; -Landroid/security/net/config/KeyStoreCertificateSource; -Landroid/security/net/config/KeyStoreConfigSource; -Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource; -Landroid/security/net/config/ManifestConfigSource; -Landroid/security/net/config/NetworkSecurityConfig$1; -Landroid/security/net/config/NetworkSecurityConfig$Builder; -Landroid/security/net/config/NetworkSecurityConfig-IA; -Landroid/security/net/config/NetworkSecurityConfig; -Landroid/security/net/config/NetworkSecurityConfigProvider; -Landroid/security/net/config/NetworkSecurityTrustManager; -Landroid/security/net/config/Pin; -Landroid/security/net/config/PinSet; -Landroid/security/net/config/ResourceCertificateSource; -Landroid/security/net/config/RootTrustManager; -Landroid/security/net/config/RootTrustManagerFactorySpi; -Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder; -Landroid/security/net/config/SystemCertificateSource-IA; -Landroid/security/net/config/SystemCertificateSource; -Landroid/security/net/config/TrustAnchor; -Landroid/security/net/config/TrustedCertificateStoreAdapter; -Landroid/security/net/config/UserCertificateSource$NoPreloadHolder; -Landroid/security/net/config/UserCertificateSource-IA; -Landroid/security/net/config/UserCertificateSource; -Landroid/security/net/config/WfaCertificateSource$NoPreloadHolder; -Landroid/security/net/config/WfaCertificateSource; -Landroid/security/net/config/XmlConfigSource$ParserException; -Landroid/security/net/config/XmlConfigSource; -Landroid/server/FeatureFlags; -Landroid/server/FeatureFlagsImpl; -Landroid/server/Flags; -Landroid/service/appprediction/IPredictionService$Stub$Proxy; -Landroid/service/appprediction/IPredictionService$Stub; -Landroid/service/appprediction/IPredictionService; -Landroid/service/autofill/AutofillServiceInfo; -Landroid/service/autofill/Dataset$1; -Landroid/service/autofill/Dataset; -Landroid/service/autofill/FieldClassificationUserData; -Landroid/service/autofill/FillContext$1; -Landroid/service/autofill/FillContext; -Landroid/service/autofill/FillEventHistory$1; -Landroid/service/autofill/FillEventHistory; -Landroid/service/autofill/FillRequest$1; -Landroid/service/autofill/FillRequest; -Landroid/service/autofill/FillResponse$1; -Landroid/service/autofill/FillResponse; -Landroid/service/autofill/Flags; -Landroid/service/autofill/IAutoFillService$Stub$Proxy; -Landroid/service/autofill/IAutoFillService$Stub; -Landroid/service/autofill/IAutoFillService; -Landroid/service/autofill/IFillCallback$Stub$Proxy; -Landroid/service/autofill/IFillCallback$Stub; -Landroid/service/autofill/IFillCallback; -Landroid/service/autofill/IInlineSuggestionRenderService$Stub$Proxy; -Landroid/service/autofill/IInlineSuggestionRenderService$Stub; -Landroid/service/autofill/IInlineSuggestionRenderService; -Landroid/service/autofill/ISaveCallback$Stub; -Landroid/service/autofill/ISaveCallback; -Landroid/service/autofill/SaveRequest$1; -Landroid/service/autofill/SaveRequest; -Landroid/service/autofill/UserData$1; -Landroid/service/autofill/UserData$Builder; -Landroid/service/autofill/UserData; -Landroid/service/autofill/augmented/Helper; -Landroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy; -Landroid/service/autofill/augmented/IAugmentedAutofillService$Stub; -Landroid/service/autofill/augmented/IAugmentedAutofillService; -Landroid/service/autofill/augmented/IFillCallback$Stub$Proxy; -Landroid/service/autofill/augmented/IFillCallback$Stub; -Landroid/service/autofill/augmented/IFillCallback; -Landroid/service/carrier/CarrierIdentifier$1; -Landroid/service/carrier/CarrierIdentifier; -Landroid/service/carrier/CarrierMessagingServiceWrapper$CarrierMessagingCallback; -Landroid/service/carrier/CarrierMessagingServiceWrapper; -Landroid/service/carrier/ICarrierService$Stub$Proxy; -Landroid/service/carrier/ICarrierService$Stub; -Landroid/service/carrier/ICarrierService; -Landroid/service/carrier/MessagePdu$1; -Landroid/service/carrier/MessagePdu; -Landroid/service/contentcapture/ActivityEvent$1; -Landroid/service/contentcapture/ActivityEvent; -Landroid/service/contentcapture/ContentCaptureService; -Landroid/service/contentcapture/ContentCaptureServiceInfo; -Landroid/service/contentcapture/FlushMetrics$1; -Landroid/service/contentcapture/FlushMetrics; -Landroid/service/contentcapture/IContentCaptureService$Stub$Proxy; -Landroid/service/contentcapture/IContentCaptureService$Stub; -Landroid/service/contentcapture/IContentCaptureService; -Landroid/service/contentcapture/IContentCaptureServiceCallback$Stub$Proxy; -Landroid/service/contentcapture/IContentCaptureServiceCallback$Stub; -Landroid/service/contentcapture/IContentCaptureServiceCallback; -Landroid/service/contentcapture/IDataShareCallback$Stub; -Landroid/service/contentcapture/IDataShareCallback; -Landroid/service/contentcapture/SnapshotData$1; -Landroid/service/contentcapture/SnapshotData; -Landroid/service/contentsuggestions/IContentSuggestionsService$Stub$Proxy; -Landroid/service/contentsuggestions/IContentSuggestionsService$Stub; -Landroid/service/contentsuggestions/IContentSuggestionsService; -Landroid/service/dataloader/DataLoaderService; -Landroid/service/dreams/DreamActivity; -Landroid/service/dreams/DreamManagerInternal; -Landroid/service/dreams/DreamService$DreamServiceWrapper; -Landroid/service/dreams/DreamService; -Landroid/service/dreams/IDreamManager$Stub$Proxy; -Landroid/service/dreams/IDreamManager$Stub; -Landroid/service/dreams/IDreamManager; -Landroid/service/dreams/IDreamService$Stub$Proxy; -Landroid/service/dreams/IDreamService$Stub; -Landroid/service/dreams/IDreamService; -Landroid/service/euicc/DownloadSubscriptionResult$1; -Landroid/service/euicc/DownloadSubscriptionResult; -Landroid/service/euicc/EuiccProfileInfo$1; -Landroid/service/euicc/EuiccProfileInfo$Builder; -Landroid/service/euicc/EuiccProfileInfo; -Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult$1; -Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult; -Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult$1; -Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult; -Landroid/service/euicc/GetEuiccProfileInfoListResult$1; -Landroid/service/euicc/GetEuiccProfileInfoListResult; -Landroid/service/euicc/IDeleteSubscriptionCallback$Stub; -Landroid/service/euicc/IDeleteSubscriptionCallback; -Landroid/service/euicc/IDownloadSubscriptionCallback$Stub; -Landroid/service/euicc/IDownloadSubscriptionCallback; -Landroid/service/euicc/IEraseSubscriptionsCallback$Stub; -Landroid/service/euicc/IEraseSubscriptionsCallback; -Landroid/service/euicc/IEuiccService$Stub$Proxy; -Landroid/service/euicc/IEuiccService$Stub; -Landroid/service/euicc/IEuiccService; -Landroid/service/euicc/IEuiccServiceDumpResultCallback$Stub; -Landroid/service/euicc/IEuiccServiceDumpResultCallback; -Landroid/service/euicc/IGetAvailableMemoryInBytesCallback$Stub; -Landroid/service/euicc/IGetAvailableMemoryInBytesCallback; -Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub; -Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback; -Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub; -Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback; -Landroid/service/euicc/IGetEidCallback$Stub; -Landroid/service/euicc/IGetEidCallback; -Landroid/service/euicc/IGetEuiccInfoCallback$Stub; -Landroid/service/euicc/IGetEuiccInfoCallback; -Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy; -Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub; -Landroid/service/euicc/IGetEuiccProfileInfoListCallback; -Landroid/service/euicc/IGetOtaStatusCallback$Stub; -Landroid/service/euicc/IGetOtaStatusCallback; -Landroid/service/euicc/IOtaStatusChangedCallback$Stub; -Landroid/service/euicc/IOtaStatusChangedCallback; -Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub; -Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback; -Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub; -Landroid/service/euicc/ISwitchToSubscriptionCallback; -Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub; -Landroid/service/euicc/IUpdateSubscriptionNicknameCallback; -Landroid/service/games/GameSession$ScreenshotCallback; -Landroid/service/gatekeeper/GateKeeperResponse$1; -Landroid/service/gatekeeper/GateKeeperResponse; -Landroid/service/gatekeeper/IGateKeeperService$Stub$Proxy; -Landroid/service/gatekeeper/IGateKeeperService$Stub; -Landroid/service/gatekeeper/IGateKeeperService; -Landroid/service/media/IMediaBrowserService$Stub$Proxy; -Landroid/service/media/IMediaBrowserService$Stub; -Landroid/service/media/IMediaBrowserService; -Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy; -Landroid/service/media/IMediaBrowserServiceCallbacks$Stub; -Landroid/service/media/IMediaBrowserServiceCallbacks; -Landroid/service/media/MediaBrowserService$$ExternalSyntheticLambda0; -Landroid/service/media/MediaBrowserService$BrowserRoot; -Landroid/service/media/MediaBrowserService$ConnectionRecord; -Landroid/service/media/MediaBrowserService$Result; -Landroid/service/media/MediaBrowserService$ServiceBinder$$ExternalSyntheticLambda1; -Landroid/service/media/MediaBrowserService$ServiceBinder-IA; -Landroid/service/media/MediaBrowserService$ServiceBinder; -Landroid/service/media/MediaBrowserService$ServiceState; -Landroid/service/media/MediaBrowserService; -Landroid/service/notification/Adjustment$1; -Landroid/service/notification/Adjustment; -Landroid/service/notification/Condition$1; -Landroid/service/notification/Condition; -Landroid/service/notification/ConditionProviderService$H-IA; -Landroid/service/notification/ConditionProviderService$H; -Landroid/service/notification/ConditionProviderService$Provider-IA; -Landroid/service/notification/ConditionProviderService; -Landroid/service/notification/IConditionProvider$Stub; -Landroid/service/notification/IConditionProvider; -Landroid/service/notification/INotificationListener$Stub; -Landroid/service/notification/INotificationListener; -Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy; -Landroid/service/notification/IStatusBarNotificationHolder$Stub; -Landroid/service/notification/IStatusBarNotificationHolder; -Landroid/service/notification/NotificationAssistantService$MyHandler; -Landroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper; -Landroid/service/notification/NotificationAssistantService; -Landroid/service/notification/NotificationListenerFilter$1; -Landroid/service/notification/NotificationListenerFilter; -Landroid/service/notification/NotificationListenerService$MyHandler; -Landroid/service/notification/NotificationListenerService$Ranking; -Landroid/service/notification/NotificationListenerService$RankingMap$1; -Landroid/service/notification/NotificationListenerService$RankingMap-IA; -Landroid/service/notification/NotificationListenerService$RankingMap; -Landroid/service/notification/NotificationListenerService; -Landroid/service/notification/NotificationRankingUpdate$1; -Landroid/service/notification/NotificationRankingUpdate; -Landroid/service/notification/NotificationStats$1; -Landroid/service/notification/NotificationStats; -Landroid/service/notification/NotifyingApp$1; -Landroid/service/notification/ScheduleCalendar; -Landroid/service/notification/SnoozeCriterion$1; -Landroid/service/notification/SnoozeCriterion; -Landroid/service/notification/StatusBarNotification$1; -Landroid/service/notification/StatusBarNotification; -Landroid/service/notification/ZenDeviceEffects; -Landroid/service/notification/ZenModeConfig$1; -Landroid/service/notification/ZenModeConfig$EventInfo; -Landroid/service/notification/ZenModeConfig$ScheduleInfo; -Landroid/service/notification/ZenModeConfig$ZenRule$1; -Landroid/service/notification/ZenModeConfig$ZenRule; -Landroid/service/notification/ZenModeConfig; -Landroid/service/notification/ZenPolicy$1; -Landroid/service/notification/ZenPolicy$Builder; -Landroid/service/notification/ZenPolicy; -Landroid/service/oemlock/IOemLockService$Stub$Proxy; -Landroid/service/oemlock/IOemLockService$Stub; -Landroid/service/oemlock/IOemLockService; -Landroid/service/oemlock/OemLockManager; -Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy; -Landroid/service/persistentdata/IPersistentDataBlockService$Stub; -Landroid/service/persistentdata/IPersistentDataBlockService; -Landroid/service/persistentdata/PersistentDataBlockManager; -Landroid/service/quickaccesswallet/GetWalletCardsRequest$1; -Landroid/service/quickaccesswallet/GetWalletCardsRequest; -Landroid/service/quickaccesswallet/QuickAccessWalletClient; -Landroid/service/quickaccesswallet/QuickAccessWalletClientImpl; -Landroid/service/quickaccesswallet/QuickAccessWalletServiceInfo$ServiceMetadata; -Landroid/service/quickaccesswallet/QuickAccessWalletServiceInfo$TileServiceMetadata; -Landroid/service/quickaccesswallet/QuickAccessWalletServiceInfo; -Landroid/service/quicksettings/IQSService$Stub$Proxy; -Landroid/service/quicksettings/IQSService$Stub; -Landroid/service/quicksettings/IQSService; -Landroid/service/quicksettings/IQSTileService$Stub; -Landroid/service/quicksettings/IQSTileService; -Landroid/service/quicksettings/Tile$1; -Landroid/service/quicksettings/Tile; -Landroid/service/quicksettings/TileService$2; -Landroid/service/quicksettings/TileService$H; -Landroid/service/quicksettings/TileService; -Landroid/service/storage/IExternalStorageService$Stub$Proxy; -Landroid/service/storage/IExternalStorageService$Stub; -Landroid/service/storage/IExternalStorageService; -Landroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy; -Landroid/service/textclassifier/ITextClassifierCallback$Stub; -Landroid/service/textclassifier/ITextClassifierCallback; -Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy; -Landroid/service/textclassifier/ITextClassifierService$Stub; -Landroid/service/textclassifier/ITextClassifierService; -Landroid/service/textclassifier/TextClassifierService$1; -Landroid/service/textclassifier/TextClassifierService; -Landroid/service/timezone/TimeZoneProviderStatus$1; -Landroid/service/timezone/TimeZoneProviderStatus; -Landroid/service/trust/ITrustAgentService$Stub$Proxy; -Landroid/service/trust/ITrustAgentService$Stub; -Landroid/service/trust/ITrustAgentService; -Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy; -Landroid/service/trust/ITrustAgentServiceCallback$Stub; -Landroid/service/trust/ITrustAgentServiceCallback; -Landroid/service/trust/TrustAgentService$1; -Landroid/service/trust/TrustAgentService$ConfigurationData; -Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper; -Landroid/service/trust/TrustAgentService; -Landroid/service/voice/IVoiceInteractionService$Stub$Proxy; -Landroid/service/voice/IVoiceInteractionService$Stub; -Landroid/service/voice/IVoiceInteractionService; -Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy; -Landroid/service/voice/IVoiceInteractionSession$Stub; -Landroid/service/voice/IVoiceInteractionSession; -Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy; -Landroid/service/voice/IVoiceInteractionSessionService$Stub; -Landroid/service/voice/IVoiceInteractionSessionService; -Landroid/service/voice/VoiceInteractionManagerInternal; -Landroid/service/voice/VoiceInteractionServiceInfo; -Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy; -Landroid/service/vr/IPersistentVrStateCallbacks$Stub; -Landroid/service/vr/IPersistentVrStateCallbacks; -Landroid/service/vr/IVrManager$Stub$Proxy; -Landroid/service/vr/IVrManager$Stub; -Landroid/service/vr/IVrManager; -Landroid/service/vr/IVrStateCallbacks$Stub$Proxy; -Landroid/service/vr/IVrStateCallbacks$Stub; -Landroid/service/vr/IVrStateCallbacks; -Landroid/service/wallpaper/EngineWindowPage; -Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy; -Landroid/service/wallpaper/IWallpaperConnection$Stub; -Landroid/service/wallpaper/IWallpaperConnection; -Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy; -Landroid/service/wallpaper/IWallpaperEngine$Stub; -Landroid/service/wallpaper/IWallpaperEngine; -Landroid/service/wallpaper/IWallpaperService$Stub$Proxy; -Landroid/service/wallpaper/IWallpaperService$Stub; -Landroid/service/wallpaper/IWallpaperService; -Landroid/service/wallpaper/WallpaperService$Engine$$ExternalSyntheticLambda1; -Landroid/service/wallpaper/WallpaperService$Engine$$ExternalSyntheticLambda2; -Landroid/service/wallpaper/WallpaperService$Engine$1; -Landroid/service/wallpaper/WallpaperService$Engine$2; -Landroid/service/wallpaper/WallpaperService$Engine$3; -Landroid/service/wallpaper/WallpaperService$Engine$4; -Landroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver; -Landroid/service/wallpaper/WallpaperService$Engine; -Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper; -Landroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper; -Landroid/service/wallpaper/WallpaperService$WallpaperCommand; -Landroid/service/wallpaper/WallpaperService; -Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1; -Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig; -Landroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy; -Landroid/service/watchdog/IExplicitHealthCheckService$Stub; -Landroid/service/watchdog/IExplicitHealthCheckService; -Landroid/speech/RecognitionListener; -Landroid/speech/SpeechRecognizer; -Landroid/speech/tts/ITextToSpeechCallback$Stub; -Landroid/speech/tts/ITextToSpeechCallback; -Landroid/speech/tts/ITextToSpeechService$Stub$Proxy; -Landroid/speech/tts/ITextToSpeechService$Stub; -Landroid/speech/tts/ITextToSpeechService; -Landroid/speech/tts/TextToSpeech$$ExternalSyntheticLambda13; -Landroid/speech/tts/TextToSpeech$$ExternalSyntheticLambda17; -Landroid/speech/tts/TextToSpeech$$ExternalSyntheticLambda1; -Landroid/speech/tts/TextToSpeech$Action; -Landroid/speech/tts/TextToSpeech$Connection$1; -Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask-IA; -Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask; -Landroid/speech/tts/TextToSpeech$Connection-IA; -Landroid/speech/tts/TextToSpeech$Connection; -Landroid/speech/tts/TextToSpeech$DirectConnection-IA; -Landroid/speech/tts/TextToSpeech$DirectConnection; -Landroid/speech/tts/TextToSpeech$EngineInfo; -Landroid/speech/tts/TextToSpeech$OnInitListener; -Landroid/speech/tts/TextToSpeech$SystemConnection-IA; -Landroid/speech/tts/TextToSpeech$SystemConnection; -Landroid/speech/tts/TextToSpeech; -Landroid/speech/tts/TtsEngines$EngineInfoComparator; -Landroid/speech/tts/TtsEngines; -Landroid/speech/tts/UtteranceProgressListener; -Landroid/stats/devicepolicy/nano/StringList; -Landroid/sysprop/AdbProperties; -Landroid/sysprop/ContactsProperties; -Landroid/sysprop/CryptoProperties$state_values; -Landroid/sysprop/CryptoProperties$type_values; -Landroid/sysprop/CryptoProperties; -Landroid/sysprop/DeviceProperties; -Landroid/sysprop/DisplayProperties; -Landroid/sysprop/HdmiProperties; -Landroid/sysprop/InitProperties; -Landroid/sysprop/InputProperties; -Landroid/sysprop/MediaProperties; -Landroid/sysprop/PowerProperties; -Landroid/sysprop/SocProperties; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda0; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda10; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda11; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda13; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda14; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda1; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda2; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda3; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda4; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda5; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda6; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda7; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda8; -Landroid/sysprop/TelephonyProperties$$ExternalSyntheticLambda9; -Landroid/sysprop/TelephonyProperties; -Landroid/sysprop/VndkProperties; -Landroid/system/ErrnoException; -Landroid/system/GaiException; -Landroid/system/Int32Ref; -Landroid/system/Int64Ref; -Landroid/system/NetlinkSocketAddress; -Landroid/system/Os; -Landroid/system/OsConstants; -Landroid/system/PacketSocketAddress; -Landroid/system/StructAddrinfo; -Landroid/system/StructCapUserData; -Landroid/system/StructCapUserHeader; -Landroid/system/StructCmsghdr; -Landroid/system/StructGroupReq; -Landroid/system/StructIfaddrs; -Landroid/system/StructLinger; -Landroid/system/StructMsghdr; -Landroid/system/StructPasswd; -Landroid/system/StructPollfd; -Landroid/system/StructRlimit; -Landroid/system/StructStat; -Landroid/system/StructStatVfs; -Landroid/system/StructTimespec; -Landroid/system/StructTimeval; -Landroid/system/StructUcred; -Landroid/system/StructUtsname; -Landroid/system/UnixSocketAddress; -Landroid/system/VmSocketAddress; -Landroid/system/keystore2/Authorization$1; -Landroid/system/keystore2/Authorization; -Landroid/system/keystore2/CreateOperationResponse$1; -Landroid/system/keystore2/CreateOperationResponse; -Landroid/system/keystore2/IKeystoreOperation$Stub$Proxy; -Landroid/system/keystore2/IKeystoreOperation$Stub; -Landroid/system/keystore2/IKeystoreOperation; -Landroid/system/keystore2/IKeystoreSecurityLevel$Stub$Proxy; -Landroid/system/keystore2/IKeystoreSecurityLevel$Stub; -Landroid/system/keystore2/IKeystoreSecurityLevel; -Landroid/system/keystore2/IKeystoreService$Stub$Proxy; -Landroid/system/keystore2/IKeystoreService$Stub; -Landroid/system/keystore2/IKeystoreService; -Landroid/system/keystore2/KeyDescriptor$1; -Landroid/system/keystore2/KeyDescriptor; -Landroid/system/keystore2/KeyEntryResponse$1; -Landroid/system/keystore2/KeyEntryResponse; -Landroid/system/keystore2/KeyMetadata$1; -Landroid/system/keystore2/KeyMetadata; -Landroid/system/keystore2/KeyParameters$1; -Landroid/system/keystore2/KeyParameters; -Landroid/system/keystore2/OperationChallenge$1; -Landroid/system/keystore2/OperationChallenge; -Landroid/system/suspend/internal/ISuspendControlServiceInternal$Stub$Proxy; -Landroid/system/suspend/internal/ISuspendControlServiceInternal$Stub; -Landroid/system/suspend/internal/ISuspendControlServiceInternal; -Landroid/system/suspend/internal/WakeLockInfo$1; -Landroid/system/suspend/internal/WakeLockInfo; -Landroid/telecom/AudioState$1; -Landroid/telecom/AudioState; -Landroid/telecom/Call$Callback; -Landroid/telecom/CallAudioState$$ExternalSyntheticLambda0; -Landroid/telecom/CallAudioState$1; -Landroid/telecom/CallAudioState; -Landroid/telecom/CallerInfo; -Landroid/telecom/CallerInfoAsyncQuery; -Landroid/telecom/Conference$Listener; -Landroid/telecom/Conference; -Landroid/telecom/Conferenceable; -Landroid/telecom/Connection$FailureSignalingConnection; -Landroid/telecom/Connection$Listener; -Landroid/telecom/Connection$RttTextStream; -Landroid/telecom/Connection$VideoProvider; -Landroid/telecom/Connection; -Landroid/telecom/ConnectionRequest$1; -Landroid/telecom/ConnectionRequest$Builder; -Landroid/telecom/ConnectionRequest; -Landroid/telecom/ConnectionService$1; -Landroid/telecom/ConnectionService$2; -Landroid/telecom/ConnectionService$3; -Landroid/telecom/ConnectionService$4; -Landroid/telecom/ConnectionService$5; -Landroid/telecom/ConnectionService; -Landroid/telecom/ConnectionServiceAdapter; -Landroid/telecom/DefaultDialerManager; -Landroid/telecom/DisconnectCause$1; -Landroid/telecom/DisconnectCause; -Landroid/telecom/GatewayInfo$1; -Landroid/telecom/GatewayInfo; -Landroid/telecom/InCallService; -Landroid/telecom/Log; -Landroid/telecom/Logging/EventManager$Event; -Landroid/telecom/Logging/EventManager$EventListener; -Landroid/telecom/Logging/EventManager$EventRecord; -Landroid/telecom/Logging/EventManager$Loggable; -Landroid/telecom/Logging/EventManager$TimedEventPair; -Landroid/telecom/Logging/EventManager; -Landroid/telecom/Logging/Runnable$1; -Landroid/telecom/Logging/Runnable; -Landroid/telecom/Logging/Session$Info$1; -Landroid/telecom/Logging/Session$Info; -Landroid/telecom/Logging/Session; -Landroid/telecom/Logging/SessionManager$$ExternalSyntheticLambda0; -Landroid/telecom/Logging/SessionManager$$ExternalSyntheticLambda1; -Landroid/telecom/Logging/SessionManager$$ExternalSyntheticLambda2; -Landroid/telecom/Logging/SessionManager$ICurrentThreadId; -Landroid/telecom/Logging/SessionManager$ISessionCleanupTimeoutMs; -Landroid/telecom/Logging/SessionManager$ISessionIdQueryHandler; -Landroid/telecom/Logging/SessionManager$ISessionListener; -Landroid/telecom/Logging/SessionManager; -Landroid/telecom/ParcelableCall$1; -Landroid/telecom/ParcelableCall$ParcelableCallBuilder; -Landroid/telecom/ParcelableCall; -Landroid/telecom/ParcelableConference$1; -Landroid/telecom/ParcelableConference; -Landroid/telecom/ParcelableConnection$1; -Landroid/telecom/ParcelableConnection; -Landroid/telecom/ParcelableRttCall$1; -Landroid/telecom/ParcelableRttCall; -Landroid/telecom/PhoneAccount$1; -Landroid/telecom/PhoneAccount$Builder; -Landroid/telecom/PhoneAccount-IA; -Landroid/telecom/PhoneAccount; -Landroid/telecom/PhoneAccountHandle$1; -Landroid/telecom/PhoneAccountHandle-IA; -Landroid/telecom/PhoneAccountHandle; -Landroid/telecom/RemoteConnectionManager; -Landroid/telecom/StatusHints$1; -Landroid/telecom/StatusHints; -Landroid/telecom/TelecomAnalytics$1; -Landroid/telecom/TelecomAnalytics$SessionTiming$1; -Landroid/telecom/TelecomAnalytics; -Landroid/telecom/TelecomManager$DeathRecipient; -Landroid/telecom/TelecomManager; -Landroid/telecom/TimedEvent; -Landroid/telecom/VideoProfile$1; -Landroid/telecom/VideoProfile$CameraCapabilities$1; -Landroid/telecom/VideoProfile$CameraCapabilities; -Landroid/telecom/VideoProfile; -Landroid/telephony/AccessNetworkConstants$AccessNetworkType; -Landroid/telephony/AccessNetworkConstants$TransportType; -Landroid/telephony/AccessNetworkConstants; -Landroid/telephony/AccessNetworkUtils; -Landroid/telephony/ActivityStatsTechSpecificInfo$$ExternalSyntheticLambda0; -Landroid/telephony/ActivityStatsTechSpecificInfo$$ExternalSyntheticLambda1; -Landroid/telephony/ActivityStatsTechSpecificInfo$1; -Landroid/telephony/ActivityStatsTechSpecificInfo; -Landroid/telephony/AnomalyReporter; -Landroid/telephony/AvailableNetworkInfo$1; -Landroid/telephony/AvailableNetworkInfo; -Landroid/telephony/BarringInfo$1; -Landroid/telephony/BarringInfo$BarringServiceInfo$1; -Landroid/telephony/BarringInfo$BarringServiceInfo; -Landroid/telephony/BarringInfo; -Landroid/telephony/BinderCacheManager$$ExternalSyntheticLambda0; -Landroid/telephony/BinderCacheManager$BinderDeathTracker; -Landroid/telephony/BinderCacheManager$BinderInterfaceFactory; -Landroid/telephony/BinderCacheManager; -Landroid/telephony/CallAttributes$1; -Landroid/telephony/CallAttributes; -Landroid/telephony/CallForwardingInfo$1; -Landroid/telephony/CallForwardingInfo; -Landroid/telephony/CallQuality$1; -Landroid/telephony/CallQuality; -Landroid/telephony/CallState$1; -Landroid/telephony/CallState; -Landroid/telephony/CarrierConfigManager$Apn; -Landroid/telephony/CarrierConfigManager$Bsf; -Landroid/telephony/CarrierConfigManager$CarrierConfigChangeListener; -Landroid/telephony/CarrierConfigManager$Gps; -Landroid/telephony/CarrierConfigManager$Ims; -Landroid/telephony/CarrierConfigManager$ImsEmergency; -Landroid/telephony/CarrierConfigManager$ImsRtt; -Landroid/telephony/CarrierConfigManager$ImsServiceEntitlement; -Landroid/telephony/CarrierConfigManager$ImsSms; -Landroid/telephony/CarrierConfigManager$ImsSs; -Landroid/telephony/CarrierConfigManager$ImsVoice; -Landroid/telephony/CarrierConfigManager$ImsVt; -Landroid/telephony/CarrierConfigManager$ImsWfc; -Landroid/telephony/CarrierConfigManager$Iwlan; -Landroid/telephony/CarrierConfigManager$OpportunisticNetwork; -Landroid/telephony/CarrierConfigManager$Wifi; -Landroid/telephony/CarrierConfigManager; -Landroid/telephony/CarrierRestrictionRules$1; -Landroid/telephony/CarrierRestrictionRules$Builder; -Landroid/telephony/CarrierRestrictionRules; -Landroid/telephony/CellConfigLte$1; -Landroid/telephony/CellConfigLte-IA; -Landroid/telephony/CellConfigLte; -Landroid/telephony/CellIdentity$1; -Landroid/telephony/CellIdentity; -Landroid/telephony/CellIdentityCdma$1; -Landroid/telephony/CellIdentityCdma; -Landroid/telephony/CellIdentityGsm$1; -Landroid/telephony/CellIdentityGsm; -Landroid/telephony/CellIdentityLte$1; -Landroid/telephony/CellIdentityLte; -Landroid/telephony/CellIdentityNr$1; -Landroid/telephony/CellIdentityNr; -Landroid/telephony/CellIdentityTdscdma$1; -Landroid/telephony/CellIdentityTdscdma; -Landroid/telephony/CellIdentityWcdma$1; -Landroid/telephony/CellIdentityWcdma; -Landroid/telephony/CellInfo$1; -Landroid/telephony/CellInfo; -Landroid/telephony/CellInfoCdma$1; -Landroid/telephony/CellInfoCdma; -Landroid/telephony/CellInfoGsm$1; -Landroid/telephony/CellInfoGsm; -Landroid/telephony/CellInfoLte$1; -Landroid/telephony/CellInfoLte; -Landroid/telephony/CellInfoNr$1; -Landroid/telephony/CellInfoNr; -Landroid/telephony/CellInfoTdscdma$1; -Landroid/telephony/CellInfoTdscdma; -Landroid/telephony/CellInfoWcdma$1; -Landroid/telephony/CellInfoWcdma; -Landroid/telephony/CellLocation; -Landroid/telephony/CellSignalStrength; -Landroid/telephony/CellSignalStrengthCdma$1; -Landroid/telephony/CellSignalStrengthCdma-IA; -Landroid/telephony/CellSignalStrengthCdma; -Landroid/telephony/CellSignalStrengthGsm$1; -Landroid/telephony/CellSignalStrengthGsm-IA; -Landroid/telephony/CellSignalStrengthGsm; -Landroid/telephony/CellSignalStrengthLte$1; -Landroid/telephony/CellSignalStrengthLte-IA; -Landroid/telephony/CellSignalStrengthLte; -Landroid/telephony/CellSignalStrengthNr$1; -Landroid/telephony/CellSignalStrengthNr-IA; -Landroid/telephony/CellSignalStrengthNr; -Landroid/telephony/CellSignalStrengthTdscdma$1; -Landroid/telephony/CellSignalStrengthTdscdma-IA; -Landroid/telephony/CellSignalStrengthTdscdma; -Landroid/telephony/CellSignalStrengthWcdma$1; -Landroid/telephony/CellSignalStrengthWcdma-IA; -Landroid/telephony/CellSignalStrengthWcdma; -Landroid/telephony/ClientRequestStats$1; -Landroid/telephony/ClientRequestStats; -Landroid/telephony/ClosedSubscriberGroupInfo$1; -Landroid/telephony/ClosedSubscriberGroupInfo; -Landroid/telephony/DataConnectionRealTimeInfo$1; -Landroid/telephony/DataConnectionRealTimeInfo; -Landroid/telephony/DataFailCause; -Landroid/telephony/DataSpecificRegistrationInfo$1; -Landroid/telephony/DataSpecificRegistrationInfo-IA; -Landroid/telephony/DataSpecificRegistrationInfo; -Landroid/telephony/DisconnectCause; -Landroid/telephony/IBootstrapAuthenticationCallback$Stub; -Landroid/telephony/IBootstrapAuthenticationCallback; -Landroid/telephony/ICellBroadcastService$Stub; -Landroid/telephony/ICellBroadcastService; -Landroid/telephony/ICellInfoCallback$Stub$Proxy; -Landroid/telephony/ICellInfoCallback$Stub; -Landroid/telephony/ICellInfoCallback; -Landroid/telephony/INetworkService$Stub$Proxy; -Landroid/telephony/INetworkService$Stub; -Landroid/telephony/INetworkService; -Landroid/telephony/INetworkServiceCallback$Stub$Proxy; -Landroid/telephony/INetworkServiceCallback$Stub; -Landroid/telephony/INetworkServiceCallback; -Landroid/telephony/IccOpenLogicalChannelResponse$1; -Landroid/telephony/IccOpenLogicalChannelResponse; -Landroid/telephony/ImsiEncryptionInfo$1; -Landroid/telephony/ImsiEncryptionInfo; -Landroid/telephony/JapanesePhoneNumberFormatter; -Landroid/telephony/LinkCapacityEstimate$1; -Landroid/telephony/LinkCapacityEstimate; -Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder; -Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery-IA; -Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery; -Landroid/telephony/LocationAccessPolicy$LocationPermissionResult; -Landroid/telephony/LocationAccessPolicy; -Landroid/telephony/LteVopsSupportInfo$1; -Landroid/telephony/LteVopsSupportInfo-IA; -Landroid/telephony/LteVopsSupportInfo; -Landroid/telephony/MmsManager; -Landroid/telephony/ModemActivityInfo$1; -Landroid/telephony/ModemActivityInfo; -Landroid/telephony/ModemInfo$1; -Landroid/telephony/ModemInfo; -Landroid/telephony/NeighboringCellInfo$1; -Landroid/telephony/NeighboringCellInfo; -Landroid/telephony/NetworkRegistrationInfo$$ExternalSyntheticLambda0; -Landroid/telephony/NetworkRegistrationInfo$1; -Landroid/telephony/NetworkRegistrationInfo$Builder; -Landroid/telephony/NetworkRegistrationInfo-IA; -Landroid/telephony/NetworkRegistrationInfo; -Landroid/telephony/NetworkScan; -Landroid/telephony/NetworkScanRequest$1; -Landroid/telephony/NetworkScanRequest; -Landroid/telephony/NetworkService$INetworkServiceWrapper; -Landroid/telephony/NetworkService$NetworkServiceHandler; -Landroid/telephony/NetworkService$NetworkServiceProvider; -Landroid/telephony/NetworkService; -Landroid/telephony/NetworkServiceCallback; -Landroid/telephony/NrVopsSupportInfo$1; -Landroid/telephony/NrVopsSupportInfo; -Landroid/telephony/NumberVerificationCallback; -Landroid/telephony/PcoData$1; -Landroid/telephony/PcoData; -Landroid/telephony/PhoneCapability$1; -Landroid/telephony/PhoneCapability; -Landroid/telephony/PhoneNumberRange$1; -Landroid/telephony/PhoneNumberRange; -Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex; -Landroid/telephony/PhoneNumberUtils; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda0; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda10; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda13; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda15; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda19; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda1; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda20; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda21; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda23; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda24; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda27; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda28; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda2; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda31; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda32; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda34; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda37; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda38; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda39; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda3; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda41; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda42; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda47; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda51; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda52; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda53; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda55; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda56; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda57; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda58; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda59; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda5; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda62; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda6; -Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub$$ExternalSyntheticLambda9; -Landroid/telephony/PhoneStateListener; -Landroid/telephony/PhysicalChannelConfig$1; -Landroid/telephony/PhysicalChannelConfig$Builder; -Landroid/telephony/PhysicalChannelConfig; -Landroid/telephony/PinResult$1; -Landroid/telephony/PinResult; -Landroid/telephony/PreciseCallState$1; -Landroid/telephony/PreciseCallState; -Landroid/telephony/PreciseDataConnectionState$1; -Landroid/telephony/PreciseDataConnectionState$Builder; -Landroid/telephony/PreciseDataConnectionState; -Landroid/telephony/RadioAccessFamily$1; -Landroid/telephony/RadioAccessFamily; -Landroid/telephony/RadioAccessSpecifier$1; -Landroid/telephony/RadioAccessSpecifier; -Landroid/telephony/Rlog; -Landroid/telephony/ServiceState$$ExternalSyntheticLambda0; -Landroid/telephony/ServiceState$1; -Landroid/telephony/ServiceState; -Landroid/telephony/SignalStrength$1; -Landroid/telephony/SignalStrength; -Landroid/telephony/SignalStrengthUpdateRequest$1; -Landroid/telephony/SignalStrengthUpdateRequest; -Landroid/telephony/SignalThresholdInfo$1; -Landroid/telephony/SignalThresholdInfo$Builder; -Landroid/telephony/SignalThresholdInfo; -Landroid/telephony/SmsCbCmasInfo$1; -Landroid/telephony/SmsCbCmasInfo; -Landroid/telephony/SmsCbEtwsInfo$1; -Landroid/telephony/SmsCbEtwsInfo; -Landroid/telephony/SmsCbLocation$1; -Landroid/telephony/SmsCbLocation; -Landroid/telephony/SmsCbMessage$1; -Landroid/telephony/SmsCbMessage; -Landroid/telephony/SmsManager$1; -Landroid/telephony/SmsManager$2; -Landroid/telephony/SmsManager$3; -Landroid/telephony/SmsManager$4; -Landroid/telephony/SmsManager$5; -Landroid/telephony/SmsManager$6; -Landroid/telephony/SmsManager$FinancialSmsCallback; -Landroid/telephony/SmsManager$SubscriptionResolverResult; -Landroid/telephony/SmsManager; -Landroid/telephony/SmsMessage$1; -Landroid/telephony/SmsMessage$MessageClass; -Landroid/telephony/SmsMessage$NoEmsSupportConfig; -Landroid/telephony/SmsMessage; -Landroid/telephony/SubscriptionInfo$1; -Landroid/telephony/SubscriptionInfo$Builder; -Landroid/telephony/SubscriptionInfo-IA; -Landroid/telephony/SubscriptionInfo; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda0; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda10; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda11; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda12; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda13; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda14; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda15; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda16; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda17; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda18; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda2; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda3; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda4; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda5; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda6; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda7; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda8; -Landroid/telephony/SubscriptionManager$$ExternalSyntheticLambda9; -Landroid/telephony/SubscriptionManager$1; -Landroid/telephony/SubscriptionManager$CallISubMethodHelper; -Landroid/telephony/SubscriptionManager$IntegerPropertyInvalidatedCache; -Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener; -Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener; -Landroid/telephony/SubscriptionManager$VoidPropertyInvalidatedCache; -Landroid/telephony/SubscriptionManager; -Landroid/telephony/SubscriptionPlan$1; -Landroid/telephony/SubscriptionPlan; -Landroid/telephony/TelephonyCallback$ActiveDataSubscriptionIdListener; -Landroid/telephony/TelephonyCallback$AllowedNetworkTypesListener; -Landroid/telephony/TelephonyCallback$BarringInfoListener; -Landroid/telephony/TelephonyCallback$CallAttributesListener; -Landroid/telephony/TelephonyCallback$CallDisconnectCauseListener; -Landroid/telephony/TelephonyCallback$CallForwardingIndicatorListener; -Landroid/telephony/TelephonyCallback$CallStateListener; -Landroid/telephony/TelephonyCallback$CarrierNetworkListener; -Landroid/telephony/TelephonyCallback$CellInfoListener; -Landroid/telephony/TelephonyCallback$CellLocationListener; -Landroid/telephony/TelephonyCallback$DataActivationStateListener; -Landroid/telephony/TelephonyCallback$DataActivityListener; -Landroid/telephony/TelephonyCallback$DataConnectionStateListener; -Landroid/telephony/TelephonyCallback$DataEnabledListener; -Landroid/telephony/TelephonyCallback$DisplayInfoListener; -Landroid/telephony/TelephonyCallback$EmergencyCallbackModeListener; -Landroid/telephony/TelephonyCallback$EmergencyNumberListListener; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda26; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda35; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda36; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda39; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda47; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda52; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda63; -Landroid/telephony/TelephonyCallback$IPhoneStateListenerStub$$ExternalSyntheticLambda65; -Landroid/telephony/TelephonyCallback$ImsCallDisconnectCauseListener; -Landroid/telephony/TelephonyCallback$LinkCapacityEstimateChangedListener; -Landroid/telephony/TelephonyCallback$MediaQualityStatusChangedListener; -Landroid/telephony/TelephonyCallback$MessageWaitingIndicatorListener; -Landroid/telephony/TelephonyCallback$OutgoingEmergencyCallListener; -Landroid/telephony/TelephonyCallback$OutgoingEmergencySmsListener; -Landroid/telephony/TelephonyCallback$PhoneCapabilityListener; -Landroid/telephony/TelephonyCallback$PhysicalChannelConfigListener; -Landroid/telephony/TelephonyCallback$PreciseCallStateListener; -Landroid/telephony/TelephonyCallback$PreciseDataConnectionStateListener; -Landroid/telephony/TelephonyCallback$RadioPowerStateListener; -Landroid/telephony/TelephonyCallback$RegistrationFailedListener; -Landroid/telephony/TelephonyCallback$ServiceStateListener; -Landroid/telephony/TelephonyCallback$SignalStrengthsListener; -Landroid/telephony/TelephonyCallback$SimultaneousCellularCallingSupportListener; -Landroid/telephony/TelephonyCallback$SrvccStateListener; -Landroid/telephony/TelephonyCallback$UserMobileDataStateListener; -Landroid/telephony/TelephonyCallback$VoiceActivationStateListener; -Landroid/telephony/TelephonyCallback; -Landroid/telephony/TelephonyDisplayInfo$1; -Landroid/telephony/TelephonyDisplayInfo; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda0; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda1; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda2; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda3; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda4; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda5; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda6; -Landroid/telephony/TelephonyFrameworkInitializer$$ExternalSyntheticLambda7; -Landroid/telephony/TelephonyFrameworkInitializer; -Landroid/telephony/TelephonyHistogram$1; -Landroid/telephony/TelephonyHistogram; -Landroid/telephony/TelephonyLocalConnection; -Landroid/telephony/TelephonyManager$12; -Landroid/telephony/TelephonyManager$13; -Landroid/telephony/TelephonyManager$15; -Landroid/telephony/TelephonyManager$17; -Landroid/telephony/TelephonyManager$18; -Landroid/telephony/TelephonyManager$19; -Landroid/telephony/TelephonyManager$1; -Landroid/telephony/TelephonyManager$20; -Landroid/telephony/TelephonyManager$21; -Landroid/telephony/TelephonyManager$2; -Landroid/telephony/TelephonyManager$3; -Landroid/telephony/TelephonyManager$4; -Landroid/telephony/TelephonyManager$5; -Landroid/telephony/TelephonyManager$6; -Landroid/telephony/TelephonyManager$7; -Landroid/telephony/TelephonyManager$8; -Landroid/telephony/TelephonyManager$CarrierPrivilegesCallback; -Landroid/telephony/TelephonyManager$CellInfoCallback; -Landroid/telephony/TelephonyManager$DeathRecipient; -Landroid/telephony/TelephonyManager$ModemActivityInfoException; -Landroid/telephony/TelephonyManager$MultiSimVariants; -Landroid/telephony/TelephonyManager$UssdResponseCallback; -Landroid/telephony/TelephonyManager; -Landroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda0; -Landroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda1; -Landroid/telephony/TelephonyRegistryManager$$ExternalSyntheticLambda2; -Landroid/telephony/TelephonyRegistryManager$1$$ExternalSyntheticLambda0; -Landroid/telephony/TelephonyRegistryManager$1; -Landroid/telephony/TelephonyRegistryManager$2; -Landroid/telephony/TelephonyRegistryManager$3; -Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda0; -Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda1; -Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda2; -Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda3; -Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper$$ExternalSyntheticLambda4; -Landroid/telephony/TelephonyRegistryManager$CarrierPrivilegesCallbackWrapper; -Landroid/telephony/TelephonyRegistryManager; -Landroid/telephony/TelephonyScanManager$NetworkScanCallback; -Landroid/telephony/TelephonyScanManager; -Landroid/telephony/UiccAccessRule$1; -Landroid/telephony/UiccAccessRule; -Landroid/telephony/UiccCardInfo$1; -Landroid/telephony/UiccCardInfo; -Landroid/telephony/UiccSlotInfo$1; -Landroid/telephony/UiccSlotInfo; -Landroid/telephony/UssdResponse$1; -Landroid/telephony/UssdResponse; -Landroid/telephony/VisualVoicemailSms$1; -Landroid/telephony/VisualVoicemailSms$Builder; -Landroid/telephony/VisualVoicemailSms; -Landroid/telephony/VisualVoicemailSmsFilterSettings$1; -Landroid/telephony/VisualVoicemailSmsFilterSettings$Builder; -Landroid/telephony/VisualVoicemailSmsFilterSettings; -Landroid/telephony/VoiceSpecificRegistrationInfo$1; -Landroid/telephony/VoiceSpecificRegistrationInfo-IA; -Landroid/telephony/VoiceSpecificRegistrationInfo; -Landroid/telephony/VopsSupportInfo$1; -Landroid/telephony/VopsSupportInfo; -Landroid/telephony/cdma/CdmaCellLocation; -Landroid/telephony/data/ApnSetting$1; -Landroid/telephony/data/ApnSetting$Builder; -Landroid/telephony/data/ApnSetting-IA; -Landroid/telephony/data/ApnSetting; -Landroid/telephony/data/DataCallResponse$1; -Landroid/telephony/data/DataCallResponse$Builder; -Landroid/telephony/data/DataCallResponse; -Landroid/telephony/data/DataProfile$1; -Landroid/telephony/data/DataProfile$Builder; -Landroid/telephony/data/DataProfile; -Landroid/telephony/data/DataService$DataCallListChangedIndication; -Landroid/telephony/data/DataService$DataServiceHandler; -Landroid/telephony/data/DataService$DataServiceProvider; -Landroid/telephony/data/DataService$DeactivateDataCallRequest; -Landroid/telephony/data/DataService$IDataServiceWrapper; -Landroid/telephony/data/DataService$SetDataProfileRequest; -Landroid/telephony/data/DataService$SetInitialAttachApnRequest; -Landroid/telephony/data/DataService$SetupDataCallRequest; -Landroid/telephony/data/DataService; -Landroid/telephony/data/DataServiceCallback; -Landroid/telephony/data/EpsBearerQosSessionAttributes$1; -Landroid/telephony/data/EpsBearerQosSessionAttributes; -Landroid/telephony/data/EpsQos$1; -Landroid/telephony/data/EpsQos; -Landroid/telephony/data/IDataService$Stub$Proxy; -Landroid/telephony/data/IDataService$Stub; -Landroid/telephony/data/IDataService; -Landroid/telephony/data/IDataServiceCallback$Stub$Proxy; -Landroid/telephony/data/IDataServiceCallback$Stub; -Landroid/telephony/data/IDataServiceCallback; -Landroid/telephony/data/IQualifiedNetworksService$Stub$Proxy; -Landroid/telephony/data/IQualifiedNetworksService$Stub; -Landroid/telephony/data/IQualifiedNetworksService; -Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub$Proxy; -Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub; -Landroid/telephony/data/IQualifiedNetworksServiceCallback; -Landroid/telephony/data/NetworkSliceInfo$1; -Landroid/telephony/data/NetworkSliceInfo$Builder; -Landroid/telephony/data/NetworkSliceInfo; -Landroid/telephony/data/NetworkSlicingConfig$1; -Landroid/telephony/data/NetworkSlicingConfig; -Landroid/telephony/data/NrQos$1; -Landroid/telephony/data/NrQos; -Landroid/telephony/data/NrQosSessionAttributes$1; -Landroid/telephony/data/NrQosSessionAttributes; -Landroid/telephony/data/Qos$QosBandwidth$1; -Landroid/telephony/data/Qos$QosBandwidth; -Landroid/telephony/data/Qos; -Landroid/telephony/data/QosBearerFilter$1; -Landroid/telephony/data/QosBearerFilter$PortRange$1; -Landroid/telephony/data/QosBearerFilter$PortRange; -Landroid/telephony/data/QosBearerFilter; -Landroid/telephony/data/QosBearerSession$1; -Landroid/telephony/data/QosBearerSession; -Landroid/telephony/data/ThrottleStatus$1; -Landroid/telephony/data/ThrottleStatus$Builder; -Landroid/telephony/data/ThrottleStatus; -Landroid/telephony/data/TrafficDescriptor$1; -Landroid/telephony/data/TrafficDescriptor$Builder; -Landroid/telephony/data/TrafficDescriptor; -Landroid/telephony/emergency/EmergencyNumber$1; -Landroid/telephony/emergency/EmergencyNumber; -Landroid/telephony/euicc/DownloadableSubscription$1; -Landroid/telephony/euicc/DownloadableSubscription; -Landroid/telephony/euicc/EuiccCardManager$10; -Landroid/telephony/euicc/EuiccCardManager$11; -Landroid/telephony/euicc/EuiccCardManager$12; -Landroid/telephony/euicc/EuiccCardManager$13; -Landroid/telephony/euicc/EuiccCardManager$14; -Landroid/telephony/euicc/EuiccCardManager$15; -Landroid/telephony/euicc/EuiccCardManager$16; -Landroid/telephony/euicc/EuiccCardManager$17; -Landroid/telephony/euicc/EuiccCardManager$18; -Landroid/telephony/euicc/EuiccCardManager$19; -Landroid/telephony/euicc/EuiccCardManager$1; -Landroid/telephony/euicc/EuiccCardManager$20; -Landroid/telephony/euicc/EuiccCardManager$21; -Landroid/telephony/euicc/EuiccCardManager$22; -Landroid/telephony/euicc/EuiccCardManager$2; -Landroid/telephony/euicc/EuiccCardManager$3; -Landroid/telephony/euicc/EuiccCardManager$4; -Landroid/telephony/euicc/EuiccCardManager$5; -Landroid/telephony/euicc/EuiccCardManager$6; -Landroid/telephony/euicc/EuiccCardManager$7; -Landroid/telephony/euicc/EuiccCardManager$8; -Landroid/telephony/euicc/EuiccCardManager$9; -Landroid/telephony/euicc/EuiccCardManager$ResultCallback; -Landroid/telephony/euicc/EuiccCardManager; -Landroid/telephony/euicc/EuiccInfo$1; -Landroid/telephony/euicc/EuiccInfo; -Landroid/telephony/euicc/EuiccManager; -Landroid/telephony/euicc/EuiccNotification$1; -Landroid/telephony/euicc/EuiccNotification; -Landroid/telephony/euicc/EuiccRulesAuthTable$1; -Landroid/telephony/euicc/EuiccRulesAuthTable$Builder; -Landroid/telephony/euicc/EuiccRulesAuthTable; -Landroid/telephony/gba/GbaAuthRequest$1; -Landroid/telephony/gba/GbaAuthRequest; -Landroid/telephony/gba/IGbaService$Stub; -Landroid/telephony/gba/IGbaService; -Landroid/telephony/gba/UaSecurityProtocolIdentifier$1; -Landroid/telephony/gba/UaSecurityProtocolIdentifier; -Landroid/telephony/gsm/GsmCellLocation; -Landroid/telephony/gsm/SmsManager; -Landroid/telephony/gsm/SmsMessage$MessageClass; -Landroid/telephony/gsm/SmsMessage$SubmitPdu; -Landroid/telephony/gsm/SmsMessage; -Landroid/telephony/ims/AudioCodecAttributes$1; -Landroid/telephony/ims/AudioCodecAttributes; -Landroid/telephony/ims/ImsCallForwardInfo$1; -Landroid/telephony/ims/ImsCallForwardInfo; -Landroid/telephony/ims/ImsCallProfile$1; -Landroid/telephony/ims/ImsCallProfile; -Landroid/telephony/ims/ImsCallSession$Listener; -Landroid/telephony/ims/ImsCallSession; -Landroid/telephony/ims/ImsConferenceState$1; -Landroid/telephony/ims/ImsConferenceState; -Landroid/telephony/ims/ImsException; -Landroid/telephony/ims/ImsExternalCallState$1; -Landroid/telephony/ims/ImsExternalCallState; -Landroid/telephony/ims/ImsManager$$ExternalSyntheticLambda0; -Landroid/telephony/ims/ImsManager$$ExternalSyntheticLambda1; -Landroid/telephony/ims/ImsManager; -Landroid/telephony/ims/ImsMmTelManager$$ExternalSyntheticLambda0; -Landroid/telephony/ims/ImsMmTelManager$$ExternalSyntheticLambda1; -Landroid/telephony/ims/ImsMmTelManager$$ExternalSyntheticLambda3; -Landroid/telephony/ims/ImsMmTelManager$1; -Landroid/telephony/ims/ImsMmTelManager$2; -Landroid/telephony/ims/ImsMmTelManager$3; -Landroid/telephony/ims/ImsMmTelManager$4; -Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder; -Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback; -Landroid/telephony/ims/ImsMmTelManager$RegistrationCallback; -Landroid/telephony/ims/ImsMmTelManager; -Landroid/telephony/ims/ImsRcsManager; -Landroid/telephony/ims/ImsReasonInfo$1; -Landroid/telephony/ims/ImsReasonInfo-IA; -Landroid/telephony/ims/ImsReasonInfo; -Landroid/telephony/ims/ImsRegistrationAttributes$1; -Landroid/telephony/ims/ImsRegistrationAttributes; -Landroid/telephony/ims/ImsService$1; -Landroid/telephony/ims/ImsService$Listener; -Landroid/telephony/ims/ImsService; -Landroid/telephony/ims/ImsSsData$1; -Landroid/telephony/ims/ImsSsData; -Landroid/telephony/ims/ImsSsInfo$1; -Landroid/telephony/ims/ImsSsInfo$Builder; -Landroid/telephony/ims/ImsSsInfo; -Landroid/telephony/ims/ImsStreamMediaProfile$1; -Landroid/telephony/ims/ImsStreamMediaProfile; -Landroid/telephony/ims/ImsSuppServiceNotification$1; -Landroid/telephony/ims/ImsSuppServiceNotification; -Landroid/telephony/ims/ImsUtListener; -Landroid/telephony/ims/MediaQualityStatus$1; -Landroid/telephony/ims/MediaQualityStatus; -Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder; -Landroid/telephony/ims/ProvisioningManager$Callback; -Landroid/telephony/ims/ProvisioningManager; -Landroid/telephony/ims/RcsContactPresenceTuple$1; -Landroid/telephony/ims/RcsContactPresenceTuple$Builder; -Landroid/telephony/ims/RcsContactPresenceTuple$ServiceCapabilities$1; -Landroid/telephony/ims/RcsContactPresenceTuple$ServiceCapabilities$Builder; -Landroid/telephony/ims/RcsContactPresenceTuple$ServiceCapabilities; -Landroid/telephony/ims/RcsContactPresenceTuple; -Landroid/telephony/ims/RcsContactTerminatedReason$1; -Landroid/telephony/ims/RcsContactTerminatedReason; -Landroid/telephony/ims/RcsContactUceCapability$1; -Landroid/telephony/ims/RcsContactUceCapability$OptionsBuilder; -Landroid/telephony/ims/RcsContactUceCapability$PresenceBuilder; -Landroid/telephony/ims/RcsContactUceCapability; -Landroid/telephony/ims/RcsUceAdapter; -Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder$$ExternalSyntheticLambda1; -Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder$$ExternalSyntheticLambda3; -Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder; -Landroid/telephony/ims/RegistrationManager$RegistrationCallback; -Landroid/telephony/ims/RegistrationManager; -Landroid/telephony/ims/RtpHeaderExtension$1; -Landroid/telephony/ims/RtpHeaderExtension; -Landroid/telephony/ims/RtpHeaderExtensionType$1; -Landroid/telephony/ims/RtpHeaderExtensionType; -Landroid/telephony/ims/aidl/ICapabilityExchangeEventListener$Stub; -Landroid/telephony/ims/aidl/ICapabilityExchangeEventListener; -Landroid/telephony/ims/aidl/IImsCapabilityCallback$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsCapabilityCallback$Stub; -Landroid/telephony/ims/aidl/IImsCapabilityCallback; -Landroid/telephony/ims/aidl/IImsConfig$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsConfig$Stub; -Landroid/telephony/ims/aidl/IImsConfig; -Landroid/telephony/ims/aidl/IImsConfigCallback$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsConfigCallback$Stub; -Landroid/telephony/ims/aidl/IImsConfigCallback; -Landroid/telephony/ims/aidl/IImsMmTelFeature$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsMmTelFeature$Stub; -Landroid/telephony/ims/aidl/IImsMmTelFeature; -Landroid/telephony/ims/aidl/IImsMmTelListener$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsMmTelListener$Stub; -Landroid/telephony/ims/aidl/IImsMmTelListener; -Landroid/telephony/ims/aidl/IImsRcsController$Stub; -Landroid/telephony/ims/aidl/IImsRcsController; -Landroid/telephony/ims/aidl/IImsRcsFeature$Stub; -Landroid/telephony/ims/aidl/IImsRcsFeature; -Landroid/telephony/ims/aidl/IImsRegistration$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsRegistration$Stub; -Landroid/telephony/ims/aidl/IImsRegistration; -Landroid/telephony/ims/aidl/IImsRegistrationCallback$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsRegistrationCallback$Stub; -Landroid/telephony/ims/aidl/IImsRegistrationCallback; -Landroid/telephony/ims/aidl/IImsServiceController$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsServiceController$Stub; -Landroid/telephony/ims/aidl/IImsServiceController; -Landroid/telephony/ims/aidl/IImsServiceControllerListener$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsServiceControllerListener$Stub; -Landroid/telephony/ims/aidl/IImsServiceControllerListener; -Landroid/telephony/ims/aidl/IImsSmsListener$Stub$Proxy; -Landroid/telephony/ims/aidl/IImsSmsListener$Stub; -Landroid/telephony/ims/aidl/IImsSmsListener; -Landroid/telephony/ims/aidl/IOptionsRequestCallback; -Landroid/telephony/ims/aidl/IOptionsResponseCallback$Stub; -Landroid/telephony/ims/aidl/IOptionsResponseCallback; -Landroid/telephony/ims/aidl/IPublishResponseCallback$Stub; -Landroid/telephony/ims/aidl/IPublishResponseCallback; -Landroid/telephony/ims/aidl/IRcsConfigCallback; -Landroid/telephony/ims/aidl/IRcsUceControllerCallback; -Landroid/telephony/ims/aidl/IRcsUcePublishStateCallback; -Landroid/telephony/ims/aidl/ISipTransport; -Landroid/telephony/ims/aidl/ISubscribeResponseCallback$Stub; -Landroid/telephony/ims/aidl/ISubscribeResponseCallback; -Landroid/telephony/ims/feature/CapabilityChangeRequest$1; -Landroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair; -Landroid/telephony/ims/feature/CapabilityChangeRequest; -Landroid/telephony/ims/feature/ImsFeature$Capabilities; -Landroid/telephony/ims/feature/ImsFeature$CapabilityCallbackProxy; -Landroid/telephony/ims/feature/ImsFeature; -Landroid/telephony/ims/feature/MmTelFeature$1; -Landroid/telephony/ims/feature/MmTelFeature$Listener; -Landroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities; -Landroid/telephony/ims/feature/MmTelFeature; -Landroid/telephony/ims/feature/RcsFeature$RcsImsCapabilities; -Landroid/telephony/ims/feature/RcsFeature; -Landroid/telephony/ims/stub/ImsCallSessionImplBase; -Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub; -Landroid/telephony/ims/stub/ImsConfigImplBase; -Landroid/telephony/ims/stub/ImsEcbmImplBase$1; -Landroid/telephony/ims/stub/ImsEcbmImplBase; -Landroid/telephony/ims/stub/ImsFeatureConfiguration$1; -Landroid/telephony/ims/stub/ImsFeatureConfiguration$FeatureSlotPair; -Landroid/telephony/ims/stub/ImsFeatureConfiguration; -Landroid/telephony/ims/stub/ImsMultiEndpointImplBase$1; -Landroid/telephony/ims/stub/ImsMultiEndpointImplBase; -Landroid/telephony/ims/stub/ImsRegistrationImplBase$1; -Landroid/telephony/ims/stub/ImsRegistrationImplBase; -Landroid/telephony/ims/stub/ImsSmsImplBase; -Landroid/telephony/ims/stub/ImsUtImplBase$1; -Landroid/telephony/ims/stub/ImsUtImplBase; -Landroid/telephony/satellite/SatelliteManager; -Landroid/text/AndroidBidi; -Landroid/text/AndroidCharacter; -Landroid/text/Annotation; -Landroid/text/AutoGrowArray$ByteArray; -Landroid/text/AutoGrowArray$FloatArray; -Landroid/text/AutoGrowArray$IntArray; -Landroid/text/AutoGrowArray; -Landroid/text/BidiFormatter$DirectionalityEstimator; -Landroid/text/BidiFormatter; -Landroid/text/BoringLayout$Metrics; -Landroid/text/BoringLayout; -Landroid/text/CharSequenceCharacterIterator; -Landroid/text/ClientFlags; -Landroid/text/ClipboardManager; -Landroid/text/DynamicLayout$Builder; -Landroid/text/DynamicLayout$ChangeWatcher; -Landroid/text/DynamicLayout-IA; -Landroid/text/DynamicLayout; -Landroid/text/Editable$Factory; -Landroid/text/Editable; -Landroid/text/Emoji; -Landroid/text/FontConfig$1; -Landroid/text/FontConfig$Alias$1; -Landroid/text/FontConfig$Alias; -Landroid/text/FontConfig$Font$1; -Landroid/text/FontConfig$Font; -Landroid/text/FontConfig$FontFamily$1; -Landroid/text/FontConfig$FontFamily; -Landroid/text/FontConfig$NamedFamilyList$1; -Landroid/text/FontConfig$NamedFamilyList; -Landroid/text/FontConfig; -Landroid/text/GetChars; -Landroid/text/GraphicsOperations; -Landroid/text/Highlights; -Landroid/text/Html$HtmlParser; -Landroid/text/Html$ImageGetter; -Landroid/text/Html$TagHandler; -Landroid/text/Html; -Landroid/text/HtmlToSpannedConverter$Alignment; -Landroid/text/HtmlToSpannedConverter$Background; -Landroid/text/HtmlToSpannedConverter$Big-IA; -Landroid/text/HtmlToSpannedConverter$Big; -Landroid/text/HtmlToSpannedConverter$Blockquote-IA; -Landroid/text/HtmlToSpannedConverter$Blockquote; -Landroid/text/HtmlToSpannedConverter$Bold-IA; -Landroid/text/HtmlToSpannedConverter$Bold; -Landroid/text/HtmlToSpannedConverter$Bullet-IA; -Landroid/text/HtmlToSpannedConverter$Bullet; -Landroid/text/HtmlToSpannedConverter$Font; -Landroid/text/HtmlToSpannedConverter$Foreground; -Landroid/text/HtmlToSpannedConverter$Heading; -Landroid/text/HtmlToSpannedConverter$Href; -Landroid/text/HtmlToSpannedConverter$Italic-IA; -Landroid/text/HtmlToSpannedConverter$Italic; -Landroid/text/HtmlToSpannedConverter$Monospace-IA; -Landroid/text/HtmlToSpannedConverter$Monospace; -Landroid/text/HtmlToSpannedConverter$Newline; -Landroid/text/HtmlToSpannedConverter$Small-IA; -Landroid/text/HtmlToSpannedConverter$Small; -Landroid/text/HtmlToSpannedConverter$Strikethrough-IA; -Landroid/text/HtmlToSpannedConverter$Strikethrough; -Landroid/text/HtmlToSpannedConverter$Sub-IA; -Landroid/text/HtmlToSpannedConverter$Sub; -Landroid/text/HtmlToSpannedConverter$Super-IA; -Landroid/text/HtmlToSpannedConverter$Super; -Landroid/text/HtmlToSpannedConverter$Underline-IA; -Landroid/text/HtmlToSpannedConverter$Underline; -Landroid/text/HtmlToSpannedConverter; -Landroid/text/Hyphenator; -Landroid/text/InputFilter$LengthFilter; -Landroid/text/InputFilter; -Landroid/text/InputType; -Landroid/text/Layout$$ExternalSyntheticLambda0; -Landroid/text/Layout$$ExternalSyntheticLambda1; -Landroid/text/Layout$$ExternalSyntheticLambda2; -Landroid/text/Layout$$ExternalSyntheticLambda3; -Landroid/text/Layout$Alignment; -Landroid/text/Layout$Directions; -Landroid/text/Layout$Ellipsizer; -Landroid/text/Layout$HorizontalMeasurementProvider; -Landroid/text/Layout$SelectionRectangleConsumer; -Landroid/text/Layout$SpannedEllipsizer; -Landroid/text/Layout$TabStops; -Landroid/text/Layout$TextInclusionStrategy; -Landroid/text/Layout; -Landroid/text/MeasuredParagraph; -Landroid/text/NoCopySpan$Concrete; -Landroid/text/NoCopySpan; -Landroid/text/PackedIntVector; -Landroid/text/PackedObjectVector; -Landroid/text/ParcelableSpan; -Landroid/text/PrecomputedText$ParagraphInfo; -Landroid/text/PrecomputedText$Params$Builder; -Landroid/text/PrecomputedText$Params; -Landroid/text/PrecomputedText; -Landroid/text/Selection$END; -Landroid/text/Selection$MEMORY; -Landroid/text/Selection$MemoryTextWatcher; -Landroid/text/Selection$PositionIterator; -Landroid/text/Selection$START; -Landroid/text/Selection; -Landroid/text/SpanSet; -Landroid/text/SpanWatcher; -Landroid/text/Spannable$Factory; -Landroid/text/Spannable; -Landroid/text/SpannableString; -Landroid/text/SpannableStringBuilder; -Landroid/text/SpannableStringInternal; -Landroid/text/Spanned; -Landroid/text/SpannedString; -Landroid/text/StaticLayout$Builder; -Landroid/text/StaticLayout$LineBreaks; -Landroid/text/StaticLayout-IA; -Landroid/text/StaticLayout; -Landroid/text/TextDirectionHeuristic; -Landroid/text/TextDirectionHeuristics$AnyStrong; -Landroid/text/TextDirectionHeuristics$FirstStrong; -Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm; -Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl; -Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal; -Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale; -Landroid/text/TextDirectionHeuristics; -Landroid/text/TextFlags; -Landroid/text/TextLine$DecorationInfo-IA; -Landroid/text/TextLine$DecorationInfo; -Landroid/text/TextLine; -Landroid/text/TextPaint; -Landroid/text/TextShaper$GlyphsConsumer; -Landroid/text/TextUtils$1; -Landroid/text/TextUtils$EllipsizeCallback; -Landroid/text/TextUtils$SimpleStringSplitter; -Landroid/text/TextUtils$StringSplitter; -Landroid/text/TextUtils$StringWithRemovedChars; -Landroid/text/TextUtils$TruncateAt; -Landroid/text/TextUtils; -Landroid/text/TextWatcher; -Landroid/text/format/DateFormat; -Landroid/text/format/DateIntervalFormat; -Landroid/text/format/DateTimeFormat$FormatterCache; -Landroid/text/format/DateTimeFormat; -Landroid/text/format/DateUtils; -Landroid/text/format/DateUtilsBridge; -Landroid/text/format/Formatter$BytesResult; -Landroid/text/format/Formatter$RoundedBytesResult; -Landroid/text/format/Formatter; -Landroid/text/format/RelativeDateTimeFormatter$FormatterCache; -Landroid/text/format/RelativeDateTimeFormatter; -Landroid/text/format/Time$TimeCalculator; -Landroid/text/format/Time; -Landroid/text/format/TimeFormatter; -Landroid/text/format/TimeMigrationUtils; -Landroid/text/method/AllCapsTransformationMethod; -Landroid/text/method/ArrowKeyMovementMethod; -Landroid/text/method/BaseKeyListener$1; -Landroid/text/method/BaseKeyListener; -Landroid/text/method/BaseMovementMethod; -Landroid/text/method/DateKeyListener; -Landroid/text/method/DateTimeKeyListener; -Landroid/text/method/DialerKeyListener; -Landroid/text/method/DigitsKeyListener; -Landroid/text/method/KeyListener; -Landroid/text/method/LinkMovementMethod; -Landroid/text/method/MetaKeyKeyListener; -Landroid/text/method/MovementMethod; -Landroid/text/method/MultiTapKeyListener; -Landroid/text/method/NumberKeyListener; -Landroid/text/method/OffsetMapping$TextUpdate; -Landroid/text/method/OffsetMapping; -Landroid/text/method/PasswordTransformationMethod; -Landroid/text/method/QwertyKeyListener$Replaced; -Landroid/text/method/QwertyKeyListener; -Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence; -Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence; -Landroid/text/method/ReplacementTransformationMethod; -Landroid/text/method/ScrollingMovementMethod; -Landroid/text/method/SingleLineTransformationMethod; -Landroid/text/method/TextKeyListener$Capitalize; -Landroid/text/method/TextKeyListener$NullKeyListener; -Landroid/text/method/TextKeyListener$SettingsObserver; -Landroid/text/method/TextKeyListener; -Landroid/text/method/TimeKeyListener; -Landroid/text/method/Touch$DragState; -Landroid/text/method/Touch; -Landroid/text/method/TransformationMethod2; -Landroid/text/method/TransformationMethod; -Landroid/text/method/WordIterator; -Landroid/text/style/AbsoluteSizeSpan; -Landroid/text/style/AccessibilityClickableSpan$1; -Landroid/text/style/AccessibilityClickableSpan; -Landroid/text/style/AccessibilityReplacementSpan$1; -Landroid/text/style/AccessibilityReplacementSpan; -Landroid/text/style/AccessibilityURLSpan; -Landroid/text/style/AlignmentSpan$Standard; -Landroid/text/style/AlignmentSpan; -Landroid/text/style/BackgroundColorSpan; -Landroid/text/style/BulletSpan; -Landroid/text/style/CharacterStyle$Passthrough; -Landroid/text/style/CharacterStyle; -Landroid/text/style/ClickableSpan; -Landroid/text/style/DrawableMarginSpan; -Landroid/text/style/DynamicDrawableSpan; -Landroid/text/style/EasyEditSpan; -Landroid/text/style/ForegroundColorSpan; -Landroid/text/style/ImageSpan; -Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2; -Landroid/text/style/LeadingMarginSpan$Standard; -Landroid/text/style/LeadingMarginSpan; -Landroid/text/style/LineBackgroundSpan$Standard; -Landroid/text/style/LineBackgroundSpan; -Landroid/text/style/LineBreakConfigSpan; -Landroid/text/style/LineHeightSpan$Standard; -Landroid/text/style/LineHeightSpan$WithDensity; -Landroid/text/style/LineHeightSpan; -Landroid/text/style/LocaleSpan; -Landroid/text/style/MetricAffectingSpan$Passthrough; -Landroid/text/style/MetricAffectingSpan; -Landroid/text/style/ParagraphStyle; -Landroid/text/style/QuoteSpan; -Landroid/text/style/RelativeSizeSpan; -Landroid/text/style/ReplacementSpan; -Landroid/text/style/ScaleXSpan; -Landroid/text/style/SpellCheckSpan; -Landroid/text/style/StrikethroughSpan; -Landroid/text/style/StyleSpan; -Landroid/text/style/SubscriptSpan; -Landroid/text/style/SuggestionRangeSpan$1; -Landroid/text/style/SuggestionRangeSpan; -Landroid/text/style/SuggestionSpan$1; -Landroid/text/style/SuggestionSpan; -Landroid/text/style/SuperscriptSpan; -Landroid/text/style/TabStopSpan; -Landroid/text/style/TextAppearanceSpan; -Landroid/text/style/TtsSpan$Builder; -Landroid/text/style/TtsSpan$MeasureBuilder; -Landroid/text/style/TtsSpan$SemioticClassBuilder; -Landroid/text/style/TtsSpan$TelephoneBuilder; -Landroid/text/style/TtsSpan$VerbatimBuilder; -Landroid/text/style/TtsSpan; -Landroid/text/style/TypefaceSpan; -Landroid/text/style/URLSpan; -Landroid/text/style/UnderlineSpan; -Landroid/text/style/UpdateAppearance; -Landroid/text/style/UpdateLayout; -Landroid/text/style/WrapTogetherSpan; -Landroid/text/util/LinkSpec; -Landroid/text/util/Linkify$$ExternalSyntheticLambda0; -Landroid/text/util/Linkify$1; -Landroid/text/util/Linkify$2; -Landroid/text/util/Linkify$3; -Landroid/text/util/Linkify$4; -Landroid/text/util/Linkify$MatchFilter; -Landroid/text/util/Linkify$TransformFilter; -Landroid/text/util/Linkify; -Landroid/text/util/Rfc822Token; -Landroid/text/util/Rfc822Tokenizer; -Landroid/timezone/CountryTimeZones$OffsetResult; -Landroid/timezone/CountryTimeZones$TimeZoneMapping; -Landroid/timezone/CountryTimeZones; -Landroid/timezone/TelephonyLookup; -Landroid/timezone/TelephonyNetwork; -Landroid/timezone/TelephonyNetworkFinder; -Landroid/timezone/TimeZoneFinder; -Landroid/tracing/perfetto/CreateIncrementalStateArgs; -Landroid/tracing/perfetto/CreateTlsStateArgs; -Landroid/tracing/perfetto/DataSource; -Landroid/tracing/perfetto/FlushCallbackArguments; -Landroid/tracing/perfetto/Producer; -Landroid/tracing/perfetto/StartCallbackArguments; -Landroid/tracing/perfetto/StopCallbackArguments; -Landroid/tracing/perfetto/TracingContext; -Landroid/transition/ArcMotion; -Landroid/transition/AutoTransition; -Landroid/transition/ChangeBounds$10; -Landroid/transition/ChangeBounds$1; -Landroid/transition/ChangeBounds$2; -Landroid/transition/ChangeBounds$3; -Landroid/transition/ChangeBounds$4; -Landroid/transition/ChangeBounds$5; -Landroid/transition/ChangeBounds$6; -Landroid/transition/ChangeBounds$7; -Landroid/transition/ChangeBounds$8; -Landroid/transition/ChangeBounds$9; -Landroid/transition/ChangeBounds$ViewBounds; -Landroid/transition/ChangeBounds; -Landroid/transition/ChangeClipBounds; -Landroid/transition/ChangeImageTransform$1; -Landroid/transition/ChangeImageTransform$2; -Landroid/transition/ChangeImageTransform; -Landroid/transition/ChangeScroll; -Landroid/transition/ChangeTransform$1; -Landroid/transition/ChangeTransform$2; -Landroid/transition/ChangeTransform; -Landroid/transition/CircularPropagation; -Landroid/transition/Explode; -Landroid/transition/Fade$1; -Landroid/transition/Fade$FadeAnimatorListener; -Landroid/transition/Fade; -Landroid/transition/PathMotion; -Landroid/transition/PatternPathMotion; -Landroid/transition/Recolor; -Landroid/transition/Scene; -Landroid/transition/Slide$1; -Landroid/transition/Slide$2; -Landroid/transition/Slide$3; -Landroid/transition/Slide$4; -Landroid/transition/Slide$5; -Landroid/transition/Slide$6; -Landroid/transition/Slide$CalculateSlide; -Landroid/transition/Slide$CalculateSlideHorizontal; -Landroid/transition/Slide$CalculateSlideVertical; -Landroid/transition/Slide; -Landroid/transition/Transition$1; -Landroid/transition/Transition$2; -Landroid/transition/Transition$3; -Landroid/transition/Transition$AnimationInfo; -Landroid/transition/Transition$EpicenterCallback; -Landroid/transition/Transition$TransitionListener; -Landroid/transition/Transition; -Landroid/transition/TransitionInflater; -Landroid/transition/TransitionListenerAdapter; -Landroid/transition/TransitionManager$MultiListener$1; -Landroid/transition/TransitionManager$MultiListener; -Landroid/transition/TransitionManager; -Landroid/transition/TransitionPropagation; -Landroid/transition/TransitionSet$1; -Landroid/transition/TransitionSet$TransitionSetListener; -Landroid/transition/TransitionSet; -Landroid/transition/TransitionUtils; -Landroid/transition/TransitionValues; -Landroid/transition/TransitionValuesMaps; -Landroid/transition/Visibility$1; -Landroid/transition/Visibility$DisappearListener; -Landroid/transition/Visibility$VisibilityInfo-IA; -Landroid/transition/Visibility$VisibilityInfo; -Landroid/transition/Visibility; -Landroid/transition/VisibilityPropagation; -Landroid/transparency/BinaryTransparencyManager; -Landroid/updatabledriver/UpdatableDriverProto$1; -Landroid/updatabledriver/UpdatableDriverProto$Denylist; -Landroid/updatabledriver/UpdatableDriverProto$DenylistOrBuilder; -Landroid/updatabledriver/UpdatableDriverProto$Denylists$Builder; -Landroid/updatabledriver/UpdatableDriverProto$Denylists; -Landroid/updatabledriver/UpdatableDriverProto$DenylistsOrBuilder; -Landroid/util/AndroidException; -Landroid/util/AndroidRuntimeException; -Landroid/util/ArrayMap$1; -Landroid/util/ArraySet$1; -Landroid/util/ArraySet; -Landroid/util/AtomicFile; -Landroid/util/AttributeSet; -Landroid/util/BackupUtils$BadVersionException; -Landroid/util/BackupUtils; -Landroid/util/Base64$Coder; -Landroid/util/Base64$Decoder; -Landroid/util/Base64$Encoder; -Landroid/util/Base64; -Landroid/util/Base64OutputStream; -Landroid/util/CharsetUtils; -Landroid/util/CloseGuard; -Landroid/util/ContainerHelpers; -Landroid/util/DataUnit$1; -Landroid/util/DataUnit$2; -Landroid/util/DataUnit$3; -Landroid/util/DataUnit$4; -Landroid/util/DataUnit$5; -Landroid/util/DataUnit$6; -Landroid/util/DataUnit$7; -Landroid/util/DataUnit$8; -Landroid/util/DataUnit; -Landroid/util/DebugUtils; -Landroid/util/DisplayMetrics; -Landroid/util/DisplayUtils; -Landroid/util/Dumpable; -Landroid/util/EmptyArray; -Landroid/util/EventLog$Event; -Landroid/util/EventLog; -Landroid/util/ExceptionUtils; -Landroid/util/FastImmutableArraySet$FastIterator; -Landroid/util/FastImmutableArraySet; -Landroid/util/FeatureFlagUtils; -Landroid/util/FloatProperty; -Landroid/util/Half; -Landroid/util/IconDrawableFactory; -Landroid/util/IndentingPrintWriter; -Landroid/util/IntArray; -Landroid/util/IntProperty; -Landroid/util/JsonReader$1; -Landroid/util/JsonReader; -Landroid/util/JsonScope; -Landroid/util/JsonToken; -Landroid/util/JsonWriter$1; -Landroid/util/JsonWriter; -Landroid/util/KeyValueListParser$IntValue; -Landroid/util/KeyValueListParser; -Landroid/util/KeyValueSettingObserver$SettingObserver; -Landroid/util/KeyValueSettingObserver; -Landroid/util/LauncherIcons; -Landroid/util/LocalLog$ReadOnlyLocalLog; -Landroid/util/LocalLog; -Landroid/util/Log$1; -Landroid/util/Log$ImmediateLogWriter; -Landroid/util/Log$PreloadHolder; -Landroid/util/Log$TerribleFailure; -Landroid/util/Log$TerribleFailureHandler; -Landroid/util/Log; -Landroid/util/LogPrinter; -Landroid/util/LogWriter; -Landroid/util/LongArray; -Landroid/util/LongArrayQueue; -Landroid/util/LongSparseArray$StringParcelling; -Landroid/util/LongSparseArray; -Landroid/util/LongSparseLongArray$Parcelling; -Landroid/util/LongSparseLongArray; -Landroid/util/LruCache; -Landroid/util/MalformedJsonException; -Landroid/util/MapCollections; -Landroid/util/MathUtils; -Landroid/util/MemoryIntArray$1; -Landroid/util/MemoryIntArray-IA; -Landroid/util/MemoryIntArray; -Landroid/util/MergedConfiguration$1; -Landroid/util/MergedConfiguration-IA; -Landroid/util/MergedConfiguration; -Landroid/util/MutableBoolean; -Landroid/util/MutableInt; -Landroid/util/MutableLong; -Landroid/util/NtpTrustedTime$TimeResult; -Landroid/util/NtpTrustedTime; -Landroid/util/PackageUtils; -Landroid/util/Pair; -Landroid/util/PathParser$PathData; -Landroid/util/PathParser; -Landroid/util/Patterns; -Landroid/util/Pools$Pool; -Landroid/util/Pools$SimplePool; -Landroid/util/Pools$SynchronizedPool; -Landroid/util/PrefixPrinter; -Landroid/util/PrintWriterPrinter; -Landroid/util/Printer; -Landroid/util/Property; -Landroid/util/Range; -Landroid/util/Rational; -Landroid/util/RecurrenceRule$1; -Landroid/util/RecurrenceRule$NonrecurringIterator; -Landroid/util/RecurrenceRule$RecurringIterator; -Landroid/util/RecurrenceRule; -Landroid/util/ReflectiveProperty; -Landroid/util/RotationUtils; -Landroid/util/Singleton; -Landroid/util/Size; -Landroid/util/SizeF$1; -Landroid/util/SizeF; -Landroid/util/Slog; -Landroid/util/SparseArray; -Landroid/util/SparseArrayMap; -Landroid/util/SparseBooleanArray; -Landroid/util/SparseDoubleArray; -Landroid/util/SparseIntArray; -Landroid/util/SparseLongArray; -Landroid/util/SparseSetArray; -Landroid/util/Spline$LinearSpline; -Landroid/util/Spline$MonotoneCubicSpline; -Landroid/util/Spline; -Landroid/util/StateSet; -Landroid/util/StringBuilderPrinter; -Landroid/util/SuperNotCalledException; -Landroid/util/SystemConfigFileCommitEventLogger; -Landroid/util/TimeFormatException; -Landroid/util/TimeUtils; -Landroid/util/TimedRemoteCaller; -Landroid/util/TimingLogger; -Landroid/util/TimingsTraceLog; -Landroid/util/TrustedTime; -Landroid/util/TypedValue; -Landroid/util/UtilConfig; -Landroid/util/Xml$Encoding; -Landroid/util/Xml; -Landroid/util/XmlPullAttributes; -Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner; -Landroid/util/apk/ApkSignatureSchemeV2Verifier; -Landroid/util/apk/ApkSignatureSchemeV3Verifier$PlatformNotSupportedException; -Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner; -Landroid/util/apk/ApkSignatureSchemeV3Verifier; -Landroid/util/apk/ApkSignatureSchemeV4Verifier$VerifiedSigner; -Landroid/util/apk/ApkSignatureSchemeV4Verifier; -Landroid/util/apk/ApkSignatureVerifier$SigningDetailsWithDigests; -Landroid/util/apk/ApkSignatureVerifier; -Landroid/util/apk/ApkSigningBlockUtils$1; -Landroid/util/apk/ApkSigningBlockUtils$MultipleDigestDataDigester; -Landroid/util/apk/ApkSigningBlockUtils$VerifiedProofOfRotation; -Landroid/util/apk/ApkSigningBlockUtils; -Landroid/util/apk/ByteBufferDataSource; -Landroid/util/apk/ByteBufferFactory; -Landroid/util/apk/DataDigester; -Landroid/util/apk/DataSource; -Landroid/util/apk/MemoryMappedFileDataSource; -Landroid/util/apk/SignatureInfo; -Landroid/util/apk/SignatureNotFoundException; -Landroid/util/apk/VerbatimX509Certificate; -Landroid/util/apk/VerityBuilder$BufferedDigester; -Landroid/util/apk/VerityBuilder$VerityResult; -Landroid/util/apk/VerityBuilder; -Landroid/util/apk/WrappedX509Certificate; -Landroid/util/apk/ZipUtils; -Landroid/util/jar/StrictJarFile$EntryIterator; -Landroid/util/jar/StrictJarFile$FDStream; -Landroid/util/jar/StrictJarFile$JarFileInputStream; -Landroid/util/jar/StrictJarFile$ZipInflaterInputStream; -Landroid/util/jar/StrictJarFile; -Landroid/util/jar/StrictJarManifest$Chunk; -Landroid/util/jar/StrictJarManifest; -Landroid/util/jar/StrictJarManifestReader; -Landroid/util/jar/StrictJarVerifier$VerifierEntry; -Landroid/util/jar/StrictJarVerifier; -Landroid/util/proto/EncodedBuffer; -Landroid/util/proto/ProtoInputStream; -Landroid/util/proto/ProtoOutputStream; -Landroid/util/proto/ProtoParseException; -Landroid/util/proto/ProtoStream; -Landroid/util/proto/ProtoUtils; -Landroid/util/proto/WireTypeMismatchException; -Landroid/view/AbsSavedState$1; -Landroid/view/AbsSavedState$2; -Landroid/view/AbsSavedState; -Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher; -Landroid/view/AccessibilityInteractionController$MessageHolder; -Landroid/view/AccessibilityInteractionController$PrivateHandler; -Landroid/view/AccessibilityInteractionController; -Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator; -Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator; -Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator; -Landroid/view/AccessibilityIterators$TextSegmentIterator; -Landroid/view/AccessibilityIterators$WordTextSegmentIterator; -Landroid/view/ActionMode$Callback2; -Landroid/view/ActionMode$Callback; -Landroid/view/ActionMode; -Landroid/view/ActionProvider$SubUiVisibilityListener; -Landroid/view/ActionProvider; -Landroid/view/AppTransitionAnimationSpec$1; -Landroid/view/AppTransitionAnimationSpec; -Landroid/view/AttachedSurfaceControl$OnBufferTransformHintChangedListener; -Landroid/view/AttachedSurfaceControl; -Landroid/view/BatchedInputEventReceiver$1; -Landroid/view/BatchedInputEventReceiver$BatchedInputRunnable; -Landroid/view/BatchedInputEventReceiver; -Landroid/view/Choreographer$1; -Landroid/view/Choreographer$2; -Landroid/view/Choreographer$3; -Landroid/view/Choreographer$4; -Landroid/view/Choreographer$CallbackQueue-IA; -Landroid/view/Choreographer$CallbackQueue; -Landroid/view/Choreographer$CallbackRecord-IA; -Landroid/view/Choreographer$CallbackRecord; -Landroid/view/Choreographer$FrameCallback; -Landroid/view/Choreographer$FrameData; -Landroid/view/Choreographer$FrameDisplayEventReceiver; -Landroid/view/Choreographer$FrameHandler; -Landroid/view/Choreographer$FrameTimeline; -Landroid/view/Choreographer$VsyncCallback; -Landroid/view/Choreographer-IA; -Landroid/view/Choreographer; -Landroid/view/CompositionSamplingListener; -Landroid/view/ContextMenu$ContextMenuInfo; -Landroid/view/ContextMenu; -Landroid/view/ContextThemeWrapper; -Landroid/view/CrossWindowBlurListeners$BlurEnabledListenerInternal; -Landroid/view/CrossWindowBlurListeners; -Landroid/view/CutoutSpecification$Parser; -Landroid/view/CutoutSpecification; -Landroid/view/Display$HdrCapabilities$1; -Landroid/view/Display$HdrCapabilities-IA; -Landroid/view/Display$HdrCapabilities; -Landroid/view/Display$HdrSdrRatioListenerWrapper; -Landroid/view/Display$Mode$1; -Landroid/view/Display$Mode-IA; -Landroid/view/Display$Mode; -Landroid/view/Display; -Landroid/view/DisplayAddress$Network$1; -Landroid/view/DisplayAddress$Network; -Landroid/view/DisplayAddress$Physical$1; -Landroid/view/DisplayAddress$Physical-IA; -Landroid/view/DisplayAddress$Physical; -Landroid/view/DisplayAddress; -Landroid/view/DisplayAdjustments; -Landroid/view/DisplayCutout$Bounds-IA; -Landroid/view/DisplayCutout$Bounds; -Landroid/view/DisplayCutout$CutoutPathParserInfo; -Landroid/view/DisplayCutout$ParcelableWrapper$1; -Landroid/view/DisplayCutout$ParcelableWrapper; -Landroid/view/DisplayCutout-IA; -Landroid/view/DisplayCutout; -Landroid/view/DisplayEventReceiver$FrameRateOverride; -Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline; -Landroid/view/DisplayEventReceiver$VsyncEventData; -Landroid/view/DisplayEventReceiver; -Landroid/view/DisplayInfo$1; -Landroid/view/DisplayInfo-IA; -Landroid/view/DisplayInfo; -Landroid/view/DisplayShape$1; -Landroid/view/DisplayShape-IA; -Landroid/view/DisplayShape; -Landroid/view/DragEvent$1; -Landroid/view/DragEvent; -Landroid/view/FallbackEventHandler; -Landroid/view/FocusFinder$$ExternalSyntheticLambda0; -Landroid/view/FocusFinder$$ExternalSyntheticLambda1; -Landroid/view/FocusFinder$1; -Landroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda0; -Landroid/view/FocusFinder$FocusSorter$$ExternalSyntheticLambda1; -Landroid/view/FocusFinder$FocusSorter; -Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter; -Landroid/view/FocusFinder$UserSpecifiedFocusComparator; -Landroid/view/FocusFinder-IA; -Landroid/view/FocusFinder; -Landroid/view/FrameMetrics; -Landroid/view/FrameMetricsObserver; -Landroid/view/FrameStats; -Landroid/view/GestureDetector$GestureHandler; -Landroid/view/GestureDetector$OnContextClickListener; -Landroid/view/GestureDetector$OnDoubleTapListener; -Landroid/view/GestureDetector$OnGestureListener; -Landroid/view/GestureDetector$SimpleOnGestureListener; -Landroid/view/GestureDetector; -Landroid/view/GhostView; -Landroid/view/Gravity; -Landroid/view/HandlerActionQueue$HandlerAction; -Landroid/view/HandlerActionQueue; -Landroid/view/HandwritingInitiator$HandwritableViewInfo; -Landroid/view/HandwritingInitiator$HandwritingAreaTracker; -Landroid/view/HandwritingInitiator$State-IA; -Landroid/view/HandwritingInitiator$State; -Landroid/view/HandwritingInitiator; -Landroid/view/HapticScrollFeedbackProvider; -Landroid/view/HdrRenderState; -Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy; -Landroid/view/IAppTransitionAnimationSpecsFuture$Stub; -Landroid/view/IAppTransitionAnimationSpecsFuture; -Landroid/view/ICrossWindowBlurEnabledListener$Stub; -Landroid/view/ICrossWindowBlurEnabledListener; -Landroid/view/IDisplayChangeWindowController$Stub; -Landroid/view/IDisplayChangeWindowController; -Landroid/view/IDisplayFoldListener$Stub$Proxy; -Landroid/view/IDisplayFoldListener$Stub; -Landroid/view/IDisplayFoldListener; -Landroid/view/IDisplayWindowInsetsController$Stub$Proxy; -Landroid/view/IDisplayWindowInsetsController$Stub; -Landroid/view/IDisplayWindowInsetsController; -Landroid/view/IDisplayWindowListener$Stub$Proxy; -Landroid/view/IDisplayWindowListener$Stub; -Landroid/view/IDisplayWindowListener; -Landroid/view/IDockedStackListener$Stub$Proxy; -Landroid/view/IDockedStackListener$Stub; -Landroid/view/IDockedStackListener; -Landroid/view/IGraphicsStats$Stub$Proxy; -Landroid/view/IGraphicsStats$Stub; -Landroid/view/IGraphicsStats; -Landroid/view/IGraphicsStatsCallback$Stub$Proxy; -Landroid/view/IGraphicsStatsCallback$Stub; -Landroid/view/IGraphicsStatsCallback; -Landroid/view/IInputMonitorHost$Stub$Proxy; -Landroid/view/IInputMonitorHost$Stub; -Landroid/view/IInputMonitorHost; -Landroid/view/IOnKeyguardExitResult$Stub$Proxy; -Landroid/view/IOnKeyguardExitResult$Stub; -Landroid/view/IOnKeyguardExitResult; -Landroid/view/IPinnedTaskListener$Stub; -Landroid/view/IPinnedTaskListener; -Landroid/view/IRecentsAnimationController$Stub$Proxy; -Landroid/view/IRecentsAnimationController$Stub; -Landroid/view/IRecentsAnimationController; -Landroid/view/IRecentsAnimationRunner$Stub$Proxy; -Landroid/view/IRecentsAnimationRunner$Stub; -Landroid/view/IRecentsAnimationRunner; -Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy; -Landroid/view/IRemoteAnimationFinishedCallback$Stub; -Landroid/view/IRemoteAnimationFinishedCallback; -Landroid/view/IRemoteAnimationRunner$Stub$Proxy; -Landroid/view/IRemoteAnimationRunner$Stub; -Landroid/view/IRemoteAnimationRunner; -Landroid/view/IRotationWatcher$Stub$Proxy; -Landroid/view/IRotationWatcher$Stub; -Landroid/view/IRotationWatcher; -Landroid/view/IScrollCaptureCallbacks$Stub$Proxy; -Landroid/view/IScrollCaptureCallbacks$Stub; -Landroid/view/IScrollCaptureCallbacks; -Landroid/view/IScrollCaptureResponseListener$Stub$Proxy; -Landroid/view/IScrollCaptureResponseListener$Stub; -Landroid/view/IScrollCaptureResponseListener; -Landroid/view/ISensitiveContentProtectionManager$Stub; -Landroid/view/ISensitiveContentProtectionManager; -Landroid/view/ISurfaceControlViewHost; -Landroid/view/ISurfaceControlViewHostParent$Stub; -Landroid/view/ISurfaceControlViewHostParent; -Landroid/view/ISystemGestureExclusionListener$Stub; -Landroid/view/ISystemGestureExclusionListener; -Landroid/view/IWallpaperVisibilityListener$Stub$Proxy; -Landroid/view/IWallpaperVisibilityListener$Stub; -Landroid/view/IWallpaperVisibilityListener; -Landroid/view/IWindow$Stub; -Landroid/view/IWindow; -Landroid/view/IWindowFocusObserver$Stub; -Landroid/view/IWindowFocusObserver; -Landroid/view/IWindowId$Stub$Proxy; -Landroid/view/IWindowId$Stub; -Landroid/view/IWindowId; -Landroid/view/IWindowManager$Stub$Proxy; -Landroid/view/IWindowManager$Stub; -Landroid/view/IWindowManager; -Landroid/view/IWindowSession$Stub$Proxy; -Landroid/view/IWindowSession$Stub; -Landroid/view/IWindowSession; -Landroid/view/IWindowSessionCallback$Stub$Proxy; -Landroid/view/IWindowSessionCallback$Stub; -Landroid/view/IWindowSessionCallback; -Landroid/view/ImeFocusController$InputMethodManagerDelegate; -Landroid/view/ImeFocusController; -Landroid/view/ImeInsetsSourceConsumer; -Landroid/view/InflateException; -Landroid/view/InputApplicationHandle; -Landroid/view/InputChannel$1; -Landroid/view/InputChannel; -Landroid/view/InputDevice$1; -Landroid/view/InputDevice$MotionRange-IA; -Landroid/view/InputDevice$MotionRange; -Landroid/view/InputDevice$ViewBehavior; -Landroid/view/InputDevice-IA; -Landroid/view/InputDevice; -Landroid/view/InputEvent$1; -Landroid/view/InputEvent; -Landroid/view/InputEventAssigner; -Landroid/view/InputEventCompatProcessor; -Landroid/view/InputEventConsistencyVerifier; -Landroid/view/InputEventReceiver; -Landroid/view/InputEventSender$1; -Landroid/view/InputEventSender; -Landroid/view/InputMonitor$1; -Landroid/view/InputMonitor; -Landroid/view/InputQueue$Callback; -Landroid/view/InputQueue$FinishedInputEventCallback; -Landroid/view/InputQueue; -Landroid/view/InputWindowHandle; -Landroid/view/InsetsAnimationControlCallbacks; -Landroid/view/InsetsAnimationControlImpl$$ExternalSyntheticLambda0; -Landroid/view/InsetsAnimationControlImpl; -Landroid/view/InsetsAnimationControlRunner; -Landroid/view/InsetsAnimationThread; -Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda0; -Landroid/view/InsetsAnimationThreadControlRunner$$ExternalSyntheticLambda1; -Landroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda0; -Landroid/view/InsetsAnimationThreadControlRunner$1$$ExternalSyntheticLambda1; -Landroid/view/InsetsAnimationThreadControlRunner$1; -Landroid/view/InsetsAnimationThreadControlRunner; -Landroid/view/InsetsController$$ExternalSyntheticLambda0; -Landroid/view/InsetsController$$ExternalSyntheticLambda10; -Landroid/view/InsetsController$$ExternalSyntheticLambda11; -Landroid/view/InsetsController$$ExternalSyntheticLambda12; -Landroid/view/InsetsController$$ExternalSyntheticLambda1; -Landroid/view/InsetsController$$ExternalSyntheticLambda2; -Landroid/view/InsetsController$$ExternalSyntheticLambda3; -Landroid/view/InsetsController$$ExternalSyntheticLambda4; -Landroid/view/InsetsController$$ExternalSyntheticLambda5; -Landroid/view/InsetsController$$ExternalSyntheticLambda6; -Landroid/view/InsetsController$$ExternalSyntheticLambda7; -Landroid/view/InsetsController$$ExternalSyntheticLambda8; -Landroid/view/InsetsController$$ExternalSyntheticLambda9; -Landroid/view/InsetsController$1; -Landroid/view/InsetsController$2; -Landroid/view/InsetsController$3; -Landroid/view/InsetsController$Host; -Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda0; -Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda1; -Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda2; -Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda3; -Landroid/view/InsetsController$InternalAnimationControlListener$$ExternalSyntheticLambda4; -Landroid/view/InsetsController$InternalAnimationControlListener$1; -Landroid/view/InsetsController$InternalAnimationControlListener$2; -Landroid/view/InsetsController$InternalAnimationControlListener; -Landroid/view/InsetsController$PendingControlRequest; -Landroid/view/InsetsController$RunningAnimation; -Landroid/view/InsetsController; -Landroid/view/InsetsFlags; -Landroid/view/InsetsFrameProvider$1; -Landroid/view/InsetsFrameProvider; -Landroid/view/InsetsResizeAnimationRunner; -Landroid/view/InsetsSource$1; -Landroid/view/InsetsSource; -Landroid/view/InsetsSourceConsumer; -Landroid/view/InsetsSourceControl$1; -Landroid/view/InsetsSourceControl$Array$1; -Landroid/view/InsetsSourceControl$Array; -Landroid/view/InsetsSourceControl; -Landroid/view/InsetsState$1; -Landroid/view/InsetsState$OnTraverseCallbacks; -Landroid/view/InsetsState; -Landroid/view/InternalInsetsAnimationController; -Landroid/view/KeyCharacterMap$1; -Landroid/view/KeyCharacterMap$FallbackAction; -Landroid/view/KeyCharacterMap$UnavailableException; -Landroid/view/KeyCharacterMap-IA; -Landroid/view/KeyCharacterMap; -Landroid/view/KeyEvent$1; -Landroid/view/KeyEvent$Callback; -Landroid/view/KeyEvent$DispatcherState; -Landroid/view/KeyEvent; -Landroid/view/LayoutInflater$BlinkLayout$1; -Landroid/view/LayoutInflater$BlinkLayout; -Landroid/view/LayoutInflater$Factory2; -Landroid/view/LayoutInflater$Factory; -Landroid/view/LayoutInflater$FactoryMerger; -Landroid/view/LayoutInflater$Filter; -Landroid/view/LayoutInflater; -Landroid/view/MagnificationSpec$1; -Landroid/view/MagnificationSpec; -Landroid/view/Menu; -Landroid/view/MenuInflater$InflatedOnMenuItemClickListener; -Landroid/view/MenuInflater$MenuState; -Landroid/view/MenuInflater; -Landroid/view/MenuItem$OnActionExpandListener; -Landroid/view/MenuItem$OnMenuItemClickListener; -Landroid/view/MenuItem; -Landroid/view/MotionEvent$1; -Landroid/view/MotionEvent$PointerCoords; -Landroid/view/MotionEvent$PointerProperties; -Landroid/view/MotionEvent; -Landroid/view/MotionPredictor; -Landroid/view/NativeVectorDrawableAnimator; -Landroid/view/NotificationHeaderView$1; -Landroid/view/NotificationHeaderView$HeaderTouchListener; -Landroid/view/NotificationHeaderView; -Landroid/view/NotificationTopLineView; -Landroid/view/OnReceiveContentListener; -Landroid/view/OrientationEventListener$SensorEventListenerImpl; -Landroid/view/OrientationEventListener; -Landroid/view/OrientationListener; -Landroid/view/PendingInsetsController$PendingRequest; -Landroid/view/PendingInsetsController; -Landroid/view/PixelCopy$1; -Landroid/view/PixelCopy$OnPixelCopyFinishedListener; -Landroid/view/PixelCopy; -Landroid/view/PointerIcon$1; -Landroid/view/PointerIcon; -Landroid/view/PrivacyIndicatorBounds$1; -Landroid/view/PrivacyIndicatorBounds; -Landroid/view/RemotableViewMethod; -Landroid/view/RemoteAccessibilityController$RemoteAccessibilityEmbeddedConnection; -Landroid/view/RemoteAccessibilityController; -Landroid/view/RemoteAnimationAdapter$1; -Landroid/view/RemoteAnimationAdapter; -Landroid/view/RemoteAnimationDefinition$1; -Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1; -Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry; -Landroid/view/RemoteAnimationDefinition; -Landroid/view/RemoteAnimationTarget$1; -Landroid/view/RemoteAnimationTarget; -Landroid/view/RenderNodeAnimator; -Landroid/view/RoundScrollbarRenderer; -Landroid/view/RoundedCorner$1; -Landroid/view/RoundedCorner; -Landroid/view/RoundedCorners$1; -Landroid/view/RoundedCorners; -Landroid/view/ScaleGestureDetector$1; -Landroid/view/ScaleGestureDetector$OnScaleGestureListener; -Landroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener; -Landroid/view/ScaleGestureDetector; -Landroid/view/ScrollCaptureSearchResults; -Landroid/view/ScrollFeedbackProvider; -Landroid/view/SearchEvent; -Landroid/view/SoundEffectConstants; -Landroid/view/SubMenu; -Landroid/view/Surface$1; -Landroid/view/Surface$CompatibleCanvas-IA; -Landroid/view/Surface$CompatibleCanvas; -Landroid/view/Surface$HwuiContext; -Landroid/view/Surface$OutOfResourcesException; -Landroid/view/Surface; -Landroid/view/SurfaceControl$1; -Landroid/view/SurfaceControl$Builder; -Landroid/view/SurfaceControl$CieXyz; -Landroid/view/SurfaceControl$DesiredDisplayModeSpecs; -Landroid/view/SurfaceControl$DisplayMode; -Landroid/view/SurfaceControl$DisplayPrimaries; -Landroid/view/SurfaceControl$DynamicDisplayInfo; -Landroid/view/SurfaceControl$JankData; -Landroid/view/SurfaceControl$OnJankDataListener; -Landroid/view/SurfaceControl$OnReparentListener; -Landroid/view/SurfaceControl$RefreshRateRange$1; -Landroid/view/SurfaceControl$RefreshRateRange; -Landroid/view/SurfaceControl$RefreshRateRanges; -Landroid/view/SurfaceControl$StaticDisplayInfo; -Landroid/view/SurfaceControl$Transaction$1; -Landroid/view/SurfaceControl$Transaction$2; -Landroid/view/SurfaceControl$Transaction; -Landroid/view/SurfaceControl$TransactionCommittedListener; -Landroid/view/SurfaceControl$TransactionStats; -Landroid/view/SurfaceControl$TrustedPresentationCallback; -Landroid/view/SurfaceControl$TrustedPresentationThresholds; -Landroid/view/SurfaceControl-IA; -Landroid/view/SurfaceControl; -Landroid/view/SurfaceControlHdrLayerInfoListener; -Landroid/view/SurfaceControlRegistry$DefaultReporter-IA; -Landroid/view/SurfaceControlRegistry$DefaultReporter; -Landroid/view/SurfaceControlRegistry$NoOpRegistry-IA; -Landroid/view/SurfaceControlRegistry$NoOpRegistry; -Landroid/view/SurfaceControlRegistry$Reporter; -Landroid/view/SurfaceControlRegistry-IA; -Landroid/view/SurfaceControlRegistry; -Landroid/view/SurfaceControlViewHost$SurfacePackage$1; -Landroid/view/SurfaceControlViewHost$SurfacePackage; -Landroid/view/SurfaceHolder$Callback2; -Landroid/view/SurfaceHolder$Callback; -Landroid/view/SurfaceHolder; -Landroid/view/SurfaceSession; -Landroid/view/SurfaceView$$ExternalSyntheticLambda0; -Landroid/view/SurfaceView$$ExternalSyntheticLambda1; -Landroid/view/SurfaceView$$ExternalSyntheticLambda2; -Landroid/view/SurfaceView$$ExternalSyntheticLambda3; -Landroid/view/SurfaceView$$ExternalSyntheticLambda4; -Landroid/view/SurfaceView$$ExternalSyntheticLambda5; -Landroid/view/SurfaceView$1; -Landroid/view/SurfaceView$2; -Landroid/view/SurfaceView$SurfaceViewPositionUpdateListener; -Landroid/view/SurfaceView$SyncBufferTransactionCallback-IA; -Landroid/view/SurfaceView$SyncBufferTransactionCallback; -Landroid/view/SurfaceView; -Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams$Builder; -Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams-IA; -Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams; -Landroid/view/SyncRtSurfaceTransactionApplier; -Landroid/view/TextureView$$ExternalSyntheticLambda0; -Landroid/view/TextureView$$ExternalSyntheticLambda1; -Landroid/view/TextureView$SurfaceTextureListener; -Landroid/view/TextureView; -Landroid/view/ThreadedRenderer$1$$ExternalSyntheticLambda0; -Landroid/view/ThreadedRenderer$1; -Landroid/view/ThreadedRenderer$DrawCallbacks; -Landroid/view/ThreadedRenderer$WebViewOverlayProvider-IA; -Landroid/view/ThreadedRenderer$WebViewOverlayProvider; -Landroid/view/ThreadedRenderer; -Landroid/view/TouchDelegate; -Landroid/view/TunnelModeEnabledListener; -Landroid/view/VelocityTracker; -Landroid/view/VerifiedInputEvent$1; -Landroid/view/VerifiedInputEvent; -Landroid/view/VerifiedKeyEvent$1; -Landroid/view/VerifiedKeyEvent; -Landroid/view/VerifiedMotionEvent$1; -Landroid/view/VerifiedMotionEvent; -Landroid/view/View$$ExternalSyntheticLambda0; -Landroid/view/View$$ExternalSyntheticLambda10; -Landroid/view/View$$ExternalSyntheticLambda11; -Landroid/view/View$$ExternalSyntheticLambda12; -Landroid/view/View$$ExternalSyntheticLambda13; -Landroid/view/View$$ExternalSyntheticLambda1; -Landroid/view/View$$ExternalSyntheticLambda2; -Landroid/view/View$$ExternalSyntheticLambda3; -Landroid/view/View$$ExternalSyntheticLambda4; -Landroid/view/View$$ExternalSyntheticLambda5; -Landroid/view/View$$ExternalSyntheticLambda7; -Landroid/view/View$$ExternalSyntheticLambda8; -Landroid/view/View$$ExternalSyntheticLambda9; -Landroid/view/View$10; -Landroid/view/View$11; -Landroid/view/View$12; -Landroid/view/View$13; -Landroid/view/View$1; -Landroid/view/View$2; -Landroid/view/View$3; -Landroid/view/View$4; -Landroid/view/View$5; -Landroid/view/View$6; -Landroid/view/View$7; -Landroid/view/View$8; -Landroid/view/View$9; -Landroid/view/View$AccessibilityDelegate; -Landroid/view/View$AttachInfo$Callbacks; -Landroid/view/View$AttachInfo$InvalidateInfo; -Landroid/view/View$AttachInfo; -Landroid/view/View$BaseSavedState$1; -Landroid/view/View$BaseSavedState; -Landroid/view/View$CheckForLongPress-IA; -Landroid/view/View$CheckForLongPress; -Landroid/view/View$CheckForTap-IA; -Landroid/view/View$CheckForTap; -Landroid/view/View$DeclaredOnClickListener; -Landroid/view/View$DragShadowBuilder; -Landroid/view/View$ForegroundInfo-IA; -Landroid/view/View$ForegroundInfo; -Landroid/view/View$ListenerInfo; -Landroid/view/View$MatchIdPredicate; -Landroid/view/View$MatchLabelForPredicate; -Landroid/view/View$MeasureSpec; -Landroid/view/View$OnApplyWindowInsetsListener; -Landroid/view/View$OnAttachStateChangeListener; -Landroid/view/View$OnClickListener; -Landroid/view/View$OnCreateContextMenuListener; -Landroid/view/View$OnDragListener; -Landroid/view/View$OnFocusChangeListener; -Landroid/view/View$OnGenericMotionListener; -Landroid/view/View$OnHoverListener; -Landroid/view/View$OnKeyListener; -Landroid/view/View$OnLayoutChangeListener; -Landroid/view/View$OnLongClickListener; -Landroid/view/View$OnScrollChangeListener; -Landroid/view/View$OnSystemUiVisibilityChangeListener; -Landroid/view/View$OnTouchListener; -Landroid/view/View$PerformClick-IA; -Landroid/view/View$PerformClick; -Landroid/view/View$ScrollabilityCache; -Landroid/view/View$SendAccessibilityEventThrottle; -Landroid/view/View$SendViewScrolledAccessibilityEvent; -Landroid/view/View$TintInfo; -Landroid/view/View$TooltipInfo-IA; -Landroid/view/View$TooltipInfo; -Landroid/view/View$TransformationInfo; -Landroid/view/View$UnsetPressedState-IA; -Landroid/view/View$UnsetPressedState; -Landroid/view/View$VisibilityChangeForAutofillHandler-IA; -Landroid/view/View$VisibilityChangeForAutofillHandler; -Landroid/view/View; -Landroid/view/ViewAnimationHostBridge; -Landroid/view/ViewAnimationUtils; -Landroid/view/ViewConfiguration; -Landroid/view/ViewCredentialHandler; -Landroid/view/ViewDebug$ExportedProperty; -Landroid/view/ViewDebug$FlagToString; -Landroid/view/ViewDebug$HierarchyHandler; -Landroid/view/ViewDebug$IntToString; -Landroid/view/ViewDebug$ViewMethodInvocationSerializationException; -Landroid/view/ViewDebug; -Landroid/view/ViewFrameInfo; -Landroid/view/ViewGroup$1; -Landroid/view/ViewGroup$2; -Landroid/view/ViewGroup$4; -Landroid/view/ViewGroup$ChildListForAccessibility; -Landroid/view/ViewGroup$ChildListForAutoFillOrContentCapture; -Landroid/view/ViewGroup$HoverTarget; -Landroid/view/ViewGroup$LayoutParams; -Landroid/view/ViewGroup$MarginLayoutParams; -Landroid/view/ViewGroup$OnHierarchyChangeListener; -Landroid/view/ViewGroup$TouchTarget; -Landroid/view/ViewGroup$ViewLocationHolder; -Landroid/view/ViewGroup; -Landroid/view/ViewGroupOverlay; -Landroid/view/ViewHierarchyEncoder; -Landroid/view/ViewManager; -Landroid/view/ViewOutlineProvider$1; -Landroid/view/ViewOutlineProvider$2; -Landroid/view/ViewOutlineProvider$3; -Landroid/view/ViewOutlineProvider; -Landroid/view/ViewOverlay$OverlayViewGroup; -Landroid/view/ViewOverlay; -Landroid/view/ViewParent; -Landroid/view/ViewPropertyAnimator$1; -Landroid/view/ViewPropertyAnimator$2; -Landroid/view/ViewPropertyAnimator$3; -Landroid/view/ViewPropertyAnimator$AnimatorEventListener-IA; -Landroid/view/ViewPropertyAnimator$AnimatorEventListener; -Landroid/view/ViewPropertyAnimator$NameValuesHolder; -Landroid/view/ViewPropertyAnimator$PropertyBundle; -Landroid/view/ViewPropertyAnimator; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda0; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda10; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda11; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda12; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda13; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda14; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda15; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda16; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda17; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda18; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda1; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda2; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda3; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda4; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda5; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda6; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda7; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda8; -Landroid/view/ViewRootImpl$$ExternalSyntheticLambda9; -Landroid/view/ViewRootImpl$1; -Landroid/view/ViewRootImpl$2; -Landroid/view/ViewRootImpl$3; -Landroid/view/ViewRootImpl$4; -Landroid/view/ViewRootImpl$5; -Landroid/view/ViewRootImpl$6; -Landroid/view/ViewRootImpl$7; -Landroid/view/ViewRootImpl$8; -Landroid/view/ViewRootImpl$9; -Landroid/view/ViewRootImpl$AccessibilityInteractionConnection; -Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager; -Landroid/view/ViewRootImpl$ActivityConfigCallback; -Landroid/view/ViewRootImpl$AsyncInputStage; -Landroid/view/ViewRootImpl$CalledFromWrongThreadException; -Landroid/view/ViewRootImpl$ConfigChangedCallback; -Landroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable; -Landroid/view/ViewRootImpl$ConsumeBatchedInputRunnable; -Landroid/view/ViewRootImpl$EarlyPostImeInputStage; -Landroid/view/ViewRootImpl$GfxInfo; -Landroid/view/ViewRootImpl$HighContrastTextManager; -Landroid/view/ViewRootImpl$ImeInputStage; -Landroid/view/ViewRootImpl$InputMetricsListener; -Landroid/view/ViewRootImpl$InputStage; -Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable; -Landroid/view/ViewRootImpl$NativePostImeInputStage; -Landroid/view/ViewRootImpl$NativePreImeInputStage; -Landroid/view/ViewRootImpl$QueuedInputEvent-IA; -Landroid/view/ViewRootImpl$QueuedInputEvent; -Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent; -Landroid/view/ViewRootImpl$SurfaceChangedCallback; -Landroid/view/ViewRootImpl$SyntheticInputStage; -Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState; -Landroid/view/ViewRootImpl$SyntheticJoystickHandler; -Landroid/view/ViewRootImpl$SyntheticKeyboardHandler; -Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler$1; -Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler; -Landroid/view/ViewRootImpl$SyntheticTrackballHandler; -Landroid/view/ViewRootImpl$SystemUiVisibilityInfo; -Landroid/view/ViewRootImpl$TakenSurfaceHolder; -Landroid/view/ViewRootImpl$TrackballAxis; -Landroid/view/ViewRootImpl$TraversalRunnable; -Landroid/view/ViewRootImpl$UnhandledKeyManager-IA; -Landroid/view/ViewRootImpl$UnhandledKeyManager; -Landroid/view/ViewRootImpl$ViewPostImeInputStage; -Landroid/view/ViewRootImpl$ViewPreImeInputStage; -Landroid/view/ViewRootImpl$ViewRootHandler; -Landroid/view/ViewRootImpl$W; -Landroid/view/ViewRootImpl$WindowInputEventReceiver; -Landroid/view/ViewRootImpl; -Landroid/view/ViewRootInsetsControllerHost; -Landroid/view/ViewRootRectTracker$ViewInfo; -Landroid/view/ViewRootRectTracker; -Landroid/view/ViewStructure$HtmlInfo$Builder; -Landroid/view/ViewStructure$HtmlInfo; -Landroid/view/ViewStructure; -Landroid/view/ViewStub$OnInflateListener; -Landroid/view/ViewStub$ViewReplaceRunnable; -Landroid/view/ViewStub; -Landroid/view/ViewTraversalTracingStrings; -Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access; -Landroid/view/ViewTreeObserver$CopyOnWriteArray; -Landroid/view/ViewTreeObserver$InternalInsetsInfo; -Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener; -Landroid/view/ViewTreeObserver$OnDrawListener; -Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener; -Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener; -Landroid/view/ViewTreeObserver$OnGlobalLayoutListener; -Landroid/view/ViewTreeObserver$OnPreDrawListener; -Landroid/view/ViewTreeObserver$OnScrollChangedListener; -Landroid/view/ViewTreeObserver$OnTouchModeChangeListener; -Landroid/view/ViewTreeObserver$OnWindowAttachListener; -Landroid/view/ViewTreeObserver$OnWindowFocusChangeListener; -Landroid/view/ViewTreeObserver$OnWindowShownListener; -Landroid/view/ViewTreeObserver$OnWindowVisibilityChangeListener; -Landroid/view/ViewTreeObserver; -Landroid/view/Window$Callback; -Landroid/view/Window$DecorCallback; -Landroid/view/Window$OnContentApplyWindowInsetsListener; -Landroid/view/Window$OnFrameMetricsAvailableListener; -Landroid/view/Window$OnWindowDismissedCallback; -Landroid/view/Window$OnWindowSwipeDismissedCallback; -Landroid/view/Window$WindowControllerCallback; -Landroid/view/Window; -Landroid/view/WindowAnimationFrameStats$1; -Landroid/view/WindowAnimationFrameStats; -Landroid/view/WindowCallbacks; -Landroid/view/WindowContentFrameStats$1; -Landroid/view/WindowContentFrameStats; -Landroid/view/WindowId$1; -Landroid/view/WindowId; -Landroid/view/WindowInsets$Builder; -Landroid/view/WindowInsets$Side; -Landroid/view/WindowInsets$Type; -Landroid/view/WindowInsets; -Landroid/view/WindowInsetsAnimation$Bounds; -Landroid/view/WindowInsetsAnimation$Callback; -Landroid/view/WindowInsetsAnimation; -Landroid/view/WindowInsetsAnimationControlListener; -Landroid/view/WindowInsetsAnimationController; -Landroid/view/WindowInsetsController$OnControllableInsetsChangedListener; -Landroid/view/WindowInsetsController; -Landroid/view/WindowLayout; -Landroid/view/WindowLeaked; -Landroid/view/WindowManager$BadTokenException; -Landroid/view/WindowManager$InvalidDisplayException; -Landroid/view/WindowManager$LayoutParams$1; -Landroid/view/WindowManager$LayoutParams; -Landroid/view/WindowManager; -Landroid/view/WindowManagerGlobal$$ExternalSyntheticLambda0; -Landroid/view/WindowManagerGlobal$1; -Landroid/view/WindowManagerGlobal$2; -Landroid/view/WindowManagerGlobal$TrustedPresentationListener; -Landroid/view/WindowManagerGlobal; -Landroid/view/WindowManagerImpl; -Landroid/view/WindowManagerPolicyConstants$PointerEventListener; -Landroid/view/WindowManagerPolicyConstants; -Landroid/view/WindowMetrics; -Landroid/view/WindowlessWindowLayout; -Landroid/view/WindowlessWindowManager; -Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher; -Landroid/view/accessibility/AccessibilityCache; -Landroid/view/accessibility/AccessibilityEvent$1; -Landroid/view/accessibility/AccessibilityEvent; -Landroid/view/accessibility/AccessibilityEventSource; -Landroid/view/accessibility/AccessibilityInteractionClient; -Landroid/view/accessibility/AccessibilityManager$$ExternalSyntheticLambda0; -Landroid/view/accessibility/AccessibilityManager$$ExternalSyntheticLambda1; -Landroid/view/accessibility/AccessibilityManager$$ExternalSyntheticLambda3; -Landroid/view/accessibility/AccessibilityManager$1$$ExternalSyntheticLambda0; -Landroid/view/accessibility/AccessibilityManager$1; -Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy; -Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener; -Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener; -Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener; -Landroid/view/accessibility/AccessibilityManager$MyCallback-IA; -Landroid/view/accessibility/AccessibilityManager$MyCallback; -Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener; -Landroid/view/accessibility/AccessibilityManager; -Landroid/view/accessibility/AccessibilityNodeIdManager; -Landroid/view/accessibility/AccessibilityNodeInfo$1; -Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction$1; -Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction; -Landroid/view/accessibility/AccessibilityNodeInfo$CollectionInfo; -Landroid/view/accessibility/AccessibilityNodeInfo$CollectionItemInfo; -Landroid/view/accessibility/AccessibilityNodeInfo$ExtraRenderingInfo; -Landroid/view/accessibility/AccessibilityNodeInfo$RangeInfo; -Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo$1; -Landroid/view/accessibility/AccessibilityNodeInfo$TouchDelegateInfo; -Landroid/view/accessibility/AccessibilityNodeInfo; -Landroid/view/accessibility/AccessibilityNodeProvider; -Landroid/view/accessibility/AccessibilityRecord; -Landroid/view/accessibility/AccessibilityRequestPreparer; -Landroid/view/accessibility/AccessibilityWindowAttributes$1; -Landroid/view/accessibility/AccessibilityWindowAttributes; -Landroid/view/accessibility/CaptioningManager$1; -Landroid/view/accessibility/CaptioningManager$CaptionStyle; -Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener; -Landroid/view/accessibility/CaptioningManager$MyContentObserver; -Landroid/view/accessibility/CaptioningManager; -Landroid/view/accessibility/DirectAccessibilityConnection; -Landroid/view/accessibility/Flags; -Landroid/view/accessibility/IAccessibilityEmbeddedConnection; -Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy; -Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub; -Landroid/view/accessibility/IAccessibilityInteractionConnection; -Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy; -Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub; -Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback; -Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy; -Landroid/view/accessibility/IAccessibilityManager$Stub; -Landroid/view/accessibility/IAccessibilityManager; -Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy; -Landroid/view/accessibility/IAccessibilityManagerClient$Stub; -Landroid/view/accessibility/IAccessibilityManagerClient; -Landroid/view/accessibility/WeakSparseArray$WeakReferenceWithId; -Landroid/view/accessibility/WeakSparseArray; -Landroid/view/animation/AccelerateDecelerateInterpolator; -Landroid/view/animation/AccelerateInterpolator; -Landroid/view/animation/AlphaAnimation; -Landroid/view/animation/Animation$1; -Landroid/view/animation/Animation$2; -Landroid/view/animation/Animation$3; -Landroid/view/animation/Animation$AnimationListener; -Landroid/view/animation/Animation$Description; -Landroid/view/animation/Animation$NoImagePreloadHolder; -Landroid/view/animation/Animation; -Landroid/view/animation/AnimationSet; -Landroid/view/animation/AnimationUtils$1; -Landroid/view/animation/AnimationUtils$AnimationState-IA; -Landroid/view/animation/AnimationUtils$AnimationState; -Landroid/view/animation/AnimationUtils; -Landroid/view/animation/AnticipateInterpolator; -Landroid/view/animation/AnticipateOvershootInterpolator; -Landroid/view/animation/BaseInterpolator; -Landroid/view/animation/BounceInterpolator; -Landroid/view/animation/ClipRectAnimation; -Landroid/view/animation/CycleInterpolator; -Landroid/view/animation/DecelerateInterpolator; -Landroid/view/animation/ExtendAnimation; -Landroid/view/animation/GridLayoutAnimationController; -Landroid/view/animation/Interpolator; -Landroid/view/animation/LayoutAnimationController; -Landroid/view/animation/LinearInterpolator; -Landroid/view/animation/OvershootInterpolator; -Landroid/view/animation/PathInterpolator; -Landroid/view/animation/RotateAnimation; -Landroid/view/animation/ScaleAnimation; -Landroid/view/animation/Transformation; -Landroid/view/animation/TranslateAnimation; -Landroid/view/autofill/AutofillClientController; -Landroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda0; -Landroid/view/autofill/AutofillFeatureFlags$$ExternalSyntheticLambda1; -Landroid/view/autofill/AutofillFeatureFlags; -Landroid/view/autofill/AutofillId$1; -Landroid/view/autofill/AutofillId-IA; -Landroid/view/autofill/AutofillId; -Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda0; -Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda1; -Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda2; -Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda3; -Landroid/view/autofill/AutofillManager$$ExternalSyntheticLambda4; -Landroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient-IA; -Landroid/view/autofill/AutofillManager$AugmentedAutofillManagerClient; -Landroid/view/autofill/AutofillManager$AutofillCallback; -Landroid/view/autofill/AutofillManager$AutofillClient; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda10; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda11; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda13; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda14; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda16; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda18; -Landroid/view/autofill/AutofillManager$AutofillManagerClient$$ExternalSyntheticLambda8; -Landroid/view/autofill/AutofillManager$AutofillManagerClient-IA; -Landroid/view/autofill/AutofillManager$AutofillManagerClient; -Landroid/view/autofill/AutofillManager$CompatibilityBridge; -Landroid/view/autofill/AutofillManager$TrackedViews; -Landroid/view/autofill/AutofillManager; -Landroid/view/autofill/AutofillManagerInternal; -Landroid/view/autofill/AutofillPopupWindow; -Landroid/view/autofill/AutofillValue$1; -Landroid/view/autofill/AutofillValue-IA; -Landroid/view/autofill/AutofillValue; -Landroid/view/autofill/Helper; -Landroid/view/autofill/IAugmentedAutofillManagerClient$Stub; -Landroid/view/autofill/IAugmentedAutofillManagerClient; -Landroid/view/autofill/IAutoFillManager$Stub$Proxy; -Landroid/view/autofill/IAutoFillManager$Stub; -Landroid/view/autofill/IAutoFillManager; -Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy; -Landroid/view/autofill/IAutoFillManagerClient$Stub; -Landroid/view/autofill/IAutoFillManagerClient; -Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy; -Landroid/view/autofill/IAutofillWindowPresenter$Stub; -Landroid/view/autofill/IAutofillWindowPresenter; -Landroid/view/autofill/ParcelableMap$1; -Landroid/view/autofill/ParcelableMap; -Landroid/view/contentcapture/ContentCaptureCondition$1; -Landroid/view/contentcapture/ContentCaptureCondition; -Landroid/view/contentcapture/ContentCaptureContext$1; -Landroid/view/contentcapture/ContentCaptureContext$Builder; -Landroid/view/contentcapture/ContentCaptureContext; -Landroid/view/contentcapture/ContentCaptureEvent$1; -Landroid/view/contentcapture/ContentCaptureEvent; -Landroid/view/contentcapture/ContentCaptureHelper; -Landroid/view/contentcapture/ContentCaptureManager$ContentCaptureClient; -Landroid/view/contentcapture/ContentCaptureManager$LocalDataShareAdapterResourceManager-IA; -Landroid/view/contentcapture/ContentCaptureManager$LocalDataShareAdapterResourceManager; -Landroid/view/contentcapture/ContentCaptureManager$StrippedContext; -Landroid/view/contentcapture/ContentCaptureManager; -Landroid/view/contentcapture/ContentCaptureSession; -Landroid/view/contentcapture/ContentCaptureSessionId$1; -Landroid/view/contentcapture/ContentCaptureSessionId; -Landroid/view/contentcapture/DataRemovalRequest$1; -Landroid/view/contentcapture/DataRemovalRequest$LocusIdRequest; -Landroid/view/contentcapture/DataRemovalRequest; -Landroid/view/contentcapture/DataShareRequest$1; -Landroid/view/contentcapture/DataShareRequest; -Landroid/view/contentcapture/IContentCaptureDirectManager$Stub$Proxy; -Landroid/view/contentcapture/IContentCaptureDirectManager$Stub; -Landroid/view/contentcapture/IContentCaptureDirectManager; -Landroid/view/contentcapture/IContentCaptureManager$Stub$Proxy; -Landroid/view/contentcapture/IContentCaptureManager$Stub; -Landroid/view/contentcapture/IContentCaptureManager; -Landroid/view/contentcapture/IContentCaptureOptionsCallback$Stub; -Landroid/view/contentcapture/IContentCaptureOptionsCallback; -Landroid/view/contentcapture/IDataShareWriteAdapter$Stub$Proxy; -Landroid/view/contentcapture/IDataShareWriteAdapter$Stub; -Landroid/view/contentcapture/IDataShareWriteAdapter; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda0; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda10; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda11; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda12; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda13; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda1; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda2; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda3; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda4; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda5; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda6; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda8; -Landroid/view/contentcapture/MainContentCaptureSession$$ExternalSyntheticLambda9; -Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda0; -Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver$$ExternalSyntheticLambda1; -Landroid/view/contentcapture/MainContentCaptureSession$SessionStateReceiver; -Landroid/view/contentcapture/MainContentCaptureSession; -Landroid/view/contentcapture/ViewNode$ViewNodeText; -Landroid/view/contentcapture/ViewNode$ViewStructureImpl; -Landroid/view/contentcapture/ViewNode; -Landroid/view/contentprotection/ContentProtectionEventProcessor; -Landroid/view/displayhash/DisplayHash$1; -Landroid/view/displayhash/DisplayHash; -Landroid/view/displayhash/DisplayHashManager; -Landroid/view/displayhash/DisplayHashResultCallback; -Landroid/view/flags/FeatureFlags; -Landroid/view/flags/FeatureFlagsImpl; -Landroid/view/flags/Flags; -Landroid/view/inputmethod/BaseInputConnection; -Landroid/view/inputmethod/CancellableHandwritingGesture; -Landroid/view/inputmethod/CompletionInfo$1; -Landroid/view/inputmethod/CompletionInfo; -Landroid/view/inputmethod/ComposingText; -Landroid/view/inputmethod/CorrectionInfo$1; -Landroid/view/inputmethod/CorrectionInfo; -Landroid/view/inputmethod/CursorAnchorInfo$1; -Landroid/view/inputmethod/CursorAnchorInfo$Builder; -Landroid/view/inputmethod/CursorAnchorInfo; -Landroid/view/inputmethod/DeleteGesture$1; -Landroid/view/inputmethod/DeleteGesture; -Landroid/view/inputmethod/DeleteRangeGesture$1; -Landroid/view/inputmethod/DeleteRangeGesture; -Landroid/view/inputmethod/DumpableInputConnection; -Landroid/view/inputmethod/EditorBoundsInfo$1; -Landroid/view/inputmethod/EditorBoundsInfo$Builder; -Landroid/view/inputmethod/EditorBoundsInfo; -Landroid/view/inputmethod/EditorInfo$1; -Landroid/view/inputmethod/EditorInfo; -Landroid/view/inputmethod/ExtractedText$1; -Landroid/view/inputmethod/ExtractedText; -Landroid/view/inputmethod/ExtractedTextRequest$1; -Landroid/view/inputmethod/ExtractedTextRequest; -Landroid/view/inputmethod/Flags; -Landroid/view/inputmethod/HandwritingGesture; -Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker$$ExternalSyntheticLambda0; -Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker$$ExternalSyntheticLambda1; -Landroid/view/inputmethod/IAccessibilityInputMethodSessionInvoker; -Landroid/view/inputmethod/IInputMethodManagerGlobalInvoker; -Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda0; -Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda3; -Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda4; -Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda5; -Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda6; -Landroid/view/inputmethod/IInputMethodSessionInvoker$$ExternalSyntheticLambda8; -Landroid/view/inputmethod/IInputMethodSessionInvoker; -Landroid/view/inputmethod/ImeTracker$1$$ExternalSyntheticLambda0; -Landroid/view/inputmethod/ImeTracker$1; -Landroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda0; -Landroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda1; -Landroid/view/inputmethod/ImeTracker$Debug$$ExternalSyntheticLambda2; -Landroid/view/inputmethod/ImeTracker$Debug; -Landroid/view/inputmethod/ImeTracker$ImeJankTracker-IA; -Landroid/view/inputmethod/ImeTracker$ImeJankTracker; -Landroid/view/inputmethod/ImeTracker$ImeLatencyTracker-IA; -Landroid/view/inputmethod/ImeTracker$ImeLatencyTracker; -Landroid/view/inputmethod/ImeTracker$InputMethodJankContext; -Landroid/view/inputmethod/ImeTracker$InputMethodLatencyContext; -Landroid/view/inputmethod/ImeTracker$Token$1; -Landroid/view/inputmethod/ImeTracker$Token-IA; -Landroid/view/inputmethod/ImeTracker$Token; -Landroid/view/inputmethod/ImeTracker; -Landroid/view/inputmethod/InlineSuggestionsRequest$1; -Landroid/view/inputmethod/InlineSuggestionsRequest; -Landroid/view/inputmethod/InlineSuggestionsResponse$1; -Landroid/view/inputmethod/InlineSuggestionsResponse; -Landroid/view/inputmethod/InputBinding$1; -Landroid/view/inputmethod/InputBinding; -Landroid/view/inputmethod/InputConnection; -Landroid/view/inputmethod/InputConnectionWrapper; -Landroid/view/inputmethod/InputContentInfo$1; -Landroid/view/inputmethod/InputContentInfo; -Landroid/view/inputmethod/InputMethod$SessionCallback; -Landroid/view/inputmethod/InputMethod; -Landroid/view/inputmethod/InputMethodInfo$1; -Landroid/view/inputmethod/InputMethodInfo; -Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda0; -Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda1; -Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda2; -Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda3; -Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda4; -Landroid/view/inputmethod/InputMethodManager$$ExternalSyntheticLambda5; -Landroid/view/inputmethod/InputMethodManager$1; -Landroid/view/inputmethod/InputMethodManager$2; -Landroid/view/inputmethod/InputMethodManager$6; -Landroid/view/inputmethod/InputMethodManager$BindState; -Landroid/view/inputmethod/InputMethodManager$DelegateImpl-IA; -Landroid/view/inputmethod/InputMethodManager$DelegateImpl; -Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback; -Landroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda0; -Landroid/view/inputmethod/InputMethodManager$H$$ExternalSyntheticLambda1; -Landroid/view/inputmethod/InputMethodManager$H; -Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender; -Landroid/view/inputmethod/InputMethodManager$PendingEvent-IA; -Landroid/view/inputmethod/InputMethodManager$PendingEvent; -Landroid/view/inputmethod/InputMethodManager$ReportInputConnectionOpenedRunner; -Landroid/view/inputmethod/InputMethodManager; -Landroid/view/inputmethod/InputMethodManagerGlobal; -Landroid/view/inputmethod/InputMethodSession$EventCallback; -Landroid/view/inputmethod/InputMethodSession; -Landroid/view/inputmethod/InputMethodSubtype$1; -Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder; -Landroid/view/inputmethod/InputMethodSubtype; -Landroid/view/inputmethod/InputMethodSubtypeArray; -Landroid/view/inputmethod/InsertGesture$1; -Landroid/view/inputmethod/InsertGesture; -Landroid/view/inputmethod/InsertModeGesture$1; -Landroid/view/inputmethod/InsertModeGesture; -Landroid/view/inputmethod/JoinOrSplitGesture$1; -Landroid/view/inputmethod/JoinOrSplitGesture; -Landroid/view/inputmethod/ParcelableHandwritingGesture$1; -Landroid/view/inputmethod/ParcelableHandwritingGesture; -Landroid/view/inputmethod/PreviewableHandwritingGesture; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda11; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda12; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda16; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda1; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda24; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda25; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda27; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda28; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda36; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda37; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda39; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda40; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda42; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda50; -Landroid/view/inputmethod/RemoteInputConnectionImpl$$ExternalSyntheticLambda8; -Landroid/view/inputmethod/RemoteInputConnectionImpl$1; -Landroid/view/inputmethod/RemoteInputConnectionImpl$KnownAlwaysTrueEndBatchEditCache; -Landroid/view/inputmethod/RemoteInputConnectionImpl; -Landroid/view/inputmethod/RemoveSpaceGesture$1; -Landroid/view/inputmethod/RemoveSpaceGesture; -Landroid/view/inputmethod/SelectGesture$1; -Landroid/view/inputmethod/SelectGesture; -Landroid/view/inputmethod/SelectRangeGesture$1; -Landroid/view/inputmethod/SelectRangeGesture; -Landroid/view/inputmethod/SparseRectFArray$1; -Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder; -Landroid/view/inputmethod/SparseRectFArray; -Landroid/view/inputmethod/SurroundingText$1; -Landroid/view/inputmethod/SurroundingText; -Landroid/view/inputmethod/TextAppearanceInfo$1; -Landroid/view/inputmethod/TextAppearanceInfo$Builder; -Landroid/view/inputmethod/TextAppearanceInfo; -Landroid/view/inputmethod/TextAttribute$1; -Landroid/view/inputmethod/TextAttribute; -Landroid/view/inputmethod/TextSnapshot; -Landroid/view/inputmethod/ViewFocusParameterInfo; -Landroid/view/textclassifier/ConversationAction$1; -Landroid/view/textclassifier/ConversationAction$Builder; -Landroid/view/textclassifier/ConversationAction-IA; -Landroid/view/textclassifier/ConversationAction; -Landroid/view/textclassifier/ConversationActions$1; -Landroid/view/textclassifier/ConversationActions$Message$1; -Landroid/view/textclassifier/ConversationActions$Message$Builder; -Landroid/view/textclassifier/ConversationActions$Message-IA; -Landroid/view/textclassifier/ConversationActions$Message; -Landroid/view/textclassifier/ConversationActions$Request$1; -Landroid/view/textclassifier/ConversationActions$Request$Builder; -Landroid/view/textclassifier/ConversationActions$Request; -Landroid/view/textclassifier/ConversationActions-IA; -Landroid/view/textclassifier/ConversationActions; -Landroid/view/textclassifier/EntityConfidence$$ExternalSyntheticLambda0; -Landroid/view/textclassifier/EntityConfidence$1; -Landroid/view/textclassifier/EntityConfidence-IA; -Landroid/view/textclassifier/EntityConfidence; -Landroid/view/textclassifier/ExtrasUtils; -Landroid/view/textclassifier/Log; -Landroid/view/textclassifier/SelectionEvent$1; -Landroid/view/textclassifier/SelectionEvent; -Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser; -Landroid/view/textclassifier/SelectionSessionLogger; -Landroid/view/textclassifier/SystemTextClassifier$BlockingCallback; -Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver-IA; -Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver; -Landroid/view/textclassifier/SystemTextClassifier; -Landroid/view/textclassifier/SystemTextClassifierMetadata$1; -Landroid/view/textclassifier/SystemTextClassifierMetadata; -Landroid/view/textclassifier/TextClassification$$ExternalSyntheticLambda0; -Landroid/view/textclassifier/TextClassification$1; -Landroid/view/textclassifier/TextClassification$Builder; -Landroid/view/textclassifier/TextClassification$Request$1; -Landroid/view/textclassifier/TextClassification$Request$Builder; -Landroid/view/textclassifier/TextClassification$Request; -Landroid/view/textclassifier/TextClassification-IA; -Landroid/view/textclassifier/TextClassification; -Landroid/view/textclassifier/TextClassificationConstants; -Landroid/view/textclassifier/TextClassificationContext$1; -Landroid/view/textclassifier/TextClassificationContext$Builder; -Landroid/view/textclassifier/TextClassificationContext-IA; -Landroid/view/textclassifier/TextClassificationContext; -Landroid/view/textclassifier/TextClassificationManager$$ExternalSyntheticLambda0; -Landroid/view/textclassifier/TextClassificationManager; -Landroid/view/textclassifier/TextClassificationSession$CleanerRunnable; -Landroid/view/textclassifier/TextClassificationSession$SelectionEventHelper; -Landroid/view/textclassifier/TextClassificationSession; -Landroid/view/textclassifier/TextClassificationSessionFactory; -Landroid/view/textclassifier/TextClassificationSessionId$1; -Landroid/view/textclassifier/TextClassificationSessionId; -Landroid/view/textclassifier/TextClassifier$1; -Landroid/view/textclassifier/TextClassifier$EntityConfig$1; -Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder; -Landroid/view/textclassifier/TextClassifier$EntityConfig-IA; -Landroid/view/textclassifier/TextClassifier$EntityConfig; -Landroid/view/textclassifier/TextClassifier$Utils; -Landroid/view/textclassifier/TextClassifier; -Landroid/view/textclassifier/TextClassifierEvent$1; -Landroid/view/textclassifier/TextClassifierEvent$Builder; -Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent$1; -Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent-IA; -Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent; -Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent$1; -Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent-IA; -Landroid/view/textclassifier/TextClassifierEvent$LanguageDetectionEvent; -Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent$1; -Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent-IA; -Landroid/view/textclassifier/TextClassifierEvent$TextLinkifyEvent; -Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent$1; -Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent-IA; -Landroid/view/textclassifier/TextClassifierEvent$TextSelectionEvent; -Landroid/view/textclassifier/TextClassifierEvent-IA; -Landroid/view/textclassifier/TextClassifierEvent; -Landroid/view/textclassifier/TextLanguage$1; -Landroid/view/textclassifier/TextLanguage$Builder; -Landroid/view/textclassifier/TextLanguage$Request$1; -Landroid/view/textclassifier/TextLanguage$Request$Builder; -Landroid/view/textclassifier/TextLanguage$Request; -Landroid/view/textclassifier/TextLanguage; -Landroid/view/textclassifier/TextLinks$1; -Landroid/view/textclassifier/TextLinks$Builder; -Landroid/view/textclassifier/TextLinks$Request$1; -Landroid/view/textclassifier/TextLinks$Request; -Landroid/view/textclassifier/TextLinks$TextLink$1; -Landroid/view/textclassifier/TextLinks$TextLink; -Landroid/view/textclassifier/TextLinks$TextLinkSpan; -Landroid/view/textclassifier/TextLinks; -Landroid/view/textclassifier/TextSelection$1; -Landroid/view/textclassifier/TextSelection$Request$1; -Landroid/view/textclassifier/TextSelection$Request$Builder; -Landroid/view/textclassifier/TextSelection$Request; -Landroid/view/textclassifier/TextSelection; -Landroid/view/textservice/SentenceSuggestionsInfo$1; -Landroid/view/textservice/SentenceSuggestionsInfo; -Landroid/view/textservice/SpellCheckerInfo$1; -Landroid/view/textservice/SpellCheckerInfo; -Landroid/view/textservice/SpellCheckerSession$InternalListener; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$1; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams$Builder; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams-IA; -Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionParams; -Landroid/view/textservice/SpellCheckerSession; -Landroid/view/textservice/SpellCheckerSubtype$1; -Landroid/view/textservice/SpellCheckerSubtype; -Landroid/view/textservice/SuggestionsInfo$1; -Landroid/view/textservice/SuggestionsInfo; -Landroid/view/textservice/TextInfo$1; -Landroid/view/textservice/TextInfo; -Landroid/view/textservice/TextServicesManager; -Landroid/view/translation/TranslationCapability$1; -Landroid/view/translation/TranslationCapability; -Landroid/view/translation/TranslationManager; -Landroid/view/translation/TranslationSpec$1; -Landroid/view/translation/TranslationSpec; -Landroid/view/translation/Translator$ServiceBinderReceiver$TimeoutException; -Landroid/view/translation/UiTranslationController; -Landroid/view/translation/UiTranslationManager; -Landroid/view/translation/UiTranslationSpec$1; -Landroid/view/translation/UiTranslationSpec; -Landroid/view/translation/ViewTranslationCallback; -Landroid/view/translation/ViewTranslationResponse$1; -Landroid/view/translation/ViewTranslationResponse; -Landroid/webkit/ConsoleMessage$MessageLevel; -Landroid/webkit/ConsoleMessage; -Landroid/webkit/CookieManager; -Landroid/webkit/CookieSyncManager; -Landroid/webkit/DownloadListener; -Landroid/webkit/FeatureFlags; -Landroid/webkit/FeatureFlagsImpl; -Landroid/webkit/FindAddress$ZipRange; -Landroid/webkit/FindAddress; -Landroid/webkit/Flags; -Landroid/webkit/GeolocationPermissions$Callback; -Landroid/webkit/GeolocationPermissions; -Landroid/webkit/HttpAuthHandler; -Landroid/webkit/IWebViewUpdateService$Stub$Proxy; -Landroid/webkit/IWebViewUpdateService$Stub; -Landroid/webkit/IWebViewUpdateService; -Landroid/webkit/JavascriptInterface; -Landroid/webkit/MimeTypeMap; -Landroid/webkit/PacProcessor; -Landroid/webkit/PermissionRequest; -Landroid/webkit/RenderProcessGoneDetail; -Landroid/webkit/ServiceWorkerClient; -Landroid/webkit/ServiceWorkerController; -Landroid/webkit/ServiceWorkerWebSettings; -Landroid/webkit/TokenBindingService; -Landroid/webkit/TracingController; -Landroid/webkit/URLUtil; -Landroid/webkit/UserPackage; -Landroid/webkit/ValueCallback; -Landroid/webkit/WebBackForwardList; -Landroid/webkit/WebChromeClient$CustomViewCallback; -Landroid/webkit/WebChromeClient; -Landroid/webkit/WebIconDatabase; -Landroid/webkit/WebMessage; -Landroid/webkit/WebMessagePort; -Landroid/webkit/WebResourceError; -Landroid/webkit/WebResourceRequest; -Landroid/webkit/WebResourceResponse; -Landroid/webkit/WebSettings$LayoutAlgorithm; -Landroid/webkit/WebSettings$PluginState; -Landroid/webkit/WebSettings$RenderPriority; -Landroid/webkit/WebSettings$ZoomDensity; -Landroid/webkit/WebSettings; -Landroid/webkit/WebStorage; -Landroid/webkit/WebSyncManager; -Landroid/webkit/WebView$FindListener; -Landroid/webkit/WebView$HitTestResult; -Landroid/webkit/WebView$PictureListener; -Landroid/webkit/WebView$PrivateAccess; -Landroid/webkit/WebView$VisualStateCallback; -Landroid/webkit/WebView; -Landroid/webkit/WebViewClient; -Landroid/webkit/WebViewDatabase; -Landroid/webkit/WebViewDelegate$1; -Landroid/webkit/WebViewDelegate$OnTraceEnabledChangeListener; -Landroid/webkit/WebViewDelegate; -Landroid/webkit/WebViewFactory$MissingWebViewPackageException; -Landroid/webkit/WebViewFactory$StartupTimestamps; -Landroid/webkit/WebViewFactory; -Landroid/webkit/WebViewFactoryProvider$Statics; -Landroid/webkit/WebViewFactoryProvider; -Landroid/webkit/WebViewLibraryLoader$1; -Landroid/webkit/WebViewLibraryLoader$RelroFileCreator; -Landroid/webkit/WebViewLibraryLoader; -Landroid/webkit/WebViewProvider$ScrollDelegate; -Landroid/webkit/WebViewProvider$ViewDelegate; -Landroid/webkit/WebViewProvider; -Landroid/webkit/WebViewProviderInfo$1; -Landroid/webkit/WebViewProviderInfo; -Landroid/webkit/WebViewProviderResponse$1; -Landroid/webkit/WebViewProviderResponse-IA; -Landroid/webkit/WebViewProviderResponse; -Landroid/webkit/WebViewRenderProcess; -Landroid/webkit/WebViewRenderProcessClient; -Landroid/webkit/WebViewUpdateManager; -Landroid/webkit/WebViewUpdateService; -Landroid/webkit/WebViewZygote; -Landroid/widget/AbsListView$1; -Landroid/widget/AbsListView$2; -Landroid/widget/AbsListView$3; -Landroid/widget/AbsListView$4; -Landroid/widget/AbsListView$AbsPositionScroller; -Landroid/widget/AbsListView$AdapterDataSetObserver; -Landroid/widget/AbsListView$CheckForKeyLongPress-IA; -Landroid/widget/AbsListView$CheckForKeyLongPress; -Landroid/widget/AbsListView$CheckForLongPress; -Landroid/widget/AbsListView$CheckForTap-IA; -Landroid/widget/AbsListView$CheckForTap; -Landroid/widget/AbsListView$DeviceConfigChangeListener-IA; -Landroid/widget/AbsListView$DeviceConfigChangeListener; -Landroid/widget/AbsListView$FlingRunnable$1; -Landroid/widget/AbsListView$FlingRunnable; -Landroid/widget/AbsListView$InputConnectionWrapper; -Landroid/widget/AbsListView$LayoutParams; -Landroid/widget/AbsListView$ListItemAccessibilityDelegate; -Landroid/widget/AbsListView$MultiChoiceModeListener; -Landroid/widget/AbsListView$MultiChoiceModeWrapper; -Landroid/widget/AbsListView$OnScrollListener; -Landroid/widget/AbsListView$PerformClick-IA; -Landroid/widget/AbsListView$PerformClick; -Landroid/widget/AbsListView$PositionScroller; -Landroid/widget/AbsListView$RecycleBin; -Landroid/widget/AbsListView$RecyclerListener; -Landroid/widget/AbsListView$SavedState$1; -Landroid/widget/AbsListView$SavedState; -Landroid/widget/AbsListView$SelectionBoundsAdjuster; -Landroid/widget/AbsListView$WindowRunnnable-IA; -Landroid/widget/AbsListView$WindowRunnnable; -Landroid/widget/AbsListView; -Landroid/widget/AbsSeekBar; -Landroid/widget/AbsSpinner$RecycleBin; -Landroid/widget/AbsSpinner$SavedState$1; -Landroid/widget/AbsSpinner$SavedState; -Landroid/widget/AbsSpinner; -Landroid/widget/AbsoluteLayout$LayoutParams; -Landroid/widget/AbsoluteLayout; -Landroid/widget/ActionMenuPresenter$1; -Landroid/widget/ActionMenuPresenter$2; -Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu; -Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback; -Landroid/widget/ActionMenuPresenter$OpenOverflowRunnable; -Landroid/widget/ActionMenuPresenter$OverflowMenuButton$1; -Landroid/widget/ActionMenuPresenter$OverflowMenuButton; -Landroid/widget/ActionMenuPresenter$OverflowPopup; -Landroid/widget/ActionMenuPresenter$PopupPresenterCallback; -Landroid/widget/ActionMenuPresenter; -Landroid/widget/ActionMenuView$ActionMenuChildView; -Landroid/widget/ActionMenuView$ActionMenuPresenterCallback; -Landroid/widget/ActionMenuView$LayoutParams; -Landroid/widget/ActionMenuView$MenuBuilderCallback; -Landroid/widget/ActionMenuView$OnMenuItemClickListener; -Landroid/widget/ActionMenuView; -Landroid/widget/Adapter; -Landroid/widget/AdapterView$AdapterContextMenuInfo; -Landroid/widget/AdapterView$AdapterDataSetObserver; -Landroid/widget/AdapterView$OnItemClickListener; -Landroid/widget/AdapterView$OnItemLongClickListener; -Landroid/widget/AdapterView$OnItemSelectedListener; -Landroid/widget/AdapterView$SelectionNotifier; -Landroid/widget/AdapterView; -Landroid/widget/ArrayAdapter; -Landroid/widget/AutoCompleteTextView$$ExternalSyntheticLambda0; -Landroid/widget/AutoCompleteTextView$$ExternalSyntheticLambda1; -Landroid/widget/AutoCompleteTextView$DropDownItemClickListener-IA; -Landroid/widget/AutoCompleteTextView$DropDownItemClickListener; -Landroid/widget/AutoCompleteTextView$MyWatcher-IA; -Landroid/widget/AutoCompleteTextView$MyWatcher; -Landroid/widget/AutoCompleteTextView$PassThroughClickListener-IA; -Landroid/widget/AutoCompleteTextView$PassThroughClickListener; -Landroid/widget/AutoCompleteTextView$Validator; -Landroid/widget/AutoCompleteTextView; -Landroid/widget/BaseAdapter; -Landroid/widget/Button; -Landroid/widget/CheckBox; -Landroid/widget/Checkable; -Landroid/widget/CheckedTextView; -Landroid/widget/Chronometer$1; -Landroid/widget/Chronometer$OnChronometerTickListener; -Landroid/widget/Chronometer; -Landroid/widget/CompoundButton$OnCheckedChangeListener; -Landroid/widget/CompoundButton$SavedState$1; -Landroid/widget/CompoundButton$SavedState; -Landroid/widget/CompoundButton; -Landroid/widget/DateTimeView$ReceiverInfo$1; -Landroid/widget/DateTimeView$ReceiverInfo$2; -Landroid/widget/DateTimeView$ReceiverInfo; -Landroid/widget/DateTimeView; -Landroid/widget/DropDownListView; -Landroid/widget/EdgeEffect; -Landroid/widget/EditText; -Landroid/widget/Editor$$ExternalSyntheticLambda0; -Landroid/widget/Editor$$ExternalSyntheticLambda1; -Landroid/widget/Editor$$ExternalSyntheticLambda2; -Landroid/widget/Editor$1; -Landroid/widget/Editor$2; -Landroid/widget/Editor$3; -Landroid/widget/Editor$5; -Landroid/widget/Editor$AccessibilitySmartActions-IA; -Landroid/widget/Editor$AccessibilitySmartActions; -Landroid/widget/Editor$Blink-IA; -Landroid/widget/Editor$Blink; -Landroid/widget/Editor$CorrectionHighlighter; -Landroid/widget/Editor$CursorAnchorInfoNotifier-IA; -Landroid/widget/Editor$CursorAnchorInfoNotifier; -Landroid/widget/Editor$CursorController; -Landroid/widget/Editor$EasyEditDeleteListener; -Landroid/widget/Editor$EasyEditPopupWindow-IA; -Landroid/widget/Editor$EasyEditPopupWindow; -Landroid/widget/Editor$EditOperation$1; -Landroid/widget/Editor$EditOperation; -Landroid/widget/Editor$ErrorPopup; -Landroid/widget/Editor$HandleView-IA; -Landroid/widget/Editor$HandleView; -Landroid/widget/Editor$InputContentType; -Landroid/widget/Editor$InputMethodState; -Landroid/widget/Editor$InsertModeController; -Landroid/widget/Editor$InsertionHandleView$1; -Landroid/widget/Editor$InsertionHandleView; -Landroid/widget/Editor$InsertionPointCursorController$1; -Landroid/widget/Editor$InsertionPointCursorController; -Landroid/widget/Editor$MagnifierMotionAnimator; -Landroid/widget/Editor$PinnedPopupWindow; -Landroid/widget/Editor$PositionListener-IA; -Landroid/widget/Editor$PositionListener; -Landroid/widget/Editor$ProcessTextIntentActionsHandler-IA; -Landroid/widget/Editor$ProcessTextIntentActionsHandler; -Landroid/widget/Editor$SelectionHandleView; -Landroid/widget/Editor$SelectionModifierCursorController; -Landroid/widget/Editor$SpanController$1; -Landroid/widget/Editor$SpanController$2; -Landroid/widget/Editor$SpanController-IA; -Landroid/widget/Editor$SpanController; -Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator-IA; -Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator; -Landroid/widget/Editor$SuggestionHelper-IA; -Landroid/widget/Editor$SuggestionHelper; -Landroid/widget/Editor$SuggestionsPopupWindow; -Landroid/widget/Editor$TextRenderNode; -Landroid/widget/Editor$TextViewPositionListener; -Landroid/widget/Editor$UndoInputFilter; -Landroid/widget/Editor; -Landroid/widget/EditorTouchState; -Landroid/widget/FastScroller$1; -Landroid/widget/FastScroller$2; -Landroid/widget/FastScroller$3; -Landroid/widget/FastScroller$4; -Landroid/widget/FastScroller$5; -Landroid/widget/FastScroller$6; -Landroid/widget/FastScroller; -Landroid/widget/Filter$Delayer; -Landroid/widget/Filter$FilterListener; -Landroid/widget/Filter$FilterResults; -Landroid/widget/Filter$RequestArguments; -Landroid/widget/Filter$RequestHandler; -Landroid/widget/Filter$ResultsHandler-IA; -Landroid/widget/Filter$ResultsHandler; -Landroid/widget/Filter; -Landroid/widget/Filterable; -Landroid/widget/ForwardingListener; -Landroid/widget/FrameLayout$LayoutParams; -Landroid/widget/FrameLayout; -Landroid/widget/GridLayout$1; -Landroid/widget/GridLayout$2; -Landroid/widget/GridLayout$3; -Landroid/widget/GridLayout$4; -Landroid/widget/GridLayout$5; -Landroid/widget/GridLayout$6; -Landroid/widget/GridLayout$7$1; -Landroid/widget/GridLayout$7; -Landroid/widget/GridLayout$8; -Landroid/widget/GridLayout$Alignment; -Landroid/widget/GridLayout$Arc; -Landroid/widget/GridLayout$Assoc; -Landroid/widget/GridLayout$Axis$1; -Landroid/widget/GridLayout$Axis-IA; -Landroid/widget/GridLayout$Axis; -Landroid/widget/GridLayout$Bounds; -Landroid/widget/GridLayout$Interval; -Landroid/widget/GridLayout$LayoutParams; -Landroid/widget/GridLayout$MutableInt; -Landroid/widget/GridLayout$PackedMap-IA; -Landroid/widget/GridLayout$PackedMap; -Landroid/widget/GridLayout$Spec; -Landroid/widget/GridLayout; -Landroid/widget/HeaderViewListAdapter; -Landroid/widget/HorizontalScrollView$SavedState$1; -Landroid/widget/HorizontalScrollView$SavedState; -Landroid/widget/HorizontalScrollView; -Landroid/widget/ImageButton; -Landroid/widget/ImageView$ImageDrawableCallback; -Landroid/widget/ImageView$ScaleType; -Landroid/widget/ImageView; -Landroid/widget/LinearLayout$LayoutParams; -Landroid/widget/LinearLayout; -Landroid/widget/ListAdapter; -Landroid/widget/ListPopupWindow$ListSelectorHider-IA; -Landroid/widget/ListPopupWindow$ListSelectorHider; -Landroid/widget/ListPopupWindow$PopupDataSetObserver-IA; -Landroid/widget/ListPopupWindow$PopupDataSetObserver; -Landroid/widget/ListPopupWindow$PopupScrollListener-IA; -Landroid/widget/ListPopupWindow$PopupScrollListener; -Landroid/widget/ListPopupWindow$PopupTouchInterceptor-IA; -Landroid/widget/ListPopupWindow$PopupTouchInterceptor; -Landroid/widget/ListPopupWindow$ResizePopupRunnable-IA; -Landroid/widget/ListPopupWindow$ResizePopupRunnable; -Landroid/widget/ListPopupWindow; -Landroid/widget/ListView$ArrowScrollFocusResult-IA; -Landroid/widget/ListView$ArrowScrollFocusResult; -Landroid/widget/ListView$FixedViewInfo; -Landroid/widget/ListView$FocusSelector-IA; -Landroid/widget/ListView$FocusSelector; -Landroid/widget/ListView; -Landroid/widget/Magnifier$Builder; -Landroid/widget/Magnifier$InternalPopupWindow; -Landroid/widget/Magnifier; -Landroid/widget/MediaController$MediaPlayerControl; -Landroid/widget/MultiAutoCompleteTextView$Tokenizer; -Landroid/widget/MultiAutoCompleteTextView; -Landroid/widget/OverScroller$SplineOverScroller; -Landroid/widget/OverScroller; -Landroid/widget/PopupMenu$1; -Landroid/widget/PopupMenu$2; -Landroid/widget/PopupMenu$OnMenuItemClickListener; -Landroid/widget/PopupMenu; -Landroid/widget/PopupWindow$$ExternalSyntheticLambda0; -Landroid/widget/PopupWindow$$ExternalSyntheticLambda1; -Landroid/widget/PopupWindow$1; -Landroid/widget/PopupWindow$2; -Landroid/widget/PopupWindow$3; -Landroid/widget/PopupWindow$OnDismissListener; -Landroid/widget/PopupWindow$PopupBackgroundView; -Landroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda0; -Landroid/widget/PopupWindow$PopupDecorView$$ExternalSyntheticLambda1; -Landroid/widget/PopupWindow$PopupDecorView$1$1; -Landroid/widget/PopupWindow$PopupDecorView$1; -Landroid/widget/PopupWindow$PopupDecorView$2; -Landroid/widget/PopupWindow$PopupDecorView$3; -Landroid/widget/PopupWindow$PopupDecorView$4; -Landroid/widget/PopupWindow$PopupDecorView; -Landroid/widget/PopupWindow; -Landroid/widget/ProgressBar$1; -Landroid/widget/ProgressBar$2; -Landroid/widget/ProgressBar$ProgressTintInfo-IA; -Landroid/widget/ProgressBar$ProgressTintInfo; -Landroid/widget/ProgressBar$RefreshData; -Landroid/widget/ProgressBar$RefreshProgressRunnable-IA; -Landroid/widget/ProgressBar$RefreshProgressRunnable; -Landroid/widget/ProgressBar$SavedState$1; -Landroid/widget/ProgressBar$SavedState-IA; -Landroid/widget/ProgressBar$SavedState; -Landroid/widget/ProgressBar; -Landroid/widget/QuickContactBadge; -Landroid/widget/RadioButton; -Landroid/widget/RadioGroup$OnCheckedChangeListener; -Landroid/widget/RadioGroup; -Landroid/widget/RatingBar; -Landroid/widget/RelativeLayout$DependencyGraph$Node; -Landroid/widget/RelativeLayout$DependencyGraph-IA; -Landroid/widget/RelativeLayout$DependencyGraph; -Landroid/widget/RelativeLayout$LayoutParams; -Landroid/widget/RelativeLayout$TopToBottomLeftToRightComparator; -Landroid/widget/RelativeLayout; -Landroid/widget/RemoteViews$$ExternalSyntheticLambda0; -Landroid/widget/RemoteViews$$ExternalSyntheticLambda1; -Landroid/widget/RemoteViews$$ExternalSyntheticLambda2; -Landroid/widget/RemoteViews$1; -Landroid/widget/RemoteViews$2; -Landroid/widget/RemoteViews$Action-IA; -Landroid/widget/RemoteViews$Action; -Landroid/widget/RemoteViews$ActionException; -Landroid/widget/RemoteViews$ApplicationInfoCache$$ExternalSyntheticLambda0; -Landroid/widget/RemoteViews$ApplicationInfoCache; -Landroid/widget/RemoteViews$AsyncApplyTask; -Landroid/widget/RemoteViews$AttributeReflectionAction; -Landroid/widget/RemoteViews$BaseReflectionAction; -Landroid/widget/RemoteViews$BitmapCache; -Landroid/widget/RemoteViews$BitmapReflectionAction; -Landroid/widget/RemoteViews$ComplexUnitDimensionReflectionAction; -Landroid/widget/RemoteViews$HierarchyRootData; -Landroid/widget/RemoteViews$InteractionHandler; -Landroid/widget/RemoteViews$LayoutParamAction; -Landroid/widget/RemoteViews$MethodArgs; -Landroid/widget/RemoteViews$MethodKey; -Landroid/widget/RemoteViews$NightModeReflectionAction; -Landroid/widget/RemoteViews$OnViewAppliedListener; -Landroid/widget/RemoteViews$ReflectionAction; -Landroid/widget/RemoteViews$RemoteCollectionCache; -Landroid/widget/RemoteViews$RemoteCollectionItems$1; -Landroid/widget/RemoteViews$RemoteCollectionItems; -Landroid/widget/RemoteViews$RemoteResponse; -Landroid/widget/RemoteViews$RemoteView; -Landroid/widget/RemoteViews$RemoteViewsContextWrapper; -Landroid/widget/RemoteViews$RemoveFromParentAction; -Landroid/widget/RemoteViews$ResourceReflectionAction; -Landroid/widget/RemoteViews$RunnableAction; -Landroid/widget/RemoteViews$RuntimeAction; -Landroid/widget/RemoteViews$SetCompoundButtonCheckedAction; -Landroid/widget/RemoteViews$SetDrawInstructionAction; -Landroid/widget/RemoteViews$SetDrawableTint; -Landroid/widget/RemoteViews$SetEmptyView; -Landroid/widget/RemoteViews$SetIntTagAction; -Landroid/widget/RemoteViews$SetOnCheckedChangeResponse; -Landroid/widget/RemoteViews$SetOnClickResponse; -Landroid/widget/RemoteViews$SetOnStylusHandwritingResponse; -Landroid/widget/RemoteViews$SetPendingIntentTemplate; -Landroid/widget/RemoteViews$SetRadioGroupCheckedAction; -Landroid/widget/RemoteViews$SetRemoteCollectionItemListAdapterAction; -Landroid/widget/RemoteViews$SetRemoteInputsAction; -Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent; -Landroid/widget/RemoteViews$SetRippleDrawableColor; -Landroid/widget/RemoteViews$SetViewOutlinePreferredRadiusAction; -Landroid/widget/RemoteViews$TextViewDrawableAction; -Landroid/widget/RemoteViews$TextViewSizeAction; -Landroid/widget/RemoteViews$ViewContentNavigation; -Landroid/widget/RemoteViews$ViewGroupActionAdd$1; -Landroid/widget/RemoteViews$ViewGroupActionAdd; -Landroid/widget/RemoteViews$ViewGroupActionRemove$1; -Landroid/widget/RemoteViews$ViewGroupActionRemove; -Landroid/widget/RemoteViews$ViewPaddingAction; -Landroid/widget/RemoteViews$ViewTree; -Landroid/widget/RemoteViews; -Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction; -Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback; -Landroid/widget/RemoteViewsAdapter; -Landroid/widget/RemoteViewsService$RemoteViewsFactory; -Landroid/widget/RemoteViewsService; -Landroid/widget/RtlSpacingHelper; -Landroid/widget/ScrollBarDrawable; -Landroid/widget/ScrollView$SavedState$1; -Landroid/widget/ScrollView$SavedState; -Landroid/widget/ScrollView; -Landroid/widget/Scroller$ViscousFluidInterpolator; -Landroid/widget/Scroller; -Landroid/widget/SectionIndexer; -Landroid/widget/SeekBar$OnSeekBarChangeListener; -Landroid/widget/SeekBar; -Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda10; -Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda11; -Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda12; -Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda2; -Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda3; -Landroid/widget/SelectionActionModeHelper$$ExternalSyntheticLambda8; -Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger; -Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable-IA; -Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable; -Landroid/widget/SelectionActionModeHelper$SelectionTracker; -Landroid/widget/SelectionActionModeHelper$TextClassificationHelper; -Landroid/widget/SelectionActionModeHelper; -Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda0; -Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda1; -Landroid/widget/SmartSelectSprite$$ExternalSyntheticLambda2; -Landroid/widget/SmartSelectSprite$RectangleList; -Landroid/widget/SmartSelectSprite; -Landroid/widget/Space; -Landroid/widget/SpellChecker$1; -Landroid/widget/SpellChecker$RemoveReason; -Landroid/widget/SpellChecker$SentenceIteratorWrapper; -Landroid/widget/SpellChecker$SpellParser-IA; -Landroid/widget/SpellChecker$SpellParser; -Landroid/widget/SpellChecker; -Landroid/widget/Spinner$1; -Landroid/widget/Spinner$DialogPopup-IA; -Landroid/widget/Spinner$DialogPopup; -Landroid/widget/Spinner$DropDownAdapter; -Landroid/widget/Spinner$DropdownPopup$1; -Landroid/widget/Spinner$DropdownPopup; -Landroid/widget/Spinner$SavedState$1; -Landroid/widget/Spinner$SavedState; -Landroid/widget/Spinner$SpinnerPopup; -Landroid/widget/Spinner; -Landroid/widget/SpinnerAdapter; -Landroid/widget/Switch$1; -Landroid/widget/Switch; -Landroid/widget/TableLayout$PassThroughHierarchyChangeListener; -Landroid/widget/TableLayout; -Landroid/widget/TableRow$ChildrenTracker; -Landroid/widget/TableRow; -Landroid/widget/TextClock$1; -Landroid/widget/TextClock$2; -Landroid/widget/TextClock$FormatChangeObserver; -Landroid/widget/TextClock; -Landroid/widget/TextView$$ExternalSyntheticLambda0; -Landroid/widget/TextView$$ExternalSyntheticLambda2; -Landroid/widget/TextView$$ExternalSyntheticLambda3; -Landroid/widget/TextView$$ExternalSyntheticLambda4; -Landroid/widget/TextView$$ExternalSyntheticLambda5; -Landroid/widget/TextView$$ExternalSyntheticLambda6; -Landroid/widget/TextView$$ExternalSyntheticLambda7; -Landroid/widget/TextView$1; -Landroid/widget/TextView$2; -Landroid/widget/TextView$3; -Landroid/widget/TextView$4; -Landroid/widget/TextView$BufferType; -Landroid/widget/TextView$ChangeWatcher-IA; -Landroid/widget/TextView$ChangeWatcher; -Landroid/widget/TextView$CharWrapper; -Landroid/widget/TextView$Drawables; -Landroid/widget/TextView$Marquee$1; -Landroid/widget/TextView$Marquee$2; -Landroid/widget/TextView$Marquee$3; -Landroid/widget/TextView$Marquee; -Landroid/widget/TextView$OnEditorActionListener; -Landroid/widget/TextView$SavedState$1; -Landroid/widget/TextView$SavedState-IA; -Landroid/widget/TextView$SavedState; -Landroid/widget/TextView$TextAppearanceAttributes-IA; -Landroid/widget/TextView$TextAppearanceAttributes; -Landroid/widget/TextView; -Landroid/widget/TextViewOnReceiveContentListener$InputConnectionInfo-IA; -Landroid/widget/TextViewOnReceiveContentListener$InputConnectionInfo; -Landroid/widget/TextViewOnReceiveContentListener; -Landroid/widget/TextViewTranslationCallback; -Landroid/widget/ThemedSpinnerAdapter; -Landroid/widget/Toast$Callback; -Landroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda0; -Landroid/widget/Toast$CallbackBinder$$ExternalSyntheticLambda1; -Landroid/widget/Toast$CallbackBinder-IA; -Landroid/widget/Toast$CallbackBinder; -Landroid/widget/Toast$TN$1; -Landroid/widget/Toast$TN; -Landroid/widget/Toast; -Landroid/widget/ToastPresenter; -Landroid/widget/ToggleButton; -Landroid/widget/Toolbar$1; -Landroid/widget/Toolbar$2; -Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter; -Landroid/widget/Toolbar$LayoutParams; -Landroid/widget/Toolbar$OnMenuItemClickListener; -Landroid/widget/Toolbar$SavedState$1; -Landroid/widget/Toolbar$SavedState; -Landroid/widget/Toolbar; -Landroid/widget/ViewAnimator; -Landroid/widget/ViewFlipper$1; -Landroid/widget/ViewFlipper; -Landroid/widget/ViewSwitcher; -Landroid/widget/WrapperListAdapter; -Landroid/widget/inline/InlinePresentationSpec$1; -Landroid/widget/inline/InlinePresentationSpec$BaseBuilder; -Landroid/widget/inline/InlinePresentationSpec$Builder; -Landroid/widget/inline/InlinePresentationSpec; -Landroid/window/ActivityWindowInfo; -Landroid/window/BackAnimationAdapter$1; -Landroid/window/BackAnimationAdapter; -Landroid/window/BackEvent; -Landroid/window/BackMotionEvent$1; -Landroid/window/BackMotionEvent; -Landroid/window/BackNavigationInfo$1; -Landroid/window/BackNavigationInfo; -Landroid/window/BackProgressAnimator$1; -Landroid/window/BackProgressAnimator$ProgressCallback; -Landroid/window/BackProgressAnimator; -Landroid/window/ClientWindowFrames$1; -Landroid/window/ClientWindowFrames-IA; -Landroid/window/ClientWindowFrames; -Landroid/window/CompatOnBackInvokedCallback; -Landroid/window/ConfigurationHelper; -Landroid/window/DisplayAreaAppearedInfo$1; -Landroid/window/DisplayAreaAppearedInfo; -Landroid/window/DisplayAreaInfo$1; -Landroid/window/DisplayAreaInfo; -Landroid/window/DisplayAreaOrganizer$1; -Landroid/window/DisplayAreaOrganizer; -Landroid/window/IDisplayAreaOrganizer$Stub$Proxy; -Landroid/window/IDisplayAreaOrganizer$Stub; -Landroid/window/IDisplayAreaOrganizer; -Landroid/window/IDisplayAreaOrganizerController$Stub$Proxy; -Landroid/window/IDisplayAreaOrganizerController$Stub; -Landroid/window/IDisplayAreaOrganizerController; -Landroid/window/IOnBackInvokedCallback$Stub$Proxy; -Landroid/window/IOnBackInvokedCallback$Stub; -Landroid/window/IOnBackInvokedCallback; -Landroid/window/IRemoteTransition$Stub$Proxy; -Landroid/window/IRemoteTransition$Stub; -Landroid/window/IRemoteTransition; -Landroid/window/IRemoteTransitionFinishedCallback; -Landroid/window/ISurfaceSyncGroup$Stub; -Landroid/window/ISurfaceSyncGroup; -Landroid/window/ISurfaceSyncGroupCompletedListener$Stub; -Landroid/window/ISurfaceSyncGroupCompletedListener; -Landroid/window/ITaskFragmentOrganizer$Stub$Proxy; -Landroid/window/ITaskFragmentOrganizer$Stub; -Landroid/window/ITaskFragmentOrganizer; -Landroid/window/ITaskFragmentOrganizerController$Stub; -Landroid/window/ITaskFragmentOrganizerController; -Landroid/window/ITaskOrganizer$Stub$Proxy; -Landroid/window/ITaskOrganizer$Stub; -Landroid/window/ITaskOrganizer; -Landroid/window/ITaskOrganizerController$Stub$Proxy; -Landroid/window/ITaskOrganizerController$Stub; -Landroid/window/ITaskOrganizerController; -Landroid/window/ITransactionReadyCallback$Stub; -Landroid/window/ITransactionReadyCallback; -Landroid/window/ITransitionMetricsReporter; -Landroid/window/ITransitionPlayer$Stub; -Landroid/window/ITransitionPlayer; -Landroid/window/ITrustedPresentationListener$Stub; -Landroid/window/ITrustedPresentationListener; -Landroid/window/IWindowContainerToken$Stub$Proxy; -Landroid/window/IWindowContainerToken$Stub; -Landroid/window/IWindowContainerToken; -Landroid/window/IWindowContainerTransactionCallback$Stub; -Landroid/window/IWindowContainerTransactionCallback; -Landroid/window/IWindowOrganizerController$Stub$Proxy; -Landroid/window/IWindowOrganizerController$Stub; -Landroid/window/IWindowOrganizerController; -Landroid/window/ImeOnBackInvokedDispatcher$$ExternalSyntheticLambda0; -Landroid/window/ImeOnBackInvokedDispatcher$1; -Landroid/window/ImeOnBackInvokedDispatcher$2; -Landroid/window/ImeOnBackInvokedDispatcher$ImeOnBackInvokedCallback; -Landroid/window/ImeOnBackInvokedDispatcher; -Landroid/window/OnBackAnimationCallback; -Landroid/window/OnBackInvokedCallback; -Landroid/window/OnBackInvokedCallbackInfo$1; -Landroid/window/OnBackInvokedCallbackInfo; -Landroid/window/OnBackInvokedDispatcher; -Landroid/window/ProxyOnBackInvokedDispatcher$$ExternalSyntheticLambda0; -Landroid/window/ProxyOnBackInvokedDispatcher; -Landroid/window/RemoteTransition$1; -Landroid/window/RemoteTransition; -Landroid/window/ScreenCapture$CaptureArgs$1; -Landroid/window/ScreenCapture$CaptureArgs$Builder; -Landroid/window/ScreenCapture$CaptureArgs; -Landroid/window/ScreenCapture$DisplayCaptureArgs; -Landroid/window/ScreenCapture$LayerCaptureArgs$Builder; -Landroid/window/ScreenCapture$LayerCaptureArgs; -Landroid/window/ScreenCapture$ScreenCaptureListener$1; -Landroid/window/ScreenCapture$ScreenCaptureListener; -Landroid/window/ScreenCapture$ScreenshotHardwareBuffer; -Landroid/window/ScreenCapture; -Landroid/window/SizeConfigurationBuckets$1; -Landroid/window/SizeConfigurationBuckets; -Landroid/window/SplashScreen$SplashScreenManagerGlobal$1; -Landroid/window/SplashScreen$SplashScreenManagerGlobal; -Landroid/window/SplashScreenView$SplashScreenViewParcelable$1; -Landroid/window/SplashScreenView$SplashScreenViewParcelable; -Landroid/window/SplashScreenView; -Landroid/window/StartingWindowInfo$1; -Landroid/window/StartingWindowInfo; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda0; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda1; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda2; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda3; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda4; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda5; -Landroid/window/SurfaceSyncGroup$$ExternalSyntheticLambda6; -Landroid/window/SurfaceSyncGroup$1; -Landroid/window/SurfaceSyncGroup$2; -Landroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl-IA; -Landroid/window/SurfaceSyncGroup$ISurfaceSyncGroupImpl; -Landroid/window/SurfaceSyncGroup$SurfaceViewFrameCallback; -Landroid/window/SurfaceSyncGroup; -Landroid/window/TaskAppearedInfo$1; -Landroid/window/TaskAppearedInfo; -Landroid/window/TaskFpsCallback; -Landroid/window/TaskFragmentOperation$1; -Landroid/window/TaskFragmentOperation; -Landroid/window/TaskFragmentOrganizer$1; -Landroid/window/TaskFragmentOrganizer; -Landroid/window/TaskFragmentOrganizerToken$1; -Landroid/window/TaskFragmentOrganizerToken; -Landroid/window/TaskFragmentTransaction; -Landroid/window/TaskOrganizer$1; -Landroid/window/TaskOrganizer; -Landroid/window/TaskSnapshot$1; -Landroid/window/TaskSnapshot; -Landroid/window/TransitionFilter$1; -Landroid/window/TransitionFilter$Requirement$1; -Landroid/window/TransitionFilter$Requirement; -Landroid/window/TransitionFilter; -Landroid/window/TransitionInfo$1; -Landroid/window/TransitionInfo; -Landroid/window/WindowContainerToken$1; -Landroid/window/WindowContainerToken-IA; -Landroid/window/WindowContainerToken; -Landroid/window/WindowContainerTransaction$1; -Landroid/window/WindowContainerTransaction$Change$1; -Landroid/window/WindowContainerTransaction$Change; -Landroid/window/WindowContainerTransaction$HierarchyOp$1; -Landroid/window/WindowContainerTransaction$HierarchyOp$Builder; -Landroid/window/WindowContainerTransaction$HierarchyOp; -Landroid/window/WindowContainerTransaction; -Landroid/window/WindowContext; -Landroid/window/WindowContextController; -Landroid/window/WindowInfosListener$DisplayInfo; -Landroid/window/WindowInfosListener; -Landroid/window/WindowMetricsController$$ExternalSyntheticLambda0; -Landroid/window/WindowMetricsController; -Landroid/window/WindowOnBackInvokedDispatcher$$ExternalSyntheticLambda0; -Landroid/window/WindowOnBackInvokedDispatcher$Checker; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda0; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda1; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda2; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda3; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda4; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$$ExternalSyntheticLambda5; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper$CallbackRef; -Landroid/window/WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper; -Landroid/window/WindowOnBackInvokedDispatcher; -Landroid/window/WindowOrganizer$1; -Landroid/window/WindowOrganizer; -Landroid/window/WindowProvider; -Landroid/window/WindowProviderService; -Landroid/window/WindowTokenClient; -Landroid/window/WindowTokenClientController; -Lcom/android/apex/ApexInfo; -Lcom/android/apex/ApexInfoList; -Lcom/android/apex/XmlParser; -Lcom/android/cellbroadcastservice/CellBroadcastStatsLog; -Lcom/android/framework/protobuf/AbstractMessageLite$Builder; -Lcom/android/framework/protobuf/AbstractMessageLite; -Lcom/android/framework/protobuf/AbstractParser; -Lcom/android/framework/protobuf/AbstractProtobufList; -Lcom/android/framework/protobuf/Android; -Lcom/android/framework/protobuf/ArrayDecoders$Registers; -Lcom/android/framework/protobuf/ArrayDecoders; -Lcom/android/framework/protobuf/CodedInputStream$ArrayDecoder; -Lcom/android/framework/protobuf/CodedInputStream; -Lcom/android/framework/protobuf/ExtensionRegistryFactory; -Lcom/android/framework/protobuf/ExtensionRegistryLite; -Lcom/android/framework/protobuf/ExtensionSchema; -Lcom/android/framework/protobuf/ExtensionSchemaLite; -Lcom/android/framework/protobuf/ExtensionSchemas; -Lcom/android/framework/protobuf/GeneratedMessageInfoFactory; -Lcom/android/framework/protobuf/GeneratedMessageLite$Builder; -Lcom/android/framework/protobuf/GeneratedMessageLite$DefaultInstanceBasedParser; -Lcom/android/framework/protobuf/GeneratedMessageLite$ExtendableMessage; -Lcom/android/framework/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder; -Lcom/android/framework/protobuf/GeneratedMessageLite$MethodToInvoke; -Lcom/android/framework/protobuf/GeneratedMessageLite$SerializedForm; -Lcom/android/framework/protobuf/GeneratedMessageLite; -Lcom/android/framework/protobuf/Internal$EnumVerifier; -Lcom/android/framework/protobuf/Internal$ProtobufList; -Lcom/android/framework/protobuf/Internal; -Lcom/android/framework/protobuf/InvalidProtocolBufferException$InvalidWireTypeException; -Lcom/android/framework/protobuf/InvalidProtocolBufferException; -Lcom/android/framework/protobuf/ListFieldSchema$ListFieldSchemaFull; -Lcom/android/framework/protobuf/ListFieldSchema$ListFieldSchemaLite; -Lcom/android/framework/protobuf/ListFieldSchema; -Lcom/android/framework/protobuf/ManifestSchemaFactory$1; -Lcom/android/framework/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory; -Lcom/android/framework/protobuf/ManifestSchemaFactory; -Lcom/android/framework/protobuf/MapFieldSchema; -Lcom/android/framework/protobuf/MapFieldSchemaLite; -Lcom/android/framework/protobuf/MapFieldSchemas; -Lcom/android/framework/protobuf/MessageInfo; -Lcom/android/framework/protobuf/MessageInfoFactory; -Lcom/android/framework/protobuf/MessageLite$Builder; -Lcom/android/framework/protobuf/MessageLite; -Lcom/android/framework/protobuf/MessageLiteOrBuilder; -Lcom/android/framework/protobuf/MessageSchema; -Lcom/android/framework/protobuf/MessageSetSchema; -Lcom/android/framework/protobuf/NewInstanceSchema; -Lcom/android/framework/protobuf/NewInstanceSchemaLite; -Lcom/android/framework/protobuf/NewInstanceSchemas; -Lcom/android/framework/protobuf/Parser; -Lcom/android/framework/protobuf/ProtoSyntax; -Lcom/android/framework/protobuf/Protobuf; -Lcom/android/framework/protobuf/ProtobufArrayList; -Lcom/android/framework/protobuf/RawMessageInfo; -Lcom/android/framework/protobuf/Schema; -Lcom/android/framework/protobuf/SchemaFactory; -Lcom/android/framework/protobuf/SchemaUtil; -Lcom/android/framework/protobuf/StructuralMessageInfo; -Lcom/android/framework/protobuf/UninitializedMessageException; -Lcom/android/framework/protobuf/UnknownFieldSchema; -Lcom/android/framework/protobuf/UnknownFieldSetLite; -Lcom/android/framework/protobuf/UnknownFieldSetLiteSchema; -Lcom/android/framework/protobuf/UnsafeUtil$1; -Lcom/android/framework/protobuf/UnsafeUtil$Android64MemoryAccessor; -Lcom/android/framework/protobuf/UnsafeUtil$JvmMemoryAccessor; -Lcom/android/framework/protobuf/UnsafeUtil$MemoryAccessor; -Lcom/android/framework/protobuf/UnsafeUtil; -Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano; -Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano$OutOfSpaceException; -Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano; -Lcom/android/framework/protobuf/nano/InternalNano; -Lcom/android/framework/protobuf/nano/InvalidProtocolBufferNanoException; -Lcom/android/framework/protobuf/nano/MessageNano; -Lcom/android/framework/protobuf/nano/WireFormatNano; -Lcom/android/graphics/hwui/flags/Flags; -Lcom/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet; -Lcom/android/i18n/phonenumbers/AsYouTypeFormatter; -Lcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap; -Lcom/android/i18n/phonenumbers/MetadataLoader; -Lcom/android/i18n/phonenumbers/MissingMetadataException; -Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType; -Lcom/android/i18n/phonenumbers/NumberParseException; -Lcom/android/i18n/phonenumbers/PhoneNumberMatch; -Lcom/android/i18n/phonenumbers/PhoneNumberMatcher$NumberGroupingChecker; -Lcom/android/i18n/phonenumbers/PhoneNumberMatcher$State; -Lcom/android/i18n/phonenumbers/PhoneNumberMatcher; -Lcom/android/i18n/phonenumbers/PhoneNumberToTimeZonesMapper$LazyHolder; -Lcom/android/i18n/phonenumbers/PhoneNumberToTimeZonesMapper; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$1; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$2; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$1; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$2; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$3$1; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$3; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$4$1; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency$4; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult; -Lcom/android/i18n/phonenumbers/PhoneNumberUtil; -Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat$Builder; -Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat; -Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata$Builder; -Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata; -Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection$Builder; -Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection; -Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc$Builder; -Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc; -Lcom/android/i18n/phonenumbers/Phonemetadata; -Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource; -Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber; -Lcom/android/i18n/phonenumbers/Phonenumber; -Lcom/android/i18n/phonenumbers/ShortNumberInfo$ShortNumberCost; -Lcom/android/i18n/phonenumbers/ShortNumberInfo; -Lcom/android/i18n/phonenumbers/ShortNumbersRegionCodeSet; -Lcom/android/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder; -Lcom/android/i18n/phonenumbers/internal/MatcherApi; -Lcom/android/i18n/phonenumbers/internal/RegexBasedMatcher; -Lcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1; -Lcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache; -Lcom/android/i18n/phonenumbers/internal/RegexCache; -Lcom/android/i18n/phonenumbers/metadata/DefaultMetadataDependenciesProvider; -Lcom/android/i18n/phonenumbers/metadata/init/ClassPathResourceMetadataLoader; -Lcom/android/i18n/phonenumbers/metadata/init/MetadataParser; -Lcom/android/i18n/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard; -Lcom/android/i18n/phonenumbers/metadata/source/CompositeMetadataContainer; -Lcom/android/i18n/phonenumbers/metadata/source/FormattingMetadataSource; -Lcom/android/i18n/phonenumbers/metadata/source/FormattingMetadataSourceImpl; -Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$1; -Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$2; -Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer$KeyProvider; -Lcom/android/i18n/phonenumbers/metadata/source/MapBackedMetadataContainer; -Lcom/android/i18n/phonenumbers/metadata/source/MetadataBootstrappingGuard; -Lcom/android/i18n/phonenumbers/metadata/source/MetadataContainer; -Lcom/android/i18n/phonenumbers/metadata/source/MetadataSource; -Lcom/android/i18n/phonenumbers/metadata/source/MetadataSourceImpl; -Lcom/android/i18n/phonenumbers/metadata/source/MultiFileModeFileNameProvider; -Lcom/android/i18n/phonenumbers/metadata/source/NonGeographicalEntityMetadataSource; -Lcom/android/i18n/phonenumbers/metadata/source/PhoneMetadataFileNameProvider; -Lcom/android/i18n/phonenumbers/metadata/source/RegionMetadataSource; -Lcom/android/i18n/phonenumbers/metadata/source/RegionMetadataSourceImpl; -Lcom/android/i18n/phonenumbers/prefixmapper/DefaultMapStorage; -Lcom/android/i18n/phonenumbers/prefixmapper/FlyweightMapStorage; -Lcom/android/i18n/phonenumbers/prefixmapper/MappingFileProvider; -Lcom/android/i18n/phonenumbers/prefixmapper/PhonePrefixMap; -Lcom/android/i18n/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy; -Lcom/android/i18n/phonenumbers/prefixmapper/PrefixFileReader; -Lcom/android/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMap; -Lcom/android/i18n/system/AppSpecializationHooks; -Lcom/android/i18n/system/ZygoteHooks; -Lcom/android/i18n/timezone/CountryTimeZones$OffsetResult; -Lcom/android/i18n/timezone/CountryTimeZones$TimeZoneMapping; -Lcom/android/i18n/timezone/CountryTimeZones; -Lcom/android/i18n/timezone/CountryZonesFinder; -Lcom/android/i18n/timezone/DebugInfo$DebugEntry; -Lcom/android/i18n/timezone/DebugInfo; -Lcom/android/i18n/timezone/I18nModuleDebug; -Lcom/android/i18n/timezone/TelephonyLookup$TelephonyNetworkProcessor; -Lcom/android/i18n/timezone/TelephonyLookup$TelephonyNetworkValidator; -Lcom/android/i18n/timezone/TelephonyLookup$TelephonyNetworksExtractor; -Lcom/android/i18n/timezone/TelephonyLookup; -Lcom/android/i18n/timezone/TelephonyNetwork$MccMnc; -Lcom/android/i18n/timezone/TelephonyNetwork; -Lcom/android/i18n/timezone/TelephonyNetworkFinder; -Lcom/android/i18n/timezone/TimeZoneDataFiles; -Lcom/android/i18n/timezone/TimeZoneFinder$CountryZonesLookupExtractor; -Lcom/android/i18n/timezone/TimeZoneFinder$IanaVersionExtractor; -Lcom/android/i18n/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor; -Lcom/android/i18n/timezone/TimeZoneFinder$TimeZonesProcessor; -Lcom/android/i18n/timezone/TimeZoneFinder$TimeZonesValidator; -Lcom/android/i18n/timezone/TimeZoneFinder; -Lcom/android/i18n/timezone/TzDataSetVersion$TzDataSetException; -Lcom/android/i18n/timezone/TzDataSetVersion; -Lcom/android/i18n/timezone/WallTime$CheckedArithmeticException; -Lcom/android/i18n/timezone/WallTime$OffsetInterval; -Lcom/android/i18n/timezone/WallTime; -Lcom/android/i18n/timezone/XmlUtils$ReaderSupplier$$ExternalSyntheticLambda0; -Lcom/android/i18n/timezone/XmlUtils$ReaderSupplier$$ExternalSyntheticLambda1; -Lcom/android/i18n/timezone/XmlUtils$ReaderSupplier; -Lcom/android/i18n/timezone/XmlUtils; -Lcom/android/i18n/timezone/ZoneInfoData; -Lcom/android/i18n/timezone/ZoneInfoDb$1; -Lcom/android/i18n/timezone/ZoneInfoDb; -Lcom/android/i18n/timezone/internal/BasicLruCache$CacheMap; -Lcom/android/i18n/timezone/internal/BasicLruCache; -Lcom/android/i18n/timezone/internal/BufferIterator; -Lcom/android/i18n/timezone/internal/ByteBufferIterator; -Lcom/android/i18n/timezone/internal/Memory; -Lcom/android/i18n/timezone/internal/MemoryMappedFile; -Lcom/android/i18n/timezone/internal/NioBufferIterator; -Lcom/android/i18n/util/Log; -Lcom/android/icu/charset/CharsetEncoderICU; -Lcom/android/icu/charset/CharsetFactory; -Lcom/android/icu/charset/NativeConverter; -Lcom/android/icu/text/CompatibleDecimalFormatFactory; -Lcom/android/icu/text/DateSorterBridge; -Lcom/android/icu/text/ExtendedDateFormatSymbols; -Lcom/android/icu/text/ExtendedDecimalFormatSymbols; -Lcom/android/icu/text/ExtendedIDNA; -Lcom/android/icu/text/ExtendedTimeZoneNames$Match; -Lcom/android/icu/text/ExtendedTimeZoneNames; -Lcom/android/icu/text/TimeZoneNamesNative; -Lcom/android/icu/util/CaseMapperNative; -Lcom/android/icu/util/ExtendedCalendar; -Lcom/android/icu/util/ExtendedTimeZone; -Lcom/android/icu/util/Icu4cMetadata; -Lcom/android/icu/util/LocaleNative; -Lcom/android/icu/util/regex/MatcherNative; -Lcom/android/icu/util/regex/PatternNative; -Lcom/android/ims/FeatureConnection$$ExternalSyntheticLambda0; -Lcom/android/ims/FeatureConnection$$ExternalSyntheticLambda1; -Lcom/android/ims/FeatureConnection; -Lcom/android/ims/FeatureConnector$$ExternalSyntheticLambda0; -Lcom/android/ims/FeatureConnector$1$$ExternalSyntheticLambda0; -Lcom/android/ims/FeatureConnector$1$$ExternalSyntheticLambda1; -Lcom/android/ims/FeatureConnector$1; -Lcom/android/ims/FeatureConnector$Listener; -Lcom/android/ims/FeatureConnector$ManagerFactory; -Lcom/android/ims/FeatureConnector$UnavailableReason; -Lcom/android/ims/FeatureConnector; -Lcom/android/ims/FeatureUpdates; -Lcom/android/ims/ImsCall$ImsCallSessionListenerProxy; -Lcom/android/ims/ImsCall$Listener; -Lcom/android/ims/ImsCall; -Lcom/android/ims/ImsCallbackAdapterManager; -Lcom/android/ims/ImsConfig; -Lcom/android/ims/ImsConfigListener$Stub$Proxy; -Lcom/android/ims/ImsConfigListener$Stub; -Lcom/android/ims/ImsConfigListener; -Lcom/android/ims/ImsConnectionStateListener; -Lcom/android/ims/ImsEcbm$ImsEcbmListenerProxy; -Lcom/android/ims/ImsEcbm; -Lcom/android/ims/ImsEcbmStateListener; -Lcom/android/ims/ImsException; -Lcom/android/ims/ImsExternalCallStateListener; -Lcom/android/ims/ImsFeatureBinderRepository$$ExternalSyntheticLambda0; -Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda0; -Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda1; -Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda2; -Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer$$ExternalSyntheticLambda3; -Lcom/android/ims/ImsFeatureBinderRepository$ListenerContainer; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda0; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda1; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda2; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda3; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda4; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper$$ExternalSyntheticLambda5; -Lcom/android/ims/ImsFeatureBinderRepository$UpdateMapper; -Lcom/android/ims/ImsFeatureBinderRepository; -Lcom/android/ims/ImsFeatureContainer$1; -Lcom/android/ims/ImsFeatureContainer; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda0; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda10; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda11; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda12; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda1; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda2; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda3; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda4; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda5; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda6; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda7; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda8; -Lcom/android/ims/ImsManager$$ExternalSyntheticLambda9; -Lcom/android/ims/ImsManager$1; -Lcom/android/ims/ImsManager$2; -Lcom/android/ims/ImsManager$DefaultSettingsProxy; -Lcom/android/ims/ImsManager$DefaultSubscriptionManagerProxy; -Lcom/android/ims/ImsManager$ImsStatsCallback; -Lcom/android/ims/ImsManager$InstanceManager$$ExternalSyntheticLambda0; -Lcom/android/ims/ImsManager$InstanceManager; -Lcom/android/ims/ImsManager$LazyExecutor; -Lcom/android/ims/ImsManager$MmTelFeatureConnectionFactory; -Lcom/android/ims/ImsManager$SettingsProxy; -Lcom/android/ims/ImsManager$SubscriptionManagerProxy; -Lcom/android/ims/ImsManager; -Lcom/android/ims/ImsMultiEndpoint$ImsExternalCallStateListenerProxy; -Lcom/android/ims/ImsMultiEndpoint; -Lcom/android/ims/ImsServiceClass; -Lcom/android/ims/ImsUt$IImsUtListenerProxy; -Lcom/android/ims/ImsUt; -Lcom/android/ims/ImsUtInterface; -Lcom/android/ims/MmTelFeatureConnection$BinderAccessState; -Lcom/android/ims/MmTelFeatureConnection$CapabilityCallbackManager; -Lcom/android/ims/MmTelFeatureConnection$ImsRegistrationCallbackAdapter; -Lcom/android/ims/MmTelFeatureConnection$ProvisioningCallbackManager; -Lcom/android/ims/MmTelFeatureConnection; -Lcom/android/ims/Preconditions; -Lcom/android/ims/RcsFeatureConnection$AvailabilityCallbackManager; -Lcom/android/ims/RcsFeatureConnection$RegistrationCallbackManager; -Lcom/android/ims/RcsFeatureConnection; -Lcom/android/ims/RcsFeatureManager$$ExternalSyntheticLambda0; -Lcom/android/ims/RcsFeatureManager$$ExternalSyntheticLambda1; -Lcom/android/ims/RcsFeatureManager$$ExternalSyntheticLambda2; -Lcom/android/ims/RcsFeatureManager$1$$ExternalSyntheticLambda0; -Lcom/android/ims/RcsFeatureManager$1$$ExternalSyntheticLambda1; -Lcom/android/ims/RcsFeatureManager$1$$ExternalSyntheticLambda2; -Lcom/android/ims/RcsFeatureManager$1; -Lcom/android/ims/RcsFeatureManager$2; -Lcom/android/ims/RcsFeatureManager$CapabilityExchangeEventCallback; -Lcom/android/ims/RcsFeatureManager; -Lcom/android/ims/RcsPresenceInfo$1; -Lcom/android/ims/RcsPresenceInfo$ServiceInfoKey; -Lcom/android/ims/RcsPresenceInfo$ServiceState; -Lcom/android/ims/RcsPresenceInfo$ServiceType; -Lcom/android/ims/RcsPresenceInfo$VolteStatus; -Lcom/android/ims/RcsPresenceInfo; -Lcom/android/ims/Registrant; -Lcom/android/ims/RegistrantList; -Lcom/android/ims/ResultCode; -Lcom/android/ims/SomeArgs; -Lcom/android/ims/internal/ConferenceParticipant$1; -Lcom/android/ims/internal/ConferenceParticipant; -Lcom/android/ims/internal/ContactNumberUtils; -Lcom/android/ims/internal/ICall; -Lcom/android/ims/internal/IImsCallSession$Stub; -Lcom/android/ims/internal/IImsCallSession; -Lcom/android/ims/internal/IImsConfig; -Lcom/android/ims/internal/IImsEcbm$Stub$Proxy; -Lcom/android/ims/internal/IImsEcbm$Stub; -Lcom/android/ims/internal/IImsEcbm; -Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy; -Lcom/android/ims/internal/IImsEcbmListener$Stub; -Lcom/android/ims/internal/IImsEcbmListener; -Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy; -Lcom/android/ims/internal/IImsExternalCallStateListener$Stub; -Lcom/android/ims/internal/IImsExternalCallStateListener; -Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy; -Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub; -Lcom/android/ims/internal/IImsFeatureStatusCallback; -Lcom/android/ims/internal/IImsMMTelFeature$Stub; -Lcom/android/ims/internal/IImsMMTelFeature; -Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy; -Lcom/android/ims/internal/IImsMultiEndpoint$Stub; -Lcom/android/ims/internal/IImsMultiEndpoint; -Lcom/android/ims/internal/IImsRegistrationListener$Stub; -Lcom/android/ims/internal/IImsRegistrationListener; -Lcom/android/ims/internal/IImsServiceController$Stub; -Lcom/android/ims/internal/IImsServiceController; -Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy; -Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub; -Lcom/android/ims/internal/IImsServiceFeatureCallback; -Lcom/android/ims/internal/IImsStreamMediaSession; -Lcom/android/ims/internal/IImsUt$Stub$Proxy; -Lcom/android/ims/internal/IImsUt$Stub; -Lcom/android/ims/internal/IImsUt; -Lcom/android/ims/internal/IImsUtListener$Stub$Proxy; -Lcom/android/ims/internal/IImsUtListener$Stub; -Lcom/android/ims/internal/IImsUtListener; -Lcom/android/ims/internal/IImsVideoCallCallback$Stub; -Lcom/android/ims/internal/IImsVideoCallCallback; -Lcom/android/ims/internal/IImsVideoCallProvider; -Lcom/android/ims/internal/ImsStreamMediaSession$Listener; -Lcom/android/ims/internal/ImsStreamMediaSession; -Lcom/android/ims/internal/ImsVideoCallProviderWrapper$1; -Lcom/android/ims/internal/ImsVideoCallProviderWrapper$2; -Lcom/android/ims/internal/ImsVideoCallProviderWrapper$ImsVideoCallCallback; -Lcom/android/ims/internal/ImsVideoCallProviderWrapper$ImsVideoProviderWrapperCallback; -Lcom/android/ims/internal/ImsVideoCallProviderWrapper; -Lcom/android/ims/internal/Logger; -Lcom/android/ims/internal/VideoPauseTracker$$ExternalSyntheticLambda0; -Lcom/android/ims/internal/VideoPauseTracker; -Lcom/android/ims/internal/uce/UceServiceBase$UceServiceBinder; -Lcom/android/ims/internal/uce/UceServiceBase; -Lcom/android/ims/internal/uce/common/CapInfo$1; -Lcom/android/ims/internal/uce/common/CapInfo; -Lcom/android/ims/internal/uce/common/StatusCode$1; -Lcom/android/ims/internal/uce/common/UceLong$1; -Lcom/android/ims/internal/uce/common/UceLong; -Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy; -Lcom/android/ims/internal/uce/options/IOptionsListener$Stub; -Lcom/android/ims/internal/uce/options/IOptionsListener; -Lcom/android/ims/internal/uce/options/IOptionsService; -Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy; -Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub; -Lcom/android/ims/internal/uce/presence/IPresenceListener; -Lcom/android/ims/internal/uce/presence/IPresenceService$Stub; -Lcom/android/ims/internal/uce/presence/IPresenceService; -Lcom/android/ims/internal/uce/presence/PresCapInfo$1; -Lcom/android/ims/internal/uce/presence/PresCmdId$1; -Lcom/android/ims/internal/uce/presence/PresCmdStatus$1; -Lcom/android/ims/internal/uce/presence/PresPublishTriggerType$1; -Lcom/android/ims/internal/uce/presence/PresSipResponse$1; -Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy; -Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub; -Lcom/android/ims/internal/uce/uceservice/IUceListener; -Lcom/android/ims/internal/uce/uceservice/IUceService$Stub; -Lcom/android/ims/internal/uce/uceservice/IUceService; -Lcom/android/ims/rcs/uce/ControllerBase; -Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/UceController$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/UceController$1; -Lcom/android/ims/rcs/uce/UceController$2; -Lcom/android/ims/rcs/uce/UceController$3; -Lcom/android/ims/rcs/uce/UceController$CachedCapabilityEvent$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/UceController$CachedCapabilityEvent; -Lcom/android/ims/rcs/uce/UceController$ControllerFactory; -Lcom/android/ims/rcs/uce/UceController$RcsConnectedState; -Lcom/android/ims/rcs/uce/UceController$RequestManagerFactory; -Lcom/android/ims/rcs/uce/UceController$UceControllerCallback; -Lcom/android/ims/rcs/uce/UceController; -Lcom/android/ims/rcs/uce/UceDeviceState$DeviceStateResult; -Lcom/android/ims/rcs/uce/UceDeviceState$DeviceStateType; -Lcom/android/ims/rcs/uce/UceDeviceState; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$1; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$CapabilityExpiredListener; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$ContactChangedListener; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$EabSettingsListener; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$SyncContactRunnable; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater$retryRunnable; -Lcom/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater; -Lcom/android/ims/rcs/uce/eab/EabCapabilityResult$QueryResult; -Lcom/android/ims/rcs/uce/eab/EabCapabilityResult; -Lcom/android/ims/rcs/uce/eab/EabContactSyncController$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/eab/EabContactSyncController; -Lcom/android/ims/rcs/uce/eab/EabController; -Lcom/android/ims/rcs/uce/eab/EabControllerImpl$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/eab/EabControllerImpl$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/eab/EabControllerImpl$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/eab/EabControllerImpl$ExpirationTimeFactory; -Lcom/android/ims/rcs/uce/eab/EabControllerImpl; -Lcom/android/ims/rcs/uce/eab/EabProvider$ContactColumns; -Lcom/android/ims/rcs/uce/eab/EabProvider$EabCommonColumns; -Lcom/android/ims/rcs/uce/eab/EabProvider$EabDatabaseHelper; -Lcom/android/ims/rcs/uce/eab/EabProvider$OptionsColumns; -Lcom/android/ims/rcs/uce/eab/EabProvider$PresenceTupleColumns; -Lcom/android/ims/rcs/uce/eab/EabProvider; -Lcom/android/ims/rcs/uce/eab/EabUtil; -Lcom/android/ims/rcs/uce/eab/RcsUceCapabilityBuilderWrapper; -Lcom/android/ims/rcs/uce/options/OptionsController; -Lcom/android/ims/rcs/uce/options/OptionsControllerImpl; -Lcom/android/ims/rcs/uce/presence/pidfparser/ElementBase; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser$TimestampProxy; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParser; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParserConstant; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParserUtils$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/pidfparser/PidfParserUtils; -Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Audio; -Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/CapsConstant; -Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Duplex$DuplexType; -Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Duplex; -Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/ServiceCaps; -Lcom/android/ims/rcs/uce/presence/pidfparser/capabilities/Video; -Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/Description; -Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/OmaPresConstant; -Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/ServiceDescription; -Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/ServiceId; -Lcom/android/ims/rcs/uce/presence/pidfparser/omapres/Version; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Basic$BasicValue; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Basic; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Contact; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Note; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/PidfConstant; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Presence; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Status; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Timestamp; -Lcom/android/ims/rcs/uce/presence/pidfparser/pidf/Tuple; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityInfo; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$1; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$2; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$3; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$4; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$5; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$6; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$7; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$DeviceCapabilityHandler; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$ImsMmTelManagerFactory; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$ImsRcsManagerFactory; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener$ProvisioningManagerFactory; -Lcom/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener; -Lcom/android/ims/rcs/uce/presence/publish/PublishController$PublishControllerCallback; -Lcom/android/ims/rcs/uce/presence/publish/PublishController$PublishTriggerType; -Lcom/android/ims/rcs/uce/presence/publish/PublishController; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$1; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$2; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$DeviceCapListenerFactory; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$PublishHandler; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl$PublishProcessorFactory; -Lcom/android/ims/rcs/uce/presence/publish/PublishControllerImpl; -Lcom/android/ims/rcs/uce/presence/publish/PublishProcessor$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/publish/PublishProcessor; -Lcom/android/ims/rcs/uce/presence/publish/PublishProcessorState$PendingRequest; -Lcom/android/ims/rcs/uce/presence/publish/PublishProcessorState$PublishThrottle; -Lcom/android/ims/rcs/uce/presence/publish/PublishProcessorState; -Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse$1; -Lcom/android/ims/rcs/uce/presence/publish/PublishRequestResponse; -Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker$$ExternalSyntheticLambda4; -Lcom/android/ims/rcs/uce/presence/publish/PublishServiceDescTracker; -Lcom/android/ims/rcs/uce/presence/publish/PublishUtils; -Lcom/android/ims/rcs/uce/presence/publish/ServiceDescription; -Lcom/android/ims/rcs/uce/presence/subscribe/SubscribeController; -Lcom/android/ims/rcs/uce/presence/subscribe/SubscribeControllerImpl; -Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda4; -Lcom/android/ims/rcs/uce/request/CapabilityRequest$$ExternalSyntheticLambda5; -Lcom/android/ims/rcs/uce/request/CapabilityRequest; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda4; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda5; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda6; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda7; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda8; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse$$ExternalSyntheticLambda9; -Lcom/android/ims/rcs/uce/request/CapabilityRequestResponse; -Lcom/android/ims/rcs/uce/request/OptionsRequest$1; -Lcom/android/ims/rcs/uce/request/OptionsRequest; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$$ExternalSyntheticLambda4; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$Builder; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator$RequestResultCreator; -Lcom/android/ims/rcs/uce/request/OptionsRequestCoordinator; -Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator$Builder; -Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator$RequestResultCreator; -Lcom/android/ims/rcs/uce/request/RemoteOptionsCoordinator; -Lcom/android/ims/rcs/uce/request/RemoteOptionsRequest$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/RemoteOptionsRequest$RemoteOptResponse; -Lcom/android/ims/rcs/uce/request/RemoteOptionsRequest; -Lcom/android/ims/rcs/uce/request/SubscribeRequest$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/SubscribeRequest$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/SubscribeRequest$1; -Lcom/android/ims/rcs/uce/request/SubscribeRequest; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda10; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda4; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda5; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda6; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda7; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda8; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$$ExternalSyntheticLambda9; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$Builder; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator$RequestResultCreator; -Lcom/android/ims/rcs/uce/request/SubscribeRequestCoordinator; -Lcom/android/ims/rcs/uce/request/SubscriptionTerminatedHelper$TerminatedResult; -Lcom/android/ims/rcs/uce/request/SubscriptionTerminatedHelper; -Lcom/android/ims/rcs/uce/request/UceRequest$UceRequestType; -Lcom/android/ims/rcs/uce/request/UceRequest; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda3; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$$ExternalSyntheticLambda4; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$RequestResult; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator$UceRequestUpdate; -Lcom/android/ims/rcs/uce/request/UceRequestCoordinator; -Lcom/android/ims/rcs/uce/request/UceRequestDispatcher$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/UceRequestDispatcher$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/UceRequestDispatcher$Request; -Lcom/android/ims/rcs/uce/request/UceRequestDispatcher; -Lcom/android/ims/rcs/uce/request/UceRequestManager$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/UceRequestManager$$ExternalSyntheticLambda1; -Lcom/android/ims/rcs/uce/request/UceRequestManager$$ExternalSyntheticLambda2; -Lcom/android/ims/rcs/uce/request/UceRequestManager$1; -Lcom/android/ims/rcs/uce/request/UceRequestManager$2; -Lcom/android/ims/rcs/uce/request/UceRequestManager$RequestManagerCallback; -Lcom/android/ims/rcs/uce/request/UceRequestManager$UceRequestHandler; -Lcom/android/ims/rcs/uce/request/UceRequestManager$UceUtilsProxy; -Lcom/android/ims/rcs/uce/request/UceRequestManager; -Lcom/android/ims/rcs/uce/request/UceRequestRepository$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/request/UceRequestRepository; -Lcom/android/ims/rcs/uce/util/FeatureTags$$ExternalSyntheticLambda0; -Lcom/android/ims/rcs/uce/util/FeatureTags; -Lcom/android/ims/rcs/uce/util/NetworkSipCode; -Lcom/android/ims/rcs/uce/util/UceUtils; -Lcom/android/input/flags/Flags; -Lcom/android/internal/R$attr; -Lcom/android/internal/R$dimen; -Lcom/android/internal/R$id; -Lcom/android/internal/R$string; -Lcom/android/internal/R$styleable; -Lcom/android/internal/accessibility/AccessibilityShortcutController$1; -Lcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkFeatureInfo; -Lcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkObjectProvider; -Lcom/android/internal/accessibility/AccessibilityShortcutController$ToggleableFrameworkFeatureInfo; -Lcom/android/internal/accessibility/AccessibilityShortcutController; -Lcom/android/internal/accessibility/util/AccessibilityUtils; -Lcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord; -Lcom/android/internal/alsa/AlsaCardsParser; -Lcom/android/internal/alsa/LineTokenizer; -Lcom/android/internal/app/AlertActivity; -Lcom/android/internal/app/AlertController$1; -Lcom/android/internal/app/AlertController$AlertParams; -Lcom/android/internal/app/AlertController$ButtonHandler; -Lcom/android/internal/app/AlertController$RecycleListView; -Lcom/android/internal/app/AlertController; -Lcom/android/internal/app/AssistUtils; -Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy; -Lcom/android/internal/app/IAppOpsActiveCallback$Stub; -Lcom/android/internal/app/IAppOpsActiveCallback; -Lcom/android/internal/app/IAppOpsAsyncNotedCallback$Stub; -Lcom/android/internal/app/IAppOpsAsyncNotedCallback; -Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy; -Lcom/android/internal/app/IAppOpsCallback$Stub; -Lcom/android/internal/app/IAppOpsCallback; -Lcom/android/internal/app/IAppOpsNotedCallback$Stub; -Lcom/android/internal/app/IAppOpsNotedCallback; -Lcom/android/internal/app/IAppOpsService$Stub$Proxy; -Lcom/android/internal/app/IAppOpsService$Stub; -Lcom/android/internal/app/IAppOpsService; -Lcom/android/internal/app/IAppOpsStartedCallback$Stub$Proxy; -Lcom/android/internal/app/IAppOpsStartedCallback$Stub; -Lcom/android/internal/app/IAppOpsStartedCallback; -Lcom/android/internal/app/IBatteryStats$Stub$Proxy; -Lcom/android/internal/app/IBatteryStats$Stub; -Lcom/android/internal/app/IBatteryStats; -Lcom/android/internal/app/ISoundTriggerService$Stub; -Lcom/android/internal/app/ISoundTriggerService; -Lcom/android/internal/app/ISoundTriggerSession$Stub; -Lcom/android/internal/app/ISoundTriggerSession; -Lcom/android/internal/app/IVoiceActionCheckCallback$Stub$Proxy; -Lcom/android/internal/app/IVoiceActionCheckCallback$Stub; -Lcom/android/internal/app/IVoiceActionCheckCallback; -Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy; -Lcom/android/internal/app/IVoiceInteractionManagerService$Stub; -Lcom/android/internal/app/IVoiceInteractionManagerService; -Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy; -Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub; -Lcom/android/internal/app/IVoiceInteractionSessionListener; -Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy; -Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub; -Lcom/android/internal/app/IVoiceInteractionSessionShowCallback; -Lcom/android/internal/app/IVoiceInteractionSoundTriggerSession$Stub; -Lcom/android/internal/app/IVoiceInteractionSoundTriggerSession; -Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy; -Lcom/android/internal/app/IVoiceInteractor$Stub; -Lcom/android/internal/app/IVoiceInteractor; -Lcom/android/internal/app/IntentForwarderActivity; -Lcom/android/internal/app/MessageSamplingConfig$1; -Lcom/android/internal/app/MessageSamplingConfig; -Lcom/android/internal/app/MicroAlertController; -Lcom/android/internal/app/ProcessMap; -Lcom/android/internal/app/ResolverActivity$ActionTitle; -Lcom/android/internal/app/ResolverActivity; -Lcom/android/internal/app/ResolverListAdapter$ResolverListCommunicator; -Lcom/android/internal/app/ToolbarActionBar; -Lcom/android/internal/app/WindowDecorActionBar$1; -Lcom/android/internal/app/WindowDecorActionBar$2; -Lcom/android/internal/app/WindowDecorActionBar$3; -Lcom/android/internal/app/WindowDecorActionBar; -Lcom/android/internal/app/procstats/AssociationState$$ExternalSyntheticLambda0; -Lcom/android/internal/app/procstats/AssociationState$SourceDumpContainer; -Lcom/android/internal/app/procstats/AssociationState$SourceKey; -Lcom/android/internal/app/procstats/AssociationState$SourceState; -Lcom/android/internal/app/procstats/AssociationState; -Lcom/android/internal/app/procstats/DumpUtils; -Lcom/android/internal/app/procstats/DurationsTable; -Lcom/android/internal/app/procstats/IProcessStats$Stub$Proxy; -Lcom/android/internal/app/procstats/IProcessStats$Stub; -Lcom/android/internal/app/procstats/IProcessStats; -Lcom/android/internal/app/procstats/ProcessState$1; -Lcom/android/internal/app/procstats/ProcessState$PssAggr; -Lcom/android/internal/app/procstats/ProcessState; -Lcom/android/internal/app/procstats/ProcessStats$$ExternalSyntheticLambda0; -Lcom/android/internal/app/procstats/ProcessStats$$ExternalSyntheticLambda1; -Lcom/android/internal/app/procstats/ProcessStats$$ExternalSyntheticLambda2; -Lcom/android/internal/app/procstats/ProcessStats$1; -Lcom/android/internal/app/procstats/ProcessStats$AssociationDumpContainer; -Lcom/android/internal/app/procstats/ProcessStats$PackageState; -Lcom/android/internal/app/procstats/ProcessStats$ProcessDataCollection; -Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder; -Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection; -Lcom/android/internal/app/procstats/ProcessStats; -Lcom/android/internal/app/procstats/PssTable; -Lcom/android/internal/app/procstats/ServiceState; -Lcom/android/internal/app/procstats/SparseMappingTable$Table; -Lcom/android/internal/app/procstats/SparseMappingTable; -Lcom/android/internal/app/procstats/SysMemUsageTable; -Lcom/android/internal/app/procstats/UidState; -Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy; -Lcom/android/internal/appwidget/IAppWidgetHost$Stub; -Lcom/android/internal/appwidget/IAppWidgetHost; -Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy; -Lcom/android/internal/appwidget/IAppWidgetService$Stub; -Lcom/android/internal/appwidget/IAppWidgetService; -Lcom/android/internal/backup/IBackupTransport$Stub$Proxy; -Lcom/android/internal/backup/IBackupTransport$Stub; -Lcom/android/internal/backup/IBackupTransport; -Lcom/android/internal/colorextraction/ColorExtractor$GradientColors; -Lcom/android/internal/colorextraction/ColorExtractor$LoadWallpaperColors; -Lcom/android/internal/colorextraction/ColorExtractor$OnColorsChangedListener; -Lcom/android/internal/colorextraction/ColorExtractor; -Lcom/android/internal/colorextraction/types/ExtractionType; -Lcom/android/internal/colorextraction/types/Tonal$ConfigParser; -Lcom/android/internal/colorextraction/types/Tonal$TonalPalette; -Lcom/android/internal/colorextraction/types/Tonal; -Lcom/android/internal/compat/AndroidBuildClassifier; -Lcom/android/internal/compat/ChangeReporter$ChangeReport; -Lcom/android/internal/compat/ChangeReporter; -Lcom/android/internal/compat/CompatibilityChangeConfig$1; -Lcom/android/internal/compat/CompatibilityChangeConfig; -Lcom/android/internal/compat/CompatibilityChangeInfo$1; -Lcom/android/internal/compat/CompatibilityChangeInfo; -Lcom/android/internal/compat/IOverrideValidator$Stub; -Lcom/android/internal/compat/IOverrideValidator; -Lcom/android/internal/compat/IPlatformCompat$Stub$Proxy; -Lcom/android/internal/compat/IPlatformCompat$Stub; -Lcom/android/internal/compat/IPlatformCompat; -Lcom/android/internal/compat/IPlatformCompatNative$Stub; -Lcom/android/internal/compat/IPlatformCompatNative; -Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper$$ExternalSyntheticLambda0; -Lcom/android/internal/config/appcloning/AppCloningDeviceConfigHelper; -Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$DebugResolver; -Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$Flag; -Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$FlagResolver; -Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags$NotificationFlags; -Lcom/android/internal/config/sysui/SystemUiSystemPropertiesFlags; -Lcom/android/internal/content/F2fsUtils; -Lcom/android/internal/content/NativeLibraryHelper$Handle; -Lcom/android/internal/content/NativeLibraryHelper; -Lcom/android/internal/content/PackageMonitor; -Lcom/android/internal/content/ReferrerIntent$1; -Lcom/android/internal/content/ReferrerIntent; -Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda0; -Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda2; -Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda3; -Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda4; -Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda5; -Lcom/android/internal/content/om/OverlayConfig$$ExternalSyntheticLambda7; -Lcom/android/internal/content/om/OverlayConfig$Configuration; -Lcom/android/internal/content/om/OverlayConfig$IdmapInvocation; -Lcom/android/internal/content/om/OverlayConfig$PackageProvider; -Lcom/android/internal/content/om/OverlayConfig; -Lcom/android/internal/content/om/OverlayConfigParser$OverlayPartition; -Lcom/android/internal/content/om/OverlayConfigParser$ParsedConfigFile; -Lcom/android/internal/content/om/OverlayConfigParser$ParsedConfiguration; -Lcom/android/internal/content/om/OverlayConfigParser$ParsingContext; -Lcom/android/internal/content/om/OverlayConfigParser; -Lcom/android/internal/content/om/OverlayManagerImpl; -Lcom/android/internal/content/om/OverlayScanner$ParsedOverlayInfo; -Lcom/android/internal/content/om/OverlayScanner; -Lcom/android/internal/database/SortCursor; -Lcom/android/internal/display/BrightnessSynchronizer; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$10; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$11; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$12; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$13; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$14; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$1; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$2; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$3; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$4; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$5; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$6; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$7; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$8; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$9; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$MassState; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation$ViewProperty; -Lcom/android/internal/dynamicanimation/animation/DynamicAnimation; -Lcom/android/internal/dynamicanimation/animation/Force; -Lcom/android/internal/dynamicanimation/animation/SpringAnimation; -Lcom/android/internal/dynamicanimation/animation/SpringForce; -Lcom/android/internal/graphics/ColorUtils$ContrastCalculator; -Lcom/android/internal/graphics/ColorUtils; -Lcom/android/internal/graphics/SfVsyncFrameCallbackProvider; -Lcom/android/internal/graphics/cam/Cam; -Lcom/android/internal/graphics/cam/CamUtils; -Lcom/android/internal/graphics/cam/Frame; -Lcom/android/internal/graphics/cam/HctSolver; -Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState; -Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable-IA; -Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable; -Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable$Aggregator; -Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable$BlurRegion; -Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable-IA; -Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable; -Lcom/android/internal/hidden_from_bootclasspath/android/service/notification/Flags; -Lcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService; -Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest; -Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest; -Lcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest; -Lcom/android/internal/infra/AbstractRemoteService$PendingRequest; -Lcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection; -Lcom/android/internal/infra/AbstractRemoteService$VultureCallback; -Lcom/android/internal/infra/AbstractRemoteService; -Lcom/android/internal/infra/AbstractSinglePendingRequestRemoteService; -Lcom/android/internal/infra/AndroidFuture$$ExternalSyntheticLambda1; -Lcom/android/internal/infra/AndroidFuture$$ExternalSyntheticLambda3; -Lcom/android/internal/infra/AndroidFuture$1; -Lcom/android/internal/infra/AndroidFuture$2; -Lcom/android/internal/infra/AndroidFuture; -Lcom/android/internal/infra/GlobalWhitelistState; -Lcom/android/internal/infra/IAndroidFuture$Stub$Proxy; -Lcom/android/internal/infra/IAndroidFuture$Stub; -Lcom/android/internal/infra/IAndroidFuture; -Lcom/android/internal/infra/PerUser; -Lcom/android/internal/infra/RemoteStream$1; -Lcom/android/internal/infra/RemoteStream; -Lcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob; -Lcom/android/internal/infra/ServiceConnector$Impl; -Lcom/android/internal/infra/ServiceConnector$Job; -Lcom/android/internal/infra/ServiceConnector$VoidJob; -Lcom/android/internal/infra/ServiceConnector; -Lcom/android/internal/infra/WhitelistHelper; -Lcom/android/internal/inputmethod/EditableInputConnection; -Lcom/android/internal/inputmethod/IAccessibilityInputMethodSession$Stub$Proxy; -Lcom/android/internal/inputmethod/IAccessibilityInputMethodSession$Stub; -Lcom/android/internal/inputmethod/IAccessibilityInputMethodSession; -Lcom/android/internal/inputmethod/IImeTracker$Stub$Proxy; -Lcom/android/internal/inputmethod/IImeTracker$Stub; -Lcom/android/internal/inputmethod/IImeTracker; -Lcom/android/internal/inputmethod/IInputContentUriToken; -Lcom/android/internal/inputmethod/IInputMethod$Stub; -Lcom/android/internal/inputmethod/IInputMethod; -Lcom/android/internal/inputmethod/IInputMethodClient$Stub; -Lcom/android/internal/inputmethod/IInputMethodClient; -Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy; -Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub; -Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations; -Lcom/android/internal/inputmethod/IInputMethodSession$Stub$Proxy; -Lcom/android/internal/inputmethod/IInputMethodSession$Stub; -Lcom/android/internal/inputmethod/IInputMethodSession; -Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection$Stub; -Lcom/android/internal/inputmethod/IRemoteAccessibilityInputConnection; -Lcom/android/internal/inputmethod/IRemoteInputConnection$Stub$Proxy; -Lcom/android/internal/inputmethod/IRemoteInputConnection$Stub; -Lcom/android/internal/inputmethod/IRemoteInputConnection; -Lcom/android/internal/inputmethod/ImeTracing; -Lcom/android/internal/inputmethod/ImeTracingClientImpl; -Lcom/android/internal/inputmethod/ImeTracingServerImpl; -Lcom/android/internal/inputmethod/InputBindResult$1; -Lcom/android/internal/inputmethod/InputBindResult-IA; -Lcom/android/internal/inputmethod/InputBindResult; -Lcom/android/internal/inputmethod/InputConnectionCommandHeader$1; -Lcom/android/internal/inputmethod/InputConnectionCommandHeader; -Lcom/android/internal/inputmethod/InputMethodDebug; -Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations$OpsHolder; -Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations; -Lcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry; -Lcom/android/internal/inputmethod/SubtypeLocaleUtils; -Lcom/android/internal/jank/Cuj; -Lcom/android/internal/jank/DisplayResolutionTracker$1; -Lcom/android/internal/jank/DisplayResolutionTracker$DisplayInterface$1; -Lcom/android/internal/jank/DisplayResolutionTracker$DisplayInterface; -Lcom/android/internal/jank/DisplayResolutionTracker; -Lcom/android/internal/jank/EventLogTags; -Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda1; -Lcom/android/internal/jank/FrameTracker$$ExternalSyntheticLambda2; -Lcom/android/internal/jank/FrameTracker$ChoreographerWrapper; -Lcom/android/internal/jank/FrameTracker$FrameMetricsWrapper; -Lcom/android/internal/jank/FrameTracker$FrameTrackerListener; -Lcom/android/internal/jank/FrameTracker$JankInfo; -Lcom/android/internal/jank/FrameTracker$SurfaceControlWrapper; -Lcom/android/internal/jank/FrameTracker$ThreadedRendererWrapper; -Lcom/android/internal/jank/FrameTracker; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda0; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda10; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda1; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda2; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda3; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda5; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda6; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda7; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda8; -Lcom/android/internal/jank/InteractionJankMonitor$$ExternalSyntheticLambda9; -Lcom/android/internal/jank/InteractionJankMonitor$Configuration; -Lcom/android/internal/jank/InteractionJankMonitor$InstanceHolder; -Lcom/android/internal/jank/InteractionJankMonitor$RunningTracker; -Lcom/android/internal/jank/InteractionJankMonitor$TimeFunction; -Lcom/android/internal/jank/InteractionJankMonitor$TrackerResult-IA; -Lcom/android/internal/jank/InteractionJankMonitor$TrackerResult; -Lcom/android/internal/jank/InteractionJankMonitor; -Lcom/android/internal/listeners/ListenerExecutor$$ExternalSyntheticLambda0; -Lcom/android/internal/listeners/ListenerExecutor$FailureCallback; -Lcom/android/internal/listeners/ListenerExecutor$ListenerOperation; -Lcom/android/internal/listeners/ListenerExecutor; -Lcom/android/internal/listeners/ListenerTransport; -Lcom/android/internal/listeners/ListenerTransportManager; -Lcom/android/internal/location/altitude/nano/MapParamsProto; -Lcom/android/internal/location/altitude/nano/S2TileProto; -Lcom/android/internal/location/nano/GnssLogsProto$GnssLog; -Lcom/android/internal/location/nano/GnssLogsProto$PowerMetrics; -Lcom/android/internal/logging/AndroidConfig; -Lcom/android/internal/logging/AndroidHandler$1; -Lcom/android/internal/logging/AndroidHandler; -Lcom/android/internal/logging/EventLogTags; -Lcom/android/internal/logging/InstanceId$1; -Lcom/android/internal/logging/InstanceId-IA; -Lcom/android/internal/logging/InstanceId; -Lcom/android/internal/logging/InstanceIdSequence; -Lcom/android/internal/logging/MetricsLogger; -Lcom/android/internal/logging/UiEventLogger$UiEventEnum; -Lcom/android/internal/logging/UiEventLogger; -Lcom/android/internal/logging/UiEventLoggerImpl; -Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy; -Lcom/android/internal/net/INetworkWatchlistManager$Stub; -Lcom/android/internal/net/INetworkWatchlistManager; -Lcom/android/internal/net/LegacyVpnInfo$1; -Lcom/android/internal/net/LegacyVpnInfo; -Lcom/android/internal/net/NetworkUtilsInternal; -Lcom/android/internal/net/VpnConfig$1; -Lcom/android/internal/net/VpnConfig; -Lcom/android/internal/net/VpnProfile$1; -Lcom/android/internal/net/VpnProfile; -Lcom/android/internal/notification/SystemNotificationChannels; -Lcom/android/internal/org/bouncycastle/cert/AttributeCertificateHolder; -Lcom/android/internal/org/bouncycastle/cms/CMSException; -Lcom/android/internal/org/bouncycastle/jcajce/util/BCJcaJceHelper; -Lcom/android/internal/org/bouncycastle/jcajce/util/JcaJceHelper; -Lcom/android/internal/org/bouncycastle/jcajce/util/ProviderJcaJceHelper; -Lcom/android/internal/org/bouncycastle/operator/OperatorCreationException; -Lcom/android/internal/org/bouncycastle/operator/OperatorException; -Lcom/android/internal/org/bouncycastle/util/Selector; -Lcom/android/internal/os/AndroidPrintStream; -Lcom/android/internal/os/AppFuseMount$1; -Lcom/android/internal/os/AppFuseMount; -Lcom/android/internal/os/AppIdToPackageMap; -Lcom/android/internal/os/AtomicDirectory; -Lcom/android/internal/os/BackgroundThread; -Lcom/android/internal/os/BatteryStatsHistory$HistoryStepDetailsCalculator; -Lcom/android/internal/os/BatteryStatsHistory$TraceDelegate; -Lcom/android/internal/os/BatteryStatsHistory$VarintParceler; -Lcom/android/internal/os/BatteryStatsHistory; -Lcom/android/internal/os/BinderCallHeavyHitterWatcher$BinderCallHeavyHitterListener; -Lcom/android/internal/os/BinderCallHeavyHitterWatcher$HeavyHitterContainer; -Lcom/android/internal/os/BinderCallHeavyHitterWatcher; -Lcom/android/internal/os/BinderCallsStats$1; -Lcom/android/internal/os/BinderCallsStats$CallStat; -Lcom/android/internal/os/BinderCallsStats$CallStatKey; -Lcom/android/internal/os/BinderCallsStats$ExportedCallStat; -Lcom/android/internal/os/BinderCallsStats$Injector; -Lcom/android/internal/os/BinderCallsStats$OverflowBinder; -Lcom/android/internal/os/BinderCallsStats$SettingsObserver; -Lcom/android/internal/os/BinderCallsStats$UidEntry; -Lcom/android/internal/os/BinderCallsStats; -Lcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo-IA; -Lcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo; -Lcom/android/internal/os/BinderDeathDispatcher; -Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener; -Lcom/android/internal/os/BinderInternal$BinderProxyLimitListenerDelegate; -Lcom/android/internal/os/BinderInternal$CallSession; -Lcom/android/internal/os/BinderInternal$CallStatsObserver; -Lcom/android/internal/os/BinderInternal$GcWatcher; -Lcom/android/internal/os/BinderInternal$Observer; -Lcom/android/internal/os/BinderInternal$WorkSourceProvider; -Lcom/android/internal/os/BinderInternal; -Lcom/android/internal/os/BinderLatencyBuckets; -Lcom/android/internal/os/BinderLatencyObserver$1; -Lcom/android/internal/os/BinderLatencyObserver$Injector; -Lcom/android/internal/os/BinderLatencyObserver$LatencyDims; -Lcom/android/internal/os/BinderLatencyObserver; -Lcom/android/internal/os/BinderTransactionNameResolver; -Lcom/android/internal/os/ByteTransferPipe; -Lcom/android/internal/os/CachedDeviceState$Readonly; -Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch; -Lcom/android/internal/os/CachedDeviceState; -Lcom/android/internal/os/ClassLoaderFactory; -Lcom/android/internal/os/Clock; -Lcom/android/internal/os/FuseAppLoop$1; -Lcom/android/internal/os/FuseAppLoop; -Lcom/android/internal/os/FuseUnavailableMountException; -Lcom/android/internal/os/HandlerCaller$Callback; -Lcom/android/internal/os/HandlerCaller$MyHandler; -Lcom/android/internal/os/HandlerCaller; -Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy; -Lcom/android/internal/os/IDropBoxManagerService$Stub; -Lcom/android/internal/os/IDropBoxManagerService; -Lcom/android/internal/os/IResultReceiver$Stub$Proxy; -Lcom/android/internal/os/IResultReceiver$Stub; -Lcom/android/internal/os/IResultReceiver; -Lcom/android/internal/os/IShellCallback$Stub$Proxy; -Lcom/android/internal/os/IShellCallback$Stub; -Lcom/android/internal/os/IShellCallback; -Lcom/android/internal/os/KernelAllocationStats$ProcessDmabuf; -Lcom/android/internal/os/KernelAllocationStats$ProcessGpuMem; -Lcom/android/internal/os/KernelAllocationStats; -Lcom/android/internal/os/KernelCpuBpfTracking; -Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator; -Lcom/android/internal/os/KernelCpuProcStringReader; -Lcom/android/internal/os/KernelCpuSpeedReader; -Lcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator; -Lcom/android/internal/os/KernelCpuThreadReader$Injector; -Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage; -Lcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage; -Lcom/android/internal/os/KernelCpuThreadReader; -Lcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey; -Lcom/android/internal/os/KernelCpuThreadReaderDiff; -Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate; -Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver; -Lcom/android/internal/os/KernelCpuTotalBpfMapReader; -Lcom/android/internal/os/KernelCpuUidBpfMapReader$BpfMapIterator; -Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidActiveTimeBpfMapReader; -Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidClusterTimeBpfMapReader; -Lcom/android/internal/os/KernelCpuUidBpfMapReader$KernelCpuUidFreqTimeBpfMapReader; -Lcom/android/internal/os/KernelCpuUidBpfMapReader; -Lcom/android/internal/os/KernelCpuUidTimeReader$Callback; -Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader; -Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader; -Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader; -Lcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader; -Lcom/android/internal/os/KernelCpuUidTimeReader; -Lcom/android/internal/os/KernelMemoryBandwidthStats; -Lcom/android/internal/os/KernelSingleProcessCpuThreadReader$CpuTimeInStateReader; -Lcom/android/internal/os/KernelSingleProcessCpuThreadReader$ProcessCpuUsage; -Lcom/android/internal/os/KernelSingleProcessCpuThreadReader; -Lcom/android/internal/os/KernelSingleUidTimeReader$Injector; -Lcom/android/internal/os/KernelSingleUidTimeReader; -Lcom/android/internal/os/LoggingPrintStream$1; -Lcom/android/internal/os/LoggingPrintStream; -Lcom/android/internal/os/LongArrayMultiStateCounter$1; -Lcom/android/internal/os/LongArrayMultiStateCounter$LongArrayContainer; -Lcom/android/internal/os/LongArrayMultiStateCounter; -Lcom/android/internal/os/LongMultiStateCounter$1; -Lcom/android/internal/os/LongMultiStateCounter; -Lcom/android/internal/os/LooperStats$DispatchSession-IA; -Lcom/android/internal/os/LooperStats$DispatchSession; -Lcom/android/internal/os/LooperStats$Entry; -Lcom/android/internal/os/LooperStats$ExportedEntry; -Lcom/android/internal/os/LooperStats; -Lcom/android/internal/os/PowerProfile$CpuClusterKey; -Lcom/android/internal/os/PowerProfile; -Lcom/android/internal/os/ProcStatsUtil; -Lcom/android/internal/os/ProcTimeInStateReader; -Lcom/android/internal/os/ProcessCpuTracker$1; -Lcom/android/internal/os/ProcessCpuTracker$FilterStats; -Lcom/android/internal/os/ProcessCpuTracker$Stats; -Lcom/android/internal/os/ProcessCpuTracker; -Lcom/android/internal/os/RailStats; -Lcom/android/internal/os/RoSystemProperties; -Lcom/android/internal/os/RpmStats$PowerStateElement; -Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState; -Lcom/android/internal/os/RpmStats$PowerStateSubsystem; -Lcom/android/internal/os/RpmStats; -Lcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda0; -Lcom/android/internal/os/RuntimeInit$$ExternalSyntheticLambda1; -Lcom/android/internal/os/RuntimeInit$ApplicationWtfHandler; -Lcom/android/internal/os/RuntimeInit$Arguments; -Lcom/android/internal/os/RuntimeInit$KillApplicationHandler; -Lcom/android/internal/os/RuntimeInit$LoggingHandler-IA; -Lcom/android/internal/os/RuntimeInit$LoggingHandler; -Lcom/android/internal/os/RuntimeInit$MethodAndArgsCaller; -Lcom/android/internal/os/RuntimeInit; -Lcom/android/internal/os/SafeZipPathValidatorCallback; -Lcom/android/internal/os/SomeArgs; -Lcom/android/internal/os/StatsdHiddenApiUsageLogger; -Lcom/android/internal/os/StoragedUidIoStatsReader$Callback; -Lcom/android/internal/os/StoragedUidIoStatsReader; -Lcom/android/internal/os/TransferPipe; -Lcom/android/internal/os/WrapperInit; -Lcom/android/internal/os/Zygote; -Lcom/android/internal/os/ZygoteArguments; -Lcom/android/internal/os/ZygoteCommandBuffer; -Lcom/android/internal/os/ZygoteConfig; -Lcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda0; -Lcom/android/internal/os/ZygoteConnection$$ExternalSyntheticLambda1; -Lcom/android/internal/os/ZygoteConnection; -Lcom/android/internal/os/ZygoteInit; -Lcom/android/internal/os/ZygoteSecurityException; -Lcom/android/internal/os/ZygoteServer$$ExternalSyntheticLambda0; -Lcom/android/internal/os/ZygoteServer$UsapPoolRefillAction; -Lcom/android/internal/os/ZygoteServer; -Lcom/android/internal/os/logging/MetricsLoggerWrapper; -Lcom/android/internal/pm/parsing/PackageParser2$Callback; -Lcom/android/internal/pm/parsing/PackageParserException; -Lcom/android/internal/pm/pkg/component/flags/Flags; -Lcom/android/internal/pm/pkg/parsing/ParsingPackageUtils$Callback; -Lcom/android/internal/policy/AttributeCache; -Lcom/android/internal/policy/BackdropFrameRenderer; -Lcom/android/internal/policy/DecorContext; -Lcom/android/internal/policy/DecorView$$ExternalSyntheticLambda0; -Lcom/android/internal/policy/DecorView$$ExternalSyntheticLambda1; -Lcom/android/internal/policy/DecorView$1; -Lcom/android/internal/policy/DecorView$2; -Lcom/android/internal/policy/DecorView$3; -Lcom/android/internal/policy/DecorView$6; -Lcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper$1; -Lcom/android/internal/policy/DecorView$ActionModeCallback2Wrapper; -Lcom/android/internal/policy/DecorView$ColorViewAttributes; -Lcom/android/internal/policy/DecorView$ColorViewState; -Lcom/android/internal/policy/DecorView; -Lcom/android/internal/policy/GestureNavigationSettingsObserver$$ExternalSyntheticLambda0; -Lcom/android/internal/policy/GestureNavigationSettingsObserver$1; -Lcom/android/internal/policy/GestureNavigationSettingsObserver; -Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy; -Lcom/android/internal/policy/IKeyguardDismissCallback$Stub; -Lcom/android/internal/policy/IKeyguardDismissCallback; -Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy; -Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub; -Lcom/android/internal/policy/IKeyguardDrawnCallback; -Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy; -Lcom/android/internal/policy/IKeyguardExitCallback$Stub; -Lcom/android/internal/policy/IKeyguardExitCallback; -Lcom/android/internal/policy/IKeyguardLockedStateListener$Stub; -Lcom/android/internal/policy/IKeyguardLockedStateListener; -Lcom/android/internal/policy/IKeyguardService$Stub$Proxy; -Lcom/android/internal/policy/IKeyguardService$Stub; -Lcom/android/internal/policy/IKeyguardService; -Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy; -Lcom/android/internal/policy/IKeyguardStateCallback$Stub; -Lcom/android/internal/policy/IKeyguardStateCallback; -Lcom/android/internal/policy/IShortcutService$Stub$Proxy; -Lcom/android/internal/policy/IShortcutService$Stub; -Lcom/android/internal/policy/IShortcutService; -Lcom/android/internal/policy/KeyInterceptionInfo; -Lcom/android/internal/policy/LogDecelerateInterpolator; -Lcom/android/internal/policy/PhoneFallbackEventHandler; -Lcom/android/internal/policy/PhoneLayoutInflater; -Lcom/android/internal/policy/PhoneWindow$$ExternalSyntheticLambda0; -Lcom/android/internal/policy/PhoneWindow$$ExternalSyntheticLambda1; -Lcom/android/internal/policy/PhoneWindow$1; -Lcom/android/internal/policy/PhoneWindow$ActionMenuPresenterCallback; -Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1; -Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState-IA; -Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState; -Lcom/android/internal/policy/PhoneWindow$PanelFeatureState; -Lcom/android/internal/policy/PhoneWindow$PhoneWindowMenuCallback; -Lcom/android/internal/policy/PhoneWindow$RotationWatcher$1; -Lcom/android/internal/policy/PhoneWindow$RotationWatcher; -Lcom/android/internal/policy/PhoneWindow; -Lcom/android/internal/policy/ScreenDecorationsUtils; -Lcom/android/internal/policy/SystemBarUtils; -Lcom/android/internal/policy/TransitionAnimation$$ExternalSyntheticLambda0; -Lcom/android/internal/policy/TransitionAnimation$$ExternalSyntheticLambda1; -Lcom/android/internal/policy/TransitionAnimation; -Lcom/android/internal/policy/WearGestureInterceptionDetector; -Lcom/android/internal/power/ModemPowerProfile; -Lcom/android/internal/protolog/ProtoLogGroup; -Lcom/android/internal/protolog/ProtoLogImpl; -Lcom/android/internal/protolog/ProtoLogViewerConfigReader; -Lcom/android/internal/protolog/common/BitmaskConversionException; -Lcom/android/internal/protolog/common/IProtoLogGroup; -Lcom/android/internal/protolog/common/LogDataType; -Lcom/android/internal/security/VerityUtils; -Lcom/android/internal/statusbar/IAddTileResultCallback; -Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy; -Lcom/android/internal/statusbar/IStatusBar$Stub; -Lcom/android/internal/statusbar/IStatusBar; -Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy; -Lcom/android/internal/statusbar/IStatusBarService$Stub; -Lcom/android/internal/statusbar/IStatusBarService; -Lcom/android/internal/statusbar/IUndoMediaTransferCallback; -Lcom/android/internal/statusbar/LetterboxDetails$1; -Lcom/android/internal/statusbar/LetterboxDetails; -Lcom/android/internal/statusbar/NotificationVisibility$1; -Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation; -Lcom/android/internal/statusbar/NotificationVisibility; -Lcom/android/internal/statusbar/RegisterStatusBarResult$1; -Lcom/android/internal/statusbar/RegisterStatusBarResult; -Lcom/android/internal/statusbar/StatusBarIcon$1; -Lcom/android/internal/statusbar/StatusBarIcon; -Lcom/android/internal/telecom/ClientTransactionalServiceRepository; -Lcom/android/internal/telecom/IConnectionService$Stub$Proxy; -Lcom/android/internal/telecom/IConnectionService$Stub; -Lcom/android/internal/telecom/IConnectionService; -Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub; -Lcom/android/internal/telecom/IConnectionServiceAdapter; -Lcom/android/internal/telecom/IDeviceIdleControllerAdapter$Stub; -Lcom/android/internal/telecom/IDeviceIdleControllerAdapter; -Lcom/android/internal/telecom/IInCallAdapter$Stub; -Lcom/android/internal/telecom/IInCallAdapter; -Lcom/android/internal/telecom/IInCallService$Stub$Proxy; -Lcom/android/internal/telecom/IInCallService$Stub; -Lcom/android/internal/telecom/IInCallService; -Lcom/android/internal/telecom/IInternalServiceRetriever$Stub; -Lcom/android/internal/telecom/IInternalServiceRetriever; -Lcom/android/internal/telecom/ITelecomLoader$Stub$Proxy; -Lcom/android/internal/telecom/ITelecomLoader$Stub; -Lcom/android/internal/telecom/ITelecomLoader; -Lcom/android/internal/telecom/ITelecomService$Stub$Proxy; -Lcom/android/internal/telecom/ITelecomService$Stub; -Lcom/android/internal/telecom/ITelecomService; -Lcom/android/internal/telecom/IVideoCallback; -Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy; -Lcom/android/internal/telecom/IVideoProvider$Stub; -Lcom/android/internal/telecom/IVideoProvider; -Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy; -Lcom/android/internal/telecom/RemoteServiceCallback$Stub; -Lcom/android/internal/telecom/RemoteServiceCallback; -Lcom/android/internal/telephony/ATParseEx; -Lcom/android/internal/telephony/ATResponseParser; -Lcom/android/internal/telephony/AndroidUtilIndentingPrintWriter; -Lcom/android/internal/telephony/AppSmsManager$AppRequestInfo; -Lcom/android/internal/telephony/AppSmsManager; -Lcom/android/internal/telephony/AsyncChannel$1ConnectAsync; -Lcom/android/internal/telephony/AsyncChannel$AsyncChannelConnection; -Lcom/android/internal/telephony/AsyncChannel$DeathMonitor; -Lcom/android/internal/telephony/AsyncChannel$SyncMessenger$SyncHandler; -Lcom/android/internal/telephony/AsyncChannel$SyncMessenger; -Lcom/android/internal/telephony/AsyncChannel; -Lcom/android/internal/telephony/AsyncEmergencyContactNotifier; -Lcom/android/internal/telephony/AsyncService$AsyncServiceInfo; -Lcom/android/internal/telephony/AsyncService; -Lcom/android/internal/telephony/BaseCommands; -Lcom/android/internal/telephony/BiMap; -Lcom/android/internal/telephony/BitwiseInputStream$AccessException; -Lcom/android/internal/telephony/BitwiseInputStream; -Lcom/android/internal/telephony/BlockChecker; -Lcom/android/internal/telephony/BtSmsInterfaceManager$MapMessageSender; -Lcom/android/internal/telephony/BtSmsInterfaceManager; -Lcom/android/internal/telephony/Call$1; -Lcom/android/internal/telephony/Call$SrvccState; -Lcom/android/internal/telephony/Call$State; -Lcom/android/internal/telephony/Call; -Lcom/android/internal/telephony/CallFailCause; -Lcom/android/internal/telephony/CallForwardInfo; -Lcom/android/internal/telephony/CallManager$CallManagerHandler; -Lcom/android/internal/telephony/CallManager; -Lcom/android/internal/telephony/CallStateException; -Lcom/android/internal/telephony/CallTracker; -Lcom/android/internal/telephony/CarrierActionAgent$1; -Lcom/android/internal/telephony/CarrierActionAgent; -Lcom/android/internal/telephony/CarrierAppUtils$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/CarrierAppUtils$AssociatedAppInfo; -Lcom/android/internal/telephony/CarrierAppUtils; -Lcom/android/internal/telephony/CarrierInfoManager; -Lcom/android/internal/telephony/CarrierKeyDownloadManager$1; -Lcom/android/internal/telephony/CarrierKeyDownloadManager$2; -Lcom/android/internal/telephony/CarrierKeyDownloadManager; -Lcom/android/internal/telephony/CarrierPrivilegesTracker$1; -Lcom/android/internal/telephony/CarrierPrivilegesTracker; -Lcom/android/internal/telephony/CarrierResolver$1; -Lcom/android/internal/telephony/CarrierResolver$2; -Lcom/android/internal/telephony/CarrierResolver$3; -Lcom/android/internal/telephony/CarrierResolver$CarrierMatchingRule; -Lcom/android/internal/telephony/CarrierResolver; -Lcom/android/internal/telephony/CarrierServiceBindHelper$1; -Lcom/android/internal/telephony/CarrierServiceBindHelper$2; -Lcom/android/internal/telephony/CarrierServiceBindHelper$AppBinding$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/CarrierServiceBindHelper$AppBinding; -Lcom/android/internal/telephony/CarrierServiceBindHelper$CarrierServiceConnection; -Lcom/android/internal/telephony/CarrierServiceBindHelper$CarrierServicePackageMonitor; -Lcom/android/internal/telephony/CarrierServiceBindHelper; -Lcom/android/internal/telephony/CarrierServiceStateTracker$1; -Lcom/android/internal/telephony/CarrierServiceStateTracker$AllowedNetworkTypesListener; -Lcom/android/internal/telephony/CarrierServiceStateTracker$EmergencyNetworkNotification; -Lcom/android/internal/telephony/CarrierServiceStateTracker$NotificationType; -Lcom/android/internal/telephony/CarrierServiceStateTracker$PrefNetworkNotification; -Lcom/android/internal/telephony/CarrierServiceStateTracker; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CallbackTimeoutHandler$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CallbackTimeoutHandler; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierServicesSmsFilterCallbackInterface; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilter; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierSmsFilterCallback; -Lcom/android/internal/telephony/CarrierServicesSmsFilter$FilterAggregator; -Lcom/android/internal/telephony/CarrierServicesSmsFilter; -Lcom/android/internal/telephony/CarrierSignalAgent$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/CarrierSignalAgent$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/CarrierSignalAgent$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/CarrierSignalAgent$1; -Lcom/android/internal/telephony/CarrierSignalAgent; -Lcom/android/internal/telephony/CarrierSmsUtils; -Lcom/android/internal/telephony/CellBroadcastServiceManager$1; -Lcom/android/internal/telephony/CellBroadcastServiceManager$CellBroadcastServiceConnection; -Lcom/android/internal/telephony/CellBroadcastServiceManager; -Lcom/android/internal/telephony/CellBroadcastUtils; -Lcom/android/internal/telephony/CellNetworkScanResult$1; -Lcom/android/internal/telephony/CellNetworkScanResult; -Lcom/android/internal/telephony/CellularNetworkService$CellularNetworkServiceProvider$1; -Lcom/android/internal/telephony/CellularNetworkService$CellularNetworkServiceProvider; -Lcom/android/internal/telephony/CellularNetworkService; -Lcom/android/internal/telephony/ClientWakelockAccountant; -Lcom/android/internal/telephony/ClientWakelockTracker; -Lcom/android/internal/telephony/CommandException$Error; -Lcom/android/internal/telephony/CommandException; -Lcom/android/internal/telephony/CommandsInterface; -Lcom/android/internal/telephony/Connection$Capability; -Lcom/android/internal/telephony/Connection$Listener; -Lcom/android/internal/telephony/Connection$ListenerBase; -Lcom/android/internal/telephony/Connection$PostDialListener; -Lcom/android/internal/telephony/Connection$PostDialState; -Lcom/android/internal/telephony/Connection; -Lcom/android/internal/telephony/DctConstants$Activity; -Lcom/android/internal/telephony/DctConstants$State; -Lcom/android/internal/telephony/DebugService; -Lcom/android/internal/telephony/DefaultPhoneNotifier$1; -Lcom/android/internal/telephony/DefaultPhoneNotifier; -Lcom/android/internal/telephony/DeviceStateMonitor$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/DeviceStateMonitor$1; -Lcom/android/internal/telephony/DeviceStateMonitor$2; -Lcom/android/internal/telephony/DeviceStateMonitor$3; -Lcom/android/internal/telephony/DeviceStateMonitor; -Lcom/android/internal/telephony/DisplayInfoController; -Lcom/android/internal/telephony/DriverCall$State; -Lcom/android/internal/telephony/DriverCall; -Lcom/android/internal/telephony/EncodeException; -Lcom/android/internal/telephony/EventLogTags; -Lcom/android/internal/telephony/ExponentialBackoff$1; -Lcom/android/internal/telephony/ExponentialBackoff$HandlerAdapter; -Lcom/android/internal/telephony/ExponentialBackoff; -Lcom/android/internal/telephony/FastXmlSerializer; -Lcom/android/internal/telephony/GbaManager$1; -Lcom/android/internal/telephony/GbaManager$GbaDeathRecipient; -Lcom/android/internal/telephony/GbaManager$GbaManagerHandler; -Lcom/android/internal/telephony/GbaManager$GbaServiceConnection; -Lcom/android/internal/telephony/GbaManager; -Lcom/android/internal/telephony/GlobalSettingsHelper; -Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails; -Lcom/android/internal/telephony/GsmAlphabet; -Lcom/android/internal/telephony/GsmCdmaCall; -Lcom/android/internal/telephony/GsmCdmaCallTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/GsmCdmaCallTracker$1; -Lcom/android/internal/telephony/GsmCdmaCallTracker$2; -Lcom/android/internal/telephony/GsmCdmaCallTracker$3; -Lcom/android/internal/telephony/GsmCdmaCallTracker; -Lcom/android/internal/telephony/GsmCdmaConnection$1; -Lcom/android/internal/telephony/GsmCdmaConnection$MyHandler; -Lcom/android/internal/telephony/GsmCdmaConnection; -Lcom/android/internal/telephony/GsmCdmaPhone$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/GsmCdmaPhone$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/GsmCdmaPhone$1; -Lcom/android/internal/telephony/GsmCdmaPhone$2; -Lcom/android/internal/telephony/GsmCdmaPhone$3; -Lcom/android/internal/telephony/GsmCdmaPhone$Cfu; -Lcom/android/internal/telephony/GsmCdmaPhone$ImsManagerFactory; -Lcom/android/internal/telephony/GsmCdmaPhone; -Lcom/android/internal/telephony/HalVersion; -Lcom/android/internal/telephony/HardwareConfig; -Lcom/android/internal/telephony/HbpcdLookup$MccIdd; -Lcom/android/internal/telephony/HbpcdLookup$MccLookup; -Lcom/android/internal/telephony/HbpcdUtils; -Lcom/android/internal/telephony/HexDump; -Lcom/android/internal/telephony/IBooleanConsumer$Stub$Proxy; -Lcom/android/internal/telephony/IBooleanConsumer$Stub; -Lcom/android/internal/telephony/IBooleanConsumer; -Lcom/android/internal/telephony/ICallForwardingInfoCallback$Stub; -Lcom/android/internal/telephony/ICallForwardingInfoCallback; -Lcom/android/internal/telephony/ICarrierConfigChangeListener$Stub; -Lcom/android/internal/telephony/ICarrierConfigChangeListener; -Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy; -Lcom/android/internal/telephony/ICarrierConfigLoader$Stub; -Lcom/android/internal/telephony/ICarrierConfigLoader; -Lcom/android/internal/telephony/ICarrierPrivilegesCallback$Stub; -Lcom/android/internal/telephony/ICarrierPrivilegesCallback; -Lcom/android/internal/telephony/IIccPhoneBook$Default; -Lcom/android/internal/telephony/IIccPhoneBook$Stub$Proxy; -Lcom/android/internal/telephony/IIccPhoneBook$Stub; -Lcom/android/internal/telephony/IIccPhoneBook; -Lcom/android/internal/telephony/IIntegerConsumer$Stub$Proxy; -Lcom/android/internal/telephony/IIntegerConsumer$Stub; -Lcom/android/internal/telephony/IIntegerConsumer; -Lcom/android/internal/telephony/IMms$Stub$Proxy; -Lcom/android/internal/telephony/IMms$Stub; -Lcom/android/internal/telephony/IMms; -Lcom/android/internal/telephony/INumberVerificationCallback$Stub$Proxy; -Lcom/android/internal/telephony/INumberVerificationCallback$Stub; -Lcom/android/internal/telephony/INumberVerificationCallback; -Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy; -Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub; -Lcom/android/internal/telephony/IOnSubscriptionsChangedListener; -Lcom/android/internal/telephony/IOns$Stub$Proxy; -Lcom/android/internal/telephony/IOns$Stub; -Lcom/android/internal/telephony/IOns; -Lcom/android/internal/telephony/IPhoneStateListener$Stub; -Lcom/android/internal/telephony/IPhoneStateListener; -Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy; -Lcom/android/internal/telephony/IPhoneSubInfo$Stub; -Lcom/android/internal/telephony/IPhoneSubInfo; -Lcom/android/internal/telephony/ISetOpportunisticDataCallback$Stub$Proxy; -Lcom/android/internal/telephony/ISetOpportunisticDataCallback$Stub; -Lcom/android/internal/telephony/ISetOpportunisticDataCallback; -Lcom/android/internal/telephony/ISms$Stub$Proxy; -Lcom/android/internal/telephony/ISms$Stub; -Lcom/android/internal/telephony/ISms; -Lcom/android/internal/telephony/ISmsImplBase; -Lcom/android/internal/telephony/IState; -Lcom/android/internal/telephony/ISub$Stub$Proxy; -Lcom/android/internal/telephony/ISub$Stub; -Lcom/android/internal/telephony/ISub; -Lcom/android/internal/telephony/ITelephony$Stub$Proxy; -Lcom/android/internal/telephony/ITelephony$Stub; -Lcom/android/internal/telephony/ITelephony; -Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy; -Lcom/android/internal/telephony/ITelephonyRegistry$Stub; -Lcom/android/internal/telephony/ITelephonyRegistry; -Lcom/android/internal/telephony/IUpdateAvailableNetworksCallback$Stub; -Lcom/android/internal/telephony/IUpdateAvailableNetworksCallback; -Lcom/android/internal/telephony/IWapPushManager$Stub; -Lcom/android/internal/telephony/IWapPushManager; -Lcom/android/internal/telephony/IccCard; -Lcom/android/internal/telephony/IccCardConstants$State; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager$1; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager$Request; -Lcom/android/internal/telephony/IccPhoneBookInterfaceManager; -Lcom/android/internal/telephony/IccProvider; -Lcom/android/internal/telephony/IccSmsInterfaceManager$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/IccSmsInterfaceManager$1; -Lcom/android/internal/telephony/IccSmsInterfaceManager$CdmaBroadcastRangeManager; -Lcom/android/internal/telephony/IccSmsInterfaceManager$CellBroadcastRangeManager; -Lcom/android/internal/telephony/IccSmsInterfaceManager$Request; -Lcom/android/internal/telephony/IccSmsInterfaceManager; -Lcom/android/internal/telephony/ImsSmsDispatcher$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/ImsSmsDispatcher$1; -Lcom/android/internal/telephony/ImsSmsDispatcher$2; -Lcom/android/internal/telephony/ImsSmsDispatcher$3; -Lcom/android/internal/telephony/ImsSmsDispatcher$4$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/ImsSmsDispatcher$4; -Lcom/android/internal/telephony/ImsSmsDispatcher$5; -Lcom/android/internal/telephony/ImsSmsDispatcher$FeatureConnectorFactory; -Lcom/android/internal/telephony/ImsSmsDispatcher; -Lcom/android/internal/telephony/InboundSmsHandler$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/InboundSmsHandler$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/InboundSmsHandler$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/InboundSmsHandler$CarrierServicesSmsFilterCallback; -Lcom/android/internal/telephony/InboundSmsHandler$CbTestBroadcastReceiver; -Lcom/android/internal/telephony/InboundSmsHandler$DefaultState; -Lcom/android/internal/telephony/InboundSmsHandler$DeliveringState; -Lcom/android/internal/telephony/InboundSmsHandler$IdleState; -Lcom/android/internal/telephony/InboundSmsHandler$NewMessageNotificationActionReceiver; -Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver; -Lcom/android/internal/telephony/InboundSmsHandler$SmsFilter; -Lcom/android/internal/telephony/InboundSmsHandler$StartupState; -Lcom/android/internal/telephony/InboundSmsHandler$WaitingState; -Lcom/android/internal/telephony/InboundSmsHandler; -Lcom/android/internal/telephony/InboundSmsTracker; -Lcom/android/internal/telephony/IndentingPrintWriter; -Lcom/android/internal/telephony/IntRangeManager$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/IntRangeManager$ClientRange; -Lcom/android/internal/telephony/IntRangeManager$IntRange; -Lcom/android/internal/telephony/IntRangeManager; -Lcom/android/internal/telephony/IntentBroadcaster$1; -Lcom/android/internal/telephony/IntentBroadcaster; -Lcom/android/internal/telephony/LastCallFailCause; -Lcom/android/internal/telephony/LocalLog$ReadOnlyLocalLog; -Lcom/android/internal/telephony/LocalLog; -Lcom/android/internal/telephony/LocaleTracker$1; -Lcom/android/internal/telephony/LocaleTracker; -Lcom/android/internal/telephony/MccTable$MccEntry; -Lcom/android/internal/telephony/MccTable$MccMnc; -Lcom/android/internal/telephony/MccTable; -Lcom/android/internal/telephony/MissedIncomingCallSmsFilter; -Lcom/android/internal/telephony/MmiCode$State; -Lcom/android/internal/telephony/MmiCode; -Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/MultiSimSettingController$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/MultiSimSettingController$SimCombinationWarningParams; -Lcom/android/internal/telephony/MultiSimSettingController$UpdateDefaultAction; -Lcom/android/internal/telephony/MultiSimSettingController; -Lcom/android/internal/telephony/NetworkFactory; -Lcom/android/internal/telephony/NetworkFactoryImpl$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/NetworkFactoryImpl$1; -Lcom/android/internal/telephony/NetworkFactoryImpl$2; -Lcom/android/internal/telephony/NetworkFactoryImpl$NetworkRequestInfo; -Lcom/android/internal/telephony/NetworkFactoryImpl; -Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$1; -Lcom/android/internal/telephony/NetworkFactoryLegacyImpl$NetworkRequestInfo; -Lcom/android/internal/telephony/NetworkFactoryLegacyImpl; -Lcom/android/internal/telephony/NetworkFactoryShim; -Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkRegStateCallback; -Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkServiceConnection; -Lcom/android/internal/telephony/NetworkRegistrationManager$RegManagerDeathRecipient; -Lcom/android/internal/telephony/NetworkRegistrationManager; -Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/NetworkScanRequestTracker$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/NetworkScanRequestTracker$1; -Lcom/android/internal/telephony/NetworkScanRequestTracker$2; -Lcom/android/internal/telephony/NetworkScanRequestTracker$NetworkScanRequestInfo; -Lcom/android/internal/telephony/NetworkScanRequestTracker$NetworkScanRequestScheduler; -Lcom/android/internal/telephony/NetworkScanRequestTracker; -Lcom/android/internal/telephony/NetworkScanResult$1; -Lcom/android/internal/telephony/NetworkScanResult; -Lcom/android/internal/telephony/NetworkTypeController$1; -Lcom/android/internal/telephony/NetworkTypeController$DefaultState; -Lcom/android/internal/telephony/NetworkTypeController$IdleState; -Lcom/android/internal/telephony/NetworkTypeController$LegacyState; -Lcom/android/internal/telephony/NetworkTypeController$LteConnectedState; -Lcom/android/internal/telephony/NetworkTypeController$NrConnectedState; -Lcom/android/internal/telephony/NetworkTypeController$OverrideTimerRule; -Lcom/android/internal/telephony/NetworkTypeController; -Lcom/android/internal/telephony/NitzData; -Lcom/android/internal/telephony/NitzStateMachine$DeviceState; -Lcom/android/internal/telephony/NitzStateMachine$DeviceStateImpl; -Lcom/android/internal/telephony/NitzStateMachine; -Lcom/android/internal/telephony/OperatorInfo$1; -Lcom/android/internal/telephony/OperatorInfo$State; -Lcom/android/internal/telephony/OperatorInfo; -Lcom/android/internal/telephony/PackageBasedTokenUtil; -Lcom/android/internal/telephony/PackageChangeReceiver; -Lcom/android/internal/telephony/Phone$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/Phone$NetworkSelectMessage; -Lcom/android/internal/telephony/Phone$SilentRedialParam; -Lcom/android/internal/telephony/Phone; -Lcom/android/internal/telephony/PhoneConfigurationManager$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/PhoneConfigurationManager$1; -Lcom/android/internal/telephony/PhoneConfigurationManager$ConfigManagerHandler; -Lcom/android/internal/telephony/PhoneConfigurationManager$MockableInterface; -Lcom/android/internal/telephony/PhoneConfigurationManager; -Lcom/android/internal/telephony/PhoneConstantConversions$1; -Lcom/android/internal/telephony/PhoneConstantConversions; -Lcom/android/internal/telephony/PhoneConstants$DataState; -Lcom/android/internal/telephony/PhoneConstants$State; -Lcom/android/internal/telephony/PhoneFactory; -Lcom/android/internal/telephony/PhoneInternalInterface$DataActivityState; -Lcom/android/internal/telephony/PhoneInternalInterface$DialArgs$Builder; -Lcom/android/internal/telephony/PhoneInternalInterface$DialArgs; -Lcom/android/internal/telephony/PhoneInternalInterface$SuppService; -Lcom/android/internal/telephony/PhoneInternalInterface; -Lcom/android/internal/telephony/PhoneNotifier; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda10; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda11; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda12; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda13; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda14; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda15; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda16; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda17; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda18; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda19; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda20; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda21; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda22; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda23; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda24; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda25; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda26; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda27; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda6; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda7; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda8; -Lcom/android/internal/telephony/PhoneSubInfoController$$ExternalSyntheticLambda9; -Lcom/android/internal/telephony/PhoneSubInfoController$CallPhoneMethodHelper; -Lcom/android/internal/telephony/PhoneSubInfoController$PermissionCheckHelper; -Lcom/android/internal/telephony/PhoneSubInfoController; -Lcom/android/internal/telephony/ProxyController$1; -Lcom/android/internal/telephony/ProxyController; -Lcom/android/internal/telephony/RIL$RadioProxyDeathRecipient; -Lcom/android/internal/telephony/RIL$RilHandler; -Lcom/android/internal/telephony/RIL; -Lcom/android/internal/telephony/RILConstants$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/RILConstants$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/RILConstants; -Lcom/android/internal/telephony/RILRequest$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/RILRequest; -Lcom/android/internal/telephony/RadioBugDetector; -Lcom/android/internal/telephony/RadioCapability; -Lcom/android/internal/telephony/RadioConfig$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/RadioConfig; -Lcom/android/internal/telephony/RadioIndication$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/RadioIndication$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/RadioIndication; -Lcom/android/internal/telephony/RadioInterfaceCapabilityController; -Lcom/android/internal/telephony/RadioNVItems; -Lcom/android/internal/telephony/RadioResponse$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/RadioResponse$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/RadioResponse$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/RadioResponse; -Lcom/android/internal/telephony/RatRatcheter; -Lcom/android/internal/telephony/Registrant; -Lcom/android/internal/telephony/RegistrantList; -Lcom/android/internal/telephony/RegistrationFailedEvent; -Lcom/android/internal/telephony/RestrictedState; -Lcom/android/internal/telephony/RilWakelockInfo; -Lcom/android/internal/telephony/SMSDispatcher$1; -Lcom/android/internal/telephony/SMSDispatcher$ConfirmDialogListener; -Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender; -Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender; -Lcom/android/internal/telephony/SMSDispatcher$SettingsObserver; -Lcom/android/internal/telephony/SMSDispatcher$SmsSender$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/SMSDispatcher$SmsSender$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/SMSDispatcher$SmsSender; -Lcom/android/internal/telephony/SMSDispatcher$SmsSenderCallback; -Lcom/android/internal/telephony/SMSDispatcher$SmsTracker; -Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender; -Lcom/android/internal/telephony/SMSDispatcher; -Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/ServiceStateTracker$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/ServiceStateTracker$1; -Lcom/android/internal/telephony/ServiceStateTracker$SstSubscriptionsChangedListener; -Lcom/android/internal/telephony/ServiceStateTracker; -Lcom/android/internal/telephony/SettingsObserver; -Lcom/android/internal/telephony/SimActivationTracker$1; -Lcom/android/internal/telephony/SimActivationTracker; -Lcom/android/internal/telephony/SlidingWindowEventCounter; -Lcom/android/internal/telephony/Sms7BitEncodingTranslator; -Lcom/android/internal/telephony/SmsAddress; -Lcom/android/internal/telephony/SmsApplication$SmsApplicationData; -Lcom/android/internal/telephony/SmsApplication$SmsPackageMonitor; -Lcom/android/internal/telephony/SmsApplication$SmsRoleListener; -Lcom/android/internal/telephony/SmsApplication; -Lcom/android/internal/telephony/SmsBroadcastUndelivered$1; -Lcom/android/internal/telephony/SmsBroadcastUndelivered$ScanRawTableThread; -Lcom/android/internal/telephony/SmsBroadcastUndelivered$SmsReferenceKey; -Lcom/android/internal/telephony/SmsBroadcastUndelivered; -Lcom/android/internal/telephony/SmsConstants$MessageClass; -Lcom/android/internal/telephony/SmsController; -Lcom/android/internal/telephony/SmsDispatchersController$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/SmsDispatchersController$1; -Lcom/android/internal/telephony/SmsDispatchersController$DomainSelectionResolverProxy; -Lcom/android/internal/telephony/SmsDispatchersController$SmsInjectionCallback; -Lcom/android/internal/telephony/SmsDispatchersController; -Lcom/android/internal/telephony/SmsHeader$ConcatRef; -Lcom/android/internal/telephony/SmsHeader$MiscElt; -Lcom/android/internal/telephony/SmsHeader$PortAddrs; -Lcom/android/internal/telephony/SmsHeader$SpecialSmsMsg; -Lcom/android/internal/telephony/SmsHeader; -Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase; -Lcom/android/internal/telephony/SmsMessageBase; -Lcom/android/internal/telephony/SmsNumberUtils$NumberEntry; -Lcom/android/internal/telephony/SmsNumberUtils; -Lcom/android/internal/telephony/SmsPermissions; -Lcom/android/internal/telephony/SmsRawData$1; -Lcom/android/internal/telephony/SmsRawData; -Lcom/android/internal/telephony/SmsResponse; -Lcom/android/internal/telephony/SmsStorageMonitor$1; -Lcom/android/internal/telephony/SmsStorageMonitor; -Lcom/android/internal/telephony/SmsUsageMonitor$1; -Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserver; -Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserverHandler; -Lcom/android/internal/telephony/SmsUsageMonitor$ShortCodePatternMatcher; -Lcom/android/internal/telephony/SmsUsageMonitor; -Lcom/android/internal/telephony/SomeArgs; -Lcom/android/internal/telephony/State; -Lcom/android/internal/telephony/StateMachine$LogRec; -Lcom/android/internal/telephony/StateMachine$LogRecords; -Lcom/android/internal/telephony/StateMachine$SmHandler$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/StateMachine$SmHandler$HaltingState; -Lcom/android/internal/telephony/StateMachine$SmHandler$QuittingState; -Lcom/android/internal/telephony/StateMachine$SmHandler$StateInfo; -Lcom/android/internal/telephony/StateMachine$SmHandler; -Lcom/android/internal/telephony/StateMachine; -Lcom/android/internal/telephony/TelephonyCapabilities; -Lcom/android/internal/telephony/TelephonyCommonStatsLog; -Lcom/android/internal/telephony/TelephonyComponentFactory$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents; -Lcom/android/internal/telephony/TelephonyComponentFactory; -Lcom/android/internal/telephony/TelephonyDevController; -Lcom/android/internal/telephony/TelephonyFacade; -Lcom/android/internal/telephony/TelephonyPermissions; -Lcom/android/internal/telephony/TelephonyStatsLog; -Lcom/android/internal/telephony/TelephonyTester$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/TelephonyTester$1; -Lcom/android/internal/telephony/TelephonyTester; -Lcom/android/internal/telephony/TimeUtils; -Lcom/android/internal/telephony/UUSInfo; -Lcom/android/internal/telephony/UiccPhoneBookController; -Lcom/android/internal/telephony/UserIcons; -Lcom/android/internal/telephony/VisualVoicemailSmsFilter$1; -Lcom/android/internal/telephony/VisualVoicemailSmsFilter$FullMessage; -Lcom/android/internal/telephony/VisualVoicemailSmsFilter$PhoneAccountHandleConverter; -Lcom/android/internal/telephony/VisualVoicemailSmsFilter; -Lcom/android/internal/telephony/VisualVoicemailSmsParser$WrappedMessageData; -Lcom/android/internal/telephony/VisualVoicemailSmsParser; -Lcom/android/internal/telephony/WakeLockStateMachine$1; -Lcom/android/internal/telephony/WakeLockStateMachine$DefaultState; -Lcom/android/internal/telephony/WakeLockStateMachine$IdleState; -Lcom/android/internal/telephony/WakeLockStateMachine$WaitingState; -Lcom/android/internal/telephony/WakeLockStateMachine; -Lcom/android/internal/telephony/WapPushManagerParams; -Lcom/android/internal/telephony/WapPushOverSms$DecodedResult; -Lcom/android/internal/telephony/WapPushOverSms; -Lcom/android/internal/telephony/WspTypeDecoder; -Lcom/android/internal/telephony/build/SdkLevel; -Lcom/android/internal/telephony/cat/AppInterface$CommandType; -Lcom/android/internal/telephony/cat/AppInterface; -Lcom/android/internal/telephony/cat/BIPClientParams; -Lcom/android/internal/telephony/cat/BerTlv; -Lcom/android/internal/telephony/cat/CallSetupParams; -Lcom/android/internal/telephony/cat/CatCmdMessage$1; -Lcom/android/internal/telephony/cat/CatCmdMessage$2; -Lcom/android/internal/telephony/cat/CatCmdMessage$BrowserSettings; -Lcom/android/internal/telephony/cat/CatCmdMessage$BrowserTerminationCauses; -Lcom/android/internal/telephony/cat/CatCmdMessage$CallSettings; -Lcom/android/internal/telephony/cat/CatCmdMessage$SetupEventListConstants; -Lcom/android/internal/telephony/cat/CatCmdMessage$SetupEventListSettings; -Lcom/android/internal/telephony/cat/CatCmdMessage; -Lcom/android/internal/telephony/cat/CatException; -Lcom/android/internal/telephony/cat/CatLog; -Lcom/android/internal/telephony/cat/CatResponseMessage; -Lcom/android/internal/telephony/cat/CatService$1; -Lcom/android/internal/telephony/cat/CatService; -Lcom/android/internal/telephony/cat/CommandDetails$1; -Lcom/android/internal/telephony/cat/CommandDetails; -Lcom/android/internal/telephony/cat/CommandParams; -Lcom/android/internal/telephony/cat/CommandParamsFactory$1; -Lcom/android/internal/telephony/cat/CommandParamsFactory; -Lcom/android/internal/telephony/cat/ComprehensionTlv; -Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -Lcom/android/internal/telephony/cat/DTTZResponseData; -Lcom/android/internal/telephony/cat/DeviceIdentities; -Lcom/android/internal/telephony/cat/DisplayTextParams; -Lcom/android/internal/telephony/cat/Duration$1; -Lcom/android/internal/telephony/cat/Duration$TimeUnit; -Lcom/android/internal/telephony/cat/Duration; -Lcom/android/internal/telephony/cat/FontSize; -Lcom/android/internal/telephony/cat/GetInkeyInputResponseData; -Lcom/android/internal/telephony/cat/GetInputParams; -Lcom/android/internal/telephony/cat/IconId; -Lcom/android/internal/telephony/cat/IconLoader; -Lcom/android/internal/telephony/cat/ImageDescriptor; -Lcom/android/internal/telephony/cat/Input$1; -Lcom/android/internal/telephony/cat/Input; -Lcom/android/internal/telephony/cat/Item$1; -Lcom/android/internal/telephony/cat/Item; -Lcom/android/internal/telephony/cat/ItemsIconId; -Lcom/android/internal/telephony/cat/LanguageParams; -Lcom/android/internal/telephony/cat/LanguageResponseData; -Lcom/android/internal/telephony/cat/LaunchBrowserMode; -Lcom/android/internal/telephony/cat/LaunchBrowserParams; -Lcom/android/internal/telephony/cat/Menu$1; -Lcom/android/internal/telephony/cat/Menu; -Lcom/android/internal/telephony/cat/PlayToneParams; -Lcom/android/internal/telephony/cat/PresentationType; -Lcom/android/internal/telephony/cat/ResponseData; -Lcom/android/internal/telephony/cat/ResultCode; -Lcom/android/internal/telephony/cat/ResultException$1; -Lcom/android/internal/telephony/cat/ResultException; -Lcom/android/internal/telephony/cat/RilMessage; -Lcom/android/internal/telephony/cat/RilMessageDecoder$StateCmdParamsReady; -Lcom/android/internal/telephony/cat/RilMessageDecoder$StateStart; -Lcom/android/internal/telephony/cat/RilMessageDecoder; -Lcom/android/internal/telephony/cat/SelectItemParams; -Lcom/android/internal/telephony/cat/SelectItemResponseData; -Lcom/android/internal/telephony/cat/SetEventListParams; -Lcom/android/internal/telephony/cat/TextAlignment; -Lcom/android/internal/telephony/cat/TextAttribute; -Lcom/android/internal/telephony/cat/TextColor; -Lcom/android/internal/telephony/cat/TextMessage$1; -Lcom/android/internal/telephony/cat/TextMessage; -Lcom/android/internal/telephony/cat/Tone$1; -Lcom/android/internal/telephony/cat/Tone; -Lcom/android/internal/telephony/cat/ToneSettings$1; -Lcom/android/internal/telephony/cat/ToneSettings; -Lcom/android/internal/telephony/cat/ValueObject; -Lcom/android/internal/telephony/cat/ValueParser; -Lcom/android/internal/telephony/cdma/CdmaCallWaitingNotification; -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver; -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver; -Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaDisplayInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaLineControlInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaNumberInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaRedirectingNumberInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaSignalInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaT53AudioControlInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords$CdmaT53ClirInfoRec; -Lcom/android/internal/telephony/cdma/CdmaInformationRecords; -Lcom/android/internal/telephony/cdma/CdmaMmiCode; -Lcom/android/internal/telephony/cdma/CdmaSMSDispatcher; -Lcom/android/internal/telephony/cdma/CdmaSmsBroadcastConfigInfo; -Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager; -Lcom/android/internal/telephony/cdma/EriInfo; -Lcom/android/internal/telephony/cdma/EriManager$EriDisplayInformation; -Lcom/android/internal/telephony/cdma/EriManager$EriFile; -Lcom/android/internal/telephony/cdma/EriManager; -Lcom/android/internal/telephony/cdma/SignalToneUtil; -Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu; -Lcom/android/internal/telephony/cdma/SmsMessage; -Lcom/android/internal/telephony/cdma/sms/BearerData$CodingException; -Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp; -Lcom/android/internal/telephony/cdma/sms/BearerData; -Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress; -Lcom/android/internal/telephony/cdma/sms/CdmaSmsSubaddress; -Lcom/android/internal/telephony/cdma/sms/SmsEnvelope; -Lcom/android/internal/telephony/cdma/sms/UserData; -Lcom/android/internal/telephony/cdnr/BrandOverrideEfData; -Lcom/android/internal/telephony/cdnr/CarrierConfigEfData; -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData$1; -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData$Builder; -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData; -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver$CarrierDisplayNameConditionRule; -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver$WfcCarrierNameFormatter; -Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver; -Lcom/android/internal/telephony/cdnr/EfData; -Lcom/android/internal/telephony/cdnr/EriEfData; -Lcom/android/internal/telephony/cdnr/RuimEfData; -Lcom/android/internal/telephony/cdnr/UsimEfData; -Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/d2d/Communicator$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/d2d/Communicator$Callback; -Lcom/android/internal/telephony/d2d/Communicator$Message; -Lcom/android/internal/telephony/d2d/Communicator; -Lcom/android/internal/telephony/d2d/DtmfAdapter; -Lcom/android/internal/telephony/d2d/DtmfTransport$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/d2d/DtmfTransport$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/d2d/DtmfTransport$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/d2d/DtmfTransport; -Lcom/android/internal/telephony/d2d/MessageTypeAndValueHelper; -Lcom/android/internal/telephony/d2d/RtpAdapter$Callback; -Lcom/android/internal/telephony/d2d/RtpAdapter; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda6; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda7; -Lcom/android/internal/telephony/d2d/RtpTransport$$ExternalSyntheticLambda8; -Lcom/android/internal/telephony/d2d/RtpTransport; -Lcom/android/internal/telephony/d2d/Timeouts$Adapter; -Lcom/android/internal/telephony/d2d/Timeouts; -Lcom/android/internal/telephony/d2d/TransportProtocol$Callback; -Lcom/android/internal/telephony/d2d/TransportProtocol; -Lcom/android/internal/telephony/data/DataCallback; -Lcom/android/internal/telephony/data/DataNetworkController$DataNetworkControllerCallback; -Lcom/android/internal/telephony/data/DataSettingsManager$DataSettingsManagerCallback; -Lcom/android/internal/telephony/data/TelephonyNetworkFactory; -Lcom/android/internal/telephony/emergency/EmergencyNumberTracker$1; -Lcom/android/internal/telephony/emergency/EmergencyNumberTracker; -Lcom/android/internal/telephony/euicc/EuiccCardController$10; -Lcom/android/internal/telephony/euicc/EuiccCardController$11; -Lcom/android/internal/telephony/euicc/EuiccCardController$12; -Lcom/android/internal/telephony/euicc/EuiccCardController$13; -Lcom/android/internal/telephony/euicc/EuiccCardController$14; -Lcom/android/internal/telephony/euicc/EuiccCardController$15; -Lcom/android/internal/telephony/euicc/EuiccCardController$16; -Lcom/android/internal/telephony/euicc/EuiccCardController$17; -Lcom/android/internal/telephony/euicc/EuiccCardController$18; -Lcom/android/internal/telephony/euicc/EuiccCardController$19; -Lcom/android/internal/telephony/euicc/EuiccCardController$1; -Lcom/android/internal/telephony/euicc/EuiccCardController$20; -Lcom/android/internal/telephony/euicc/EuiccCardController$21; -Lcom/android/internal/telephony/euicc/EuiccCardController$22; -Lcom/android/internal/telephony/euicc/EuiccCardController$2; -Lcom/android/internal/telephony/euicc/EuiccCardController$3; -Lcom/android/internal/telephony/euicc/EuiccCardController$4; -Lcom/android/internal/telephony/euicc/EuiccCardController$5; -Lcom/android/internal/telephony/euicc/EuiccCardController$6; -Lcom/android/internal/telephony/euicc/EuiccCardController$7; -Lcom/android/internal/telephony/euicc/EuiccCardController$8; -Lcom/android/internal/telephony/euicc/EuiccCardController$9; -Lcom/android/internal/telephony/euicc/EuiccCardController$SimSlotStatusChangedBroadcastReceiver; -Lcom/android/internal/telephony/euicc/EuiccCardController; -Lcom/android/internal/telephony/euicc/EuiccConnector$1; -Lcom/android/internal/telephony/euicc/EuiccConnector$AvailableState; -Lcom/android/internal/telephony/euicc/EuiccConnector$BaseEuiccCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$BindingState; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$1$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$10$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$10; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$11$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$11; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$12$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$12; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$13$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$13; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$15$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$15; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$1; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$2$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$2; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$3$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$3; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$4$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$4; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$5$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$5; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$6$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$6; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$7$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$7; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$8$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$8; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$9$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$9; -Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState; -Lcom/android/internal/telephony/euicc/EuiccConnector$DeleteCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$DeleteRequest; -Lcom/android/internal/telephony/euicc/EuiccConnector$DisconnectedState; -Lcom/android/internal/telephony/euicc/EuiccConnector$DownloadCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$DownloadRequest; -Lcom/android/internal/telephony/euicc/EuiccConnector$DumpEuiccServiceCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$EraseCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$EuiccPackageMonitor; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetAvailableMemoryInBytesCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetDefaultListCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetDefaultListRequest; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetEidCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetEuiccInfoCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetEuiccProfileInfoListCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetMetadataCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetMetadataRequest; -Lcom/android/internal/telephony/euicc/EuiccConnector$GetOtaStatusCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$OtaStatusChangedCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$RetainSubscriptionsCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$SwitchCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$SwitchRequest; -Lcom/android/internal/telephony/euicc/EuiccConnector$UnavailableState; -Lcom/android/internal/telephony/euicc/EuiccConnector$UpdateNicknameCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccConnector$UpdateNicknameRequest; -Lcom/android/internal/telephony/euicc/EuiccConnector; -Lcom/android/internal/telephony/euicc/EuiccController$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/euicc/EuiccController$10; -Lcom/android/internal/telephony/euicc/EuiccController$11; -Lcom/android/internal/telephony/euicc/EuiccController$12; -Lcom/android/internal/telephony/euicc/EuiccController$13; -Lcom/android/internal/telephony/euicc/EuiccController$1; -Lcom/android/internal/telephony/euicc/EuiccController$2; -Lcom/android/internal/telephony/euicc/EuiccController$3; -Lcom/android/internal/telephony/euicc/EuiccController$4; -Lcom/android/internal/telephony/euicc/EuiccController$5; -Lcom/android/internal/telephony/euicc/EuiccController$6; -Lcom/android/internal/telephony/euicc/EuiccController$7; -Lcom/android/internal/telephony/euicc/EuiccController$8; -Lcom/android/internal/telephony/euicc/EuiccController$9; -Lcom/android/internal/telephony/euicc/EuiccController$DownloadSubscriptionGetMetadataCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccController$GetDefaultListCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccController$GetMetadataCommandCallback; -Lcom/android/internal/telephony/euicc/EuiccController; -Lcom/android/internal/telephony/euicc/EuiccOperation$1; -Lcom/android/internal/telephony/euicc/EuiccOperation$Action; -Lcom/android/internal/telephony/euicc/EuiccOperation; -Lcom/android/internal/telephony/euicc/IAuthenticateServerCallback$Stub; -Lcom/android/internal/telephony/euicc/IAuthenticateServerCallback; -Lcom/android/internal/telephony/euicc/ICancelSessionCallback$Stub; -Lcom/android/internal/telephony/euicc/ICancelSessionCallback; -Lcom/android/internal/telephony/euicc/IDeleteProfileCallback$Stub; -Lcom/android/internal/telephony/euicc/IDeleteProfileCallback; -Lcom/android/internal/telephony/euicc/IDisableProfileCallback$Stub; -Lcom/android/internal/telephony/euicc/IDisableProfileCallback; -Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub$Proxy; -Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub; -Lcom/android/internal/telephony/euicc/IEuiccCardController; -Lcom/android/internal/telephony/euicc/IEuiccController$Stub$Proxy; -Lcom/android/internal/telephony/euicc/IEuiccController$Stub; -Lcom/android/internal/telephony/euicc/IEuiccController; -Lcom/android/internal/telephony/euicc/IGetAllProfilesCallback$Stub; -Lcom/android/internal/telephony/euicc/IGetAllProfilesCallback; -Lcom/android/internal/telephony/euicc/IGetDefaultSmdpAddressCallback$Stub; -Lcom/android/internal/telephony/euicc/IGetDefaultSmdpAddressCallback; -Lcom/android/internal/telephony/euicc/IGetEuiccChallengeCallback$Stub; -Lcom/android/internal/telephony/euicc/IGetEuiccChallengeCallback; -Lcom/android/internal/telephony/euicc/IGetEuiccInfo1Callback$Stub; -Lcom/android/internal/telephony/euicc/IGetEuiccInfo1Callback; -Lcom/android/internal/telephony/euicc/IGetEuiccInfo2Callback$Stub; -Lcom/android/internal/telephony/euicc/IGetEuiccInfo2Callback; -Lcom/android/internal/telephony/euicc/IGetProfileCallback$Stub; -Lcom/android/internal/telephony/euicc/IGetProfileCallback; -Lcom/android/internal/telephony/euicc/IGetRulesAuthTableCallback$Stub; -Lcom/android/internal/telephony/euicc/IGetRulesAuthTableCallback; -Lcom/android/internal/telephony/euicc/IGetSmdsAddressCallback$Stub; -Lcom/android/internal/telephony/euicc/IGetSmdsAddressCallback; -Lcom/android/internal/telephony/euicc/IListNotificationsCallback$Stub; -Lcom/android/internal/telephony/euicc/IListNotificationsCallback; -Lcom/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback$Stub; -Lcom/android/internal/telephony/euicc/ILoadBoundProfilePackageCallback; -Lcom/android/internal/telephony/euicc/IPrepareDownloadCallback$Stub; -Lcom/android/internal/telephony/euicc/IPrepareDownloadCallback; -Lcom/android/internal/telephony/euicc/IRemoveNotificationFromListCallback$Stub; -Lcom/android/internal/telephony/euicc/IRemoveNotificationFromListCallback; -Lcom/android/internal/telephony/euicc/IResetMemoryCallback$Stub; -Lcom/android/internal/telephony/euicc/IResetMemoryCallback; -Lcom/android/internal/telephony/euicc/IRetrieveNotificationCallback$Stub; -Lcom/android/internal/telephony/euicc/IRetrieveNotificationCallback; -Lcom/android/internal/telephony/euicc/IRetrieveNotificationListCallback$Stub; -Lcom/android/internal/telephony/euicc/IRetrieveNotificationListCallback; -Lcom/android/internal/telephony/euicc/ISetDefaultSmdpAddressCallback$Stub; -Lcom/android/internal/telephony/euicc/ISetDefaultSmdpAddressCallback; -Lcom/android/internal/telephony/euicc/ISetNicknameCallback$Stub; -Lcom/android/internal/telephony/euicc/ISetNicknameCallback; -Lcom/android/internal/telephony/euicc/ISwitchToProfileCallback$Stub; -Lcom/android/internal/telephony/euicc/ISwitchToProfileCallback; -Lcom/android/internal/telephony/flags/FeatureFlags; -Lcom/android/internal/telephony/flags/FeatureFlagsImpl; -Lcom/android/internal/telephony/flags/Flags; -Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler$GsmCbTestBroadcastReceiver; -Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler; -Lcom/android/internal/telephony/gsm/GsmMmiCode$1; -Lcom/android/internal/telephony/gsm/GsmMmiCode; -Lcom/android/internal/telephony/gsm/GsmSMSDispatcher; -Lcom/android/internal/telephony/gsm/GsmSmsAddress; -Lcom/android/internal/telephony/gsm/SimTlv; -Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo; -Lcom/android/internal/telephony/gsm/SmsMessage$PduParser; -Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu; -Lcom/android/internal/telephony/gsm/SmsMessage; -Lcom/android/internal/telephony/gsm/SsData$RequestType; -Lcom/android/internal/telephony/gsm/SsData$ServiceType; -Lcom/android/internal/telephony/gsm/SsData$TeleserviceType; -Lcom/android/internal/telephony/gsm/SsData; -Lcom/android/internal/telephony/gsm/SuppServiceNotification; -Lcom/android/internal/telephony/gsm/UsimDataDownloadHandler; -Lcom/android/internal/telephony/gsm/UsimPhoneBookManager$File; -Lcom/android/internal/telephony/gsm/UsimPhoneBookManager$PbrRecord; -Lcom/android/internal/telephony/gsm/UsimPhoneBookManager; -Lcom/android/internal/telephony/ims/ImsConfigCompatAdapter; -Lcom/android/internal/telephony/ims/ImsRegistrationCompatAdapter$1; -Lcom/android/internal/telephony/ims/ImsRegistrationCompatAdapter; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda10; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda11; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda12; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda13; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda6; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda7; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda8; -Lcom/android/internal/telephony/ims/ImsResolver$$ExternalSyntheticLambda9; -Lcom/android/internal/telephony/ims/ImsResolver$1; -Lcom/android/internal/telephony/ims/ImsResolver$2; -Lcom/android/internal/telephony/ims/ImsResolver$3; -Lcom/android/internal/telephony/ims/ImsResolver$4; -Lcom/android/internal/telephony/ims/ImsResolver$5; -Lcom/android/internal/telephony/ims/ImsResolver$6; -Lcom/android/internal/telephony/ims/ImsResolver$7; -Lcom/android/internal/telephony/ims/ImsResolver$8; -Lcom/android/internal/telephony/ims/ImsResolver$ImsDynamicQueryManagerFactory; -Lcom/android/internal/telephony/ims/ImsResolver$ImsServiceControllerFactory; -Lcom/android/internal/telephony/ims/ImsResolver$ImsServiceInfo; -Lcom/android/internal/telephony/ims/ImsResolver$OverrideConfig; -Lcom/android/internal/telephony/ims/ImsResolver$SubscriptionManagerProxy; -Lcom/android/internal/telephony/ims/ImsResolver$TelephonyManagerProxy; -Lcom/android/internal/telephony/ims/ImsResolver; -Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/ims/ImsServiceController$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/ims/ImsServiceController$1; -Lcom/android/internal/telephony/ims/ImsServiceController$2; -Lcom/android/internal/telephony/ims/ImsServiceController$3; -Lcom/android/internal/telephony/ims/ImsServiceController$ImsFeatureStatusCallback$1; -Lcom/android/internal/telephony/ims/ImsServiceController$ImsFeatureStatusCallback; -Lcom/android/internal/telephony/ims/ImsServiceController$ImsServiceConnection; -Lcom/android/internal/telephony/ims/ImsServiceController$ImsServiceControllerCallbacks; -Lcom/android/internal/telephony/ims/ImsServiceController$RebindRetry; -Lcom/android/internal/telephony/ims/ImsServiceController; -Lcom/android/internal/telephony/ims/ImsServiceControllerCompat; -Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager$ImsServiceFeatureQuery; -Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager$Listener; -Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$1; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$2; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$3; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$4; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$5; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$ConfigListener; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter$ImsRegistrationListenerBase; -Lcom/android/internal/telephony/ims/MmTelFeatureCompatAdapter; -Lcom/android/internal/telephony/ims/MmTelInterfaceAdapter; -Lcom/android/internal/telephony/imsphone/ImsExternalCall; -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$1; -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$2; -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalCallStateListener; -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalConnectionListener; -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ImsCallNotify; -Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker; -Lcom/android/internal/telephony/imsphone/ImsExternalConnection$Listener; -Lcom/android/internal/telephony/imsphone/ImsExternalConnection; -Lcom/android/internal/telephony/imsphone/ImsPhone$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/imsphone/ImsPhone$1; -Lcom/android/internal/telephony/imsphone/ImsPhone$2; -Lcom/android/internal/telephony/imsphone/ImsPhone$3; -Lcom/android/internal/telephony/imsphone/ImsPhone$4; -Lcom/android/internal/telephony/imsphone/ImsPhone$ImsDialArgs$Builder; -Lcom/android/internal/telephony/imsphone/ImsPhone$ImsDialArgs; -Lcom/android/internal/telephony/imsphone/ImsPhone$ImsManagerFactory; -Lcom/android/internal/telephony/imsphone/ImsPhone$SS; -Lcom/android/internal/telephony/imsphone/ImsPhone; -Lcom/android/internal/telephony/imsphone/ImsPhoneBase; -Lcom/android/internal/telephony/imsphone/ImsPhoneCall; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$10; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$11; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$12; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$1; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$2; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$3; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$4; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$5; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$6; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$7; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$8; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$9; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$CacheEntry; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$Config; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$ConnectorFactory; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$HoldSwapState; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$MmTelFeatureListener; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$PhoneStateListener; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$SharedPreferenceProxy; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$VtDataUsageProvider; -Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker; -Lcom/android/internal/telephony/imsphone/ImsPhoneCommandInterface; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$MyHandler; -Lcom/android/internal/telephony/imsphone/ImsPhoneConnection; -Lcom/android/internal/telephony/imsphone/ImsPhoneFactory; -Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode; -Lcom/android/internal/telephony/imsphone/ImsPullCall; -Lcom/android/internal/telephony/imsphone/ImsRcsStatusListener; -Lcom/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper$1; -Lcom/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper$ImsRegistrationUpdate; -Lcom/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper; -Lcom/android/internal/telephony/imsphone/ImsRttTextHandler$InCallReaderThread; -Lcom/android/internal/telephony/imsphone/ImsRttTextHandler$NetworkWriter; -Lcom/android/internal/telephony/imsphone/ImsRttTextHandler; -Lcom/android/internal/telephony/metrics/AirplaneModeStats; -Lcom/android/internal/telephony/metrics/CallQualityMetrics$TimestampedQualitySnapshot; -Lcom/android/internal/telephony/metrics/CallQualityMetrics; -Lcom/android/internal/telephony/metrics/CallSessionEventBuilder; -Lcom/android/internal/telephony/metrics/CarrierIdMatchStats; -Lcom/android/internal/telephony/metrics/DataCallSessionStats; -Lcom/android/internal/telephony/metrics/DataStallRecoveryStats$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/DataStallRecoveryStats$1; -Lcom/android/internal/telephony/metrics/DataStallRecoveryStats$2; -Lcom/android/internal/telephony/metrics/DataStallRecoveryStats; -Lcom/android/internal/telephony/metrics/ImsStats; -Lcom/android/internal/telephony/metrics/InProgressCallSession; -Lcom/android/internal/telephony/metrics/InProgressSmsSession; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda10; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda11; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda6; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda7; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda8; -Lcom/android/internal/telephony/metrics/MetricsCollector$$ExternalSyntheticLambda9; -Lcom/android/internal/telephony/metrics/MetricsCollector; -Lcom/android/internal/telephony/metrics/ModemPowerMetrics$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/ModemPowerMetrics; -Lcom/android/internal/telephony/metrics/ModemRestartStats; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda6; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$$ExternalSyntheticLambda7; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage$1; -Lcom/android/internal/telephony/metrics/PersistAtomsStorage; -Lcom/android/internal/telephony/metrics/ServiceStateStats$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/ServiceStateStats$TimestampedServiceState; -Lcom/android/internal/telephony/metrics/ServiceStateStats; -Lcom/android/internal/telephony/metrics/SimSlotState; -Lcom/android/internal/telephony/metrics/SmsSessionEventBuilder; -Lcom/android/internal/telephony/metrics/SmsStats; -Lcom/android/internal/telephony/metrics/TelephonyEventBuilder; -Lcom/android/internal/telephony/metrics/TelephonyMetrics$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/TelephonyMetrics$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/metrics/TelephonyMetrics$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/metrics/TelephonyMetrics$1; -Lcom/android/internal/telephony/metrics/TelephonyMetrics$BwEstimationStats; -Lcom/android/internal/telephony/metrics/TelephonyMetrics; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda3; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda4; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$$ExternalSyntheticLambda5; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$Key; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker$Value; -Lcom/android/internal/telephony/metrics/VoiceCallRatTracker; -Lcom/android/internal/telephony/metrics/VoiceCallSessionStats$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/metrics/VoiceCallSessionStats$1; -Lcom/android/internal/telephony/metrics/VoiceCallSessionStats; -Lcom/android/internal/telephony/nano/CarrierIdProto$CarrierAttribute; -Lcom/android/internal/telephony/nano/CarrierIdProto$CarrierId; -Lcom/android/internal/telephony/nano/CarrierIdProto$CarrierList; -Lcom/android/internal/telephony/nano/PersistAtomsProto$CarrierIdMismatch; -Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularDataServiceSwitch; -Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularServiceState; -Lcom/android/internal/telephony/nano/PersistAtomsProto$DataCallSession; -Lcom/android/internal/telephony/nano/PersistAtomsProto$EmergencyNumbersInfo; -Lcom/android/internal/telephony/nano/PersistAtomsProto$GbaEvent; -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerEvent; -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsDedicatedBearerListenerEvent; -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationFeatureTagStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationServiceDescStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationTermination; -Lcom/android/internal/telephony/nano/PersistAtomsProto$IncomingSms; -Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequests; -Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequestsV2; -Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingShortCodeSms; -Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingSms; -Lcom/android/internal/telephony/nano/PersistAtomsProto$PersistAtoms; -Lcom/android/internal/telephony/nano/PersistAtomsProto$PresenceNotifyEvent; -Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsAcsProvisioningStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$RcsClientProvisioningStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteController; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteIncomingDatagram; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteOutgoingDatagram; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteProvision; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSession; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SatelliteSosMessageRecommender; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipDelegateStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipMessageResponse; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportFeatureTagStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$SipTransportSession; -Lcom/android/internal/telephony/nano/PersistAtomsProto$UceEventStats; -Lcom/android/internal/telephony/nano/PersistAtomsProto$UnmeteredNetworks; -Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallRatUsage; -Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallSession; -Lcom/android/internal/telephony/nano/StoredPinProto$EncryptedPin; -Lcom/android/internal/telephony/nano/StoredPinProto$StoredPin$PinStatus; -Lcom/android/internal/telephony/nano/StoredPinProto$StoredPin; -Lcom/android/internal/telephony/nano/TelephonyProto$ActiveSubscriptionInfo; -Lcom/android/internal/telephony/nano/TelephonyProto$BandwidthEstimatorStats$PerLevel; -Lcom/android/internal/telephony/nano/TelephonyProto$BandwidthEstimatorStats$PerRat; -Lcom/android/internal/telephony/nano/TelephonyProto$BandwidthEstimatorStats; -Lcom/android/internal/telephony/nano/TelephonyProto$EmergencyNumberInfo; -Lcom/android/internal/telephony/nano/TelephonyProto$ImsCapabilities; -Lcom/android/internal/telephony/nano/TelephonyProto$ImsConnectionState$State; -Lcom/android/internal/telephony/nano/TelephonyProto$ImsConnectionState; -Lcom/android/internal/telephony/nano/TelephonyProto$ImsReasonInfo; -Lcom/android/internal/telephony/nano/TelephonyProto$ImsServiceErrno; -Lcom/android/internal/telephony/nano/TelephonyProto$ModemPowerStats; -Lcom/android/internal/telephony/nano/TelephonyProto$NrMode; -Lcom/android/internal/telephony/nano/TelephonyProto$PdpType; -Lcom/android/internal/telephony/nano/TelephonyProto$RadioAccessTechnology; -Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall$State; -Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall; -Lcom/android/internal/telephony/nano/TelephonyProto$RilErrno; -Lcom/android/internal/telephony/nano/TelephonyProto$SimState; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$CBMessage; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$CBMessageType; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$CBPriority; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$Format; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$IncompleteSms; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$SmsType; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$Tech; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event$Type; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event; -Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$AudioCodec; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallQuality$CallQualityLevel; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallQuality; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallQualitySummary; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$CallState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$ImsCommand; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$PhoneState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall$Type; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilRequest; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilSrvccState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$SignalStrength; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$Type; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$ApnType; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatching; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatchingResult; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierKeyChange$KeyType; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierKeyChange; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$DataSwitch$Reason; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$DataSwitch; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$EventState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$ModemRestart; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$NetworkCapabilitiesInfo; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$NetworkValidationState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$OnDemandDataSwitch; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilDeactivateDataCall$DeactivateReason; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilDeactivateDataCall; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCall$RilDataProfile; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCall; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCallResponse$RilDataCallFailCause; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCallResponse; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$Type; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyHistogram; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyLog; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$Domain; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$FrequencyRange; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$NetworkRegistrationInfo; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$NrState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$RoamingType; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$TelephonyOperator; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$Transport; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings$RilNetworkMode; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings$WiFiCallingMode; -Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings; -Lcom/android/internal/telephony/nano/TelephonyProto$Time; -Lcom/android/internal/telephony/nano/TelephonyProto$TimeInterval; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$$ExternalSyntheticLambda1; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$$ExternalSyntheticLambda2; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$1; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$NitzSignalInputFilterPredicateImpl; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory$TrivalentPredicate; -Lcom/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory; -Lcom/android/internal/telephony/nitz/NitzStateMachineImpl$NitzSignalInputFilterPredicate; -Lcom/android/internal/telephony/nitz/NitzStateMachineImpl$TimeZoneSuggester; -Lcom/android/internal/telephony/nitz/NitzStateMachineImpl; -Lcom/android/internal/telephony/nitz/TimeServiceHelper; -Lcom/android/internal/telephony/nitz/TimeServiceHelperImpl; -Lcom/android/internal/telephony/nitz/TimeZoneLookupHelper$CountryResult; -Lcom/android/internal/telephony/nitz/TimeZoneLookupHelper; -Lcom/android/internal/telephony/nitz/TimeZoneSuggesterImpl; -Lcom/android/internal/telephony/phonenumbers/AlternateFormatsCountryCodeSet; -Lcom/android/internal/telephony/phonenumbers/AsYouTypeFormatter; -Lcom/android/internal/telephony/phonenumbers/CountryCodeToRegionCodeMap; -Lcom/android/internal/telephony/phonenumbers/MetadataLoader; -Lcom/android/internal/telephony/phonenumbers/NumberParseException$ErrorType; -Lcom/android/internal/telephony/phonenumbers/NumberParseException; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatch; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher$NumberGroupingChecker; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher$State; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberToCarrierMapper; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$1; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$2; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$1; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$2; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$3$1; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$3; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$4$1; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency$4; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$MatchType; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberFormat; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberType; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$ValidationResult; -Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$NumberFormat$Builder; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$NumberFormat; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadata$Builder; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadata; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadataCollection$Builder; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneMetadataCollection; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneNumberDesc$Builder; -Lcom/android/internal/telephony/phonenumbers/Phonemetadata$PhoneNumberDesc; -Lcom/android/internal/telephony/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource; -Lcom/android/internal/telephony/phonenumbers/Phonenumber$PhoneNumber; -Lcom/android/internal/telephony/phonenumbers/ShortNumberInfo$ShortNumberCost; -Lcom/android/internal/telephony/phonenumbers/ShortNumberInfo; -Lcom/android/internal/telephony/phonenumbers/ShortNumbersRegionCodeSet; -Lcom/android/internal/telephony/phonenumbers/internal/MatcherApi; -Lcom/android/internal/telephony/phonenumbers/internal/RegexBasedMatcher; -Lcom/android/internal/telephony/phonenumbers/internal/RegexCache$LRUCache$1; -Lcom/android/internal/telephony/phonenumbers/internal/RegexCache$LRUCache; -Lcom/android/internal/telephony/phonenumbers/internal/RegexCache; -Lcom/android/internal/telephony/phonenumbers/metadata/DefaultMetadataDependenciesProvider; -Lcom/android/internal/telephony/phonenumbers/metadata/init/ClassPathResourceMetadataLoader; -Lcom/android/internal/telephony/phonenumbers/metadata/init/MetadataParser; -Lcom/android/internal/telephony/phonenumbers/metadata/source/BlockingMetadataBootstrappingGuard; -Lcom/android/internal/telephony/phonenumbers/metadata/source/CompositeMetadataContainer; -Lcom/android/internal/telephony/phonenumbers/metadata/source/FormattingMetadataSource; -Lcom/android/internal/telephony/phonenumbers/metadata/source/FormattingMetadataSourceImpl; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer$1; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer$2; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer$KeyProvider; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MapBackedMetadataContainer; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataBootstrappingGuard; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataContainer; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataSource; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MetadataSourceImpl; -Lcom/android/internal/telephony/phonenumbers/metadata/source/MultiFileModeFileNameProvider; -Lcom/android/internal/telephony/phonenumbers/metadata/source/NonGeographicalEntityMetadataSource; -Lcom/android/internal/telephony/phonenumbers/metadata/source/PhoneMetadataFileNameProvider; -Lcom/android/internal/telephony/phonenumbers/metadata/source/RegionMetadataSource; -Lcom/android/internal/telephony/phonenumbers/metadata/source/RegionMetadataSourceImpl; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/DefaultMapStorage; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/FlyweightMapStorage; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/MappingFileProvider; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/PhonePrefixMap; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/PrefixFileReader; -Lcom/android/internal/telephony/phonenumbers/prefixmapper/PrefixTimeZonesMap; -Lcom/android/internal/telephony/protobuf/nano/CodedInputByteBufferNano; -Lcom/android/internal/telephony/protobuf/nano/CodedOutputByteBufferNano$OutOfSpaceException; -Lcom/android/internal/telephony/protobuf/nano/CodedOutputByteBufferNano; -Lcom/android/internal/telephony/protobuf/nano/ExtendableMessageNano; -Lcom/android/internal/telephony/protobuf/nano/Extension$1; -Lcom/android/internal/telephony/protobuf/nano/Extension$PrimitiveExtension; -Lcom/android/internal/telephony/protobuf/nano/Extension; -Lcom/android/internal/telephony/protobuf/nano/FieldArray; -Lcom/android/internal/telephony/protobuf/nano/FieldData; -Lcom/android/internal/telephony/protobuf/nano/InternalNano; -Lcom/android/internal/telephony/protobuf/nano/InvalidProtocolBufferNanoException; -Lcom/android/internal/telephony/protobuf/nano/MapFactories$1; -Lcom/android/internal/telephony/protobuf/nano/MapFactories$DefaultMapFactory; -Lcom/android/internal/telephony/protobuf/nano/MapFactories$MapFactory; -Lcom/android/internal/telephony/protobuf/nano/MapFactories; -Lcom/android/internal/telephony/protobuf/nano/MessageNano; -Lcom/android/internal/telephony/protobuf/nano/MessageNanoPrinter; -Lcom/android/internal/telephony/protobuf/nano/UnknownFieldData; -Lcom/android/internal/telephony/protobuf/nano/WireFormatNano; -Lcom/android/internal/telephony/protobuf/nano/android/ParcelableExtendableMessageNano; -Lcom/android/internal/telephony/protobuf/nano/android/ParcelableMessageNano; -Lcom/android/internal/telephony/protobuf/nano/android/ParcelableMessageNanoCreator; -Lcom/android/internal/telephony/satellite/PointingAppController; -Lcom/android/internal/telephony/satellite/SatelliteModemInterface; -Lcom/android/internal/telephony/satellite/SatelliteSessionController; -Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$CarrierSupportedSatelliteServicesProto; -Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$SatelliteConfigProto; -Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$SatelliteProviderCapabilityProto; -Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$SatelliteRegionProto; -Lcom/android/internal/telephony/satellite/nano/SatelliteConfigData$TelephonyConfigProto; -Lcom/android/internal/telephony/security/NullCipherNotifier; -Lcom/android/internal/telephony/subscription/SubscriptionManagerService$SubscriptionManagerServiceCallback; -Lcom/android/internal/telephony/test/SimulatedRadioControl; -Lcom/android/internal/telephony/test/TestConferenceEventPackageParser; -Lcom/android/internal/telephony/uicc/AdnCapacity$1; -Lcom/android/internal/telephony/uicc/AdnCapacity; -Lcom/android/internal/telephony/uicc/AdnRecord$1; -Lcom/android/internal/telephony/uicc/AdnRecord; -Lcom/android/internal/telephony/uicc/AdnRecordCache; -Lcom/android/internal/telephony/uicc/AdnRecordLoader; -Lcom/android/internal/telephony/uicc/AnswerToReset$HistoricalBytes; -Lcom/android/internal/telephony/uicc/AnswerToReset$InterfaceByte; -Lcom/android/internal/telephony/uicc/AnswerToReset; -Lcom/android/internal/telephony/uicc/CarrierAppInstallReceiver; -Lcom/android/internal/telephony/uicc/CarrierTestOverride; -Lcom/android/internal/telephony/uicc/CsimFileHandler; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -Lcom/android/internal/telephony/uicc/IccCardApplicationStatus; -Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -Lcom/android/internal/telephony/uicc/IccCardStatus; -Lcom/android/internal/telephony/uicc/IccConstants; -Lcom/android/internal/telephony/uicc/IccException; -Lcom/android/internal/telephony/uicc/IccFileHandler$LoadLinearFixedContext; -Lcom/android/internal/telephony/uicc/IccFileHandler; -Lcom/android/internal/telephony/uicc/IccFileNotFound; -Lcom/android/internal/telephony/uicc/IccFileTypeMismatch; -Lcom/android/internal/telephony/uicc/IccIoResult; -Lcom/android/internal/telephony/uicc/IccRecords$AuthAsyncResponse; -Lcom/android/internal/telephony/uicc/IccRecords$IccRecordLoaded; -Lcom/android/internal/telephony/uicc/IccRecords$OperatorPlmnInfo; -Lcom/android/internal/telephony/uicc/IccRecords$PlmnNetworkName; -Lcom/android/internal/telephony/uicc/IccRecords; -Lcom/android/internal/telephony/uicc/IccRefreshResponse; -Lcom/android/internal/telephony/uicc/IccServiceTable; -Lcom/android/internal/telephony/uicc/IccSlotStatus; -Lcom/android/internal/telephony/uicc/IccUtils; -Lcom/android/internal/telephony/uicc/IccVmFixedException; -Lcom/android/internal/telephony/uicc/IccVmNotSupportedException; -Lcom/android/internal/telephony/uicc/InstallCarrierAppTrampolineActivity; -Lcom/android/internal/telephony/uicc/InstallCarrierAppUtils; -Lcom/android/internal/telephony/uicc/IsimFileHandler; -Lcom/android/internal/telephony/uicc/IsimRecords; -Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimDomainLoaded; -Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimImpiLoaded; -Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimImpuLoaded; -Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimIstLoaded; -Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimPcscfLoaded; -Lcom/android/internal/telephony/uicc/IsimUiccRecords; -Lcom/android/internal/telephony/uicc/PinStorage$1; -Lcom/android/internal/telephony/uicc/PinStorage; -Lcom/android/internal/telephony/uicc/PlmnActRecord$1; -Lcom/android/internal/telephony/uicc/PlmnActRecord; -Lcom/android/internal/telephony/uicc/ReceivedPhonebookRecords; -Lcom/android/internal/telephony/uicc/RuimFileHandler; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimCdmaHomeLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimEprlLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimImsimLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimLiLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimMdnLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimMipUppLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfCsimSpnLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords$EfPlLoaded; -Lcom/android/internal/telephony/uicc/RuimRecords; -Lcom/android/internal/telephony/uicc/SIMFileHandler; -Lcom/android/internal/telephony/uicc/SIMRecords$EfPlLoaded; -Lcom/android/internal/telephony/uicc/SIMRecords$EfUsimLiLoaded; -Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; -Lcom/android/internal/telephony/uicc/SIMRecords; -Lcom/android/internal/telephony/uicc/ShowInstallAppNotificationReceiver; -Lcom/android/internal/telephony/uicc/SimPhonebookRecord$Builder; -Lcom/android/internal/telephony/uicc/SimPhonebookRecord; -Lcom/android/internal/telephony/uicc/SimPhonebookRecordCache$$ExternalSyntheticLambda0; -Lcom/android/internal/telephony/uicc/SimPhonebookRecordCache$UpdateRequest; -Lcom/android/internal/telephony/uicc/SimPhonebookRecordCache; -Lcom/android/internal/telephony/uicc/UiccCard; -Lcom/android/internal/telephony/uicc/UiccCardApplication$1; -Lcom/android/internal/telephony/uicc/UiccCardApplication$2; -Lcom/android/internal/telephony/uicc/UiccCardApplication; -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules$1; -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules$TLV; -Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules; -Lcom/android/internal/telephony/uicc/UiccController$1; -Lcom/android/internal/telephony/uicc/UiccController; -Lcom/android/internal/telephony/uicc/UiccPkcs15$FileHandler; -Lcom/android/internal/telephony/uicc/UiccPkcs15$Pkcs15Selector; -Lcom/android/internal/telephony/uicc/UiccPkcs15; -Lcom/android/internal/telephony/uicc/UiccProfile$1; -Lcom/android/internal/telephony/uicc/UiccProfile$2; -Lcom/android/internal/telephony/uicc/UiccProfile$3; -Lcom/android/internal/telephony/uicc/UiccProfile$4; -Lcom/android/internal/telephony/uicc/UiccProfile$5; -Lcom/android/internal/telephony/uicc/UiccProfile; -Lcom/android/internal/telephony/uicc/UiccSlot$1; -Lcom/android/internal/telephony/uicc/UiccSlot; -Lcom/android/internal/telephony/uicc/UiccStateChangedLauncher; -Lcom/android/internal/telephony/uicc/UsimFileHandler; -Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -Lcom/android/internal/telephony/uicc/UsimServiceTable; -Lcom/android/internal/telephony/uicc/VoiceMailConstants; -Lcom/android/internal/telephony/uicc/asn1/Asn1Decoder; -Lcom/android/internal/telephony/uicc/asn1/Asn1Node$Builder; -Lcom/android/internal/telephony/uicc/asn1/Asn1Node; -Lcom/android/internal/telephony/uicc/asn1/InvalidAsn1DataException; -Lcom/android/internal/telephony/uicc/asn1/TagNotFoundException; -Lcom/android/internal/telephony/uicc/euicc/EuiccCard$1; -Lcom/android/internal/telephony/uicc/euicc/EuiccCard; -Lcom/android/internal/telephony/uicc/euicc/EuiccCardErrorException; -Lcom/android/internal/telephony/uicc/euicc/EuiccCardException; -Lcom/android/internal/telephony/uicc/euicc/EuiccSpecVersion; -Lcom/android/internal/telephony/uicc/euicc/Tags; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduCommand; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduException; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$1; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$2$1; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$2; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$3; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender$4; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSender; -Lcom/android/internal/telephony/uicc/euicc/apdu/ApduSenderResultCallback; -Lcom/android/internal/telephony/uicc/euicc/apdu/CloseLogicalChannelInvocation; -Lcom/android/internal/telephony/uicc/euicc/apdu/OpenLogicalChannelInvocation; -Lcom/android/internal/telephony/uicc/euicc/apdu/RequestBuilder; -Lcom/android/internal/telephony/uicc/euicc/apdu/RequestProvider; -Lcom/android/internal/telephony/uicc/euicc/apdu/TransmitApduLogicalChannelInvocation; -Lcom/android/internal/telephony/uicc/euicc/async/AsyncMessageInvocation; -Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultCallback; -Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultHelper$1; -Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultHelper$2; -Lcom/android/internal/telephony/uicc/euicc/async/AsyncResultHelper; -Lcom/android/internal/telephony/util/ArrayUtils; -Lcom/android/internal/telephony/util/BitUtils; -Lcom/android/internal/telephony/util/CollectionUtils; -Lcom/android/internal/telephony/util/ConnectivityUtils; -Lcom/android/internal/telephony/util/DnsPacket$DnsHeader; -Lcom/android/internal/telephony/util/DnsPacket$DnsRecord; -Lcom/android/internal/telephony/util/DnsPacket$ParseException; -Lcom/android/internal/telephony/util/DnsPacket; -Lcom/android/internal/telephony/util/DnsSdTxtRecord$1; -Lcom/android/internal/telephony/util/DnsSdTxtRecord; -Lcom/android/internal/telephony/util/HandlerExecutor; -Lcom/android/internal/telephony/util/Inet4AddressUtils; -Lcom/android/internal/telephony/util/InetAddressUtils; -Lcom/android/internal/telephony/util/IpRange; -Lcom/android/internal/telephony/util/IpUtils; -Lcom/android/internal/telephony/util/LinkPropertiesUtils$CompareOrUpdateResult; -Lcom/android/internal/telephony/util/LinkPropertiesUtils$CompareResult; -Lcom/android/internal/telephony/util/LinkPropertiesUtils; -Lcom/android/internal/telephony/util/LocaleUtils; -Lcom/android/internal/telephony/util/LocationPermissionChecker; -Lcom/android/internal/telephony/util/MacAddressUtils; -Lcom/android/internal/telephony/util/NetUtils; -Lcom/android/internal/telephony/util/NetworkCapabilitiesUtils; -Lcom/android/internal/telephony/util/NetworkIdentityUtils; -Lcom/android/internal/telephony/util/NetworkStackConstants; -Lcom/android/internal/telephony/util/NotificationChannelController$1; -Lcom/android/internal/telephony/util/NotificationChannelController; -Lcom/android/internal/telephony/util/PermissionUtils; -Lcom/android/internal/telephony/util/ProxyUtils; -Lcom/android/internal/telephony/util/RemoteCallbackListExt; -Lcom/android/internal/telephony/util/SMSDispatcherUtil; -Lcom/android/internal/telephony/util/TelephonyUtils; -Lcom/android/internal/telephony/util/VoicemailNotificationSettingsUtil; -Lcom/android/internal/telephony/util/XmlUtils; -Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy; -Lcom/android/internal/textservice/ISpellCheckerService$Stub; -Lcom/android/internal/textservice/ISpellCheckerService; -Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy; -Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub; -Lcom/android/internal/textservice/ISpellCheckerServiceCallback; -Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy; -Lcom/android/internal/textservice/ISpellCheckerSession$Stub; -Lcom/android/internal/textservice/ISpellCheckerSession; -Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy; -Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub; -Lcom/android/internal/textservice/ISpellCheckerSessionListener; -Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy; -Lcom/android/internal/textservice/ITextServicesManager$Stub; -Lcom/android/internal/textservice/ITextServicesManager; -Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy; -Lcom/android/internal/textservice/ITextServicesSessionListener$Stub; -Lcom/android/internal/textservice/ITextServicesSessionListener; -Lcom/android/internal/transition/EpicenterTranslateClipReveal$1; -Lcom/android/internal/transition/EpicenterTranslateClipReveal$State; -Lcom/android/internal/transition/EpicenterTranslateClipReveal$StateEvaluator; -Lcom/android/internal/transition/EpicenterTranslateClipReveal$StateProperty; -Lcom/android/internal/transition/EpicenterTranslateClipReveal; -Lcom/android/internal/transition/TransitionConstants; -Lcom/android/internal/usb/DumpUtils; -Lcom/android/internal/util/AnnotationValidations; -Lcom/android/internal/util/ArrayUtils; -Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection; -Lcom/android/internal/util/AsyncChannel$DeathMonitor; -Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler; -Lcom/android/internal/util/AsyncChannel$SyncMessenger; -Lcom/android/internal/util/AsyncChannel; -Lcom/android/internal/util/BitUtils; -Lcom/android/internal/util/BitwiseInputStream$AccessException; -Lcom/android/internal/util/BitwiseOutputStream$AccessException; -Lcom/android/internal/util/CollectionUtils; -Lcom/android/internal/util/ConcurrentUtils$1$1; -Lcom/android/internal/util/ConcurrentUtils$1; -Lcom/android/internal/util/ConcurrentUtils$DirectExecutor; -Lcom/android/internal/util/ConcurrentUtils; -Lcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat; -Lcom/android/internal/util/ContrastColorUtil; -Lcom/android/internal/util/DumpUtils$1; -Lcom/android/internal/util/DumpUtils$Dump; -Lcom/android/internal/util/DumpUtils; -Lcom/android/internal/util/EmergencyAffordanceManager; -Lcom/android/internal/util/ExponentiallyBucketedHistogram; -Lcom/android/internal/util/FastMath; -Lcom/android/internal/util/FastPrintWriter$DummyWriter-IA; -Lcom/android/internal/util/FastPrintWriter$DummyWriter; -Lcom/android/internal/util/FastPrintWriter; -Lcom/android/internal/util/FastXmlSerializer; -Lcom/android/internal/util/FileRotator$FileInfo; -Lcom/android/internal/util/FileRotator$Reader; -Lcom/android/internal/util/FileRotator$Rewriter; -Lcom/android/internal/util/FileRotator$Writer; -Lcom/android/internal/util/FileRotator; -Lcom/android/internal/util/FrameworkStatsLog; -Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer; -Lcom/android/internal/util/FunctionalUtils$ThrowingBiFunction; -Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer; -Lcom/android/internal/util/FunctionalUtils$ThrowingFunction; -Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable; -Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier; -Lcom/android/internal/util/FunctionalUtils; -Lcom/android/internal/util/GrowingArrayUtils; -Lcom/android/internal/util/HeavyHitterSketch$HeavyHitterSketchImpl; -Lcom/android/internal/util/HeavyHitterSketch; -Lcom/android/internal/util/HexDump; -Lcom/android/internal/util/IState; -Lcom/android/internal/util/ImageUtils; -Lcom/android/internal/util/IndentingPrintWriter; -Lcom/android/internal/util/IntPair; -Lcom/android/internal/util/JournaledFile; -Lcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda0; -Lcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda1; -Lcom/android/internal/util/LatencyTracker$$ExternalSyntheticLambda2; -Lcom/android/internal/util/LatencyTracker$Action; -Lcom/android/internal/util/LatencyTracker$ActionProperties; -Lcom/android/internal/util/LatencyTracker$FrameworkStatsLogEvent-IA; -Lcom/android/internal/util/LatencyTracker$FrameworkStatsLogEvent; -Lcom/android/internal/util/LatencyTracker$SLatencyTrackerHolder; -Lcom/android/internal/util/LatencyTracker$Session$$ExternalSyntheticLambda0; -Lcom/android/internal/util/LatencyTracker$Session; -Lcom/android/internal/util/LatencyTracker; -Lcom/android/internal/util/LineBreakBufferedWriter; -Lcom/android/internal/util/LocalLog; -Lcom/android/internal/util/MemInfoReader; -Lcom/android/internal/util/MessageUtils$DuplicateConstantError; -Lcom/android/internal/util/MessageUtils; -Lcom/android/internal/util/NotificationMessagingUtil$1; -Lcom/android/internal/util/NotificationMessagingUtil; -Lcom/android/internal/util/ObjectUtils; -Lcom/android/internal/util/Parcelling$BuiltIn$ForBoolean; -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedString; -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringArray; -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringList; -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringSet; -Lcom/android/internal/util/Parcelling$BuiltIn$ForInternedStringValueMap; -Lcom/android/internal/util/Parcelling$BuiltIn$ForStringSet; -Lcom/android/internal/util/Parcelling$BuiltIn$ForUUID; -Lcom/android/internal/util/Parcelling$Cache; -Lcom/android/internal/util/Parcelling; -Lcom/android/internal/util/ParseUtils; -Lcom/android/internal/util/PerfettoTrigger; -Lcom/android/internal/util/Preconditions; -Lcom/android/internal/util/ProcFileReader; -Lcom/android/internal/util/ProgressReporter; -Lcom/android/internal/util/ProviderAccessStats$PerThreadData; -Lcom/android/internal/util/ProviderAccessStats; -Lcom/android/internal/util/RingBuffer$$ExternalSyntheticLambda0; -Lcom/android/internal/util/RingBuffer$$ExternalSyntheticLambda1; -Lcom/android/internal/util/RingBuffer; -Lcom/android/internal/util/RingBufferIndices; -Lcom/android/internal/util/ScreenshotHelper$1; -Lcom/android/internal/util/ScreenshotHelper$2; -Lcom/android/internal/util/ScreenshotHelper; -Lcom/android/internal/util/StatLogger; -Lcom/android/internal/util/State; -Lcom/android/internal/util/StateMachine$LogRec; -Lcom/android/internal/util/StateMachine$LogRecords-IA; -Lcom/android/internal/util/StateMachine$LogRecords; -Lcom/android/internal/util/StateMachine$SmHandler$HaltingState-IA; -Lcom/android/internal/util/StateMachine$SmHandler$HaltingState; -Lcom/android/internal/util/StateMachine$SmHandler$QuittingState-IA; -Lcom/android/internal/util/StateMachine$SmHandler$QuittingState; -Lcom/android/internal/util/StateMachine$SmHandler$StateInfo; -Lcom/android/internal/util/StateMachine$SmHandler-IA; -Lcom/android/internal/util/StateMachine$SmHandler; -Lcom/android/internal/util/StateMachine; -Lcom/android/internal/util/StringPool; -Lcom/android/internal/util/SyncResultReceiver$TimeoutException; -Lcom/android/internal/util/SyncResultReceiver; -Lcom/android/internal/util/ToBooleanFunction; -Lcom/android/internal/util/TokenBucket; -Lcom/android/internal/util/TraceBuffer$ProtoOutputStreamProvider-IA; -Lcom/android/internal/util/TraceBuffer$ProtoOutputStreamProvider; -Lcom/android/internal/util/TraceBuffer$ProtoProvider; -Lcom/android/internal/util/TraceBuffer; -Lcom/android/internal/util/UserIcons; -Lcom/android/internal/util/VirtualRefBasePtr; -Lcom/android/internal/util/WakeupMessage; -Lcom/android/internal/util/XmlPullParserWrapper; -Lcom/android/internal/util/XmlSerializerWrapper; -Lcom/android/internal/util/XmlUtils$ForcedTypedXmlPullParser; -Lcom/android/internal/util/XmlUtils$ReadMapCallback; -Lcom/android/internal/util/XmlUtils$WriteMapCallback; -Lcom/android/internal/util/XmlUtils; -Lcom/android/internal/util/dump/DualDumpOutputStream$DumpField; -Lcom/android/internal/util/dump/DualDumpOutputStream$DumpObject; -Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable; -Lcom/android/internal/util/dump/DualDumpOutputStream; -Lcom/android/internal/util/dump/DumpUtils; -Lcom/android/internal/util/function/DecConsumer; -Lcom/android/internal/util/function/DecFunction; -Lcom/android/internal/util/function/DecPredicate; -Lcom/android/internal/util/function/DodecConsumer; -Lcom/android/internal/util/function/DodecFunction; -Lcom/android/internal/util/function/DodecPredicate; -Lcom/android/internal/util/function/HeptConsumer; -Lcom/android/internal/util/function/HeptFunction; -Lcom/android/internal/util/function/HeptPredicate; -Lcom/android/internal/util/function/HexConsumer; -Lcom/android/internal/util/function/HexFunction; -Lcom/android/internal/util/function/HexPredicate; -Lcom/android/internal/util/function/LongObjPredicate; -Lcom/android/internal/util/function/NonaConsumer; -Lcom/android/internal/util/function/NonaFunction; -Lcom/android/internal/util/function/NonaPredicate; -Lcom/android/internal/util/function/OctConsumer; -Lcom/android/internal/util/function/OctFunction; -Lcom/android/internal/util/function/OctPredicate; -Lcom/android/internal/util/function/QuadConsumer; -Lcom/android/internal/util/function/QuadFunction; -Lcom/android/internal/util/function/QuadPredicate; -Lcom/android/internal/util/function/QuintConsumer; -Lcom/android/internal/util/function/QuintFunction; -Lcom/android/internal/util/function/QuintPredicate; -Lcom/android/internal/util/function/TriConsumer; -Lcom/android/internal/util/function/TriFunction; -Lcom/android/internal/util/function/TriPredicate; -Lcom/android/internal/util/function/UndecConsumer; -Lcom/android/internal/util/function/UndecFunction; -Lcom/android/internal/util/function/UndecPredicate; -Lcom/android/internal/util/function/pooled/ArgumentPlaceholder; -Lcom/android/internal/util/function/pooled/OmniFunction; -Lcom/android/internal/util/function/pooled/PooledLambda; -Lcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType$ReturnType; -Lcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType; -Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool; -Lcom/android/internal/util/function/pooled/PooledPredicate; -Lcom/android/internal/util/function/pooled/PooledRunnable; -Lcom/android/internal/util/function/pooled/PooledSupplier$OfDouble; -Lcom/android/internal/util/function/pooled/PooledSupplier$OfInt; -Lcom/android/internal/util/function/pooled/PooledSupplier$OfLong; -Lcom/android/internal/util/function/pooled/PooledSupplier; -Lcom/android/internal/view/ActionBarPolicy; -Lcom/android/internal/view/AppearanceRegion$1; -Lcom/android/internal/view/AppearanceRegion; -Lcom/android/internal/view/BaseIWindow; -Lcom/android/internal/view/BaseSurfaceHolder; -Lcom/android/internal/view/FloatingActionMode$1; -Lcom/android/internal/view/FloatingActionMode$2; -Lcom/android/internal/view/FloatingActionMode$3; -Lcom/android/internal/view/FloatingActionMode$FloatingToolbarVisibilityHelper; -Lcom/android/internal/view/FloatingActionMode; -Lcom/android/internal/view/IInputMethodManager$Stub$Proxy; -Lcom/android/internal/view/IInputMethodManager$Stub; -Lcom/android/internal/view/IInputMethodManager; -Lcom/android/internal/view/OneShotPreDrawListener; -Lcom/android/internal/view/RootViewSurfaceTaker; -Lcom/android/internal/view/RotationPolicy$1; -Lcom/android/internal/view/RotationPolicy$RotationPolicyListener$1; -Lcom/android/internal/view/RotationPolicy$RotationPolicyListener; -Lcom/android/internal/view/RotationPolicy; -Lcom/android/internal/view/SurfaceCallbackHelper$1; -Lcom/android/internal/view/SurfaceCallbackHelper; -Lcom/android/internal/view/TooltipPopup; -Lcom/android/internal/view/WindowManagerPolicyThread; -Lcom/android/internal/view/menu/ActionMenuItem; -Lcom/android/internal/view/menu/ActionMenuItemView$ActionMenuItemForwardingListener; -Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback; -Lcom/android/internal/view/menu/ActionMenuItemView; -Lcom/android/internal/view/menu/BaseMenuPresenter; -Lcom/android/internal/view/menu/ContextMenuBuilder; -Lcom/android/internal/view/menu/IconMenuPresenter; -Lcom/android/internal/view/menu/ListMenuPresenter; -Lcom/android/internal/view/menu/MenuBuilder$Callback; -Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker; -Lcom/android/internal/view/menu/MenuBuilder; -Lcom/android/internal/view/menu/MenuHelper; -Lcom/android/internal/view/menu/MenuItemImpl; -Lcom/android/internal/view/menu/MenuPopupHelper$1; -Lcom/android/internal/view/menu/MenuPopupHelper; -Lcom/android/internal/view/menu/MenuPresenter$Callback; -Lcom/android/internal/view/menu/MenuPresenter; -Lcom/android/internal/view/menu/MenuView$ItemView; -Lcom/android/internal/view/menu/MenuView; -Lcom/android/internal/view/menu/ShowableListMenu; -Lcom/android/internal/view/menu/SubMenuBuilder; -Lcom/android/internal/widget/AbsActionBarView$VisibilityAnimListener; -Lcom/android/internal/widget/AbsActionBarView; -Lcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable; -Lcom/android/internal/widget/ActionBarContainer; -Lcom/android/internal/widget/ActionBarContextView; -Lcom/android/internal/widget/ActionBarOverlayLayout$1; -Lcom/android/internal/widget/ActionBarOverlayLayout$2; -Lcom/android/internal/widget/ActionBarOverlayLayout$3; -Lcom/android/internal/widget/ActionBarOverlayLayout$4; -Lcom/android/internal/widget/ActionBarOverlayLayout$5; -Lcom/android/internal/widget/ActionBarOverlayLayout$ActionBarVisibilityCallback; -Lcom/android/internal/widget/ActionBarOverlayLayout$LayoutParams; -Lcom/android/internal/widget/ActionBarOverlayLayout; -Lcom/android/internal/widget/AlertDialogLayout; -Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller; -Lcom/android/internal/widget/AutoScrollHelper; -Lcom/android/internal/widget/BackgroundFallback; -Lcom/android/internal/widget/ButtonBarLayout; -Lcom/android/internal/widget/CachingIconView; -Lcom/android/internal/widget/ConversationLayout$1; -Lcom/android/internal/widget/ConversationLayout$TouchDelegateComposite; -Lcom/android/internal/widget/ConversationLayout; -Lcom/android/internal/widget/DecorCaptionView; -Lcom/android/internal/widget/DecorContentParent; -Lcom/android/internal/widget/DecorToolbar; -Lcom/android/internal/widget/DialogTitle; -Lcom/android/internal/widget/ExploreByTouchHelper; -Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy; -Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub; -Lcom/android/internal/widget/ICheckCredentialProgressCallback; -Lcom/android/internal/widget/ILockSettings$Stub$Proxy; -Lcom/android/internal/widget/ILockSettings$Stub; -Lcom/android/internal/widget/ILockSettings; -Lcom/android/internal/widget/IMessagingLayout; -Lcom/android/internal/widget/ImageFloatingTextView; -Lcom/android/internal/widget/ImageMessageConsumer; -Lcom/android/internal/widget/ImageResolver; -Lcom/android/internal/widget/LockPatternChecker$2; -Lcom/android/internal/widget/LockPatternChecker$OnCheckCallback; -Lcom/android/internal/widget/LockPatternChecker; -Lcom/android/internal/widget/LockPatternUtils$1; -Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback; -Lcom/android/internal/widget/LockPatternUtils$RequestThrottledException; -Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1; -Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H; -Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker; -Lcom/android/internal/widget/LockPatternUtils$WrappedCallback; -Lcom/android/internal/widget/LockPatternUtils; -Lcom/android/internal/widget/LockPatternView$Cell; -Lcom/android/internal/widget/LockSettingsInternal; -Lcom/android/internal/widget/LockscreenCredential$1; -Lcom/android/internal/widget/LockscreenCredential; -Lcom/android/internal/widget/MessagingGroup$1; -Lcom/android/internal/widget/MessagingGroup; -Lcom/android/internal/widget/MessagingImageMessage; -Lcom/android/internal/widget/MessagingLayout; -Lcom/android/internal/widget/MessagingLinearLayout$LayoutParams; -Lcom/android/internal/widget/MessagingLinearLayout$MessagingChild; -Lcom/android/internal/widget/MessagingLinearLayout; -Lcom/android/internal/widget/MessagingMessage; -Lcom/android/internal/widget/MessagingMessageState; -Lcom/android/internal/widget/MessagingPool; -Lcom/android/internal/widget/MessagingPropertyAnimator$$ExternalSyntheticLambda0; -Lcom/android/internal/widget/MessagingPropertyAnimator$1; -Lcom/android/internal/widget/MessagingPropertyAnimator$2; -Lcom/android/internal/widget/MessagingPropertyAnimator; -Lcom/android/internal/widget/MessagingTextMessage; -Lcom/android/internal/widget/NotificationActionListLayout$$ExternalSyntheticLambda0; -Lcom/android/internal/widget/NotificationActionListLayout; -Lcom/android/internal/widget/NotificationExpandButton; -Lcom/android/internal/widget/NotificationOptimizedLinearLayout; -Lcom/android/internal/widget/ObservableTextView; -Lcom/android/internal/widget/PasswordValidationError; -Lcom/android/internal/widget/RemeasuringLinearLayout; -Lcom/android/internal/widget/ScrollBarUtils; -Lcom/android/internal/widget/ScrollingTabContainerView; -Lcom/android/internal/widget/ToolbarWidgetWrapper$1; -Lcom/android/internal/widget/ToolbarWidgetWrapper; -Lcom/android/internal/widget/VerifyCredentialResponse$1; -Lcom/android/internal/widget/VerifyCredentialResponse$Builder; -Lcom/android/internal/widget/VerifyCredentialResponse; -Lcom/android/internal/widget/ViewClippingUtil$ClippingParameters; -Lcom/android/internal/widget/ViewClippingUtil; -Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar$$ExternalSyntheticLambda0; -Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar$$ExternalSyntheticLambda1; -Lcom/android/internal/widget/floatingtoolbar/FloatingToolbar; -Lcom/android/internal/widget/floatingtoolbar/FloatingToolbarPopup; -Lcom/android/media/flags/Flags; -Lcom/android/modules/expresslog/Counter; -Lcom/android/modules/expresslog/MetricIds; -Lcom/android/modules/expresslog/StatsExpressLog; -Lcom/android/modules/utils/BasicShellCommandHandler; -Lcom/android/modules/utils/TypedXmlPullParser; -Lcom/android/modules/utils/TypedXmlSerializer; -Lcom/android/net/module/util/BitUtils; -Lcom/android/net/module/util/Inet4AddressUtils; -Lcom/android/net/module/util/InetAddressUtils; -Lcom/android/net/module/util/IpRange; -Lcom/android/net/module/util/LinkPropertiesUtils$CompareOrUpdateResult; -Lcom/android/net/module/util/LinkPropertiesUtils$CompareResult; -Lcom/android/net/module/util/LinkPropertiesUtils; -Lcom/android/net/module/util/MacAddressUtils; -Lcom/android/net/module/util/NetUtils; -Lcom/android/net/module/util/NetworkCapabilitiesUtils; -Lcom/android/net/module/util/NetworkIdentityUtils; -Lcom/android/net/module/util/NetworkStackConstants; -Lcom/android/net/module/util/ProxyUtils; -Lcom/android/okhttp/Address; -Lcom/android/okhttp/AndroidInternal; -Lcom/android/okhttp/AndroidShimResponseCache; -Lcom/android/okhttp/Authenticator; -Lcom/android/okhttp/Cache$1; -Lcom/android/okhttp/Cache$CacheResponseBody$1; -Lcom/android/okhttp/Cache$CacheResponseBody; -Lcom/android/okhttp/Cache$Entry; -Lcom/android/okhttp/Cache; -Lcom/android/okhttp/CacheControl$Builder; -Lcom/android/okhttp/CacheControl; -Lcom/android/okhttp/CertificatePinner$Builder; -Lcom/android/okhttp/CertificatePinner; -Lcom/android/okhttp/CipherSuite; -Lcom/android/okhttp/ConfigAwareConnectionPool$1; -Lcom/android/okhttp/ConfigAwareConnectionPool; -Lcom/android/okhttp/Connection; -Lcom/android/okhttp/ConnectionPool$1; -Lcom/android/okhttp/ConnectionPool; -Lcom/android/okhttp/ConnectionSpec$1; -Lcom/android/okhttp/ConnectionSpec$Builder; -Lcom/android/okhttp/ConnectionSpec; -Lcom/android/okhttp/ConnectionSpecs; -Lcom/android/okhttp/Dispatcher; -Lcom/android/okhttp/Dns$1; -Lcom/android/okhttp/Dns; -Lcom/android/okhttp/Handshake; -Lcom/android/okhttp/Headers$1; -Lcom/android/okhttp/Headers$Builder; -Lcom/android/okhttp/Headers; -Lcom/android/okhttp/HttpHandler$CleartextURLFilter; -Lcom/android/okhttp/HttpHandler; -Lcom/android/okhttp/HttpUrl$1; -Lcom/android/okhttp/HttpUrl$Builder$ParseResult; -Lcom/android/okhttp/HttpUrl$Builder; -Lcom/android/okhttp/HttpUrl; -Lcom/android/okhttp/Interceptor$Chain; -Lcom/android/okhttp/MediaType; -Lcom/android/okhttp/OkCacheContainer; -Lcom/android/okhttp/OkHttpClient$1; -Lcom/android/okhttp/OkHttpClient; -Lcom/android/okhttp/OkUrlFactories; -Lcom/android/okhttp/OkUrlFactory; -Lcom/android/okhttp/Protocol; -Lcom/android/okhttp/Request$1; -Lcom/android/okhttp/Request$Builder; -Lcom/android/okhttp/Request; -Lcom/android/okhttp/RequestBody$2; -Lcom/android/okhttp/RequestBody; -Lcom/android/okhttp/Response$1; -Lcom/android/okhttp/Response$Builder; -Lcom/android/okhttp/Response; -Lcom/android/okhttp/ResponseBody; -Lcom/android/okhttp/Route; -Lcom/android/okhttp/TlsVersion; -Lcom/android/okhttp/internal/ConnectionSpecSelector; -Lcom/android/okhttp/internal/DiskLruCache$1; -Lcom/android/okhttp/internal/DiskLruCache$4; -Lcom/android/okhttp/internal/DiskLruCache$Editor; -Lcom/android/okhttp/internal/DiskLruCache$Entry; -Lcom/android/okhttp/internal/DiskLruCache; -Lcom/android/okhttp/internal/FaultHidingSink; -Lcom/android/okhttp/internal/Internal; -Lcom/android/okhttp/internal/InternalCache; -Lcom/android/okhttp/internal/NamedRunnable; -Lcom/android/okhttp/internal/OptionalMethod; -Lcom/android/okhttp/internal/Platform; -Lcom/android/okhttp/internal/RouteDatabase; -Lcom/android/okhttp/internal/URLFilter; -Lcom/android/okhttp/internal/Util$1; -Lcom/android/okhttp/internal/Util; -Lcom/android/okhttp/internal/Version; -Lcom/android/okhttp/internal/framed/FrameWriter; -Lcom/android/okhttp/internal/framed/FramedConnection$1; -Lcom/android/okhttp/internal/framed/FramedConnection$Builder; -Lcom/android/okhttp/internal/framed/FramedConnection$Listener$1; -Lcom/android/okhttp/internal/framed/FramedConnection$Listener; -Lcom/android/okhttp/internal/framed/FramedConnection; -Lcom/android/okhttp/internal/framed/Header; -Lcom/android/okhttp/internal/framed/PushObserver$1; -Lcom/android/okhttp/internal/framed/PushObserver; -Lcom/android/okhttp/internal/framed/Settings; -Lcom/android/okhttp/internal/http/AuthenticatorAdapter; -Lcom/android/okhttp/internal/http/CacheRequest; -Lcom/android/okhttp/internal/http/CacheStrategy$1; -Lcom/android/okhttp/internal/http/CacheStrategy$Factory; -Lcom/android/okhttp/internal/http/CacheStrategy; -Lcom/android/okhttp/internal/http/HeaderParser; -Lcom/android/okhttp/internal/http/Http1xStream$1; -Lcom/android/okhttp/internal/http/Http1xStream$AbstractSource; -Lcom/android/okhttp/internal/http/Http1xStream$ChunkedSink; -Lcom/android/okhttp/internal/http/Http1xStream$ChunkedSource; -Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSink; -Lcom/android/okhttp/internal/http/Http1xStream$FixedLengthSource; -Lcom/android/okhttp/internal/http/Http1xStream; -Lcom/android/okhttp/internal/http/Http2xStream; -Lcom/android/okhttp/internal/http/HttpDate$1; -Lcom/android/okhttp/internal/http/HttpDate; -Lcom/android/okhttp/internal/http/HttpEngine$1; -Lcom/android/okhttp/internal/http/HttpEngine$2; -Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain; -Lcom/android/okhttp/internal/http/HttpEngine; -Lcom/android/okhttp/internal/http/HttpMethod; -Lcom/android/okhttp/internal/http/HttpStream; -Lcom/android/okhttp/internal/http/OkHeaders$1; -Lcom/android/okhttp/internal/http/OkHeaders; -Lcom/android/okhttp/internal/http/RealResponseBody; -Lcom/android/okhttp/internal/http/RequestException; -Lcom/android/okhttp/internal/http/RequestLine; -Lcom/android/okhttp/internal/http/RetryableSink; -Lcom/android/okhttp/internal/http/RouteException; -Lcom/android/okhttp/internal/http/RouteSelector; -Lcom/android/okhttp/internal/http/StatusLine; -Lcom/android/okhttp/internal/http/StreamAllocation; -Lcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection; -Lcom/android/okhttp/internal/huc/HttpURLConnectionImpl; -Lcom/android/okhttp/internal/io/FileSystem$1; -Lcom/android/okhttp/internal/io/FileSystem; -Lcom/android/okhttp/internal/io/RealConnection; -Lcom/android/okhttp/internal/tls/CertificateChainCleaner; -Lcom/android/okhttp/internal/tls/OkHostnameVerifier; -Lcom/android/okhttp/internal/tls/RealTrustRootIndex; -Lcom/android/okhttp/internal/tls/TrustRootIndex; -Lcom/android/okhttp/internalandroidapi/AndroidResponseCacheAdapter; -Lcom/android/okhttp/internalandroidapi/Dns; -Lcom/android/okhttp/internalandroidapi/HasCacheHolder$CacheHolder; -Lcom/android/okhttp/internalandroidapi/HasCacheHolder; -Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter; -Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory; -Lcom/android/okhttp/okio/AsyncTimeout$1; -Lcom/android/okhttp/okio/AsyncTimeout$2; -Lcom/android/okhttp/okio/AsyncTimeout$Watchdog; -Lcom/android/okhttp/okio/AsyncTimeout; -Lcom/android/okhttp/okio/Buffer; -Lcom/android/okhttp/okio/BufferedSink; -Lcom/android/okhttp/okio/BufferedSource; -Lcom/android/okhttp/okio/ByteString; -Lcom/android/okhttp/okio/ForwardingSink; -Lcom/android/okhttp/okio/ForwardingSource; -Lcom/android/okhttp/okio/ForwardingTimeout; -Lcom/android/okhttp/okio/GzipSource; -Lcom/android/okhttp/okio/InflaterSource; -Lcom/android/okhttp/okio/Okio$1; -Lcom/android/okhttp/okio/Okio$2; -Lcom/android/okhttp/okio/Okio$3; -Lcom/android/okhttp/okio/Okio; -Lcom/android/okhttp/okio/RealBufferedSink$1; -Lcom/android/okhttp/okio/RealBufferedSink; -Lcom/android/okhttp/okio/RealBufferedSource; -Lcom/android/okhttp/okio/Segment; -Lcom/android/okhttp/okio/SegmentPool; -Lcom/android/okhttp/okio/Sink; -Lcom/android/okhttp/okio/Source; -Lcom/android/okhttp/okio/Timeout$1; -Lcom/android/okhttp/okio/Timeout; -Lcom/android/okhttp/okio/Util; -Lcom/android/org/bouncycastle/asn1/ASN1ApplicationSpecific; -Lcom/android/org/bouncycastle/asn1/ASN1BitString; -Lcom/android/org/bouncycastle/asn1/ASN1Boolean; -Lcom/android/org/bouncycastle/asn1/ASN1Choice; -Lcom/android/org/bouncycastle/asn1/ASN1Encodable; -Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector; -Lcom/android/org/bouncycastle/asn1/ASN1Enumerated; -Lcom/android/org/bouncycastle/asn1/ASN1Exception; -Lcom/android/org/bouncycastle/asn1/ASN1External; -Lcom/android/org/bouncycastle/asn1/ASN1GeneralizedTime; -Lcom/android/org/bouncycastle/asn1/ASN1InputStream; -Lcom/android/org/bouncycastle/asn1/ASN1Integer; -Lcom/android/org/bouncycastle/asn1/ASN1Object; -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle; -Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier; -Lcom/android/org/bouncycastle/asn1/ASN1OctetString; -Lcom/android/org/bouncycastle/asn1/ASN1OctetStringParser; -Lcom/android/org/bouncycastle/asn1/ASN1OutputStream; -Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -Lcom/android/org/bouncycastle/asn1/ASN1Sequence$1; -Lcom/android/org/bouncycastle/asn1/ASN1Sequence; -Lcom/android/org/bouncycastle/asn1/ASN1SequenceParser; -Lcom/android/org/bouncycastle/asn1/ASN1Set$1; -Lcom/android/org/bouncycastle/asn1/ASN1Set; -Lcom/android/org/bouncycastle/asn1/ASN1SetParser; -Lcom/android/org/bouncycastle/asn1/ASN1StreamParser; -Lcom/android/org/bouncycastle/asn1/ASN1String; -Lcom/android/org/bouncycastle/asn1/ASN1TaggedObject; -Lcom/android/org/bouncycastle/asn1/ASN1UTCTime; -Lcom/android/org/bouncycastle/asn1/BERApplicationSpecific; -Lcom/android/org/bouncycastle/asn1/BERApplicationSpecificParser; -Lcom/android/org/bouncycastle/asn1/BEROctetString; -Lcom/android/org/bouncycastle/asn1/BEROctetStringParser; -Lcom/android/org/bouncycastle/asn1/BERSequence; -Lcom/android/org/bouncycastle/asn1/BERSequenceParser; -Lcom/android/org/bouncycastle/asn1/BERSet; -Lcom/android/org/bouncycastle/asn1/BERSetParser; -Lcom/android/org/bouncycastle/asn1/BERTaggedObjectParser; -Lcom/android/org/bouncycastle/asn1/ConstructedOctetStream; -Lcom/android/org/bouncycastle/asn1/DERBMPString; -Lcom/android/org/bouncycastle/asn1/DERBitString; -Lcom/android/org/bouncycastle/asn1/DERExternalParser; -Lcom/android/org/bouncycastle/asn1/DERGeneralString; -Lcom/android/org/bouncycastle/asn1/DERGraphicString; -Lcom/android/org/bouncycastle/asn1/DERIA5String; -Lcom/android/org/bouncycastle/asn1/DERNull; -Lcom/android/org/bouncycastle/asn1/DERNumericString; -Lcom/android/org/bouncycastle/asn1/DEROctetString; -Lcom/android/org/bouncycastle/asn1/DEROutputStream; -Lcom/android/org/bouncycastle/asn1/DERPrintableString; -Lcom/android/org/bouncycastle/asn1/DERSequence; -Lcom/android/org/bouncycastle/asn1/DERSet; -Lcom/android/org/bouncycastle/asn1/DERT61String; -Lcom/android/org/bouncycastle/asn1/DERTaggedObject; -Lcom/android/org/bouncycastle/asn1/DERUTF8String; -Lcom/android/org/bouncycastle/asn1/DERUniversalString; -Lcom/android/org/bouncycastle/asn1/DERVideotexString; -Lcom/android/org/bouncycastle/asn1/DERVisibleString; -Lcom/android/org/bouncycastle/asn1/DLApplicationSpecific; -Lcom/android/org/bouncycastle/asn1/DLBitString; -Lcom/android/org/bouncycastle/asn1/DLExternal; -Lcom/android/org/bouncycastle/asn1/DLFactory; -Lcom/android/org/bouncycastle/asn1/DLSequence; -Lcom/android/org/bouncycastle/asn1/DLSet; -Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream; -Lcom/android/org/bouncycastle/asn1/InMemoryRepresentable; -Lcom/android/org/bouncycastle/asn1/IndefiniteLengthInputStream; -Lcom/android/org/bouncycastle/asn1/LazyEncodedSequence; -Lcom/android/org/bouncycastle/asn1/LimitedInputStream; -Lcom/android/org/bouncycastle/asn1/StreamUtil; -Lcom/android/org/bouncycastle/asn1/bc/BCObjectIdentifiers; -Lcom/android/org/bouncycastle/asn1/misc/MiscObjectIdentifiers; -Lcom/android/org/bouncycastle/asn1/nist/NISTObjectIdentifiers; -Lcom/android/org/bouncycastle/asn1/oiw/OIWObjectIdentifiers; -Lcom/android/org/bouncycastle/asn1/pkcs/PKCSObjectIdentifiers; -Lcom/android/org/bouncycastle/asn1/x500/X500Name; -Lcom/android/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle; -Lcom/android/org/bouncycastle/asn1/x500/style/BCStyle; -Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier; -Lcom/android/org/bouncycastle/asn1/x509/Certificate; -Lcom/android/org/bouncycastle/asn1/x509/DSAParameter; -Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo; -Lcom/android/org/bouncycastle/asn1/x509/Time; -Lcom/android/org/bouncycastle/asn1/x509/X509Name; -Lcom/android/org/bouncycastle/asn1/x509/X509ObjectIdentifiers; -Lcom/android/org/bouncycastle/asn1/x9/X9ECParameters; -Lcom/android/org/bouncycastle/asn1/x9/X9ObjectIdentifiers; -Lcom/android/org/bouncycastle/crypto/BlockCipher; -Lcom/android/org/bouncycastle/crypto/BufferedBlockCipher; -Lcom/android/org/bouncycastle/crypto/CipherParameters; -Lcom/android/org/bouncycastle/crypto/CryptoException; -Lcom/android/org/bouncycastle/crypto/CryptoServicesPermission; -Lcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar$Property; -Lcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar; -Lcom/android/org/bouncycastle/crypto/DataLengthException; -Lcom/android/org/bouncycastle/crypto/Digest; -Lcom/android/org/bouncycastle/crypto/ExtendedDigest; -Lcom/android/org/bouncycastle/crypto/InvalidCipherTextException; -Lcom/android/org/bouncycastle/crypto/Mac; -Lcom/android/org/bouncycastle/crypto/OutputLengthException; -Lcom/android/org/bouncycastle/crypto/PBEParametersGenerator; -Lcom/android/org/bouncycastle/crypto/RuntimeCryptoException; -Lcom/android/org/bouncycastle/crypto/Wrapper; -Lcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactory; -Lcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryBouncyCastle; -Lcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL; -Lcom/android/org/bouncycastle/crypto/digests/EncodableDigest; -Lcom/android/org/bouncycastle/crypto/digests/GeneralDigest; -Lcom/android/org/bouncycastle/crypto/digests/LongDigest; -Lcom/android/org/bouncycastle/crypto/digests/MD5Digest; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$MD5; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA224; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA256; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA384; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA512; -Lcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest; -Lcom/android/org/bouncycastle/crypto/digests/SHA1Digest; -Lcom/android/org/bouncycastle/crypto/digests/SHA224Digest; -Lcom/android/org/bouncycastle/crypto/digests/SHA256Digest; -Lcom/android/org/bouncycastle/crypto/digests/SHA384Digest; -Lcom/android/org/bouncycastle/crypto/digests/SHA512Digest; -Lcom/android/org/bouncycastle/crypto/engines/AESEngine; -Lcom/android/org/bouncycastle/crypto/engines/DESEngine; -Lcom/android/org/bouncycastle/crypto/generators/OpenSSLPBEParametersGenerator; -Lcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator; -Lcom/android/org/bouncycastle/crypto/generators/PKCS5S1ParametersGenerator; -Lcom/android/org/bouncycastle/crypto/generators/PKCS5S2ParametersGenerator; -Lcom/android/org/bouncycastle/crypto/io/MacInputStream; -Lcom/android/org/bouncycastle/crypto/macs/HMac; -Lcom/android/org/bouncycastle/crypto/modes/AEADBlockCipher; -Lcom/android/org/bouncycastle/crypto/modes/CBCBlockCipher; -Lcom/android/org/bouncycastle/crypto/paddings/BlockCipherPadding; -Lcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding; -Lcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher; -Lcom/android/org/bouncycastle/crypto/params/AEADParameters; -Lcom/android/org/bouncycastle/crypto/params/AsymmetricKeyParameter; -Lcom/android/org/bouncycastle/crypto/params/DHParameters; -Lcom/android/org/bouncycastle/crypto/params/DHValidationParameters; -Lcom/android/org/bouncycastle/crypto/params/DSAKeyParameters; -Lcom/android/org/bouncycastle/crypto/params/DSAParameters; -Lcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters; -Lcom/android/org/bouncycastle/crypto/params/DSAValidationParameters; -Lcom/android/org/bouncycastle/crypto/params/KeyParameter; -Lcom/android/org/bouncycastle/crypto/params/ParametersWithIV; -Lcom/android/org/bouncycastle/crypto/params/ParametersWithRandom; -Lcom/android/org/bouncycastle/jcajce/PKCS12Key; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/DH$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/DH; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/DSA$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/RSA$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/RSA; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dh/KeyFactorySpi; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi$NoPadding; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/RSAUtil; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseCipherSpi; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil$Boundaries; -Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil; -Lcom/android/org/bouncycastle/jcajce/provider/config/ConfigurableProvider; -Lcom/android/org/bouncycastle/jcajce/provider/config/ProviderConfiguration; -Lcom/android/org/bouncycastle/jcajce/provider/config/ProviderConfigurationPermission; -Lcom/android/org/bouncycastle/jcajce/provider/digest/DigestAlgorithmProvider; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA1$Mappings$$ExternalSyntheticOutline0; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA1$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA1; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA224$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA224; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA256$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA256; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA384$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA384; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA512$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/digest/SHA512; -Lcom/android/org/bouncycastle/jcajce/provider/keystore/BC$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/keystore/PKCS12$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$Std; -Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry; -Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/AES; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/ARC4$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/ARC4; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Blowfish$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Blowfish; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DES$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DES; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DESede$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/DESede; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$BasePBKDF2WithHmacSHA1; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2$PBKDF2WithHmacSHA1UTF8; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPBKDF2; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBEPKCS12; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBES2AlgorithmParameters$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/PBES2AlgorithmParameters; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/RC2$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/RC2; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/SymmetricAlgorithmProvider; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Twofish$Mappings; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/Twofish; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$AEADGenericBlockCipher; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$GenericBlockCipher; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher$ErasableOutputStream; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher$InvalidKeyOrParametersException; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/ClassUtil$1; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/ClassUtil; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/GcmSpecUtil$2; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/GcmSpecUtil; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util; -Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE; -Lcom/android/org/bouncycastle/jcajce/provider/util/AlgorithmProvider; -Lcom/android/org/bouncycastle/jcajce/provider/util/AsymmetricAlgorithmProvider; -Lcom/android/org/bouncycastle/jcajce/provider/util/AsymmetricKeyInfoConverter; -Lcom/android/org/bouncycastle/jcajce/provider/util/DigestFactory; -Lcom/android/org/bouncycastle/jcajce/spec/PBKDF2KeySpec; -Lcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper; -Lcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper; -Lcom/android/org/bouncycastle/jcajce/util/JcaJceHelper; -Lcom/android/org/bouncycastle/jce/X509Principal; -Lcom/android/org/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier; -Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider$1; -Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider$PrivateProvider; -Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider; -Lcom/android/org/bouncycastle/jce/provider/BouncyCastleProviderConfiguration; -Lcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi; -Lcom/android/org/bouncycastle/jce/provider/X509CRLObject; -Lcom/android/org/bouncycastle/util/Arrays; -Lcom/android/org/bouncycastle/util/BigIntegers; -Lcom/android/org/bouncycastle/util/Integers; -Lcom/android/org/bouncycastle/util/Memoable; -Lcom/android/org/bouncycastle/util/Pack; -Lcom/android/org/bouncycastle/util/Properties$1; -Lcom/android/org/bouncycastle/util/Properties; -Lcom/android/org/bouncycastle/util/Strings$1; -Lcom/android/org/bouncycastle/util/Strings; -Lcom/android/org/bouncycastle/util/encoders/Hex; -Lcom/android/org/bouncycastle/util/encoders/HexEncoder; -Lcom/android/org/bouncycastle/util/io/Streams; -Lcom/android/org/kxml2/io/KXmlParser$ContentSource; -Lcom/android/org/kxml2/io/KXmlParser$ValueContext; -Lcom/android/phone/ecc/nano/CodedInputByteBufferNano; -Lcom/android/phone/ecc/nano/CodedOutputByteBufferNano$OutOfSpaceException; -Lcom/android/phone/ecc/nano/CodedOutputByteBufferNano; -Lcom/android/phone/ecc/nano/ExtendableMessageNano; -Lcom/android/phone/ecc/nano/FieldArray; -Lcom/android/phone/ecc/nano/FieldData; -Lcom/android/phone/ecc/nano/InternalNano; -Lcom/android/phone/ecc/nano/InvalidProtocolBufferNanoException; -Lcom/android/phone/ecc/nano/MessageNano; -Lcom/android/phone/ecc/nano/MessageNanoPrinter; -Lcom/android/phone/ecc/nano/ProtobufEccData$AllInfo; -Lcom/android/phone/ecc/nano/ProtobufEccData$CountryInfo; -Lcom/android/phone/ecc/nano/ProtobufEccData$EccInfo; -Lcom/android/phone/ecc/nano/UnknownFieldData; -Lcom/android/phone/ecc/nano/WireFormatNano; -Lcom/android/sdksandbox/flags/Flags; -Lcom/android/server/AppWidgetBackupBridge; -Lcom/android/server/LocalServices; -Lcom/android/server/WidgetBackupProvider; -Lcom/android/server/am/nano/Capabilities; -Lcom/android/server/am/nano/Capability; -Lcom/android/server/backup/AccountManagerBackupHelper; -Lcom/android/server/backup/AccountSyncSettingsBackupHelper; -Lcom/android/server/backup/NotificationBackupHelper; -Lcom/android/server/backup/PermissionBackupHelper; -Lcom/android/server/backup/PreferredActivityBackupHelper; -Lcom/android/server/backup/ShortcutBackupHelper; -Lcom/android/server/backup/SliceBackupHelper; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLatencies; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkId; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkStats; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent; -Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats; -Lcom/android/server/criticalevents/nano/CriticalEventLogProto; -Lcom/android/server/criticalevents/nano/CriticalEventLogStorageProto; -Lcom/android/server/criticalevents/nano/CriticalEventProto$AppNotResponding; -Lcom/android/server/criticalevents/nano/CriticalEventProto$HalfWatchdog; -Lcom/android/server/criticalevents/nano/CriticalEventProto$InstallPackages; -Lcom/android/server/criticalevents/nano/CriticalEventProto$JavaCrash; -Lcom/android/server/criticalevents/nano/CriticalEventProto$NativeCrash; -Lcom/android/server/criticalevents/nano/CriticalEventProto$SystemServerStarted; -Lcom/android/server/criticalevents/nano/CriticalEventProto$Watchdog; -Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats; -Lcom/android/server/net/BaseNetdEventCallback; -Lcom/android/server/net/BaseNetworkObserver; -Lcom/android/server/sip/SipHelper; -Lcom/android/server/sip/SipService$ConnectivityReceiver$1; -Lcom/android/server/sip/SipService$ConnectivityReceiver; -Lcom/android/server/sip/SipService$MyExecutor; -Lcom/android/server/sip/SipService$SipAutoReg; -Lcom/android/server/sip/SipService$SipKeepAliveProcessCallback; -Lcom/android/server/sip/SipService$SipSessionGroupExt; -Lcom/android/server/sip/SipService; -Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallback; -Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallbackProxy$1; -Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallbackProxy$2; -Lcom/android/server/sip/SipSessionGroup$KeepAliveProcessCallbackProxy; -Lcom/android/server/sip/SipSessionGroup$MakeCallCommand; -Lcom/android/server/sip/SipSessionGroup$RegisterCommand; -Lcom/android/server/sip/SipSessionGroup$SipSessionCallReceiverImpl; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$1; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$2$1; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$2; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$SessionTimer$1; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$SessionTimer; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl$SipKeepAlive; -Lcom/android/server/sip/SipSessionGroup$SipSessionImpl; -Lcom/android/server/sip/SipSessionGroup; -Lcom/android/server/sip/SipSessionListenerProxy$10; -Lcom/android/server/sip/SipSessionListenerProxy$11; -Lcom/android/server/sip/SipSessionListenerProxy$12; -Lcom/android/server/sip/SipSessionListenerProxy$13; -Lcom/android/server/sip/SipSessionListenerProxy$1; -Lcom/android/server/sip/SipSessionListenerProxy$2; -Lcom/android/server/sip/SipSessionListenerProxy$3; -Lcom/android/server/sip/SipSessionListenerProxy$4; -Lcom/android/server/sip/SipSessionListenerProxy$5; -Lcom/android/server/sip/SipSessionListenerProxy$6; -Lcom/android/server/sip/SipSessionListenerProxy$7; -Lcom/android/server/sip/SipSessionListenerProxy$8; -Lcom/android/server/sip/SipSessionListenerProxy$9; -Lcom/android/server/sip/SipSessionListenerProxy; -Lcom/android/server/sip/SipWakeLock; -Lcom/android/server/sip/SipWakeupTimer$MyEvent; -Lcom/android/server/sip/SipWakeupTimer$MyEventComparator; -Lcom/android/server/sip/SipWakeupTimer; -Lcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener; -Lcom/android/server/usage/AppStandbyInternal; -Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto; -Lcom/android/service/ims/RcsSettingUtils$$ExternalSyntheticLambda0; -Lcom/android/service/ims/RcsSettingUtils; -Lcom/android/service/ims/Task; -Lcom/android/service/ims/TaskManager$MessageData; -Lcom/android/service/ims/TaskManager$MessageHandler; -Lcom/android/service/ims/TaskManager; -Lcom/android/service/ims/presence/ContactCapabilityResponse; -Lcom/android/service/ims/presence/PresenceAvailabilityTask; -Lcom/android/service/ims/presence/PresenceBase$PresencePublishState; -Lcom/android/service/ims/presence/PresenceBase; -Lcom/android/service/ims/presence/PresenceCapabilityTask; -Lcom/android/service/ims/presence/PresencePublication$$ExternalSyntheticLambda0; -Lcom/android/service/ims/presence/PresencePublication$1; -Lcom/android/service/ims/presence/PresencePublication$PublishRequest; -Lcom/android/service/ims/presence/PresencePublication$PublishType; -Lcom/android/service/ims/presence/PresencePublication$StackPublishTriggerType; -Lcom/android/service/ims/presence/PresencePublication; -Lcom/android/service/ims/presence/PresencePublishTask; -Lcom/android/service/ims/presence/PresencePublisher; -Lcom/android/service/ims/presence/PresenceSubscriber; -Lcom/android/service/ims/presence/PresenceTask; -Lcom/android/service/ims/presence/PresenceUtils; -Lcom/android/service/ims/presence/SubscribePublisher; -Lcom/android/service/nano/StringListParamProto; -Lcom/android/telephony/Rlog; -Lcom/android/text/flags/FeatureFlags; -Lcom/android/text/flags/FeatureFlagsImpl; -Lcom/android/text/flags/Flags; -Lcom/android/window/flags/FeatureFlags; -Lcom/android/window/flags/FeatureFlagsImpl; -Lcom/android/window/flags/Flags; -Lcom/google/android/collect/Lists; -Lcom/google/android/collect/Maps; -Lcom/google/android/collect/Sets; -Lcom/google/android/gles_jni/EGLConfigImpl; -Lcom/google/android/gles_jni/EGLContextImpl; -Lcom/google/android/gles_jni/EGLDisplayImpl; -Lcom/google/android/gles_jni/EGLImpl; -Lcom/google/android/gles_jni/EGLSurfaceImpl; -Lcom/google/android/gles_jni/GLImpl; -Lcom/google/android/mms/InvalidHeaderValueException; -Lcom/google/android/mms/MmsException; -Lcom/google/android/mms/pdu/EncodedStringValue; -Lcom/google/android/mms/pdu/GenericPdu; -Lcom/google/android/mms/pdu/NotificationInd; -Lcom/google/android/mms/pdu/PduParser; -Lcom/google/android/rappor/Encoder; -Lcom/google/android/rappor/HmacDrbg; -Lcom/sun/security/cert/internal/x509/X509V1CertImpl; -Ldalvik/annotation/optimization/CriticalNative; -Ldalvik/annotation/optimization/FastNative; -Ldalvik/annotation/optimization/NeverCompile; -Ldalvik/annotation/optimization/NeverInline; -Ldalvik/system/AppSpecializationHooks; -Ldalvik/system/BaseDexClassLoader$Reporter; -Ldalvik/system/BaseDexClassLoader; -Ldalvik/system/BlockGuard$2; -Ldalvik/system/BlockGuard$BlockGuardPolicyException; -Ldalvik/system/BlockGuard$Policy; -Ldalvik/system/BlockGuard$VmPolicy; -Ldalvik/system/BlockGuard; -Ldalvik/system/ClassExt; -Ldalvik/system/CloseGuard$DefaultReporter; -Ldalvik/system/CloseGuard$Reporter; -Ldalvik/system/CloseGuard$Tracker; -Ldalvik/system/CloseGuard; -Ldalvik/system/DelegateLastClassLoader; -Ldalvik/system/DexClassLoader; -Ldalvik/system/DexFile$DFEnum; -Ldalvik/system/DexFile$OptimizationInfo-IA; -Ldalvik/system/DexFile$OptimizationInfo; -Ldalvik/system/DexFile; -Ldalvik/system/DexPathList$$ExternalSyntheticLambda0; -Ldalvik/system/DexPathList$Element; -Ldalvik/system/DexPathList$NativeLibraryElement; -Ldalvik/system/DexPathList; -Ldalvik/system/EmulatedStackFrame$Range; -Ldalvik/system/EmulatedStackFrame; -Ldalvik/system/InMemoryDexClassLoader; -Ldalvik/system/PathClassLoader; -Ldalvik/system/RuntimeHooks; -Ldalvik/system/SocketTagger$1; -Ldalvik/system/SocketTagger; -Ldalvik/system/VMDebug; -Ldalvik/system/VMRuntime$HiddenApiUsageLogger; -Ldalvik/system/VMRuntime$SdkVersionContainer; -Ldalvik/system/VMRuntime; -Ldalvik/system/VMStack; -Ldalvik/system/ZipPathValidator$1; -Ldalvik/system/ZipPathValidator$Callback; -Ldalvik/system/ZipPathValidator; -Ldalvik/system/ZygoteHooks; -Lgov/nist/core/Debug; -Lgov/nist/core/DuplicateNameValueList; -Lgov/nist/core/GenericObject; -Lgov/nist/core/GenericObjectList; -Lgov/nist/core/Host; -Lgov/nist/core/HostNameParser; -Lgov/nist/core/HostPort; -Lgov/nist/core/InternalErrorHandler; -Lgov/nist/core/LexerCore; -Lgov/nist/core/LogLevels; -Lgov/nist/core/LogWriter; -Lgov/nist/core/Match; -Lgov/nist/core/MultiValueMap; -Lgov/nist/core/MultiValueMapImpl; -Lgov/nist/core/NameValue; -Lgov/nist/core/NameValueList; -Lgov/nist/core/PackageNames; -Lgov/nist/core/ParserCore; -Lgov/nist/core/Separators; -Lgov/nist/core/ServerLogger; -Lgov/nist/core/StackLogger; -Lgov/nist/core/StringTokenizer; -Lgov/nist/core/ThreadAuditor$ThreadHandle; -Lgov/nist/core/ThreadAuditor; -Lgov/nist/core/Token; -Lgov/nist/core/net/AddressResolver; -Lgov/nist/core/net/DefaultNetworkLayer; -Lgov/nist/core/net/NetworkLayer; -Lgov/nist/core/net/SslNetworkLayer; -Lgov/nist/javax/sip/ClientTransactionExt; -Lgov/nist/javax/sip/DefaultAddressResolver; -Lgov/nist/javax/sip/DialogExt; -Lgov/nist/javax/sip/DialogFilter; -Lgov/nist/javax/sip/DialogTimeoutEvent$Reason; -Lgov/nist/javax/sip/DialogTimeoutEvent; -Lgov/nist/javax/sip/EventScanner; -Lgov/nist/javax/sip/EventWrapper; -Lgov/nist/javax/sip/ListeningPointExt; -Lgov/nist/javax/sip/ListeningPointImpl; -Lgov/nist/javax/sip/LogRecord; -Lgov/nist/javax/sip/LogRecordFactory; -Lgov/nist/javax/sip/NistSipMessageFactoryImpl; -Lgov/nist/javax/sip/ResponseEventExt; -Lgov/nist/javax/sip/SIPConstants; -Lgov/nist/javax/sip/ServerTransactionExt; -Lgov/nist/javax/sip/SipListenerExt; -Lgov/nist/javax/sip/SipProviderExt; -Lgov/nist/javax/sip/SipProviderImpl; -Lgov/nist/javax/sip/SipStackExt; -Lgov/nist/javax/sip/SipStackImpl; -Lgov/nist/javax/sip/TransactionExt; -Lgov/nist/javax/sip/Utils; -Lgov/nist/javax/sip/UtilsExt; -Lgov/nist/javax/sip/address/AddressFactoryImpl; -Lgov/nist/javax/sip/address/AddressImpl; -Lgov/nist/javax/sip/address/Authority; -Lgov/nist/javax/sip/address/GenericURI; -Lgov/nist/javax/sip/address/NetObject; -Lgov/nist/javax/sip/address/NetObjectList; -Lgov/nist/javax/sip/address/ParameterNames; -Lgov/nist/javax/sip/address/RFC2396UrlDecoder; -Lgov/nist/javax/sip/address/RouterExt; -Lgov/nist/javax/sip/address/SipURIExt; -Lgov/nist/javax/sip/address/SipUri; -Lgov/nist/javax/sip/address/TelURLImpl; -Lgov/nist/javax/sip/address/TelephoneNumber; -Lgov/nist/javax/sip/address/UserInfo; -Lgov/nist/javax/sip/clientauthutils/AccountManager; -Lgov/nist/javax/sip/clientauthutils/AuthenticationHelper; -Lgov/nist/javax/sip/clientauthutils/AuthenticationHelperImpl; -Lgov/nist/javax/sip/clientauthutils/CredentialsCache$TimeoutTask; -Lgov/nist/javax/sip/clientauthutils/CredentialsCache; -Lgov/nist/javax/sip/clientauthutils/MessageDigestAlgorithm; -Lgov/nist/javax/sip/clientauthutils/SecureAccountManager; -Lgov/nist/javax/sip/clientauthutils/UserCredentialHash; -Lgov/nist/javax/sip/clientauthutils/UserCredentials; -Lgov/nist/javax/sip/header/Accept; -Lgov/nist/javax/sip/header/AcceptEncoding; -Lgov/nist/javax/sip/header/AcceptEncodingList; -Lgov/nist/javax/sip/header/AcceptLanguage; -Lgov/nist/javax/sip/header/AcceptLanguageList; -Lgov/nist/javax/sip/header/AcceptList; -Lgov/nist/javax/sip/header/AddressParameters; -Lgov/nist/javax/sip/header/AddressParametersHeader; -Lgov/nist/javax/sip/header/AlertInfo; -Lgov/nist/javax/sip/header/AlertInfoList; -Lgov/nist/javax/sip/header/Allow; -Lgov/nist/javax/sip/header/AllowEvents; -Lgov/nist/javax/sip/header/AllowEventsList; -Lgov/nist/javax/sip/header/AllowList; -Lgov/nist/javax/sip/header/AuthenticationHeader; -Lgov/nist/javax/sip/header/AuthenticationInfo; -Lgov/nist/javax/sip/header/AuthenticationInfoList; -Lgov/nist/javax/sip/header/Authorization; -Lgov/nist/javax/sip/header/AuthorizationList; -Lgov/nist/javax/sip/header/CSeq; -Lgov/nist/javax/sip/header/CallID; -Lgov/nist/javax/sip/header/CallIdentifier; -Lgov/nist/javax/sip/header/CallInfo; -Lgov/nist/javax/sip/header/CallInfoList; -Lgov/nist/javax/sip/header/Challenge; -Lgov/nist/javax/sip/header/Contact; -Lgov/nist/javax/sip/header/ContactList; -Lgov/nist/javax/sip/header/ContentDisposition; -Lgov/nist/javax/sip/header/ContentEncoding; -Lgov/nist/javax/sip/header/ContentEncodingList; -Lgov/nist/javax/sip/header/ContentLanguage; -Lgov/nist/javax/sip/header/ContentLanguageList; -Lgov/nist/javax/sip/header/ContentLength; -Lgov/nist/javax/sip/header/ContentType; -Lgov/nist/javax/sip/header/Credentials; -Lgov/nist/javax/sip/header/ErrorInfo; -Lgov/nist/javax/sip/header/ErrorInfoList; -Lgov/nist/javax/sip/header/Event; -Lgov/nist/javax/sip/header/Expires; -Lgov/nist/javax/sip/header/ExtensionHeaderImpl; -Lgov/nist/javax/sip/header/ExtensionHeaderList; -Lgov/nist/javax/sip/header/From; -Lgov/nist/javax/sip/header/HeaderExt; -Lgov/nist/javax/sip/header/HeaderFactoryExt; -Lgov/nist/javax/sip/header/HeaderFactoryImpl; -Lgov/nist/javax/sip/header/InReplyTo; -Lgov/nist/javax/sip/header/InReplyToList; -Lgov/nist/javax/sip/header/Indentation; -Lgov/nist/javax/sip/header/MaxForwards; -Lgov/nist/javax/sip/header/MediaRange; -Lgov/nist/javax/sip/header/MimeVersion; -Lgov/nist/javax/sip/header/MinExpires; -Lgov/nist/javax/sip/header/NameMap; -Lgov/nist/javax/sip/header/Organization; -Lgov/nist/javax/sip/header/ParameterNames; -Lgov/nist/javax/sip/header/ParametersHeader; -Lgov/nist/javax/sip/header/Priority; -Lgov/nist/javax/sip/header/Protocol; -Lgov/nist/javax/sip/header/ProxyAuthenticate; -Lgov/nist/javax/sip/header/ProxyAuthenticateList; -Lgov/nist/javax/sip/header/ProxyAuthorization; -Lgov/nist/javax/sip/header/ProxyAuthorizationList; -Lgov/nist/javax/sip/header/ProxyRequire; -Lgov/nist/javax/sip/header/ProxyRequireList; -Lgov/nist/javax/sip/header/RAck; -Lgov/nist/javax/sip/header/RSeq; -Lgov/nist/javax/sip/header/Reason; -Lgov/nist/javax/sip/header/ReasonList; -Lgov/nist/javax/sip/header/RecordRoute; -Lgov/nist/javax/sip/header/RecordRouteList; -Lgov/nist/javax/sip/header/ReferTo; -Lgov/nist/javax/sip/header/ReplyTo; -Lgov/nist/javax/sip/header/RequestLine; -Lgov/nist/javax/sip/header/Require; -Lgov/nist/javax/sip/header/RequireList; -Lgov/nist/javax/sip/header/RetryAfter; -Lgov/nist/javax/sip/header/Route; -Lgov/nist/javax/sip/header/RouteList; -Lgov/nist/javax/sip/header/SIPDate; -Lgov/nist/javax/sip/header/SIPDateHeader; -Lgov/nist/javax/sip/header/SIPETag; -Lgov/nist/javax/sip/header/SIPHeader; -Lgov/nist/javax/sip/header/SIPHeaderList; -Lgov/nist/javax/sip/header/SIPHeaderNames; -Lgov/nist/javax/sip/header/SIPHeaderNamesCache; -Lgov/nist/javax/sip/header/SIPIfMatch; -Lgov/nist/javax/sip/header/SIPObject; -Lgov/nist/javax/sip/header/SIPObjectList; -Lgov/nist/javax/sip/header/Server; -Lgov/nist/javax/sip/header/SipRequestLine; -Lgov/nist/javax/sip/header/SipStatusLine; -Lgov/nist/javax/sip/header/StatusLine; -Lgov/nist/javax/sip/header/Subject; -Lgov/nist/javax/sip/header/SubscriptionState; -Lgov/nist/javax/sip/header/Supported; -Lgov/nist/javax/sip/header/SupportedList; -Lgov/nist/javax/sip/header/TimeStamp; -Lgov/nist/javax/sip/header/To; -Lgov/nist/javax/sip/header/Unsupported; -Lgov/nist/javax/sip/header/UnsupportedList; -Lgov/nist/javax/sip/header/UserAgent; -Lgov/nist/javax/sip/header/Via; -Lgov/nist/javax/sip/header/ViaHeaderExt; -Lgov/nist/javax/sip/header/ViaList; -Lgov/nist/javax/sip/header/WWWAuthenticate; -Lgov/nist/javax/sip/header/WWWAuthenticateList; -Lgov/nist/javax/sip/header/Warning; -Lgov/nist/javax/sip/header/WarningList; -Lgov/nist/javax/sip/header/extensions/Join; -Lgov/nist/javax/sip/header/extensions/JoinHeader; -Lgov/nist/javax/sip/header/extensions/MinSE; -Lgov/nist/javax/sip/header/extensions/MinSEHeader; -Lgov/nist/javax/sip/header/extensions/References; -Lgov/nist/javax/sip/header/extensions/ReferencesHeader; -Lgov/nist/javax/sip/header/extensions/ReferredBy; -Lgov/nist/javax/sip/header/extensions/ReferredByHeader; -Lgov/nist/javax/sip/header/extensions/Replaces; -Lgov/nist/javax/sip/header/extensions/ReplacesHeader; -Lgov/nist/javax/sip/header/extensions/SessionExpires; -Lgov/nist/javax/sip/header/extensions/SessionExpiresHeader; -Lgov/nist/javax/sip/header/ims/AddressHeaderIms; -Lgov/nist/javax/sip/header/ims/AuthorizationHeaderIms; -Lgov/nist/javax/sip/header/ims/PAccessNetworkInfo; -Lgov/nist/javax/sip/header/ims/PAccessNetworkInfoHeader; -Lgov/nist/javax/sip/header/ims/PAssertedIdentity; -Lgov/nist/javax/sip/header/ims/PAssertedIdentityHeader; -Lgov/nist/javax/sip/header/ims/PAssertedIdentityList; -Lgov/nist/javax/sip/header/ims/PAssertedService; -Lgov/nist/javax/sip/header/ims/PAssertedServiceHeader; -Lgov/nist/javax/sip/header/ims/PAssociatedURI; -Lgov/nist/javax/sip/header/ims/PAssociatedURIHeader; -Lgov/nist/javax/sip/header/ims/PAssociatedURIList; -Lgov/nist/javax/sip/header/ims/PCalledPartyID; -Lgov/nist/javax/sip/header/ims/PCalledPartyIDHeader; -Lgov/nist/javax/sip/header/ims/PChargingFunctionAddresses; -Lgov/nist/javax/sip/header/ims/PChargingFunctionAddressesHeader; -Lgov/nist/javax/sip/header/ims/PChargingVector; -Lgov/nist/javax/sip/header/ims/PChargingVectorHeader; -Lgov/nist/javax/sip/header/ims/PMediaAuthorization; -Lgov/nist/javax/sip/header/ims/PMediaAuthorizationHeader; -Lgov/nist/javax/sip/header/ims/PMediaAuthorizationList; -Lgov/nist/javax/sip/header/ims/PPreferredIdentity; -Lgov/nist/javax/sip/header/ims/PPreferredIdentityHeader; -Lgov/nist/javax/sip/header/ims/PPreferredService; -Lgov/nist/javax/sip/header/ims/PPreferredServiceHeader; -Lgov/nist/javax/sip/header/ims/PProfileKey; -Lgov/nist/javax/sip/header/ims/PProfileKeyHeader; -Lgov/nist/javax/sip/header/ims/PServedUser; -Lgov/nist/javax/sip/header/ims/PServedUserHeader; -Lgov/nist/javax/sip/header/ims/PUserDatabase; -Lgov/nist/javax/sip/header/ims/PUserDatabaseHeader; -Lgov/nist/javax/sip/header/ims/PVisitedNetworkID; -Lgov/nist/javax/sip/header/ims/PVisitedNetworkIDHeader; -Lgov/nist/javax/sip/header/ims/PVisitedNetworkIDList; -Lgov/nist/javax/sip/header/ims/ParameterNamesIms; -Lgov/nist/javax/sip/header/ims/Path; -Lgov/nist/javax/sip/header/ims/PathHeader; -Lgov/nist/javax/sip/header/ims/PathList; -Lgov/nist/javax/sip/header/ims/Privacy; -Lgov/nist/javax/sip/header/ims/PrivacyHeader; -Lgov/nist/javax/sip/header/ims/PrivacyList; -Lgov/nist/javax/sip/header/ims/SIPHeaderNamesIms; -Lgov/nist/javax/sip/header/ims/SecurityAgree; -Lgov/nist/javax/sip/header/ims/SecurityAgreeHeader; -Lgov/nist/javax/sip/header/ims/SecurityClient; -Lgov/nist/javax/sip/header/ims/SecurityClientHeader; -Lgov/nist/javax/sip/header/ims/SecurityClientList; -Lgov/nist/javax/sip/header/ims/SecurityServer; -Lgov/nist/javax/sip/header/ims/SecurityServerHeader; -Lgov/nist/javax/sip/header/ims/SecurityServerList; -Lgov/nist/javax/sip/header/ims/SecurityVerify; -Lgov/nist/javax/sip/header/ims/SecurityVerifyHeader; -Lgov/nist/javax/sip/header/ims/SecurityVerifyList; -Lgov/nist/javax/sip/header/ims/ServiceRoute; -Lgov/nist/javax/sip/header/ims/ServiceRouteHeader; -Lgov/nist/javax/sip/header/ims/ServiceRouteList; -Lgov/nist/javax/sip/header/ims/WWWAuthenticateHeaderIms; -Lgov/nist/javax/sip/message/Content; -Lgov/nist/javax/sip/message/ContentImpl; -Lgov/nist/javax/sip/message/HeaderIterator; -Lgov/nist/javax/sip/message/ListMap; -Lgov/nist/javax/sip/message/MessageExt; -Lgov/nist/javax/sip/message/MessageFactoryExt; -Lgov/nist/javax/sip/message/MessageFactoryImpl$1; -Lgov/nist/javax/sip/message/MessageFactoryImpl; -Lgov/nist/javax/sip/message/MessageObject; -Lgov/nist/javax/sip/message/MultipartMimeContent; -Lgov/nist/javax/sip/message/MultipartMimeContentImpl; -Lgov/nist/javax/sip/message/RequestExt; -Lgov/nist/javax/sip/message/ResponseExt; -Lgov/nist/javax/sip/message/SIPDuplicateHeaderException; -Lgov/nist/javax/sip/message/SIPMessage; -Lgov/nist/javax/sip/message/SIPRequest; -Lgov/nist/javax/sip/message/SIPResponse; -Lgov/nist/javax/sip/parser/AcceptEncodingParser; -Lgov/nist/javax/sip/parser/AcceptLanguageParser; -Lgov/nist/javax/sip/parser/AcceptParser; -Lgov/nist/javax/sip/parser/AddressParametersParser; -Lgov/nist/javax/sip/parser/AddressParser; -Lgov/nist/javax/sip/parser/AlertInfoParser; -Lgov/nist/javax/sip/parser/AllowEventsParser; -Lgov/nist/javax/sip/parser/AllowParser; -Lgov/nist/javax/sip/parser/AuthenticationInfoParser; -Lgov/nist/javax/sip/parser/AuthorizationParser; -Lgov/nist/javax/sip/parser/CSeqParser; -Lgov/nist/javax/sip/parser/CallIDParser; -Lgov/nist/javax/sip/parser/CallInfoParser; -Lgov/nist/javax/sip/parser/ChallengeParser; -Lgov/nist/javax/sip/parser/ContactParser; -Lgov/nist/javax/sip/parser/ContentDispositionParser; -Lgov/nist/javax/sip/parser/ContentEncodingParser; -Lgov/nist/javax/sip/parser/ContentLanguageParser; -Lgov/nist/javax/sip/parser/ContentLengthParser; -Lgov/nist/javax/sip/parser/ContentTypeParser; -Lgov/nist/javax/sip/parser/DateParser; -Lgov/nist/javax/sip/parser/ErrorInfoParser; -Lgov/nist/javax/sip/parser/EventParser; -Lgov/nist/javax/sip/parser/ExpiresParser; -Lgov/nist/javax/sip/parser/FromParser; -Lgov/nist/javax/sip/parser/HeaderParser; -Lgov/nist/javax/sip/parser/InReplyToParser; -Lgov/nist/javax/sip/parser/Lexer; -Lgov/nist/javax/sip/parser/MaxForwardsParser; -Lgov/nist/javax/sip/parser/MimeVersionParser; -Lgov/nist/javax/sip/parser/MinExpiresParser; -Lgov/nist/javax/sip/parser/OrganizationParser; -Lgov/nist/javax/sip/parser/ParametersParser; -Lgov/nist/javax/sip/parser/ParseExceptionListener; -Lgov/nist/javax/sip/parser/Parser; -Lgov/nist/javax/sip/parser/ParserFactory; -Lgov/nist/javax/sip/parser/Pipeline$Buffer; -Lgov/nist/javax/sip/parser/Pipeline$MyTimer; -Lgov/nist/javax/sip/parser/Pipeline; -Lgov/nist/javax/sip/parser/PipelinedMsgParser; -Lgov/nist/javax/sip/parser/PriorityParser; -Lgov/nist/javax/sip/parser/ProxyAuthenticateParser; -Lgov/nist/javax/sip/parser/ProxyAuthorizationParser; -Lgov/nist/javax/sip/parser/ProxyRequireParser; -Lgov/nist/javax/sip/parser/RAckParser; -Lgov/nist/javax/sip/parser/RSeqParser; -Lgov/nist/javax/sip/parser/ReasonParser; -Lgov/nist/javax/sip/parser/RecordRouteParser; -Lgov/nist/javax/sip/parser/ReferToParser; -Lgov/nist/javax/sip/parser/ReplyToParser; -Lgov/nist/javax/sip/parser/RequestLineParser; -Lgov/nist/javax/sip/parser/RequireParser; -Lgov/nist/javax/sip/parser/RetryAfterParser; -Lgov/nist/javax/sip/parser/RouteParser; -Lgov/nist/javax/sip/parser/SIPETagParser; -Lgov/nist/javax/sip/parser/SIPIfMatchParser; -Lgov/nist/javax/sip/parser/SIPMessageListener; -Lgov/nist/javax/sip/parser/ServerParser; -Lgov/nist/javax/sip/parser/StatusLineParser; -Lgov/nist/javax/sip/parser/StringMsgParser$1ParserThread; -Lgov/nist/javax/sip/parser/StringMsgParser; -Lgov/nist/javax/sip/parser/SubjectParser; -Lgov/nist/javax/sip/parser/SubscriptionStateParser; -Lgov/nist/javax/sip/parser/SupportedParser; -Lgov/nist/javax/sip/parser/TimeStampParser; -Lgov/nist/javax/sip/parser/ToParser; -Lgov/nist/javax/sip/parser/TokenNames; -Lgov/nist/javax/sip/parser/TokenTypes; -Lgov/nist/javax/sip/parser/URLParser; -Lgov/nist/javax/sip/parser/UnsupportedParser; -Lgov/nist/javax/sip/parser/UserAgentParser; -Lgov/nist/javax/sip/parser/ViaParser; -Lgov/nist/javax/sip/parser/WWWAuthenticateParser; -Lgov/nist/javax/sip/parser/WarningParser; -Lgov/nist/javax/sip/parser/extensions/JoinParser; -Lgov/nist/javax/sip/parser/extensions/MinSEParser; -Lgov/nist/javax/sip/parser/extensions/ReferencesParser; -Lgov/nist/javax/sip/parser/extensions/ReferredByParser; -Lgov/nist/javax/sip/parser/extensions/ReplacesParser; -Lgov/nist/javax/sip/parser/extensions/SessionExpiresParser; -Lgov/nist/javax/sip/parser/ims/AddressHeaderParser; -Lgov/nist/javax/sip/parser/ims/PAccessNetworkInfoParser; -Lgov/nist/javax/sip/parser/ims/PAssertedIdentityParser; -Lgov/nist/javax/sip/parser/ims/PAssertedServiceParser; -Lgov/nist/javax/sip/parser/ims/PAssociatedURIParser; -Lgov/nist/javax/sip/parser/ims/PCalledPartyIDParser; -Lgov/nist/javax/sip/parser/ims/PChargingFunctionAddressesParser; -Lgov/nist/javax/sip/parser/ims/PChargingVectorParser; -Lgov/nist/javax/sip/parser/ims/PMediaAuthorizationParser; -Lgov/nist/javax/sip/parser/ims/PPreferredIdentityParser; -Lgov/nist/javax/sip/parser/ims/PPreferredServiceParser; -Lgov/nist/javax/sip/parser/ims/PProfileKeyParser; -Lgov/nist/javax/sip/parser/ims/PServedUserParser; -Lgov/nist/javax/sip/parser/ims/PUserDatabaseParser; -Lgov/nist/javax/sip/parser/ims/PVisitedNetworkIDParser; -Lgov/nist/javax/sip/parser/ims/PathParser; -Lgov/nist/javax/sip/parser/ims/PrivacyParser; -Lgov/nist/javax/sip/parser/ims/SecurityAgreeParser; -Lgov/nist/javax/sip/parser/ims/SecurityClientParser; -Lgov/nist/javax/sip/parser/ims/SecurityServerParser; -Lgov/nist/javax/sip/parser/ims/SecurityVerifyParser; -Lgov/nist/javax/sip/parser/ims/ServiceRouteParser; -Lgov/nist/javax/sip/parser/ims/TokenNamesIms; -Lgov/nist/javax/sip/stack/DefaultMessageLogFactory; -Lgov/nist/javax/sip/stack/DefaultRouter; -Lgov/nist/javax/sip/stack/HandshakeCompletedListenerImpl; -Lgov/nist/javax/sip/stack/HopImpl; -Lgov/nist/javax/sip/stack/IOHandler; -Lgov/nist/javax/sip/stack/MessageChannel; -Lgov/nist/javax/sip/stack/MessageLog; -Lgov/nist/javax/sip/stack/MessageProcessor; -Lgov/nist/javax/sip/stack/RawMessageChannel; -Lgov/nist/javax/sip/stack/SIPClientTransaction$TransactionTimer; -Lgov/nist/javax/sip/stack/SIPClientTransaction; -Lgov/nist/javax/sip/stack/SIPDialog$DialogDeleteIfNoAckSentTask; -Lgov/nist/javax/sip/stack/SIPDialog$DialogDeleteTask; -Lgov/nist/javax/sip/stack/SIPDialog$DialogTimerTask; -Lgov/nist/javax/sip/stack/SIPDialog$LingerTimer; -Lgov/nist/javax/sip/stack/SIPDialog$ReInviteSender; -Lgov/nist/javax/sip/stack/SIPDialog; -Lgov/nist/javax/sip/stack/SIPDialogErrorEvent; -Lgov/nist/javax/sip/stack/SIPDialogEventListener; -Lgov/nist/javax/sip/stack/SIPServerTransaction$ListenerExecutionMaxTimer; -Lgov/nist/javax/sip/stack/SIPServerTransaction$ProvisionalResponseTask; -Lgov/nist/javax/sip/stack/SIPServerTransaction$RetransmissionAlertTimerTask; -Lgov/nist/javax/sip/stack/SIPServerTransaction$SendTrying; -Lgov/nist/javax/sip/stack/SIPServerTransaction$TransactionTimer; -Lgov/nist/javax/sip/stack/SIPServerTransaction; -Lgov/nist/javax/sip/stack/SIPStackTimerTask; -Lgov/nist/javax/sip/stack/SIPTransaction$LingerTimer; -Lgov/nist/javax/sip/stack/SIPTransaction; -Lgov/nist/javax/sip/stack/SIPTransactionErrorEvent; -Lgov/nist/javax/sip/stack/SIPTransactionEventListener; -Lgov/nist/javax/sip/stack/SIPTransactionStack$PingTimer; -Lgov/nist/javax/sip/stack/SIPTransactionStack$RemoveForkedTransactionTimerTask; -Lgov/nist/javax/sip/stack/SIPTransactionStack; -Lgov/nist/javax/sip/stack/ServerLog; -Lgov/nist/javax/sip/stack/ServerRequestInterface; -Lgov/nist/javax/sip/stack/ServerResponseInterface; -Lgov/nist/javax/sip/stack/StackMessageFactory; -Lgov/nist/javax/sip/stack/TCPMessageChannel$1; -Lgov/nist/javax/sip/stack/TCPMessageChannel; -Lgov/nist/javax/sip/stack/TCPMessageProcessor; -Lgov/nist/javax/sip/stack/TLSMessageChannel; -Lgov/nist/javax/sip/stack/TLSMessageProcessor; -Lgov/nist/javax/sip/stack/UDPMessageChannel$PingBackTimerTask; -Lgov/nist/javax/sip/stack/UDPMessageChannel; -Lgov/nist/javax/sip/stack/UDPMessageProcessor; -Ljava/awt/font/NumericShaper; -Ljava/awt/font/TextAttribute; -Ljava/io/Bits; -Ljava/io/BufferedInputStream; -Ljava/io/BufferedReader; -Ljava/io/BufferedWriter; -Ljava/io/ByteArrayInputStream; -Ljava/io/ByteArrayOutputStream; -Ljava/io/CharArrayReader; -Ljava/io/CharArrayWriter; -Ljava/io/CharConversionException; -Ljava/io/Closeable; -Ljava/io/Console; -Ljava/io/DataInput; -Ljava/io/DataInputStream; -Ljava/io/DataOutput; -Ljava/io/DataOutputStream; -Ljava/io/DefaultFileSystem; -Ljava/io/EOFException; -Ljava/io/ExpiringCache$1; -Ljava/io/ExpiringCache; -Ljava/io/Externalizable; -Ljava/io/File$PathStatus; -Ljava/io/File$TempDirectory; -Ljava/io/File; -Ljava/io/FileDescriptor$1; -Ljava/io/FileDescriptor; -Ljava/io/FileFilter; -Ljava/io/FileInputStream$UseManualSkipException; -Ljava/io/FileInputStream; -Ljava/io/FileNotFoundException; -Ljava/io/FileOutputStream; -Ljava/io/FileReader; -Ljava/io/FileSystem; -Ljava/io/FileWriter; -Ljava/io/FilenameFilter; -Ljava/io/FilterInputStream; -Ljava/io/FilterOutputStream; -Ljava/io/FilterReader; -Ljava/io/Flushable; -Ljava/io/IOException; -Ljava/io/InputStream; -Ljava/io/InputStreamReader; -Ljava/io/InterruptedIOException; -Ljava/io/InvalidClassException; -Ljava/io/InvalidObjectException; -Ljava/io/LineNumberReader; -Ljava/io/NotActiveException; -Ljava/io/NotSerializableException; -Ljava/io/ObjectInput; -Ljava/io/ObjectInputStream$$ExternalSyntheticLambda0; -Ljava/io/ObjectInputStream$1; -Ljava/io/ObjectInputStream$BlockDataInputStream; -Ljava/io/ObjectInputStream$Caches; -Ljava/io/ObjectInputStream$GetField; -Ljava/io/ObjectInputStream$GetFieldImpl; -Ljava/io/ObjectInputStream$HandleTable$HandleList; -Ljava/io/ObjectInputStream$HandleTable; -Ljava/io/ObjectInputStream$PeekInputStream; -Ljava/io/ObjectInputStream$ValidationList$1; -Ljava/io/ObjectInputStream$ValidationList$Callback; -Ljava/io/ObjectInputStream$ValidationList; -Ljava/io/ObjectInputStream; -Ljava/io/ObjectOutput; -Ljava/io/ObjectOutputStream$1; -Ljava/io/ObjectOutputStream$Caches; -Ljava/io/ObjectOutputStream$DebugTraceInfoStack; -Ljava/io/ObjectOutputStream$HandleTable; -Ljava/io/ObjectOutputStream$PutField; -Ljava/io/ObjectOutputStream$PutFieldImpl; -Ljava/io/ObjectOutputStream$ReplaceTable; -Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda0; -Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda1; -Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda2; -Ljava/io/ObjectStreamClass$$ExternalSyntheticLambda3; -Ljava/io/ObjectStreamClass$1; -Ljava/io/ObjectStreamClass$2; -Ljava/io/ObjectStreamClass$3; -Ljava/io/ObjectStreamClass$4; -Ljava/io/ObjectStreamClass$5; -Ljava/io/ObjectStreamClass$Caches; -Ljava/io/ObjectStreamClass$ClassDataSlot; -Ljava/io/ObjectStreamClass$DefaultSUIDCompatibilityListener; -Ljava/io/ObjectStreamClass$DeserializationConstructorsCache; -Ljava/io/ObjectStreamClass$EntryFuture$1; -Ljava/io/ObjectStreamClass$EntryFuture-IA; -Ljava/io/ObjectStreamClass$EntryFuture; -Ljava/io/ObjectStreamClass$ExceptionInfo; -Ljava/io/ObjectStreamClass$FieldReflector; -Ljava/io/ObjectStreamClass$FieldReflectorKey; -Ljava/io/ObjectStreamClass$MemberSignature; -Ljava/io/ObjectStreamClass$WeakClassKey; -Ljava/io/ObjectStreamClass; -Ljava/io/ObjectStreamConstants; -Ljava/io/ObjectStreamException; -Ljava/io/ObjectStreamField; -Ljava/io/OptionalDataException; -Ljava/io/OutputStream; -Ljava/io/OutputStreamWriter; -Ljava/io/PipedInputStream; -Ljava/io/PipedOutputStream; -Ljava/io/PrintStream; -Ljava/io/PrintWriter; -Ljava/io/PushbackInputStream; -Ljava/io/PushbackReader; -Ljava/io/RandomAccessFile; -Ljava/io/Reader; -Ljava/io/SequenceInputStream; -Ljava/io/SerialCallbackContext; -Ljava/io/Serializable; -Ljava/io/SerializablePermission; -Ljava/io/StreamCorruptedException; -Ljava/io/StringBufferInputStream; -Ljava/io/StringReader; -Ljava/io/StringWriter; -Ljava/io/SyncFailedException; -Ljava/io/UTFDataFormatException; -Ljava/io/UncheckedIOException; -Ljava/io/UnsupportedEncodingException; -Ljava/io/WriteAbortedException; -Ljava/io/Writer; -Ljava/lang/AbstractMethodError; -Ljava/lang/AbstractStringBuilder$$ExternalSyntheticLambda0; -Ljava/lang/AbstractStringBuilder$$ExternalSyntheticLambda1; -Ljava/lang/AbstractStringBuilder; -Ljava/lang/AndroidHardcodedSystemProperties; -Ljava/lang/Appendable; -Ljava/lang/ArithmeticException; -Ljava/lang/ArrayIndexOutOfBoundsException; -Ljava/lang/ArrayStoreException; -Ljava/lang/AssertionError; -Ljava/lang/AutoCloseable; -Ljava/lang/Boolean; -Ljava/lang/BootClassLoader; -Ljava/lang/Byte$ByteCache; -Ljava/lang/Byte; -Ljava/lang/CaseMapper$1; -Ljava/lang/CaseMapper; -Ljava/lang/CharSequence$$ExternalSyntheticLambda0; -Ljava/lang/CharSequence$$ExternalSyntheticLambda1; -Ljava/lang/CharSequence$1CharIterator; -Ljava/lang/CharSequence$1CodePointIterator; -Ljava/lang/CharSequence; -Ljava/lang/Character$CharacterCache; -Ljava/lang/Character$Subset; -Ljava/lang/Character$UnicodeBlock; -Ljava/lang/Character; -Ljava/lang/Class$$ExternalSyntheticLambda0; -Ljava/lang/Class$$ExternalSyntheticLambda1; -Ljava/lang/Class$Caches; -Ljava/lang/Class; -Ljava/lang/ClassCastException; -Ljava/lang/ClassFormatError; -Ljava/lang/ClassLoader$$ExternalSyntheticLambda0; -Ljava/lang/ClassLoader$$ExternalSyntheticLambda1; -Ljava/lang/ClassLoader$$ExternalSyntheticLambda2; -Ljava/lang/ClassLoader$SystemClassLoader; -Ljava/lang/ClassLoader; -Ljava/lang/ClassNotFoundException; -Ljava/lang/ClassValue$Entry; -Ljava/lang/ClassValue; -Ljava/lang/CloneNotSupportedException; -Ljava/lang/Cloneable; -Ljava/lang/Comparable; -Ljava/lang/CompoundEnumeration; -Ljava/lang/Daemons$Daemon; -Ljava/lang/Daemons$FinalizerDaemon; -Ljava/lang/Daemons$FinalizerWatchdogDaemon; -Ljava/lang/Daemons$HeapTaskDaemon; -Ljava/lang/Daemons$ReferenceQueueDaemon; -Ljava/lang/Daemons; -Ljava/lang/Deprecated; -Ljava/lang/DexCache; -Ljava/lang/Double; -Ljava/lang/Enum$$ExternalSyntheticLambda0; -Ljava/lang/Enum$1; -Ljava/lang/Enum$EnumDesc; -Ljava/lang/Enum; -Ljava/lang/EnumConstantNotPresentException; -Ljava/lang/Error; -Ljava/lang/Exception; -Ljava/lang/ExceptionInInitializerError; -Ljava/lang/Float; -Ljava/lang/IllegalAccessError; -Ljava/lang/IllegalAccessException; -Ljava/lang/IllegalArgumentException; -Ljava/lang/IllegalMonitorStateException; -Ljava/lang/IllegalStateException; -Ljava/lang/IllegalThreadStateException; -Ljava/lang/IncompatibleClassChangeError; -Ljava/lang/IndexOutOfBoundsException; -Ljava/lang/InheritableThreadLocal; -Ljava/lang/InstantiationError; -Ljava/lang/InstantiationException; -Ljava/lang/Integer$IntegerCache; -Ljava/lang/Integer; -Ljava/lang/InternalError; -Ljava/lang/InterruptedException; -Ljava/lang/Iterable; -Ljava/lang/LinkageError; -Ljava/lang/Long$LongCache; -Ljava/lang/Long; -Ljava/lang/Math$RandomNumberGeneratorHolder; -Ljava/lang/Math; -Ljava/lang/NegativeArraySizeException; -Ljava/lang/NoClassDefFoundError; -Ljava/lang/NoSuchFieldError; -Ljava/lang/NoSuchFieldException; -Ljava/lang/NoSuchMethodError; -Ljava/lang/NoSuchMethodException; -Ljava/lang/NullPointerException; -Ljava/lang/Number; -Ljava/lang/NumberFormatException; -Ljava/lang/Object; -Ljava/lang/OutOfMemoryError; -Ljava/lang/Package; -Ljava/lang/Process; -Ljava/lang/ProcessBuilder$NullInputStream; -Ljava/lang/ProcessBuilder$NullOutputStream; -Ljava/lang/ProcessBuilder$Redirect$1; -Ljava/lang/ProcessBuilder$Redirect$2; -Ljava/lang/ProcessBuilder$Redirect; -Ljava/lang/ProcessBuilder; -Ljava/lang/ProcessEnvironment$ExternalData; -Ljava/lang/ProcessEnvironment$StringEnvironment; -Ljava/lang/ProcessEnvironment$Value; -Ljava/lang/ProcessEnvironment$Variable; -Ljava/lang/ProcessEnvironment; -Ljava/lang/ProcessImpl; -Ljava/lang/Readable; -Ljava/lang/Record; -Ljava/lang/ReflectiveOperationException; -Ljava/lang/Runnable; -Ljava/lang/Runtime; -Ljava/lang/RuntimeException; -Ljava/lang/RuntimePermission; -Ljava/lang/SecurityException; -Ljava/lang/SecurityManager; -Ljava/lang/Short$ShortCache; -Ljava/lang/Short; -Ljava/lang/StackFrameInfo; -Ljava/lang/StackOverflowError; -Ljava/lang/StackStreamFactory$AbstractStackWalker; -Ljava/lang/StackStreamFactory; -Ljava/lang/StackTraceElement; -Ljava/lang/StackWalker$Option; -Ljava/lang/StackWalker$StackFrame; -Ljava/lang/StackWalker; -Ljava/lang/StrictMath; -Ljava/lang/String$$ExternalSyntheticLambda0; -Ljava/lang/String$$ExternalSyntheticLambda1; -Ljava/lang/String$$ExternalSyntheticLambda2; -Ljava/lang/String$$ExternalSyntheticLambda3; -Ljava/lang/String$CaseInsensitiveComparator-IA; -Ljava/lang/String; -Ljava/lang/StringBuffer; -Ljava/lang/StringBuilder; -Ljava/lang/StringFactory; -Ljava/lang/StringIndexOutOfBoundsException; -Ljava/lang/StringLatin1$CharsSpliterator; -Ljava/lang/StringLatin1$LinesSpliterator; -Ljava/lang/StringLatin1; -Ljava/lang/StringUTF16$CharsSpliterator; -Ljava/lang/StringUTF16$CharsSpliteratorForString; -Ljava/lang/StringUTF16$CodePointsSpliterator; -Ljava/lang/StringUTF16$CodePointsSpliteratorForString; -Ljava/lang/StringUTF16; -Ljava/lang/System$PropertiesWithNonOverrideableDefaults; -Ljava/lang/System; -Ljava/lang/Thread$1; -Ljava/lang/Thread$Caches; -Ljava/lang/Thread$State; -Ljava/lang/Thread$UncaughtExceptionHandler; -Ljava/lang/Thread$WeakClassKey; -Ljava/lang/Thread; -Ljava/lang/ThreadDeath; -Ljava/lang/ThreadGroup; -Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; -Ljava/lang/ThreadLocal$ThreadLocalMap-IA; -Ljava/lang/ThreadLocal$ThreadLocalMap; -Ljava/lang/Throwable$PrintStreamOrWriter-IA; -Ljava/lang/Throwable$PrintStreamOrWriter; -Ljava/lang/Throwable$SentinelHolder; -Ljava/lang/Throwable$WrappedPrintStream; -Ljava/lang/Throwable$WrappedPrintWriter; -Ljava/lang/Throwable; -Ljava/lang/TypeNotPresentException; -Ljava/lang/UNIXProcess$1; -Ljava/lang/UNIXProcess$2; -Ljava/lang/UNIXProcess$3; -Ljava/lang/UNIXProcess$ProcessPipeInputStream; -Ljava/lang/UNIXProcess$ProcessPipeOutputStream; -Ljava/lang/UNIXProcess$ProcessReaperThreadFactory$1; -Ljava/lang/UNIXProcess$ProcessReaperThreadFactory; -Ljava/lang/UNIXProcess; -Ljava/lang/UnsatisfiedLinkError; -Ljava/lang/UnsupportedClassVersionError; -Ljava/lang/UnsupportedOperationException; -Ljava/lang/VMClassLoader; -Ljava/lang/VerifyError; -Ljava/lang/VirtualMachineError; -Ljava/lang/Void; -Ljava/lang/annotation/Annotation; -Ljava/lang/annotation/AnnotationTypeMismatchException; -Ljava/lang/annotation/Documented; -Ljava/lang/annotation/IncompleteAnnotationException; -Ljava/lang/annotation/Inherited; -Ljava/lang/annotation/Retention; -Ljava/lang/annotation/Target; -Ljava/lang/constant/ClassDesc; -Ljava/lang/constant/Constable; -Ljava/lang/constant/ConstantDesc; -Ljava/lang/constant/ConstantDescs; -Ljava/lang/constant/ConstantUtils; -Ljava/lang/constant/DirectMethodHandleDesc$Kind; -Ljava/lang/constant/DirectMethodHandleDesc; -Ljava/lang/constant/DirectMethodHandleDescImpl$1; -Ljava/lang/constant/DirectMethodHandleDescImpl; -Ljava/lang/constant/DynamicConstantDesc$AnonymousDynamicConstantDesc; -Ljava/lang/constant/DynamicConstantDesc; -Ljava/lang/constant/MethodHandleDesc$1; -Ljava/lang/constant/MethodHandleDesc; -Ljava/lang/constant/MethodTypeDesc; -Ljava/lang/constant/MethodTypeDescImpl; -Ljava/lang/constant/PrimitiveClassDescImpl; -Ljava/lang/constant/ReferenceClassDescImpl; -Ljava/lang/invoke/ArrayElementVarHandle; -Ljava/lang/invoke/ByteArrayViewVarHandle; -Ljava/lang/invoke/ByteBufferViewVarHandle; -Ljava/lang/invoke/CallSite; -Ljava/lang/invoke/ConstantCallSite; -Ljava/lang/invoke/FieldVarHandle; -Ljava/lang/invoke/MethodHandle; -Ljava/lang/invoke/MethodHandleImpl$HandleInfo; -Ljava/lang/invoke/MethodHandleImpl; -Ljava/lang/invoke/MethodHandleInfo; -Ljava/lang/invoke/MethodHandleStatics; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda0; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda10; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda11; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda12; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda13; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda14; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda15; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda16; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda17; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda18; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda19; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda1; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda20; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda21; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda22; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda23; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda24; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda25; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda2; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda3; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda4; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda5; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda6; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda7; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda8; -Ljava/lang/invoke/MethodHandles$$ExternalSyntheticLambda9; -Ljava/lang/invoke/MethodHandles$Lookup; -Ljava/lang/invoke/MethodHandles; -Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry; -Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; -Ljava/lang/invoke/MethodType; -Ljava/lang/invoke/MethodTypeForm; -Ljava/lang/invoke/SerializedLambda; -Ljava/lang/invoke/StaticFieldVarHandle; -Ljava/lang/invoke/Transformers$AlwaysThrow; -Ljava/lang/invoke/Transformers$ArrayConstructor; -Ljava/lang/invoke/Transformers$ArrayLength; -Ljava/lang/invoke/Transformers$AsTypeAdapter; -Ljava/lang/invoke/Transformers$BindTo; -Ljava/lang/invoke/Transformers$CatchException; -Ljava/lang/invoke/Transformers$CollectArguments; -Ljava/lang/invoke/Transformers$Collector; -Ljava/lang/invoke/Transformers$Construct; -Ljava/lang/invoke/Transformers$DropArguments; -Ljava/lang/invoke/Transformers$ExplicitCastArguments; -Ljava/lang/invoke/Transformers$FilterArguments; -Ljava/lang/invoke/Transformers$FilterReturnValue; -Ljava/lang/invoke/Transformers$FoldArguments; -Ljava/lang/invoke/Transformers$GuardWithTest; -Ljava/lang/invoke/Transformers$InsertArguments; -Ljava/lang/invoke/Transformers$Invoker; -Ljava/lang/invoke/Transformers$Loop; -Ljava/lang/invoke/Transformers$PermuteArguments; -Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter; -Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter; -Ljava/lang/invoke/Transformers$ReferenceIdentity; -Ljava/lang/invoke/Transformers$Spreader; -Ljava/lang/invoke/Transformers$TableSwitch; -Ljava/lang/invoke/Transformers$Transformer; -Ljava/lang/invoke/Transformers$TryFinally; -Ljava/lang/invoke/Transformers$VarargsCollector; -Ljava/lang/invoke/Transformers$ZeroValue; -Ljava/lang/invoke/TypeDescriptor$OfField; -Ljava/lang/invoke/TypeDescriptor$OfMethod; -Ljava/lang/invoke/TypeDescriptor; -Ljava/lang/invoke/VarHandle$AccessMode; -Ljava/lang/invoke/VarHandle$AccessType; -Ljava/lang/invoke/VarHandle$VarHandleDesc$Kind; -Ljava/lang/invoke/VarHandle; -Ljava/lang/invoke/WrongMethodTypeException; -Ljava/lang/ref/Cleaner$1; -Ljava/lang/ref/Cleaner$Cleanable; -Ljava/lang/ref/Cleaner; -Ljava/lang/ref/FinalizerReference$Sentinel-IA; -Ljava/lang/ref/FinalizerReference$Sentinel; -Ljava/lang/ref/FinalizerReference; -Ljava/lang/ref/PhantomReference; -Ljava/lang/ref/Reference$SinkHolder$1; -Ljava/lang/ref/Reference$SinkHolder; -Ljava/lang/ref/Reference; -Ljava/lang/ref/ReferenceQueue; -Ljava/lang/ref/SoftReference; -Ljava/lang/ref/WeakReference; -Ljava/lang/reflect/AccessibleObject; -Ljava/lang/reflect/AnnotatedElement; -Ljava/lang/reflect/Array; -Ljava/lang/reflect/Constructor; -Ljava/lang/reflect/Executable$GenericInfo; -Ljava/lang/reflect/Executable; -Ljava/lang/reflect/Field; -Ljava/lang/reflect/GenericArrayType; -Ljava/lang/reflect/GenericDeclaration; -Ljava/lang/reflect/GenericSignatureFormatError; -Ljava/lang/reflect/InvocationHandler; -Ljava/lang/reflect/InvocationTargetException; -Ljava/lang/reflect/MalformedParametersException; -Ljava/lang/reflect/Member; -Ljava/lang/reflect/Method$1; -Ljava/lang/reflect/Method; -Ljava/lang/reflect/Modifier; -Ljava/lang/reflect/Parameter; -Ljava/lang/reflect/ParameterizedType; -Ljava/lang/reflect/Proxy$1; -Ljava/lang/reflect/Proxy$Key1; -Ljava/lang/reflect/Proxy$Key2; -Ljava/lang/reflect/Proxy$KeyFactory-IA; -Ljava/lang/reflect/Proxy$KeyFactory; -Ljava/lang/reflect/Proxy$KeyX; -Ljava/lang/reflect/Proxy$ProxyClassFactory-IA; -Ljava/lang/reflect/Proxy$ProxyClassFactory; -Ljava/lang/reflect/Proxy; -Ljava/lang/reflect/RecordComponent; -Ljava/lang/reflect/ReflectPermission; -Ljava/lang/reflect/Type; -Ljava/lang/reflect/TypeVariable; -Ljava/lang/reflect/UndeclaredThrowableException; -Ljava/lang/reflect/WeakCache$CacheKey; -Ljava/lang/reflect/WeakCache$CacheValue; -Ljava/lang/reflect/WeakCache$Factory; -Ljava/lang/reflect/WeakCache$LookupValue; -Ljava/lang/reflect/WeakCache$Value; -Ljava/lang/reflect/WeakCache; -Ljava/lang/reflect/WildcardType; -Ljava/math/BigDecimal$1; -Ljava/math/BigDecimal$LongOverflow; -Ljava/math/BigDecimal$StringBuilderHelper; -Ljava/math/BigDecimal; -Ljava/math/BigInteger$UnsafeHolder; -Ljava/math/BigInteger; -Ljava/math/MathContext; -Ljava/math/MutableBigInteger; -Ljava/math/RoundingMode; -Ljava/net/AbstractPlainDatagramSocketImpl; -Ljava/net/AbstractPlainSocketImpl; -Ljava/net/AddressCache$AddressCacheEntry; -Ljava/net/AddressCache$AddressCacheKey; -Ljava/net/AddressCache; -Ljava/net/Authenticator$RequestorType; -Ljava/net/Authenticator; -Ljava/net/BindException; -Ljava/net/ConnectException; -Ljava/net/CookieHandler; -Ljava/net/CookieManager$CookiePathComparator; -Ljava/net/CookieManager; -Ljava/net/CookiePolicy$1; -Ljava/net/CookiePolicy$2; -Ljava/net/CookiePolicy$3; -Ljava/net/CookiePolicy; -Ljava/net/CookieStore; -Ljava/net/DatagramPacket; -Ljava/net/DatagramSocket$1; -Ljava/net/DatagramSocket; -Ljava/net/DatagramSocketImpl; -Ljava/net/DatagramSocketImplFactory; -Ljava/net/DefaultDatagramSocketImplFactory; -Ljava/net/DefaultInterface; -Ljava/net/HttpCookie$10; -Ljava/net/HttpCookie$11; -Ljava/net/HttpCookie$1; -Ljava/net/HttpCookie$2; -Ljava/net/HttpCookie$3; -Ljava/net/HttpCookie$4; -Ljava/net/HttpCookie$5; -Ljava/net/HttpCookie$6; -Ljava/net/HttpCookie$7; -Ljava/net/HttpCookie$8; -Ljava/net/HttpCookie$9; -Ljava/net/HttpCookie$CookieAttributeAssignor; -Ljava/net/HttpCookie; -Ljava/net/HttpRetryException; -Ljava/net/HttpURLConnection; -Ljava/net/IDN; -Ljava/net/InMemoryCookieStore; -Ljava/net/Inet4Address; -Ljava/net/Inet6Address$Inet6AddressHolder-IA; -Ljava/net/Inet6Address$Inet6AddressHolder; -Ljava/net/Inet6Address; -Ljava/net/InetAddress$1; -Ljava/net/InetAddress; -Ljava/net/InetAddressImpl; -Ljava/net/InetSocketAddress$InetSocketAddressHolder-IA; -Ljava/net/InetSocketAddress$InetSocketAddressHolder; -Ljava/net/InetSocketAddress; -Ljava/net/InterfaceAddress; -Ljava/net/JarURLConnection; -Ljava/net/MalformedURLException; -Ljava/net/MulticastSocket; -Ljava/net/NetPermission; -Ljava/net/NetworkInterface$1checkedAddresses; -Ljava/net/NetworkInterface; -Ljava/net/NoRouteToHostException; -Ljava/net/Parts; -Ljava/net/PasswordAuthentication; -Ljava/net/PlainDatagramSocketImpl; -Ljava/net/PlainSocketImpl; -Ljava/net/PortUnreachableException; -Ljava/net/ProtocolException; -Ljava/net/ProtocolFamily; -Ljava/net/Proxy$Type; -Ljava/net/Proxy; -Ljava/net/ProxySelector; -Ljava/net/ResponseCache; -Ljava/net/ServerSocket$1; -Ljava/net/ServerSocket; -Ljava/net/Socket$1; -Ljava/net/Socket$2; -Ljava/net/Socket$3; -Ljava/net/Socket; -Ljava/net/SocketAddress; -Ljava/net/SocketException; -Ljava/net/SocketImpl; -Ljava/net/SocketImplFactory; -Ljava/net/SocketOption; -Ljava/net/SocketOptions; -Ljava/net/SocketPermission; -Ljava/net/SocketTimeoutException; -Ljava/net/SocksConsts; -Ljava/net/SocksSocketImpl; -Ljava/net/StandardProtocolFamily; -Ljava/net/StandardSocketOptions$StdSocketOption; -Ljava/net/StandardSocketOptions; -Ljava/net/URI$Parser; -Ljava/net/URI; -Ljava/net/URISyntaxException; -Ljava/net/URL; -Ljava/net/URLConnection; -Ljava/net/URLDecoder; -Ljava/net/URLEncoder; -Ljava/net/URLStreamHandler; -Ljava/net/URLStreamHandlerFactory; -Ljava/net/UnknownHostException; -Ljava/net/UnknownServiceException; -Ljava/nio/Bits; -Ljava/nio/Buffer; -Ljava/nio/BufferMismatch; -Ljava/nio/BufferOverflowException; -Ljava/nio/BufferUnderflowException; -Ljava/nio/ByteBuffer; -Ljava/nio/ByteBufferAsCharBuffer; -Ljava/nio/ByteBufferAsDoubleBuffer; -Ljava/nio/ByteBufferAsLongBuffer; -Ljava/nio/ByteBufferAsShortBuffer; -Ljava/nio/ByteOrder; -Ljava/nio/CharBuffer; -Ljava/nio/DirectByteBuffer$MemoryRef; -Ljava/nio/DoubleBuffer; -Ljava/nio/FloatBuffer; -Ljava/nio/HeapIntBuffer; -Ljava/nio/IntBuffer; -Ljava/nio/InvalidMarkException; -Ljava/nio/LongBuffer; -Ljava/nio/MappedByteBuffer; -Ljava/nio/NIOAccess; -Ljava/nio/NioUtils; -Ljava/nio/ReadOnlyBufferException; -Ljava/nio/ShortBuffer; -Ljava/nio/StringCharBuffer; -Ljava/nio/channels/AlreadyConnectedException; -Ljava/nio/channels/AsynchronousChannel; -Ljava/nio/channels/AsynchronousCloseException; -Ljava/nio/channels/AsynchronousFileChannel; -Ljava/nio/channels/ByteChannel; -Ljava/nio/channels/CancelledKeyException; -Ljava/nio/channels/Channel; -Ljava/nio/channels/Channels$1; -Ljava/nio/channels/Channels$WritableByteChannelImpl; -Ljava/nio/channels/Channels; -Ljava/nio/channels/ClosedByInterruptException; -Ljava/nio/channels/ClosedChannelException; -Ljava/nio/channels/ClosedSelectorException; -Ljava/nio/channels/ConnectionPendingException; -Ljava/nio/channels/DatagramChannel; -Ljava/nio/channels/FileChannel$MapMode; -Ljava/nio/channels/FileChannel; -Ljava/nio/channels/FileLock; -Ljava/nio/channels/FileLockInterruptionException; -Ljava/nio/channels/GatheringByteChannel; -Ljava/nio/channels/IllegalBlockingModeException; -Ljava/nio/channels/IllegalSelectorException; -Ljava/nio/channels/InterruptibleChannel; -Ljava/nio/channels/MulticastChannel; -Ljava/nio/channels/NetworkChannel; -Ljava/nio/channels/NoConnectionPendingException; -Ljava/nio/channels/NonReadableChannelException; -Ljava/nio/channels/NonWritableChannelException; -Ljava/nio/channels/OverlappingFileLockException; -Ljava/nio/channels/ReadableByteChannel; -Ljava/nio/channels/ScatteringByteChannel; -Ljava/nio/channels/SeekableByteChannel; -Ljava/nio/channels/SelectableChannel; -Ljava/nio/channels/SelectionKey; -Ljava/nio/channels/Selector; -Ljava/nio/channels/ServerSocketChannel; -Ljava/nio/channels/SocketChannel; -Ljava/nio/channels/UnresolvedAddressException; -Ljava/nio/channels/UnsupportedAddressTypeException; -Ljava/nio/channels/WritableByteChannel; -Ljava/nio/channels/spi/AbstractInterruptibleChannel$1; -Ljava/nio/channels/spi/AbstractInterruptibleChannel; -Ljava/nio/channels/spi/AbstractSelectableChannel; -Ljava/nio/channels/spi/AbstractSelectionKey; -Ljava/nio/channels/spi/AbstractSelector$1; -Ljava/nio/channels/spi/AbstractSelector; -Ljava/nio/channels/spi/AsynchronousChannelProvider; -Ljava/nio/channels/spi/SelectorProvider$1; -Ljava/nio/channels/spi/SelectorProvider; -Ljava/nio/charset/CharacterCodingException; -Ljava/nio/charset/Charset; -Ljava/nio/charset/CharsetDecoder; -Ljava/nio/charset/CharsetEncoder; -Ljava/nio/charset/CoderMalfunctionError; -Ljava/nio/charset/CoderResult$Cache; -Ljava/nio/charset/CoderResult; -Ljava/nio/charset/CodingErrorAction; -Ljava/nio/charset/IllegalCharsetNameException; -Ljava/nio/charset/StandardCharsets; -Ljava/nio/charset/UnsupportedCharsetException; -Ljava/nio/charset/spi/CharsetProvider; -Ljava/nio/file/AccessDeniedException; -Ljava/nio/file/AccessMode; -Ljava/nio/file/CopyMoveHelper; -Ljava/nio/file/CopyOption; -Ljava/nio/file/DirectoryIteratorException; -Ljava/nio/file/DirectoryStream$Filter; -Ljava/nio/file/DirectoryStream; -Ljava/nio/file/FileAlreadyExistsException; -Ljava/nio/file/FileSystem; -Ljava/nio/file/FileSystemException; -Ljava/nio/file/FileSystems$DefaultFileSystemHolder$1; -Ljava/nio/file/FileSystems$DefaultFileSystemHolder; -Ljava/nio/file/FileSystems; -Ljava/nio/file/FileVisitResult; -Ljava/nio/file/FileVisitor; -Ljava/nio/file/Files$AcceptAllFilter; -Ljava/nio/file/Files; -Ljava/nio/file/InvalidPathException; -Ljava/nio/file/LinkOption; -Ljava/nio/file/NoSuchFileException; -Ljava/nio/file/NotDirectoryException; -Ljava/nio/file/OpenOption; -Ljava/nio/file/Path; -Ljava/nio/file/Paths; -Ljava/nio/file/ProviderMismatchException; -Ljava/nio/file/SecureDirectoryStream; -Ljava/nio/file/SimpleFileVisitor; -Ljava/nio/file/StandardCopyOption; -Ljava/nio/file/StandardOpenOption; -Ljava/nio/file/Watchable; -Ljava/nio/file/attribute/AttributeView; -Ljava/nio/file/attribute/BasicFileAttributeView; -Ljava/nio/file/attribute/BasicFileAttributes; -Ljava/nio/file/attribute/FileAttribute; -Ljava/nio/file/attribute/FileAttributeView; -Ljava/nio/file/attribute/FileOwnerAttributeView; -Ljava/nio/file/attribute/FileTime; -Ljava/nio/file/attribute/PosixFileAttributeView; -Ljava/nio/file/attribute/PosixFileAttributes; -Ljava/nio/file/spi/FileSystemProvider; -Ljava/security/AccessControlContext; -Ljava/security/AccessControlException; -Ljava/security/AccessController; -Ljava/security/AlgorithmConstraints; -Ljava/security/AlgorithmParameters; -Ljava/security/AlgorithmParametersSpi; -Ljava/security/AllPermission; -Ljava/security/BasicPermission; -Ljava/security/CodeSigner; -Ljava/security/CodeSource; -Ljava/security/CryptoPrimitive; -Ljava/security/DigestException; -Ljava/security/DigestInputStream; -Ljava/security/GeneralSecurityException; -Ljava/security/Guard; -Ljava/security/InvalidAlgorithmParameterException; -Ljava/security/InvalidKeyException; -Ljava/security/InvalidParameterException; -Ljava/security/Key; -Ljava/security/KeyException; -Ljava/security/KeyFactory; -Ljava/security/KeyFactorySpi; -Ljava/security/KeyManagementException; -Ljava/security/KeyPair; -Ljava/security/KeyPairGenerator$Delegate; -Ljava/security/KeyPairGenerator; -Ljava/security/KeyPairGeneratorSpi; -Ljava/security/KeyStore$1; -Ljava/security/KeyStore$CallbackHandlerProtection; -Ljava/security/KeyStore$Entry; -Ljava/security/KeyStore$LoadStoreParameter; -Ljava/security/KeyStore$PasswordProtection; -Ljava/security/KeyStore$PrivateKeyEntry; -Ljava/security/KeyStore$ProtectionParameter; -Ljava/security/KeyStore$SecretKeyEntry; -Ljava/security/KeyStore$SimpleLoadStoreParameter; -Ljava/security/KeyStore$TrustedCertificateEntry; -Ljava/security/KeyStore; -Ljava/security/KeyStoreException; -Ljava/security/KeyStoreSpi; -Ljava/security/MessageDigest; -Ljava/security/MessageDigestSpi; -Ljava/security/NoSuchAlgorithmException; -Ljava/security/NoSuchProviderException; -Ljava/security/Permission; -Ljava/security/PermissionCollection; -Ljava/security/Permissions; -Ljava/security/Principal; -Ljava/security/PrivateKey; -Ljava/security/PrivilegedAction; -Ljava/security/PrivilegedActionException; -Ljava/security/PrivilegedExceptionAction; -Ljava/security/ProtectionDomain; -Ljava/security/Provider$EngineDescription; -Ljava/security/Provider$Service-IA; -Ljava/security/Provider$Service; -Ljava/security/Provider$ServiceKey-IA; -Ljava/security/Provider$ServiceKey; -Ljava/security/Provider$UString; -Ljava/security/Provider; -Ljava/security/ProviderException; -Ljava/security/PublicKey; -Ljava/security/SecureRandom; -Ljava/security/SecureRandomParameters; -Ljava/security/SecureRandomSpi; -Ljava/security/Security$1; -Ljava/security/Security; -Ljava/security/SecurityPermission; -Ljava/security/Signature$CipherAdapter; -Ljava/security/Signature; -Ljava/security/SignatureException; -Ljava/security/SignatureSpi; -Ljava/security/Timestamp; -Ljava/security/UnrecoverableEntryException; -Ljava/security/UnrecoverableKeyException; -Ljava/security/cert/CRL; -Ljava/security/cert/CRLException; -Ljava/security/cert/CRLReason; -Ljava/security/cert/CertPath; -Ljava/security/cert/CertPathBuilderException; -Ljava/security/cert/CertPathChecker; -Ljava/security/cert/CertPathHelperImpl; -Ljava/security/cert/CertPathParameters; -Ljava/security/cert/CertPathValidator; -Ljava/security/cert/CertPathValidatorException$BasicReason; -Ljava/security/cert/CertPathValidatorException$Reason; -Ljava/security/cert/CertPathValidatorException; -Ljava/security/cert/CertPathValidatorResult; -Ljava/security/cert/CertPathValidatorSpi; -Ljava/security/cert/CertSelector; -Ljava/security/cert/CertStore; -Ljava/security/cert/CertStoreException; -Ljava/security/cert/CertStoreParameters; -Ljava/security/cert/CertStoreSpi; -Ljava/security/cert/Certificate; -Ljava/security/cert/CertificateEncodingException; -Ljava/security/cert/CertificateException; -Ljava/security/cert/CertificateExpiredException; -Ljava/security/cert/CertificateFactory; -Ljava/security/cert/CertificateFactorySpi; -Ljava/security/cert/CertificateNotYetValidException; -Ljava/security/cert/CertificateParsingException; -Ljava/security/cert/CertificateRevokedException; -Ljava/security/cert/CollectionCertStoreParameters; -Ljava/security/cert/Extension; -Ljava/security/cert/PKIXCertPathChecker; -Ljava/security/cert/PKIXCertPathValidatorResult; -Ljava/security/cert/PKIXParameters; -Ljava/security/cert/PKIXReason; -Ljava/security/cert/PKIXRevocationChecker$Option; -Ljava/security/cert/PKIXRevocationChecker; -Ljava/security/cert/PolicyNode; -Ljava/security/cert/PolicyQualifierInfo; -Ljava/security/cert/TrustAnchor; -Ljava/security/cert/X509CRL; -Ljava/security/cert/X509CRLEntry; -Ljava/security/cert/X509CertSelector; -Ljava/security/cert/X509Certificate; -Ljava/security/cert/X509Extension; -Ljava/security/interfaces/DSAKey; -Ljava/security/interfaces/DSAParams; -Ljava/security/interfaces/DSAPublicKey; -Ljava/security/interfaces/ECKey; -Ljava/security/interfaces/ECPrivateKey; -Ljava/security/interfaces/ECPublicKey; -Ljava/security/interfaces/RSAKey; -Ljava/security/interfaces/RSAPrivateCrtKey; -Ljava/security/interfaces/RSAPrivateKey; -Ljava/security/interfaces/RSAPublicKey; -Ljava/security/spec/AlgorithmParameterSpec; -Ljava/security/spec/DSAParameterSpec; -Ljava/security/spec/DSAPublicKeySpec; -Ljava/security/spec/ECField; -Ljava/security/spec/ECFieldF2m; -Ljava/security/spec/ECFieldFp; -Ljava/security/spec/ECGenParameterSpec; -Ljava/security/spec/ECParameterSpec; -Ljava/security/spec/ECPoint; -Ljava/security/spec/ECPrivateKeySpec; -Ljava/security/spec/ECPublicKeySpec; -Ljava/security/spec/EllipticCurve; -Ljava/security/spec/EncodedKeySpec; -Ljava/security/spec/InvalidKeySpecException; -Ljava/security/spec/InvalidParameterSpecException; -Ljava/security/spec/KeySpec; -Ljava/security/spec/MGF1ParameterSpec; -Ljava/security/spec/NamedParameterSpec; -Ljava/security/spec/PKCS8EncodedKeySpec; -Ljava/security/spec/PSSParameterSpec; -Ljava/security/spec/RSAKeyGenParameterSpec; -Ljava/security/spec/RSAPrivateCrtKeySpec; -Ljava/security/spec/RSAPrivateKeySpec; -Ljava/security/spec/RSAPublicKeySpec; -Ljava/security/spec/X509EncodedKeySpec; -Ljava/sql/Date; -Ljava/sql/SQLException; -Ljava/sql/Time; -Ljava/sql/Timestamp; -Ljava/text/AttributedCharacterIterator$Attribute; -Ljava/text/AttributedCharacterIterator; -Ljava/text/AttributedString; -Ljava/text/Bidi; -Ljava/text/BreakIterator; -Ljava/text/CalendarBuilder; -Ljava/text/CharacterIterator; -Ljava/text/CharacterIteratorFieldDelegate; -Ljava/text/ChoiceFormat; -Ljava/text/CollationElementIterator; -Ljava/text/CollationKey; -Ljava/text/Collator; -Ljava/text/DateFormat$Field; -Ljava/text/DateFormat; -Ljava/text/DateFormatSymbols; -Ljava/text/DecimalFormat$1; -Ljava/text/DecimalFormat; -Ljava/text/DecimalFormatSymbols; -Ljava/text/DontCareFieldPosition$1; -Ljava/text/DontCareFieldPosition; -Ljava/text/FieldPosition$Delegate-IA; -Ljava/text/FieldPosition$Delegate; -Ljava/text/FieldPosition; -Ljava/text/Format$Field; -Ljava/text/Format$FieldDelegate; -Ljava/text/Format; -Ljava/text/IcuIteratorWrapper; -Ljava/text/MessageFormat$Field; -Ljava/text/MessageFormat; -Ljava/text/Normalizer$Form$$ExternalSyntheticLambda0; -Ljava/text/Normalizer$Form$$ExternalSyntheticLambda1; -Ljava/text/Normalizer$Form$$ExternalSyntheticLambda2; -Ljava/text/Normalizer$Form$$ExternalSyntheticLambda3; -Ljava/text/Normalizer$Form; -Ljava/text/Normalizer; -Ljava/text/NumberFormat$Field; -Ljava/text/NumberFormat$Style; -Ljava/text/NumberFormat; -Ljava/text/ParseException; -Ljava/text/ParsePosition; -Ljava/text/RuleBasedCollator; -Ljava/text/SimpleDateFormat; -Ljava/text/StringCharacterIterator; -Ljava/time/Clock; -Ljava/time/DateTimeException; -Ljava/time/DayOfWeek; -Ljava/time/Duration; -Ljava/time/Instant$1; -Ljava/time/Instant; -Ljava/time/InstantSource; -Ljava/time/LocalDate$1; -Ljava/time/LocalDate; -Ljava/time/LocalDateTime; -Ljava/time/LocalTime$1; -Ljava/time/LocalTime; -Ljava/time/Month; -Ljava/time/OffsetDateTime; -Ljava/time/Period; -Ljava/time/Year; -Ljava/time/ZoneId; -Ljava/time/ZoneOffset; -Ljava/time/ZonedDateTime$$ExternalSyntheticLambda0; -Ljava/time/ZonedDateTime$1; -Ljava/time/ZonedDateTime; -Ljava/time/chrono/AbstractChronology; -Ljava/time/chrono/ChronoLocalDate; -Ljava/time/chrono/ChronoLocalDateTime; -Ljava/time/chrono/ChronoPeriod; -Ljava/time/chrono/ChronoZonedDateTime; -Ljava/time/chrono/Chronology; -Ljava/time/chrono/IsoChronology; -Ljava/time/format/DateTimeFormatter$$ExternalSyntheticLambda0; -Ljava/time/format/DateTimeFormatter$$ExternalSyntheticLambda1; -Ljava/time/format/DateTimeFormatter; -Ljava/time/format/DateTimeFormatterBuilder$$ExternalSyntheticLambda0; -Ljava/time/format/DateTimeFormatterBuilder$1; -Ljava/time/format/DateTimeFormatterBuilder$2; -Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$DayPeriod$$ExternalSyntheticLambda0; -Ljava/time/format/DateTimeFormatterBuilder$DayPeriod; -Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator; -Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI-IA; -Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI; -Ljava/time/format/DateTimeFormatterBuilder$PrefixTree-IA; -Ljava/time/format/DateTimeFormatterBuilder$PrefixTree; -Ljava/time/format/DateTimeFormatterBuilder$SettingsParser; -Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser; -Ljava/time/format/DateTimeFormatterBuilder; -Ljava/time/format/DateTimeParseContext; -Ljava/time/format/DateTimeParseException; -Ljava/time/format/DateTimePrintContext$1; -Ljava/time/format/DateTimePrintContext; -Ljava/time/format/DateTimeTextProvider$1; -Ljava/time/format/DateTimeTextProvider$LocaleStore; -Ljava/time/format/DateTimeTextProvider; -Ljava/time/format/DecimalStyle; -Ljava/time/format/Parsed; -Ljava/time/format/ResolverStyle; -Ljava/time/format/SignStyle; -Ljava/time/format/TextStyle; -Ljava/time/temporal/ChronoField; -Ljava/time/temporal/ChronoUnit; -Ljava/time/temporal/IsoFields$Field$1; -Ljava/time/temporal/IsoFields$Field$2; -Ljava/time/temporal/IsoFields$Field$3; -Ljava/time/temporal/IsoFields$Field$4; -Ljava/time/temporal/IsoFields$Field; -Ljava/time/temporal/IsoFields$Unit; -Ljava/time/temporal/IsoFields; -Ljava/time/temporal/JulianFields$Field; -Ljava/time/temporal/JulianFields; -Ljava/time/temporal/Temporal; -Ljava/time/temporal/TemporalAccessor; -Ljava/time/temporal/TemporalAdjuster; -Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda11; -Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda1; -Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda3; -Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda6; -Ljava/time/temporal/TemporalAdjusters$$ExternalSyntheticLambda8; -Ljava/time/temporal/TemporalAdjusters; -Ljava/time/temporal/TemporalAmount; -Ljava/time/temporal/TemporalField; -Ljava/time/temporal/TemporalQueries$1; -Ljava/time/temporal/TemporalQueries$2; -Ljava/time/temporal/TemporalQueries$3; -Ljava/time/temporal/TemporalQueries$4; -Ljava/time/temporal/TemporalQueries$5; -Ljava/time/temporal/TemporalQueries$6; -Ljava/time/temporal/TemporalQueries$7; -Ljava/time/temporal/TemporalQueries; -Ljava/time/temporal/TemporalQuery; -Ljava/time/temporal/TemporalUnit; -Ljava/time/temporal/UnsupportedTemporalTypeException; -Ljava/time/temporal/ValueRange; -Ljava/time/zone/IcuZoneRulesProvider$ZoneRulesCache; -Ljava/time/zone/IcuZoneRulesProvider; -Ljava/time/zone/ZoneOffsetTransition; -Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition; -Ljava/time/zone/ZoneOffsetTransitionRule; -Ljava/time/zone/ZoneRules; -Ljava/time/zone/ZoneRulesException; -Ljava/time/zone/ZoneRulesProvider; -Ljava/util/AbstractCollection; -Ljava/util/AbstractList$Itr-IA; -Ljava/util/AbstractList$ListItr; -Ljava/util/AbstractList$RandomAccessSpliterator; -Ljava/util/AbstractList$RandomAccessSubList; -Ljava/util/AbstractList$SubList$1; -Ljava/util/AbstractList$SubList; -Ljava/util/AbstractList; -Ljava/util/AbstractMap$1; -Ljava/util/AbstractMap$2$1; -Ljava/util/AbstractMap$SimpleEntry; -Ljava/util/AbstractMap$SimpleImmutableEntry; -Ljava/util/AbstractMap$ViewCollection; -Ljava/util/AbstractMap; -Ljava/util/AbstractQueue; -Ljava/util/AbstractSequentialList; -Ljava/util/AbstractSet; -Ljava/util/ArrayDeque$$ExternalSyntheticLambda1; -Ljava/util/ArrayDeque; -Ljava/util/ArrayList$ArrayListSpliterator; -Ljava/util/ArrayList$ListItr; -Ljava/util/ArrayList$SubList$2; -Ljava/util/ArrayList; -Ljava/util/ArrayPrefixHelpers$CumulateTask; -Ljava/util/ArrayPrefixHelpers$DoubleCumulateTask; -Ljava/util/ArrayPrefixHelpers$IntCumulateTask; -Ljava/util/ArrayPrefixHelpers$LongCumulateTask; -Ljava/util/Arrays$$ExternalSyntheticLambda0; -Ljava/util/Arrays$$ExternalSyntheticLambda1; -Ljava/util/Arrays$$ExternalSyntheticLambda2; -Ljava/util/Arrays$$ExternalSyntheticLambda3; -Ljava/util/Arrays$NaturalOrder; -Ljava/util/Arrays; -Ljava/util/ArraysParallelSortHelpers$FJObject$Sorter; -Ljava/util/Base64$Decoder; -Ljava/util/Base64$Encoder; -Ljava/util/Base64; -Ljava/util/BitSet; -Ljava/util/Calendar$$ExternalSyntheticLambda0; -Ljava/util/Calendar$Builder; -Ljava/util/Calendar; -Ljava/util/Collection; -Ljava/util/Collections$2; -Ljava/util/Collections$3; -Ljava/util/Collections$AsLIFOQueue; -Ljava/util/Collections$CheckedCollection; -Ljava/util/Collections$CheckedList; -Ljava/util/Collections$CheckedMap; -Ljava/util/Collections$CheckedNavigableMap; -Ljava/util/Collections$CheckedNavigableSet; -Ljava/util/Collections$CheckedQueue; -Ljava/util/Collections$CheckedRandomAccessList; -Ljava/util/Collections$CheckedSet; -Ljava/util/Collections$CheckedSortedMap; -Ljava/util/Collections$CheckedSortedSet; -Ljava/util/Collections$CopiesList; -Ljava/util/Collections$EmptyEnumeration; -Ljava/util/Collections$EmptyList-IA; -Ljava/util/Collections$EmptyListIterator; -Ljava/util/Collections$EmptyMap-IA; -Ljava/util/Collections$EmptySet-IA; -Ljava/util/Collections$ReverseComparator2; -Ljava/util/Collections$ReverseComparator; -Ljava/util/Collections$SequencedSetFromMap; -Ljava/util/Collections$SynchronizedList; -Ljava/util/Collections$SynchronizedNavigableMap; -Ljava/util/Collections$SynchronizedNavigableSet; -Ljava/util/Collections$SynchronizedSet; -Ljava/util/Collections$SynchronizedSortedMap; -Ljava/util/Collections$SynchronizedSortedSet; -Ljava/util/Collections$UnmodifiableList$1; -Ljava/util/Collections$UnmodifiableList; -Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap; -Ljava/util/Collections$UnmodifiableNavigableMap; -Ljava/util/Collections$UnmodifiableNavigableSet$EmptyNavigableSet; -Ljava/util/Collections$UnmodifiableNavigableSet; -Ljava/util/Collections$UnmodifiableSequencedCollection; -Ljava/util/Collections$UnmodifiableSequencedMap; -Ljava/util/Collections$UnmodifiableSequencedSet; -Ljava/util/Collections$UnmodifiableSortedMap; -Ljava/util/Collections; -Ljava/util/ComparableTimSort; -Ljava/util/Comparator$$ExternalSyntheticLambda1; -Ljava/util/Comparator$$ExternalSyntheticLambda2; -Ljava/util/Comparator$$ExternalSyntheticLambda3; -Ljava/util/Comparator$$ExternalSyntheticLambda4; -Ljava/util/Comparator$$ExternalSyntheticLambda5; -Ljava/util/Comparator; -Ljava/util/Comparators$NaturalOrderComparator; -Ljava/util/Comparators$NullComparator; -Ljava/util/ConcurrentModificationException; -Ljava/util/Currency; -Ljava/util/Date; -Ljava/util/Deque; -Ljava/util/Dictionary; -Ljava/util/DoubleSummaryStatistics; -Ljava/util/DualPivotQuicksort$Sorter-IA; -Ljava/util/DualPivotQuicksort$Sorter; -Ljava/util/DualPivotQuicksort; -Ljava/util/DuplicateFormatFlagsException; -Ljava/util/EmptyStackException; -Ljava/util/EnumMap$1; -Ljava/util/EnumMap$EntryIterator$Entry-IA; -Ljava/util/EnumMap$EntryIterator$Entry; -Ljava/util/EnumMap$EntryIterator-IA; -Ljava/util/EnumMap$EntryIterator; -Ljava/util/EnumMap$EntrySet-IA; -Ljava/util/EnumMap$EntrySet; -Ljava/util/EnumMap$EnumMapIterator-IA; -Ljava/util/EnumMap$EnumMapIterator; -Ljava/util/EnumMap$KeyIterator-IA; -Ljava/util/EnumMap$KeyIterator; -Ljava/util/EnumMap$KeySet-IA; -Ljava/util/EnumMap$KeySet; -Ljava/util/EnumMap$ValueIterator-IA; -Ljava/util/EnumMap$ValueIterator; -Ljava/util/EnumMap$Values-IA; -Ljava/util/EnumMap$Values; -Ljava/util/EnumMap; -Ljava/util/EnumSet$SerializationProxy; -Ljava/util/EnumSet; -Ljava/util/Enumeration; -Ljava/util/EventListener; -Ljava/util/EventObject; -Ljava/util/FormatFlagsConversionMismatchException; -Ljava/util/Formattable; -Ljava/util/Formatter$Conversion; -Ljava/util/Formatter$DateTime; -Ljava/util/Formatter$FixedString; -Ljava/util/Formatter$Flags; -Ljava/util/Formatter$FormatSpecifier; -Ljava/util/Formatter$FormatSpecifierParser; -Ljava/util/Formatter$FormatString; -Ljava/util/Formatter; -Ljava/util/FormatterClosedException; -Ljava/util/HashMap$EntrySpliterator; -Ljava/util/HashMap$HashIterator; -Ljava/util/HashMap$HashMapSpliterator; -Ljava/util/HashMap$KeySpliterator; -Ljava/util/HashMap$UnsafeHolder; -Ljava/util/HashMap$ValueSpliterator; -Ljava/util/HashMap; -Ljava/util/HashSet; -Ljava/util/Hashtable$EntrySet-IA; -Ljava/util/Hashtable$EntrySet; -Ljava/util/Hashtable$HashtableEntry; -Ljava/util/Hashtable$KeySet-IA; -Ljava/util/Hashtable$KeySet; -Ljava/util/Hashtable$ValueCollection-IA; -Ljava/util/Hashtable$ValueCollection; -Ljava/util/Hashtable; -Ljava/util/HexFormat; -Ljava/util/IdentityHashMap$EntryIterator$Entry-IA; -Ljava/util/IdentityHashMap$EntryIterator$Entry; -Ljava/util/IdentityHashMap$EntryIterator-IA; -Ljava/util/IdentityHashMap$EntryIterator; -Ljava/util/IdentityHashMap$EntrySet-IA; -Ljava/util/IdentityHashMap$EntrySet; -Ljava/util/IdentityHashMap$IdentityHashMapIterator-IA; -Ljava/util/IdentityHashMap$IdentityHashMapIterator; -Ljava/util/IdentityHashMap$KeyIterator-IA; -Ljava/util/IdentityHashMap$KeyIterator; -Ljava/util/IdentityHashMap$KeySet-IA; -Ljava/util/IdentityHashMap$KeySet; -Ljava/util/IdentityHashMap$ValueIterator-IA; -Ljava/util/IdentityHashMap$ValueIterator; -Ljava/util/IdentityHashMap$Values-IA; -Ljava/util/IdentityHashMap$Values; -Ljava/util/IdentityHashMap; -Ljava/util/IllegalFormatCodePointException; -Ljava/util/IllegalFormatConversionException; -Ljava/util/IllegalFormatException; -Ljava/util/IllegalFormatFlagsException; -Ljava/util/IllegalFormatPrecisionException; -Ljava/util/IllegalFormatWidthException; -Ljava/util/IllformedLocaleException; -Ljava/util/ImmutableCollections$AbstractImmutableCollection; -Ljava/util/ImmutableCollections$AbstractImmutableList; -Ljava/util/ImmutableCollections$AbstractImmutableMap; -Ljava/util/ImmutableCollections$AbstractImmutableSet; -Ljava/util/ImmutableCollections$Access$1; -Ljava/util/ImmutableCollections$Access; -Ljava/util/ImmutableCollections$ListN-IA; -Ljava/util/ImmutableCollections$MapN$1; -Ljava/util/ImmutableCollections$MapN$MapNIterator; -Ljava/util/ImmutableCollections$SubList; -Ljava/util/ImmutableCollections; -Ljava/util/InputMismatchException; -Ljava/util/Iterator; -Ljava/util/JumboEnumSet$EnumSetIterator; -Ljava/util/JumboEnumSet; -Ljava/util/KeyValueHolder; -Ljava/util/LinkedHashMap$LinkedHashIterator; -Ljava/util/LinkedHashMap$ReversedLinkedHashMapView; -Ljava/util/LinkedHashMap; -Ljava/util/LinkedHashSet; -Ljava/util/LinkedList$DescendingIterator-IA; -Ljava/util/LinkedList$Node; -Ljava/util/LinkedList; -Ljava/util/List; -Ljava/util/ListIterator; -Ljava/util/ListResourceBundle; -Ljava/util/Locale$Builder; -Ljava/util/Locale$Cache; -Ljava/util/Locale$Category; -Ljava/util/Locale$FilteringMode; -Ljava/util/Locale$IsoCountryCode$1; -Ljava/util/Locale$IsoCountryCode$2; -Ljava/util/Locale$IsoCountryCode$3; -Ljava/util/Locale$IsoCountryCode; -Ljava/util/Locale$LanguageRange; -Ljava/util/Locale$LocaleKey-IA; -Ljava/util/Locale$LocaleKey; -Ljava/util/Locale$NoImagePreloadHolder; -Ljava/util/Locale-IA; -Ljava/util/Locale; -Ljava/util/LongSummaryStatistics; -Ljava/util/Map$Entry; -Ljava/util/Map; -Ljava/util/MissingFormatArgumentException; -Ljava/util/MissingFormatWidthException; -Ljava/util/MissingResourceException; -Ljava/util/NavigableMap; -Ljava/util/NavigableSet; -Ljava/util/NoSuchElementException; -Ljava/util/Objects; -Ljava/util/Observable; -Ljava/util/Observer; -Ljava/util/Optional; -Ljava/util/OptionalDouble; -Ljava/util/OptionalInt; -Ljava/util/PrimitiveIterator$OfInt$$ExternalSyntheticLambda0; -Ljava/util/PrimitiveIterator$OfInt; -Ljava/util/PrimitiveIterator; -Ljava/util/PriorityQueue; -Ljava/util/Properties$EntrySet; -Ljava/util/Properties$LineReader; -Ljava/util/Properties; -Ljava/util/PropertyPermission; -Ljava/util/PropertyResourceBundle; -Ljava/util/Queue; -Ljava/util/Random; -Ljava/util/RandomAccess; -Ljava/util/RegularEnumSet$EnumSetIterator; -Ljava/util/RegularEnumSet; -Ljava/util/ResourceBundle$1; -Ljava/util/ResourceBundle$BundleReference; -Ljava/util/ResourceBundle$CacheKey; -Ljava/util/ResourceBundle$CacheKeyReference; -Ljava/util/ResourceBundle$Control$$ExternalSyntheticLambda0; -Ljava/util/ResourceBundle$Control$1; -Ljava/util/ResourceBundle$Control$CandidateListCache; -Ljava/util/ResourceBundle$Control; -Ljava/util/ResourceBundle$KeyElementReference; -Ljava/util/ResourceBundle$RBClassLoader$1; -Ljava/util/ResourceBundle$RBClassLoader; -Ljava/util/ResourceBundle$SingleFormatControl; -Ljava/util/ResourceBundle; -Ljava/util/ReverseOrderListView; -Ljava/util/Scanner$PatternLRUCache; -Ljava/util/Scanner; -Ljava/util/SequencedCollection; -Ljava/util/SequencedMap$1SeqEntrySet; -Ljava/util/SequencedMap$1SeqKeySet; -Ljava/util/SequencedMap$1SeqValues; -Ljava/util/SequencedMap; -Ljava/util/SequencedSet; -Ljava/util/ServiceConfigurationError; -Ljava/util/ServiceLoader$1; -Ljava/util/ServiceLoader$2; -Ljava/util/ServiceLoader$LazyClassPathLookupIterator; -Ljava/util/ServiceLoader; -Ljava/util/Set; -Ljava/util/SimpleTimeZone$Cache; -Ljava/util/SimpleTimeZone; -Ljava/util/SortedMap; -Ljava/util/SortedSet; -Ljava/util/Spliterator$OfDouble; -Ljava/util/Spliterator$OfInt; -Ljava/util/Spliterator$OfLong; -Ljava/util/Spliterator$OfPrimitive; -Ljava/util/Spliterator; -Ljava/util/Spliterators$ArraySpliterator; -Ljava/util/Spliterators$EmptySpliterator$OfDouble; -Ljava/util/Spliterators$EmptySpliterator$OfInt; -Ljava/util/Spliterators$EmptySpliterator$OfLong; -Ljava/util/Spliterators$EmptySpliterator$OfRef; -Ljava/util/Spliterators$EmptySpliterator; -Ljava/util/Spliterators$IntArraySpliterator; -Ljava/util/Spliterators$IteratorSpliterator; -Ljava/util/Spliterators; -Ljava/util/Stack; -Ljava/util/StringJoiner; -Ljava/util/StringTokenizer; -Ljava/util/TaskQueue; -Ljava/util/TimSort; -Ljava/util/TimeZone; -Ljava/util/Timer$ThreadReaper; -Ljava/util/Timer; -Ljava/util/TimerTask; -Ljava/util/TimerThread; -Ljava/util/TooManyListenersException; -Ljava/util/TreeMap$AscendingSubMap$AscendingEntrySetView; -Ljava/util/TreeMap$AscendingSubMap; -Ljava/util/TreeMap$DescendingSubMap; -Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator; -Ljava/util/TreeMap$NavigableSubMap$EntrySetView; -Ljava/util/TreeMap$NavigableSubMap$SubMapEntryIterator; -Ljava/util/TreeMap$NavigableSubMap$SubMapIterator; -Ljava/util/TreeMap$NavigableSubMap; -Ljava/util/TreeMap$PrivateEntryIterator; -Ljava/util/TreeMap$ValueIterator; -Ljava/util/TreeMap$Values; -Ljava/util/TreeMap; -Ljava/util/TreeSet; -Ljava/util/Tripwire$$ExternalSyntheticLambda0; -Ljava/util/Tripwire; -Ljava/util/UUID$Holder; -Ljava/util/UUID; -Ljava/util/UnknownFormatConversionException; -Ljava/util/UnknownFormatFlagsException; -Ljava/util/Vector$1; -Ljava/util/Vector$Itr-IA; -Ljava/util/Vector$Itr; -Ljava/util/Vector; -Ljava/util/WeakHashMap$Entry; -Ljava/util/WeakHashMap$EntryIterator-IA; -Ljava/util/WeakHashMap$EntryIterator; -Ljava/util/WeakHashMap$EntrySet-IA; -Ljava/util/WeakHashMap$EntrySet; -Ljava/util/WeakHashMap$HashIterator; -Ljava/util/WeakHashMap$KeyIterator-IA; -Ljava/util/WeakHashMap$KeySet-IA; -Ljava/util/WeakHashMap$ValueIterator-IA; -Ljava/util/WeakHashMap$ValueIterator; -Ljava/util/WeakHashMap$Values-IA; -Ljava/util/WeakHashMap$Values; -Ljava/util/WeakHashMap; -Ljava/util/concurrent/AbstractExecutorService; -Ljava/util/concurrent/ArrayBlockingQueue$Itrs; -Ljava/util/concurrent/ArrayBlockingQueue; -Ljava/util/concurrent/BlockingDeque; -Ljava/util/concurrent/BlockingQueue; -Ljava/util/concurrent/Callable; -Ljava/util/concurrent/CancellationException; -Ljava/util/concurrent/CompletableFuture$AltResult; -Ljava/util/concurrent/CompletableFuture$AsyncRun; -Ljava/util/concurrent/CompletableFuture$AsyncSupply; -Ljava/util/concurrent/CompletableFuture$AsynchronousCompletionTask; -Ljava/util/concurrent/CompletableFuture$Completion; -Ljava/util/concurrent/CompletableFuture$Signaller; -Ljava/util/concurrent/CompletableFuture$UniCompletion; -Ljava/util/concurrent/CompletableFuture$UniWhenComplete; -Ljava/util/concurrent/CompletableFuture; -Ljava/util/concurrent/CompletionException; -Ljava/util/concurrent/CompletionStage; -Ljava/util/concurrent/ConcurrentHashMap$BaseIterator; -Ljava/util/concurrent/ConcurrentHashMap$BulkTask; -Ljava/util/concurrent/ConcurrentHashMap$CollectionView; -Ljava/util/concurrent/ConcurrentHashMap$CounterCell; -Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask; -Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask; -Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode; -Ljava/util/concurrent/ConcurrentHashMap$KeyIterator; -Ljava/util/concurrent/ConcurrentHashMap$KeySetView; -Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask; -Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask; -Ljava/util/concurrent/ConcurrentHashMap$Node; -Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask; -Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask; -Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask; -Ljava/util/concurrent/ConcurrentHashMap$ReservationNode; -Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask; -Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask; -Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask; -Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask; -Ljava/util/concurrent/ConcurrentHashMap$Segment; -Ljava/util/concurrent/ConcurrentHashMap$TableStack; -Ljava/util/concurrent/ConcurrentHashMap$Traverser; -Ljava/util/concurrent/ConcurrentHashMap$TreeBin; -Ljava/util/concurrent/ConcurrentHashMap$TreeNode; -Ljava/util/concurrent/ConcurrentHashMap; -Ljava/util/concurrent/ConcurrentLinkedDeque$Node; -Ljava/util/concurrent/ConcurrentLinkedDeque; -Ljava/util/concurrent/ConcurrentLinkedQueue$$ExternalSyntheticLambda0; -Ljava/util/concurrent/ConcurrentLinkedQueue$$ExternalSyntheticLambda2; -Ljava/util/concurrent/ConcurrentLinkedQueue$Node; -Ljava/util/concurrent/ConcurrentLinkedQueue; -Ljava/util/concurrent/ConcurrentMap$$ExternalSyntheticLambda0; -Ljava/util/concurrent/ConcurrentMap; -Ljava/util/concurrent/ConcurrentNavigableMap; -Ljava/util/concurrent/ConcurrentSkipListMap$Index; -Ljava/util/concurrent/ConcurrentSkipListMap$Iter; -Ljava/util/concurrent/ConcurrentSkipListMap$KeySet; -Ljava/util/concurrent/ConcurrentSkipListMap$Node; -Ljava/util/concurrent/ConcurrentSkipListMap$ValueIterator; -Ljava/util/concurrent/ConcurrentSkipListMap$Values; -Ljava/util/concurrent/ConcurrentSkipListMap; -Ljava/util/concurrent/ConcurrentSkipListSet; -Ljava/util/concurrent/CopyOnWriteArrayList$$ExternalSyntheticLambda2; -Ljava/util/concurrent/CopyOnWriteArraySet; -Ljava/util/concurrent/CountDownLatch$Sync; -Ljava/util/concurrent/CountDownLatch; -Ljava/util/concurrent/CountedCompleter; -Ljava/util/concurrent/DelayQueue; -Ljava/util/concurrent/Delayed; -Ljava/util/concurrent/ExecutionException; -Ljava/util/concurrent/Executor; -Ljava/util/concurrent/ExecutorService; -Ljava/util/concurrent/Executors$DefaultThreadFactory; -Ljava/util/concurrent/Executors$DelegatedExecutorService; -Ljava/util/concurrent/Executors$RunnableAdapter; -Ljava/util/concurrent/Executors; -Ljava/util/concurrent/ForkJoinPool$1; -Ljava/util/concurrent/ForkJoinPool$DefaultCommonPoolForkJoinWorkerThreadFactory; -Ljava/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory; -Ljava/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory; -Ljava/util/concurrent/ForkJoinPool$ManagedBlocker; -Ljava/util/concurrent/ForkJoinPool$WorkQueue; -Ljava/util/concurrent/ForkJoinPool; -Ljava/util/concurrent/ForkJoinTask$Aux; -Ljava/util/concurrent/ForkJoinTask; -Ljava/util/concurrent/ForkJoinWorkerThread; -Ljava/util/concurrent/Future; -Ljava/util/concurrent/FutureTask$WaitNode; -Ljava/util/concurrent/FutureTask; -Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr; -Ljava/util/concurrent/LinkedBlockingDeque$Itr; -Ljava/util/concurrent/LinkedBlockingDeque$Node; -Ljava/util/concurrent/LinkedBlockingDeque; -Ljava/util/concurrent/LinkedBlockingQueue$Itr; -Ljava/util/concurrent/LinkedBlockingQueue$Node; -Ljava/util/concurrent/LinkedBlockingQueue; -Ljava/util/concurrent/Phaser; -Ljava/util/concurrent/PriorityBlockingQueue; -Ljava/util/concurrent/RejectedExecutionException; -Ljava/util/concurrent/RejectedExecutionHandler; -Ljava/util/concurrent/RunnableFuture; -Ljava/util/concurrent/RunnableScheduledFuture; -Ljava/util/concurrent/ScheduledExecutorService; -Ljava/util/concurrent/ScheduledFuture; -Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr; -Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue; -Ljava/util/concurrent/Semaphore$FairSync; -Ljava/util/concurrent/Semaphore$NonfairSync; -Ljava/util/concurrent/Semaphore$Sync; -Ljava/util/concurrent/Semaphore; -Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode; -Ljava/util/concurrent/SynchronousQueue$TransferQueue; -Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode; -Ljava/util/concurrent/SynchronousQueue$TransferStack; -Ljava/util/concurrent/SynchronousQueue$Transferer; -Ljava/util/concurrent/SynchronousQueue; -Ljava/util/concurrent/ThreadFactory; -Ljava/util/concurrent/ThreadLocalRandom; -Ljava/util/concurrent/ThreadPoolExecutor$AbortPolicy; -Ljava/util/concurrent/ThreadPoolExecutor$DiscardPolicy; -Ljava/util/concurrent/TimeUnit$1; -Ljava/util/concurrent/TimeUnit; -Ljava/util/concurrent/TimeoutException; -Ljava/util/concurrent/atomic/AtomicBoolean; -Ljava/util/concurrent/atomic/AtomicInteger; -Ljava/util/concurrent/atomic/AtomicIntegerArray; -Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl; -Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater; -Ljava/util/concurrent/atomic/AtomicLong; -Ljava/util/concurrent/atomic/AtomicLongArray; -Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater; -Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater; -Ljava/util/concurrent/atomic/AtomicLongFieldUpdater; -Ljava/util/concurrent/atomic/AtomicReference; -Ljava/util/concurrent/atomic/AtomicReferenceArray; -Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl; -Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater; -Ljava/util/concurrent/atomic/LongAdder; -Ljava/util/concurrent/atomic/Striped64$1; -Ljava/util/concurrent/atomic/Striped64$Cell; -Ljava/util/concurrent/atomic/Striped64; -Ljava/util/concurrent/locks/AbstractOwnableSynchronizer; -Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionNode; -Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject; -Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ExclusiveNode; -Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node; -Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$SharedNode; -Ljava/util/concurrent/locks/AbstractQueuedSynchronizer; -Ljava/util/concurrent/locks/Condition; -Ljava/util/concurrent/locks/Lock; -Ljava/util/concurrent/locks/LockSupport; -Ljava/util/concurrent/locks/ReadWriteLock; -Ljava/util/concurrent/locks/ReentrantLock$FairSync; -Ljava/util/concurrent/locks/ReentrantLock$NonfairSync; -Ljava/util/concurrent/locks/ReentrantLock$Sync; -Ljava/util/concurrent/locks/ReentrantLock; -Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync; -Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync; -Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter; -Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter; -Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync; -Ljava/util/concurrent/locks/ReentrantReadWriteLock; -Ljava/util/function/BiConsumer; -Ljava/util/function/BiFunction$$ExternalSyntheticLambda0; -Ljava/util/function/BiFunction; -Ljava/util/function/BiPredicate; -Ljava/util/function/BinaryOperator$$ExternalSyntheticLambda0; -Ljava/util/function/BinaryOperator; -Ljava/util/function/BooleanSupplier; -Ljava/util/function/Consumer$$ExternalSyntheticLambda0; -Ljava/util/function/Consumer; -Ljava/util/function/DoubleBinaryOperator; -Ljava/util/function/DoubleConsumer; -Ljava/util/function/DoubleSupplier; -Ljava/util/function/DoubleUnaryOperator$$ExternalSyntheticLambda0; -Ljava/util/function/DoubleUnaryOperator$$ExternalSyntheticLambda1; -Ljava/util/function/DoubleUnaryOperator; -Ljava/util/function/Function$$ExternalSyntheticLambda0; -Ljava/util/function/Function$$ExternalSyntheticLambda1; -Ljava/util/function/Function$$ExternalSyntheticLambda2; -Ljava/util/function/Function; -Ljava/util/function/IntBinaryOperator; -Ljava/util/function/IntConsumer; -Ljava/util/function/IntFunction; -Ljava/util/function/IntPredicate; -Ljava/util/function/IntSupplier; -Ljava/util/function/IntToDoubleFunction; -Ljava/util/function/IntToLongFunction; -Ljava/util/function/IntUnaryOperator; -Ljava/util/function/LongBinaryOperator; -Ljava/util/function/LongConsumer; -Ljava/util/function/LongFunction; -Ljava/util/function/LongPredicate; -Ljava/util/function/LongSupplier; -Ljava/util/function/LongUnaryOperator; -Ljava/util/function/ObjDoubleConsumer; -Ljava/util/function/ObjIntConsumer; -Ljava/util/function/ObjLongConsumer; -Ljava/util/function/Predicate; -Ljava/util/function/Supplier; -Ljava/util/function/ToDoubleBiFunction; -Ljava/util/function/ToDoubleFunction; -Ljava/util/function/ToIntBiFunction; -Ljava/util/function/ToIntFunction; -Ljava/util/function/ToLongBiFunction; -Ljava/util/function/ToLongFunction; -Ljava/util/function/UnaryOperator; -Ljava/util/jar/Attributes$Name; -Ljava/util/jar/Attributes; -Ljava/util/jar/JarEntry; -Ljava/util/jar/JarException; -Ljava/util/jar/JarFile$JarEntryIterator; -Ljava/util/jar/JarFile$JarFileEntry; -Ljava/util/jar/JarFile; -Ljava/util/jar/JarVerifier$3; -Ljava/util/jar/JarVerifier$VerifierStream; -Ljava/util/jar/JarVerifier; -Ljava/util/jar/Manifest$FastInputStream; -Ljava/util/jar/Manifest; -Ljava/util/logging/ConsoleHandler; -Ljava/util/logging/ErrorManager; -Ljava/util/logging/FileHandler$1; -Ljava/util/logging/FileHandler$InitializationErrorManager-IA; -Ljava/util/logging/FileHandler$InitializationErrorManager; -Ljava/util/logging/FileHandler$MeteredStream; -Ljava/util/logging/FileHandler; -Ljava/util/logging/Filter; -Ljava/util/logging/Formatter; -Ljava/util/logging/Handler; -Ljava/util/logging/Level$KnownLevel; -Ljava/util/logging/Level; -Ljava/util/logging/LogManager$1; -Ljava/util/logging/LogManager$2; -Ljava/util/logging/LogManager$3; -Ljava/util/logging/LogManager$4; -Ljava/util/logging/LogManager$5; -Ljava/util/logging/LogManager$6; -Ljava/util/logging/LogManager$7; -Ljava/util/logging/LogManager$Cleaner; -Ljava/util/logging/LogManager$LogNode; -Ljava/util/logging/LogManager$LoggerContext$1; -Ljava/util/logging/LogManager$LoggerContext; -Ljava/util/logging/LogManager$LoggerWeakRef; -Ljava/util/logging/LogManager$RootLogger; -Ljava/util/logging/LogManager$SystemLoggerContext; -Ljava/util/logging/LogManager; -Ljava/util/logging/LogRecord; -Ljava/util/logging/Logger$1; -Ljava/util/logging/Logger$LoggerBundle; -Ljava/util/logging/Logger$SystemLoggerHelper$1; -Ljava/util/logging/Logger$SystemLoggerHelper; -Ljava/util/logging/Logger; -Ljava/util/logging/LoggingPermission; -Ljava/util/logging/LoggingProxyImpl; -Ljava/util/logging/SimpleFormatter; -Ljava/util/logging/StreamHandler; -Ljava/util/logging/XMLFormatter; -Ljava/util/prefs/AbstractPreferences; -Ljava/util/prefs/BackingStoreException; -Ljava/util/prefs/FileSystemPreferences$3; -Ljava/util/prefs/FileSystemPreferences; -Ljava/util/prefs/FileSystemPreferencesFactory; -Ljava/util/prefs/Preferences; -Ljava/util/prefs/PreferencesFactory; -Ljava/util/random/RandomGenerator; -Ljava/util/regex/ASCII; -Ljava/util/regex/MatchResult; -Ljava/util/regex/Matcher; -Ljava/util/regex/Pattern; -Ljava/util/regex/PatternSyntaxException; -Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda0; -Ljava/util/stream/AbstractPipeline$$ExternalSyntheticLambda2; -Ljava/util/stream/AbstractPipeline; -Ljava/util/stream/AbstractSpinedBuffer; -Ljava/util/stream/BaseStream; -Ljava/util/stream/Collector$Characteristics; -Ljava/util/stream/Collector; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda0; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda13; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda15; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda1; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda20; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda21; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda22; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda23; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda24; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda25; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda26; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda27; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda28; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda30; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda34; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda37; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda39; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda41; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda42; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda45; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda47; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda48; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda49; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda4; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda50; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda51; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda52; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda53; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda54; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda56; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda57; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda63; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda64; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda65; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda66; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda68; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda69; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda72; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda73; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda74; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda75; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda76; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda77; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda79; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda80; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda82; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda87; -Ljava/util/stream/Collectors$$ExternalSyntheticLambda94; -Ljava/util/stream/Collectors$CollectorImpl; -Ljava/util/stream/Collectors; -Ljava/util/stream/DistinctOps$1$1; -Ljava/util/stream/DistinctOps$1$2; -Ljava/util/stream/DistinctOps; -Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda0; -Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda4; -Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda5; -Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda7; -Ljava/util/stream/DoublePipeline$$ExternalSyntheticLambda9; -Ljava/util/stream/DoublePipeline$StatelessOp; -Ljava/util/stream/DoublePipeline; -Ljava/util/stream/DoubleStream; -Ljava/util/stream/FindOps$FindOp; -Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda0; -Ljava/util/stream/FindOps$FindSink$OfInt$$ExternalSyntheticLambda1; -Ljava/util/stream/FindOps$FindSink$OfInt; -Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda0; -Ljava/util/stream/FindOps$FindSink$OfRef$$ExternalSyntheticLambda1; -Ljava/util/stream/FindOps$FindSink$OfRef; -Ljava/util/stream/FindOps$FindSink; -Ljava/util/stream/FindOps; -Ljava/util/stream/ForEachOps$ForEachOp$OfInt; -Ljava/util/stream/ForEachOps$ForEachOp$OfRef; -Ljava/util/stream/ForEachOps$ForEachOp; -Ljava/util/stream/ForEachOps; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda0; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda10; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda11; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda12; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda1; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda5; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda7; -Ljava/util/stream/IntPipeline$$ExternalSyntheticLambda8; -Ljava/util/stream/IntPipeline$1$1; -Ljava/util/stream/IntPipeline$4$1; -Ljava/util/stream/IntPipeline$9; -Ljava/util/stream/IntPipeline$StatelessOp; -Ljava/util/stream/IntPipeline; -Ljava/util/stream/IntStream; -Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda2; -Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda3; -Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda4; -Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda7; -Ljava/util/stream/LongPipeline$$ExternalSyntheticLambda9; -Ljava/util/stream/LongPipeline$StatelessOp; -Ljava/util/stream/LongPipeline; -Ljava/util/stream/LongStream; -Ljava/util/stream/MatchOps$$ExternalSyntheticLambda0; -Ljava/util/stream/MatchOps$$ExternalSyntheticLambda1; -Ljava/util/stream/MatchOps$$ExternalSyntheticLambda3; -Ljava/util/stream/MatchOps$1MatchSink; -Ljava/util/stream/MatchOps$2MatchSink; -Ljava/util/stream/MatchOps$3MatchSink; -Ljava/util/stream/MatchOps$BooleanTerminalSink; -Ljava/util/stream/MatchOps$MatchKind; -Ljava/util/stream/MatchOps$MatchOp; -Ljava/util/stream/MatchOps; -Ljava/util/stream/Node$Builder$OfInt; -Ljava/util/stream/Node$Builder; -Ljava/util/stream/Node$OfDouble; -Ljava/util/stream/Node$OfInt; -Ljava/util/stream/Node$OfLong; -Ljava/util/stream/Node$OfPrimitive; -Ljava/util/stream/Node; -Ljava/util/stream/Nodes$ArrayNode; -Ljava/util/stream/Nodes$EmptyNode$OfDouble; -Ljava/util/stream/Nodes$EmptyNode$OfInt; -Ljava/util/stream/Nodes$EmptyNode$OfLong; -Ljava/util/stream/Nodes$EmptyNode$OfRef; -Ljava/util/stream/Nodes$EmptyNode; -Ljava/util/stream/Nodes$FixedNodeBuilder; -Ljava/util/stream/Nodes$IntArrayNode; -Ljava/util/stream/Nodes$IntFixedNodeBuilder; -Ljava/util/stream/Nodes$IntSpinedNodeBuilder; -Ljava/util/stream/Nodes$SpinedNodeBuilder; -Ljava/util/stream/Nodes$ToArrayTask$OfInt-IA; -Ljava/util/stream/Nodes$ToArrayTask$OfInt; -Ljava/util/stream/Nodes$ToArrayTask$OfPrimitive-IA; -Ljava/util/stream/Nodes$ToArrayTask$OfPrimitive; -Ljava/util/stream/Nodes$ToArrayTask$OfRef-IA; -Ljava/util/stream/Nodes$ToArrayTask$OfRef; -Ljava/util/stream/Nodes$ToArrayTask; -Ljava/util/stream/Nodes; -Ljava/util/stream/PipelineHelper; -Ljava/util/stream/ReduceOps$10; -Ljava/util/stream/ReduceOps$12; -Ljava/util/stream/ReduceOps$12ReducingSink; -Ljava/util/stream/ReduceOps$15; -Ljava/util/stream/ReduceOps$1; -Ljava/util/stream/ReduceOps$1ReducingSink; -Ljava/util/stream/ReduceOps$2; -Ljava/util/stream/ReduceOps$2ReducingSink; -Ljava/util/stream/ReduceOps$3; -Ljava/util/stream/ReduceOps$3ReducingSink; -Ljava/util/stream/ReduceOps$5; -Ljava/util/stream/ReduceOps$5ReducingSink; -Ljava/util/stream/ReduceOps$6; -Ljava/util/stream/ReduceOps$8; -Ljava/util/stream/ReduceOps$8ReducingSink; -Ljava/util/stream/ReduceOps$AccumulatingSink; -Ljava/util/stream/ReduceOps$Box; -Ljava/util/stream/ReduceOps$ReduceOp; -Ljava/util/stream/ReduceOps; -Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda0; -Ljava/util/stream/ReferencePipeline$$ExternalSyntheticLambda1; -Ljava/util/stream/ReferencePipeline$15$1; -Ljava/util/stream/ReferencePipeline$2$1; -Ljava/util/stream/ReferencePipeline$3$1; -Ljava/util/stream/ReferencePipeline$4$1; -Ljava/util/stream/ReferencePipeline$5$1; -Ljava/util/stream/ReferencePipeline$5; -Ljava/util/stream/ReferencePipeline$6$1; -Ljava/util/stream/ReferencePipeline$6; -Ljava/util/stream/ReferencePipeline$7$1; -Ljava/util/stream/ReferencePipeline$7; -Ljava/util/stream/ReferencePipeline$StatefulOp; -Ljava/util/stream/ReferencePipeline$StatelessOp; -Ljava/util/stream/ReferencePipeline; -Ljava/util/stream/Sink$ChainedInt; -Ljava/util/stream/Sink$ChainedReference; -Ljava/util/stream/Sink$OfDouble; -Ljava/util/stream/Sink$OfInt; -Ljava/util/stream/Sink$OfLong; -Ljava/util/stream/Sink; -Ljava/util/stream/SliceOps$1$1; -Ljava/util/stream/SliceOps$1; -Ljava/util/stream/SliceOps; -Ljava/util/stream/SortedOps$AbstractRefSortingSink; -Ljava/util/stream/SortedOps$RefSortingSink$$ExternalSyntheticLambda0; -Ljava/util/stream/SortedOps$RefSortingSink; -Ljava/util/stream/SortedOps$SizedRefSortingSink; -Ljava/util/stream/SortedOps; -Ljava/util/stream/SpinedBuffer$OfInt; -Ljava/util/stream/SpinedBuffer$OfPrimitive; -Ljava/util/stream/SpinedBuffer; -Ljava/util/stream/Stream$Builder; -Ljava/util/stream/Stream; -Ljava/util/stream/StreamOpFlag$MaskBuilder; -Ljava/util/stream/StreamOpFlag$Type; -Ljava/util/stream/StreamOpFlag; -Ljava/util/stream/StreamShape; -Ljava/util/stream/StreamSpliterators$AbstractWrappingSpliterator; -Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator$OfRef; -Ljava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator; -Ljava/util/stream/StreamSpliterators$WrappingSpliterator; -Ljava/util/stream/StreamSupport; -Ljava/util/stream/Streams$1; -Ljava/util/stream/Streams$2; -Ljava/util/stream/Streams$AbstractStreamBuilderImpl-IA; -Ljava/util/stream/Streams$AbstractStreamBuilderImpl; -Ljava/util/stream/Streams$ConcatSpliterator$OfRef; -Ljava/util/stream/Streams$ConcatSpliterator; -Ljava/util/stream/Streams$RangeIntSpliterator; -Ljava/util/stream/Streams$StreamBuilderImpl; -Ljava/util/stream/Streams; -Ljava/util/stream/TerminalOp; -Ljava/util/stream/TerminalSink; -Ljava/util/stream/Tripwire$$ExternalSyntheticLambda0; -Ljava/util/stream/Tripwire; -Ljava/util/zip/Adler32; -Ljava/util/zip/CRC32; -Ljava/util/zip/CheckedInputStream; -Ljava/util/zip/Checksum$1; -Ljava/util/zip/Checksum; -Ljava/util/zip/DataFormatException; -Ljava/util/zip/Deflater$DeflaterZStreamRef; -Ljava/util/zip/Deflater; -Ljava/util/zip/DeflaterOutputStream; -Ljava/util/zip/GZIPInputStream$1; -Ljava/util/zip/GZIPOutputStream; -Ljava/util/zip/Inflater$InflaterZStreamRef-IA; -Ljava/util/zip/Inflater$InflaterZStreamRef; -Ljava/util/zip/Inflater; -Ljava/util/zip/InflaterInputStream; -Ljava/util/zip/ZipCoder$UTF8ZipCoder; -Ljava/util/zip/ZipCoder; -Ljava/util/zip/ZipConstants; -Ljava/util/zip/ZipEntry; -Ljava/util/zip/ZipError; -Ljava/util/zip/ZipException; -Ljava/util/zip/ZipFile$CleanableResource; -Ljava/util/zip/ZipFile$InflaterCleanupAction; -Ljava/util/zip/ZipFile$Source$End-IA; -Ljava/util/zip/ZipFile$Source$End; -Ljava/util/zip/ZipFile$Source$Key; -Ljava/util/zip/ZipFile$Source; -Ljava/util/zip/ZipFile$ZipEntryIterator; -Ljava/util/zip/ZipFile$ZipFileInflaterInputStream; -Ljava/util/zip/ZipFile$ZipFileInputStream; -Ljava/util/zip/ZipFile; -Ljava/util/zip/ZipInputStream; -Ljava/util/zip/ZipOutputStream; -Ljava/util/zip/ZipUtils; -Ljavax/crypto/AEADBadTagException; -Ljavax/crypto/BadPaddingException; -Ljavax/crypto/Cipher$CipherSpiAndProvider; -Ljavax/crypto/Cipher$InitParams; -Ljavax/crypto/Cipher$InitType; -Ljavax/crypto/Cipher$NeedToSet; -Ljavax/crypto/Cipher$SpiAndProviderUpdater; -Ljavax/crypto/Cipher$Transform; -Ljavax/crypto/Cipher; -Ljavax/crypto/CipherInputStream; -Ljavax/crypto/CipherOutputStream; -Ljavax/crypto/CipherSpi; -Ljavax/crypto/CryptoPermissions; -Ljavax/crypto/IllegalBlockSizeException; -Ljavax/crypto/JarVerifier$1; -Ljavax/crypto/JarVerifier; -Ljavax/crypto/JceSecurity$1; -Ljavax/crypto/JceSecurity; -Ljavax/crypto/KeyAgreement; -Ljavax/crypto/KeyAgreementSpi; -Ljavax/crypto/KeyGenerator; -Ljavax/crypto/KeyGeneratorSpi; -Ljavax/crypto/Mac; -Ljavax/crypto/MacSpi; -Ljavax/crypto/NoSuchPaddingException; -Ljavax/crypto/NullCipher; -Ljavax/crypto/SecretKey; -Ljavax/crypto/SecretKeyFactory; -Ljavax/crypto/SecretKeyFactorySpi; -Ljavax/crypto/ShortBufferException; -Ljavax/crypto/interfaces/DHKey; -Ljavax/crypto/interfaces/DHPrivateKey; -Ljavax/crypto/interfaces/DHPublicKey; -Ljavax/crypto/interfaces/PBEKey; -Ljavax/crypto/spec/DESKeySpec; -Ljavax/crypto/spec/DESedeKeySpec; -Ljavax/crypto/spec/DHParameterSpec; -Ljavax/crypto/spec/DHPrivateKeySpec; -Ljavax/crypto/spec/DHPublicKeySpec; -Ljavax/crypto/spec/GCMParameterSpec; -Ljavax/crypto/spec/IvParameterSpec; -Ljavax/crypto/spec/OAEPParameterSpec; -Ljavax/crypto/spec/PBEKeySpec; -Ljavax/crypto/spec/PBEParameterSpec; -Ljavax/crypto/spec/PSource$PSpecified; -Ljavax/crypto/spec/PSource; -Ljavax/crypto/spec/SecretKeySpec; -Ljavax/microedition/khronos/egl/EGL10; -Ljavax/microedition/khronos/egl/EGL11; -Ljavax/microedition/khronos/egl/EGL; -Ljavax/microedition/khronos/egl/EGLConfig; -Ljavax/microedition/khronos/egl/EGLContext; -Ljavax/microedition/khronos/egl/EGLDisplay; -Ljavax/microedition/khronos/egl/EGLSurface; -Ljavax/microedition/khronos/opengles/GL10; -Ljavax/microedition/khronos/opengles/GL10Ext; -Ljavax/microedition/khronos/opengles/GL11; -Ljavax/microedition/khronos/opengles/GL11Ext; -Ljavax/microedition/khronos/opengles/GL11ExtensionPack; -Ljavax/microedition/khronos/opengles/GL; -Ljavax/net/DefaultSocketFactory; -Ljavax/net/ServerSocketFactory; -Ljavax/net/SocketFactory; -Ljavax/net/ssl/DefaultSSLServerSocketFactory; -Ljavax/net/ssl/DefaultSSLSocketFactory; -Ljavax/net/ssl/ExtendedSSLSession; -Ljavax/net/ssl/HandshakeCompletedEvent; -Ljavax/net/ssl/HandshakeCompletedListener; -Ljavax/net/ssl/HostnameVerifier; -Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder; -Ljavax/net/ssl/HttpsURLConnection; -Ljavax/net/ssl/KeyManager; -Ljavax/net/ssl/KeyManagerFactory$1; -Ljavax/net/ssl/KeyManagerFactory; -Ljavax/net/ssl/KeyManagerFactorySpi; -Ljavax/net/ssl/ManagerFactoryParameters; -Ljavax/net/ssl/SNIHostName; -Ljavax/net/ssl/SNIMatcher; -Ljavax/net/ssl/SNIServerName; -Ljavax/net/ssl/SSLContext; -Ljavax/net/ssl/SSLContextSpi; -Ljavax/net/ssl/SSLEngine; -Ljavax/net/ssl/SSLEngineResult$HandshakeStatus; -Ljavax/net/ssl/SSLEngineResult$Status; -Ljavax/net/ssl/SSLEngineResult; -Ljavax/net/ssl/SSLException; -Ljavax/net/ssl/SSLHandshakeException; -Ljavax/net/ssl/SSLParameters; -Ljavax/net/ssl/SSLPeerUnverifiedException; -Ljavax/net/ssl/SSLPermission; -Ljavax/net/ssl/SSLProtocolException; -Ljavax/net/ssl/SSLServerSocket; -Ljavax/net/ssl/SSLServerSocketFactory; -Ljavax/net/ssl/SSLSession; -Ljavax/net/ssl/SSLSessionBindingEvent; -Ljavax/net/ssl/SSLSessionBindingListener; -Ljavax/net/ssl/SSLSessionContext; -Ljavax/net/ssl/SSLSocket; -Ljavax/net/ssl/SSLSocketFactory$1; -Ljavax/net/ssl/SSLSocketFactory; -Ljavax/net/ssl/StandardConstants; -Ljavax/net/ssl/TrustManager; -Ljavax/net/ssl/TrustManagerFactory$1; -Ljavax/net/ssl/TrustManagerFactory; -Ljavax/net/ssl/TrustManagerFactorySpi; -Ljavax/net/ssl/X509ExtendedKeyManager; -Ljavax/net/ssl/X509ExtendedTrustManager; -Ljavax/net/ssl/X509KeyManager; -Ljavax/net/ssl/X509TrustManager; -Ljavax/security/auth/Destroyable; -Ljavax/security/auth/callback/Callback; -Ljavax/security/auth/callback/CallbackHandler; -Ljavax/security/auth/callback/PasswordCallback; -Ljavax/security/auth/callback/UnsupportedCallbackException; -Ljavax/security/auth/x500/X500Principal; -Ljavax/security/cert/Certificate; -Ljavax/security/cert/CertificateEncodingException; -Ljavax/security/cert/CertificateException; -Ljavax/security/cert/X509Certificate$1; -Ljavax/security/cert/X509Certificate; -Ljavax/sip/ClientTransaction; -Ljavax/sip/Dialog; -Ljavax/sip/DialogDoesNotExistException; -Ljavax/sip/DialogState; -Ljavax/sip/DialogTerminatedEvent; -Ljavax/sip/IOExceptionEvent; -Ljavax/sip/InvalidArgumentException; -Ljavax/sip/ListeningPoint; -Ljavax/sip/ObjectInUseException; -Ljavax/sip/PeerUnavailableException; -Ljavax/sip/ProviderDoesNotExistException; -Ljavax/sip/RequestEvent; -Ljavax/sip/ResponseEvent; -Ljavax/sip/ServerTransaction; -Ljavax/sip/SipException; -Ljavax/sip/SipFactory; -Ljavax/sip/SipListener; -Ljavax/sip/SipProvider; -Ljavax/sip/SipStack; -Ljavax/sip/Timeout; -Ljavax/sip/TimeoutEvent; -Ljavax/sip/Transaction; -Ljavax/sip/TransactionAlreadyExistsException; -Ljavax/sip/TransactionDoesNotExistException; -Ljavax/sip/TransactionState; -Ljavax/sip/TransactionTerminatedEvent; -Ljavax/sip/TransactionUnavailableException; -Ljavax/sip/TransportNotSupportedException; -Ljavax/sip/address/Address; -Ljavax/sip/address/AddressFactory; -Ljavax/sip/address/Hop; -Ljavax/sip/address/Router; -Ljavax/sip/address/SipURI; -Ljavax/sip/address/TelURL; -Ljavax/sip/address/URI; -Ljavax/sip/header/AcceptEncodingHeader; -Ljavax/sip/header/AcceptHeader; -Ljavax/sip/header/AcceptLanguageHeader; -Ljavax/sip/header/AlertInfoHeader; -Ljavax/sip/header/AllowEventsHeader; -Ljavax/sip/header/AllowHeader; -Ljavax/sip/header/AuthenticationInfoHeader; -Ljavax/sip/header/AuthorizationHeader; -Ljavax/sip/header/CSeqHeader; -Ljavax/sip/header/CallIdHeader; -Ljavax/sip/header/CallInfoHeader; -Ljavax/sip/header/ContactHeader; -Ljavax/sip/header/ContentDispositionHeader; -Ljavax/sip/header/ContentEncodingHeader; -Ljavax/sip/header/ContentLanguageHeader; -Ljavax/sip/header/ContentLengthHeader; -Ljavax/sip/header/ContentTypeHeader; -Ljavax/sip/header/DateHeader; -Ljavax/sip/header/Encoding; -Ljavax/sip/header/ErrorInfoHeader; -Ljavax/sip/header/EventHeader; -Ljavax/sip/header/ExpiresHeader; -Ljavax/sip/header/ExtensionHeader; -Ljavax/sip/header/FromHeader; -Ljavax/sip/header/Header; -Ljavax/sip/header/HeaderAddress; -Ljavax/sip/header/HeaderFactory; -Ljavax/sip/header/InReplyToHeader; -Ljavax/sip/header/MaxForwardsHeader; -Ljavax/sip/header/MediaType; -Ljavax/sip/header/MimeVersionHeader; -Ljavax/sip/header/MinExpiresHeader; -Ljavax/sip/header/OptionTag; -Ljavax/sip/header/OrganizationHeader; -Ljavax/sip/header/Parameters; -Ljavax/sip/header/PriorityHeader; -Ljavax/sip/header/ProxyAuthenticateHeader; -Ljavax/sip/header/ProxyAuthorizationHeader; -Ljavax/sip/header/ProxyRequireHeader; -Ljavax/sip/header/RAckHeader; -Ljavax/sip/header/RSeqHeader; -Ljavax/sip/header/ReasonHeader; -Ljavax/sip/header/RecordRouteHeader; -Ljavax/sip/header/ReferToHeader; -Ljavax/sip/header/ReplyToHeader; -Ljavax/sip/header/RequireHeader; -Ljavax/sip/header/RetryAfterHeader; -Ljavax/sip/header/RouteHeader; -Ljavax/sip/header/SIPETagHeader; -Ljavax/sip/header/SIPIfMatchHeader; -Ljavax/sip/header/ServerHeader; -Ljavax/sip/header/SubjectHeader; -Ljavax/sip/header/SubscriptionStateHeader; -Ljavax/sip/header/SupportedHeader; -Ljavax/sip/header/TimeStampHeader; -Ljavax/sip/header/ToHeader; -Ljavax/sip/header/TooManyHopsException; -Ljavax/sip/header/UnsupportedHeader; -Ljavax/sip/header/UserAgentHeader; -Ljavax/sip/header/ViaHeader; -Ljavax/sip/header/WWWAuthenticateHeader; -Ljavax/sip/header/WarningHeader; -Ljavax/sip/message/Message; -Ljavax/sip/message/MessageFactory; -Ljavax/sip/message/Request; -Ljavax/sip/message/Response; -Ljavax/xml/datatype/DatatypeConfigurationException; -Ljavax/xml/datatype/DatatypeConstants$Field; -Ljavax/xml/datatype/DatatypeConstants; -Ljavax/xml/datatype/Duration; -Ljavax/xml/namespace/QName; -Ljavax/xml/parsers/DocumentBuilder; -Ljavax/xml/parsers/DocumentBuilderFactory; -Ljavax/xml/parsers/ParserConfigurationException; -Ljavax/xml/parsers/SAXParser; -Ljavax/xml/parsers/SAXParserFactory; -Ljdk/internal/access/JavaIOFileDescriptorAccess; -Ljdk/internal/access/JavaObjectInputStreamAccess; -Ljdk/internal/access/JavaUtilCollectionAccess; -Ljdk/internal/access/SharedSecrets; -Ljdk/internal/math/FDBigInteger; -Ljdk/internal/math/FloatingDecimal$1; -Ljdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter; -Ljdk/internal/math/FloatingDecimal$BinaryToASCIIConverter; -Ljdk/internal/math/FloatingDecimal$ExceptionalBinaryToASCIIBuffer; -Ljdk/internal/math/FloatingDecimal$HexFloatPattern; -Ljdk/internal/math/FloatingDecimal; -Ljdk/internal/math/FormattedFloatingDecimal$1; -Ljdk/internal/math/FormattedFloatingDecimal$Form; -Ljdk/internal/math/FormattedFloatingDecimal; -Ljdk/internal/misc/TerminatingThreadLocal$1; -Ljdk/internal/misc/TerminatingThreadLocal; -Ljdk/internal/misc/Unsafe; -Ljdk/internal/misc/UnsafeConstants; -Ljdk/internal/misc/VM; -Ljdk/internal/ref/CleanerFactory; -Ljdk/internal/ref/CleanerImpl$PhantomCleanableRef; -Ljdk/internal/ref/CleanerImpl; -Ljdk/internal/ref/PhantomCleanable; -Ljdk/internal/reflect/Reflection; -Ljdk/internal/util/ArraysSupport; -Ljdk/internal/util/NullableKeyValueHolder; -Ljdk/internal/util/Preconditions; -Ljdk/internal/util/StaticProperty; -Ljdk/internal/util/random/RandomSupport; -Llibcore/content/type/MimeMap$$ExternalSyntheticLambda0; -Llibcore/content/type/MimeMap$Builder$Element; -Llibcore/content/type/MimeMap$Builder; -Llibcore/content/type/MimeMap$MemoizingSupplier; -Llibcore/content/type/MimeMap-IA; -Llibcore/content/type/MimeMap; -Llibcore/icu/CollationKeyICU; -Llibcore/icu/DateIntervalFormat; -Llibcore/icu/DecimalFormatData; -Llibcore/icu/ICU; -Llibcore/icu/LocaleData; -Llibcore/icu/SimpleDateFormatData; -Llibcore/icu/TimeZoneNames$1; -Llibcore/icu/TimeZoneNames$ZoneStringsCache; -Llibcore/icu/TimeZoneNames; -Llibcore/internal/StringPool; -Llibcore/io/AsynchronousCloseMonitor; -Llibcore/io/BufferIterator; -Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1; -Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection; -Llibcore/io/ClassPathURLStreamHandler; -Llibcore/io/ForwardingOs; -Llibcore/io/IoBridge; -Llibcore/io/IoTracker$Mode; -Llibcore/io/IoTracker; -Llibcore/io/IoUtils$FileReader; -Llibcore/io/IoUtils; -Llibcore/io/Libcore; -Llibcore/io/Linux; -Llibcore/io/Memory; -Llibcore/io/MemoryMappedFile; -Llibcore/io/NioBufferIterator; -Llibcore/io/Os; -Llibcore/io/Streams; -Llibcore/math/NativeBN; -Llibcore/net/InetAddressUtils; -Llibcore/net/NetworkSecurityPolicy$DefaultNetworkSecurityPolicy; -Llibcore/net/NetworkSecurityPolicy; -Llibcore/net/event/NetworkEventDispatcher; -Llibcore/net/event/NetworkEventListener; -Llibcore/net/http/Dns; -Llibcore/net/http/HttpDate$1; -Llibcore/net/http/HttpDate; -Llibcore/net/http/HttpURLConnectionFactory; -Llibcore/reflect/AnnotatedElements; -Llibcore/reflect/AnnotationFactory; -Llibcore/reflect/AnnotationMember$DefaultValues; -Llibcore/reflect/AnnotationMember; -Llibcore/reflect/GenericArrayTypeImpl; -Llibcore/reflect/GenericSignatureParser; -Llibcore/reflect/ListOfTypes; -Llibcore/reflect/ListOfVariables; -Llibcore/reflect/ParameterizedTypeImpl; -Llibcore/reflect/RecordComponents; -Llibcore/reflect/TypeVariableImpl; -Llibcore/reflect/Types; -Llibcore/reflect/WildcardTypeImpl; -Llibcore/util/ArrayUtils; -Llibcore/util/BasicLruCache; -Llibcore/util/CharsetUtils; -Llibcore/util/CollectionUtils; -Llibcore/util/EmptyArray; -Llibcore/util/FP16; -Llibcore/util/HexEncoding; -Llibcore/util/NativeAllocationRegistry$CleanerRunner; -Llibcore/util/NativeAllocationRegistry$CleanerThunk; -Llibcore/util/Objects; -Llibcore/util/SneakyThrow; -Llibcore/util/XmlObjectFactory; -Lorg/apache/harmony/dalvik/ddmc/Chunk; -Lorg/apache/harmony/dalvik/ddmc/ChunkHandler; -Lorg/apache/harmony/dalvik/ddmc/DdmServer; -Lorg/apache/harmony/dalvik/ddmc/DdmVmInternal; -Lorg/apache/harmony/xml/ExpatAttributes; -Lorg/apache/harmony/xml/ExpatException; -Lorg/apache/harmony/xml/ExpatParser$CurrentAttributes-IA; -Lorg/apache/harmony/xml/ExpatParser$CurrentAttributes; -Lorg/apache/harmony/xml/ExpatParser$ExpatLocator-IA; -Lorg/apache/harmony/xml/ExpatParser$ExpatLocator; -Lorg/apache/harmony/xml/ExpatParser$ParseException; -Lorg/apache/harmony/xml/ExpatParser; -Lorg/apache/harmony/xml/ExpatReader; -Lorg/apache/harmony/xml/dom/AttrImpl; -Lorg/apache/harmony/xml/dom/CDATASectionImpl; -Lorg/apache/harmony/xml/dom/CharacterDataImpl; -Lorg/apache/harmony/xml/dom/CommentImpl; -Lorg/apache/harmony/xml/dom/DOMImplementationImpl; -Lorg/apache/harmony/xml/dom/DocumentTypeImpl; -Lorg/apache/harmony/xml/dom/EntityReferenceImpl; -Lorg/apache/harmony/xml/dom/InnerNodeImpl; -Lorg/apache/harmony/xml/dom/LeafNodeImpl; -Lorg/apache/harmony/xml/dom/NodeImpl$1; -Lorg/apache/harmony/xml/dom/NodeImpl; -Lorg/apache/harmony/xml/dom/NodeListImpl; -Lorg/apache/harmony/xml/dom/ProcessingInstructionImpl; -Lorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl; -Lorg/apache/harmony/xml/parsers/DocumentBuilderImpl; -Lorg/apache/harmony/xml/parsers/SAXParserFactoryImpl; -Lorg/apache/harmony/xml/parsers/SAXParserImpl; -Lorg/apache/http/conn/ConnectTimeoutException; -Lorg/apache/http/conn/scheme/HostNameResolver; -Lorg/apache/http/conn/scheme/LayeredSocketFactory; -Lorg/apache/http/conn/scheme/SocketFactory; -Lorg/apache/http/conn/ssl/AbstractVerifier; -Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; -Lorg/apache/http/conn/ssl/AndroidDistinguishedNameParser; -Lorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier; -Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder; -Lorg/apache/http/conn/ssl/SSLSocketFactory; -Lorg/apache/http/conn/ssl/StrictHostnameVerifier; -Lorg/apache/http/conn/ssl/X509HostnameVerifier; -Lorg/apache/http/params/CoreConnectionPNames; -Lorg/apache/http/params/HttpConnectionParams; -Lorg/apache/http/params/HttpParams; -Lorg/ccil/cowan/tagsoup/AutoDetector; -Lorg/ccil/cowan/tagsoup/CommandLine; -Lorg/ccil/cowan/tagsoup/Element; -Lorg/ccil/cowan/tagsoup/ElementType; -Lorg/ccil/cowan/tagsoup/HTMLModels; -Lorg/ccil/cowan/tagsoup/HTMLScanner; -Lorg/ccil/cowan/tagsoup/HTMLSchema; -Lorg/ccil/cowan/tagsoup/PYXScanner; -Lorg/ccil/cowan/tagsoup/PYXWriter; -Lorg/ccil/cowan/tagsoup/Parser$1; -Lorg/ccil/cowan/tagsoup/Parser; -Lorg/ccil/cowan/tagsoup/ScanHandler; -Lorg/ccil/cowan/tagsoup/Scanner; -Lorg/ccil/cowan/tagsoup/Schema; -Lorg/ccil/cowan/tagsoup/XMLWriter; -Lorg/ccil/cowan/tagsoup/jaxp/JAXPTest; -Lorg/ccil/cowan/tagsoup/jaxp/SAX1ParserAdapter$AttributesWrapper; -Lorg/ccil/cowan/tagsoup/jaxp/SAX1ParserAdapter$DocHandlerWrapper; -Lorg/ccil/cowan/tagsoup/jaxp/SAX1ParserAdapter; -Lorg/ccil/cowan/tagsoup/jaxp/SAXFactoryImpl; -Lorg/ccil/cowan/tagsoup/jaxp/SAXParserImpl; -Lorg/json/JSON; -Lorg/json/JSONArray; -Lorg/json/JSONException; -Lorg/json/JSONObject$1; -Lorg/json/JSONObject; -Lorg/json/JSONStringer$Scope; -Lorg/json/JSONStringer; -Lorg/json/JSONTokener; -Lorg/w3c/dom/Attr; -Lorg/w3c/dom/CDATASection; -Lorg/w3c/dom/CharacterData; -Lorg/w3c/dom/Comment; -Lorg/w3c/dom/DOMException; -Lorg/w3c/dom/DOMImplementation; -Lorg/w3c/dom/Document; -Lorg/w3c/dom/DocumentFragment; -Lorg/w3c/dom/DocumentType; -Lorg/w3c/dom/Element; -Lorg/w3c/dom/EntityReference; -Lorg/w3c/dom/Node; -Lorg/w3c/dom/NodeList; -Lorg/w3c/dom/ProcessingInstruction; -Lorg/w3c/dom/Text; -Lorg/w3c/dom/TypeInfo; -Lorg/xml/sax/AttributeList; -Lorg/xml/sax/Attributes; -Lorg/xml/sax/ContentHandler; -Lorg/xml/sax/DTDHandler; -Lorg/xml/sax/DocumentHandler; -Lorg/xml/sax/EntityResolver; -Lorg/xml/sax/ErrorHandler; -Lorg/xml/sax/InputSource; -Lorg/xml/sax/Locator; -Lorg/xml/sax/Parser; -Lorg/xml/sax/SAXException; -Lorg/xml/sax/SAXNotRecognizedException; -Lorg/xml/sax/SAXNotSupportedException; -Lorg/xml/sax/SAXParseException; -Lorg/xml/sax/XMLFilter; -Lorg/xml/sax/XMLReader; -Lorg/xml/sax/ext/DeclHandler; -Lorg/xml/sax/ext/DefaultHandler2; -Lorg/xml/sax/ext/EntityResolver2; -Lorg/xml/sax/ext/LexicalHandler; -Lorg/xml/sax/helpers/AttributesImpl; -Lorg/xml/sax/helpers/DefaultHandler; -Lorg/xml/sax/helpers/LocatorImpl; -Lorg/xml/sax/helpers/NamespaceSupport; -Lorg/xml/sax/helpers/XMLFilterImpl; -Lorg/xmlpull/v1/XmlPullParser; -Lorg/xmlpull/v1/XmlPullParserException; -Lorg/xmlpull/v1/XmlPullParserFactory; -Lorg/xmlpull/v1/XmlSerializer; -Lsun/invoke/util/BytecodeDescriptor; -Lsun/invoke/util/VerifyAccess; -Lsun/invoke/util/Wrapper$Format; -Lsun/invoke/util/Wrapper; -Lsun/misc/ASCIICaseInsensitiveComparator; -Lsun/misc/CharacterEncoder; -Lsun/misc/Cleaner$1; -Lsun/misc/Cleaner; -Lsun/misc/CompoundEnumeration; -Lsun/misc/HexDumpEncoder; -Lsun/misc/IOUtils; -Lsun/misc/LRUCache; -Lsun/misc/Unsafe; -Lsun/misc/VM; -Lsun/misc/Version; -Lsun/net/ConnectionResetException; -Lsun/net/NetHooks; -Lsun/net/NetProperties$1; -Lsun/net/NetProperties; -Lsun/net/ResourceManager; -Lsun/net/SocksProxy; -Lsun/net/spi/DefaultProxySelector$1; -Lsun/net/spi/DefaultProxySelector$NonProxyInfo; -Lsun/net/spi/DefaultProxySelector; -Lsun/net/spi/nameservice/NameService; -Lsun/net/util/IPAddressUtil; -Lsun/net/www/ParseUtil; -Lsun/net/www/protocol/file/Handler; -Lsun/net/www/protocol/ftp/Handler; -Lsun/net/www/protocol/jar/Handler; -Lsun/nio/ch/AbstractPollArrayWrapper; -Lsun/nio/ch/AbstractPollSelectorImpl; -Lsun/nio/ch/AllocatedNativeObject; -Lsun/nio/ch/AsynchronousFileChannelImpl; -Lsun/nio/ch/ChannelInputStream; -Lsun/nio/ch/DatagramChannelImpl; -Lsun/nio/ch/DatagramDispatcher; -Lsun/nio/ch/DefaultSelectorProvider; -Lsun/nio/ch/DirectBuffer; -Lsun/nio/ch/FileChannelImpl$SimpleFileLockTable; -Lsun/nio/ch/FileChannelImpl$Unmapper-IA; -Lsun/nio/ch/FileChannelImpl$Unmapper; -Lsun/nio/ch/FileDescriptorHolderSocketImpl; -Lsun/nio/ch/FileDispatcher; -Lsun/nio/ch/FileDispatcherImpl; -Lsun/nio/ch/FileKey; -Lsun/nio/ch/FileLockImpl; -Lsun/nio/ch/FileLockTable; -Lsun/nio/ch/IOStatus; -Lsun/nio/ch/IOUtil; -Lsun/nio/ch/Interruptible; -Lsun/nio/ch/LinuxAsynchronousChannelProvider; -Lsun/nio/ch/NativeDispatcher; -Lsun/nio/ch/NativeObject; -Lsun/nio/ch/NativeThread; -Lsun/nio/ch/NativeThreadSet; -Lsun/nio/ch/Net$1; -Lsun/nio/ch/Net$3; -Lsun/nio/ch/Net; -Lsun/nio/ch/PollArrayWrapper; -Lsun/nio/ch/PollSelectorImpl; -Lsun/nio/ch/PollSelectorProvider; -Lsun/nio/ch/SelChImpl; -Lsun/nio/ch/SelectionKeyImpl; -Lsun/nio/ch/SelectorImpl; -Lsun/nio/ch/SelectorProviderImpl; -Lsun/nio/ch/ServerSocketChannelImpl; -Lsun/nio/ch/SharedFileLockTable$FileLockReference; -Lsun/nio/ch/SharedFileLockTable; -Lsun/nio/ch/SocketAdaptor$1; -Lsun/nio/ch/SocketAdaptor$2; -Lsun/nio/ch/SocketAdaptor$SocketInputStream; -Lsun/nio/ch/SocketAdaptor; -Lsun/nio/ch/SocketChannelImpl; -Lsun/nio/ch/SocketDispatcher; -Lsun/nio/ch/Util$1; -Lsun/nio/ch/Util$2; -Lsun/nio/ch/Util$3; -Lsun/nio/ch/Util$BufferCache; -Lsun/nio/ch/Util; -Lsun/nio/cs/ArrayDecoder; -Lsun/nio/cs/ArrayEncoder; -Lsun/nio/cs/StreamDecoder; -Lsun/nio/cs/StreamEncoder; -Lsun/nio/cs/ThreadLocalCoders$1; -Lsun/nio/cs/ThreadLocalCoders$2; -Lsun/nio/cs/ThreadLocalCoders$Cache; -Lsun/nio/cs/ThreadLocalCoders; -Lsun/nio/fs/AbstractBasicFileAttributeView; -Lsun/nio/fs/AbstractFileSystemProvider; -Lsun/nio/fs/AbstractPath; -Lsun/nio/fs/DefaultFileSystemProvider; -Lsun/nio/fs/DynamicFileAttributeView; -Lsun/nio/fs/FileOwnerAttributeViewImpl; -Lsun/nio/fs/LinuxFileSystemProvider; -Lsun/nio/fs/NativeBuffer$Deallocator; -Lsun/nio/fs/NativeBuffer; -Lsun/nio/fs/NativeBuffers; -Lsun/nio/fs/UnixChannelFactory$1; -Lsun/nio/fs/UnixChannelFactory$Flags; -Lsun/nio/fs/UnixChannelFactory; -Lsun/nio/fs/UnixConstants; -Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator; -Lsun/nio/fs/UnixDirectoryStream; -Lsun/nio/fs/UnixException; -Lsun/nio/fs/UnixFileAttributeViews$Basic; -Lsun/nio/fs/UnixFileAttributeViews$Posix; -Lsun/nio/fs/UnixFileAttributeViews; -Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes; -Lsun/nio/fs/UnixFileAttributes; -Lsun/nio/fs/UnixFileKey; -Lsun/nio/fs/UnixFileModeAttribute; -Lsun/nio/fs/UnixFileStoreAttributes; -Lsun/nio/fs/UnixFileSystem; -Lsun/nio/fs/UnixFileSystemProvider$3; -Lsun/nio/fs/UnixFileSystemProvider; -Lsun/nio/fs/UnixMountEntry; -Lsun/nio/fs/UnixNativeDispatcher; -Lsun/nio/fs/UnixSecureDirectoryStream; -Lsun/nio/fs/Util; -Lsun/reflect/Reflection; -Lsun/reflect/misc/ReflectUtil; -Lsun/security/action/GetBooleanAction; -Lsun/security/action/GetIntegerAction; -Lsun/security/action/GetPropertyAction; -Lsun/security/jca/GetInstance$Instance-IA; -Lsun/security/jca/GetInstance$Instance; -Lsun/security/jca/GetInstance; -Lsun/security/jca/JCAUtil$CachedSecureRandomHolder; -Lsun/security/jca/JCAUtil; -Lsun/security/jca/ProviderConfig$1; -Lsun/security/jca/ProviderConfig$2; -Lsun/security/jca/ProviderConfig$3; -Lsun/security/jca/ProviderConfig; -Lsun/security/jca/ProviderList$1; -Lsun/security/jca/ProviderList$2; -Lsun/security/jca/ProviderList$3; -Lsun/security/jca/ProviderList$ServiceList$1; -Lsun/security/jca/ProviderList$ServiceList; -Lsun/security/jca/ProviderList; -Lsun/security/jca/Providers; -Lsun/security/jca/ServiceId; -Lsun/security/pkcs/ContentInfo; -Lsun/security/pkcs/ESSCertId; -Lsun/security/pkcs/PKCS7$VerbatimX509Certificate; -Lsun/security/pkcs/PKCS7$WrappedX509Certificate; -Lsun/security/pkcs/PKCS7; -Lsun/security/pkcs/PKCS9Attribute; -Lsun/security/pkcs/PKCS9Attributes; -Lsun/security/pkcs/ParsingException; -Lsun/security/pkcs/SignerInfo; -Lsun/security/provider/CertPathProvider; -Lsun/security/provider/X509Factory; -Lsun/security/provider/certpath/AdaptableX509CertSelector; -Lsun/security/provider/certpath/AlgorithmChecker; -Lsun/security/provider/certpath/BasicChecker; -Lsun/security/provider/certpath/CertId; -Lsun/security/provider/certpath/CertPathHelper; -Lsun/security/provider/certpath/ConstraintsChecker; -Lsun/security/provider/certpath/KeyChecker; -Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus; -Lsun/security/provider/certpath/OCSP$RevocationStatus; -Lsun/security/provider/certpath/OCSP; -Lsun/security/provider/certpath/OCSPResponse$ResponseStatus; -Lsun/security/provider/certpath/OCSPResponse$SingleResponse-IA; -Lsun/security/provider/certpath/OCSPResponse$SingleResponse; -Lsun/security/provider/certpath/OCSPResponse; -Lsun/security/provider/certpath/PKIX$ValidatorParams; -Lsun/security/provider/certpath/PKIX; -Lsun/security/provider/certpath/PKIXCertPathValidator; -Lsun/security/provider/certpath/PKIXMasterCertPathValidator; -Lsun/security/provider/certpath/PolicyChecker; -Lsun/security/provider/certpath/PolicyNodeImpl; -Lsun/security/provider/certpath/RevocationChecker$1; -Lsun/security/provider/certpath/RevocationChecker$2; -Lsun/security/provider/certpath/RevocationChecker$Mode; -Lsun/security/provider/certpath/RevocationChecker$RevocationProperties-IA; -Lsun/security/provider/certpath/RevocationChecker$RevocationProperties; -Lsun/security/provider/certpath/RevocationChecker; -Lsun/security/timestamp/TimestampToken; -Lsun/security/util/AbstractAlgorithmConstraints$1; -Lsun/security/util/AbstractAlgorithmConstraints; -Lsun/security/util/AlgorithmDecomposer; -Lsun/security/util/AnchorCertificates$1; -Lsun/security/util/AnchorCertificates; -Lsun/security/util/BitArray; -Lsun/security/util/ByteArrayLexOrder; -Lsun/security/util/ByteArrayTagOrder; -Lsun/security/util/Cache$EqualByteArray; -Lsun/security/util/Cache; -Lsun/security/util/CertConstraintParameters; -Lsun/security/util/Debug; -Lsun/security/util/DerEncoder; -Lsun/security/util/DerIndefLenConverter; -Lsun/security/util/DerInputBuffer; -Lsun/security/util/DerInputStream; -Lsun/security/util/DerOutputStream; -Lsun/security/util/DerValue; -Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator; -Lsun/security/util/DisabledAlgorithmConstraints$Constraint; -Lsun/security/util/DisabledAlgorithmConstraints$Constraints; -Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint; -Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint; -Lsun/security/util/DisabledAlgorithmConstraints; -Lsun/security/util/FilePaths; -Lsun/security/util/KeyUtil; -Lsun/security/util/Length; -Lsun/security/util/ManifestDigester$Entry; -Lsun/security/util/ManifestDigester$Position; -Lsun/security/util/ManifestDigester; -Lsun/security/util/ManifestEntryVerifier$SunProviderHolder; -Lsun/security/util/ManifestEntryVerifier; -Lsun/security/util/MemoryCache$CacheEntry; -Lsun/security/util/MemoryCache$HardCacheEntry; -Lsun/security/util/MemoryCache$SoftCacheEntry; -Lsun/security/util/MemoryCache; -Lsun/security/util/ObjectIdentifier; -Lsun/security/util/PropertyExpander; -Lsun/security/util/Resources; -Lsun/security/util/ResourcesMgr$1; -Lsun/security/util/ResourcesMgr; -Lsun/security/util/SecurityConstants; -Lsun/security/util/SignatureFileVerifier; -Lsun/security/x509/AVA; -Lsun/security/x509/AVAComparator; -Lsun/security/x509/AVAKeyword; -Lsun/security/x509/AccessDescription; -Lsun/security/x509/AlgorithmId; -Lsun/security/x509/AuthorityInfoAccessExtension; -Lsun/security/x509/AuthorityKeyIdentifierExtension; -Lsun/security/x509/BasicConstraintsExtension; -Lsun/security/x509/CRLDistributionPointsExtension; -Lsun/security/x509/CRLNumberExtension; -Lsun/security/x509/CRLReasonCodeExtension; -Lsun/security/x509/CertAttrSet; -Lsun/security/x509/CertificateAlgorithmId; -Lsun/security/x509/CertificateExtensions; -Lsun/security/x509/CertificateIssuerExtension; -Lsun/security/x509/CertificatePoliciesExtension; -Lsun/security/x509/CertificatePolicyId; -Lsun/security/x509/CertificatePolicyMap; -Lsun/security/x509/CertificatePolicySet; -Lsun/security/x509/CertificateSerialNumber; -Lsun/security/x509/CertificateValidity; -Lsun/security/x509/CertificateVersion; -Lsun/security/x509/CertificateX509Key; -Lsun/security/x509/DNSName; -Lsun/security/x509/DeltaCRLIndicatorExtension; -Lsun/security/x509/DistributionPoint; -Lsun/security/x509/EDIPartyName; -Lsun/security/x509/ExtendedKeyUsageExtension; -Lsun/security/x509/Extension; -Lsun/security/x509/FreshestCRLExtension; -Lsun/security/x509/GeneralName; -Lsun/security/x509/GeneralNameInterface; -Lsun/security/x509/GeneralNames; -Lsun/security/x509/IPAddressName; -Lsun/security/x509/InhibitAnyPolicyExtension; -Lsun/security/x509/IssuerAlternativeNameExtension; -Lsun/security/x509/IssuingDistributionPointExtension; -Lsun/security/x509/KeyIdentifier; -Lsun/security/x509/KeyUsageExtension; -Lsun/security/x509/NameConstraintsExtension; -Lsun/security/x509/NetscapeCertTypeExtension$MapEntry; -Lsun/security/x509/NetscapeCertTypeExtension; -Lsun/security/x509/OCSPNoCheckExtension; -Lsun/security/x509/OIDMap$OIDInfo; -Lsun/security/x509/OIDMap; -Lsun/security/x509/OIDName; -Lsun/security/x509/OtherName; -Lsun/security/x509/PKIXExtensions; -Lsun/security/x509/PolicyConstraintsExtension; -Lsun/security/x509/PolicyInformation; -Lsun/security/x509/PolicyMappingsExtension; -Lsun/security/x509/PrivateKeyUsageExtension; -Lsun/security/x509/RDN; -Lsun/security/x509/RFC822Name; -Lsun/security/x509/SerialNumber; -Lsun/security/x509/SubjectAlternativeNameExtension; -Lsun/security/x509/SubjectInfoAccessExtension; -Lsun/security/x509/SubjectKeyIdentifierExtension; -Lsun/security/x509/URIName; -Lsun/security/x509/UniqueIdentity; -Lsun/security/x509/UnparseableExtension; -Lsun/security/x509/X500Name$1; -Lsun/security/x509/X500Name; -Lsun/security/x509/X509AttributeName; -Lsun/security/x509/X509CRLImpl; -Lsun/security/x509/X509CertImpl; -Lsun/security/x509/X509CertInfo; -Lsun/security/x509/X509Key; -Lsun/util/calendar/AbstractCalendar; -Lsun/util/calendar/BaseCalendar$Date; -Lsun/util/calendar/BaseCalendar; -Lsun/util/calendar/CalendarDate; -Lsun/util/calendar/CalendarSystem$GregorianHolder; -Lsun/util/calendar/CalendarSystem; -Lsun/util/calendar/CalendarUtils; -Lsun/util/calendar/Era; -Lsun/util/calendar/Gregorian$Date; -Lsun/util/calendar/Gregorian; -Lsun/util/calendar/ImmutableGregorianDate; -Lsun/util/calendar/JulianCalendar$Date; -Lsun/util/calendar/JulianCalendar; -Lsun/util/calendar/LocalGregorianCalendar; -Lsun/util/locale/BaseLocale$Cache; -Lsun/util/locale/BaseLocale$Key-IA; -Lsun/util/locale/BaseLocale$Key; -Lsun/util/locale/BaseLocale-IA; -Lsun/util/locale/BaseLocale; -Lsun/util/locale/Extension; -Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar-IA; -Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar; -Lsun/util/locale/InternalLocaleBuilder; -Lsun/util/locale/LanguageTag; -Lsun/util/locale/LocaleExtensions; -Lsun/util/locale/LocaleMatcher; -Lsun/util/locale/LocaleObjectCache$CacheEntry; -Lsun/util/locale/LocaleObjectCache; -Lsun/util/locale/LocaleSyntaxException; -Lsun/util/locale/LocaleUtils; -Lsun/util/locale/ParseStatus; -Lsun/util/locale/StringTokenIterator; -Lsun/util/locale/UnicodeLocaleExtension; -Lsun/util/locale/provider/CalendarDataUtility; -Lsun/util/logging/LoggingProxy; -Lsun/util/logging/LoggingSupport$1; -Lsun/util/logging/LoggingSupport$2; -Lsun/util/logging/LoggingSupport; -Lsun/util/logging/PlatformLogger$1; -Lsun/util/logging/PlatformLogger$DefaultLoggerProxy; -Lsun/util/logging/PlatformLogger$JavaLoggerProxy; -Lsun/util/logging/PlatformLogger$Level; -Lsun/util/logging/PlatformLogger$LoggerProxy; -Lsun/util/logging/PlatformLogger; -[B -[C -[D -[F -[I -[J -[Landroid/accounts/Account; -[Landroid/accounts/AuthenticatorDescription; -[Landroid/animation/Animator; -[Landroid/animation/Keyframe$FloatKeyframe; -[Landroid/animation/Keyframe$IntKeyframe; -[Landroid/animation/Keyframe$ObjectKeyframe; -[Landroid/animation/Keyframe; -[Landroid/animation/PropertyValuesHolder; -[Landroid/app/AppOpInfo; -[Landroid/app/BackStackState; -[Landroid/app/FragmentState; -[Landroid/app/LoaderManagerImpl; -[Landroid/app/Notification$Action; -[Landroid/app/NotificationChannel; -[Landroid/app/NotificationChannelGroup; -[Landroid/app/Person; -[Landroid/app/RemoteInput; -[Landroid/app/RemoteInputHistoryItem; -[Landroid/app/VoiceInteractor$Request; -[Landroid/app/admin/PasswordMetrics$ComplexityBucket; -[Landroid/app/assist/AssistStructure$ViewNode; -[Landroid/app/job/JobInfo$TriggerContentUri; -[Landroid/app/slice/SliceItem; -[Landroid/app/slice/SliceSpec; -[Landroid/audio/policy/configuration/V7_0/AudioUsage; -[Landroid/content/AttributionSourceState; -[Landroid/content/ComponentCallbacks; -[Landroid/content/ComponentName; -[Landroid/content/ContentProviderResult; -[Landroid/content/ContentValues; -[Landroid/content/Intent; -[Landroid/content/IntentFilter; -[Landroid/content/SyncAdapterType; -[Landroid/content/UndoOwner; -[Landroid/content/pm/ActivityInfo; -[Landroid/content/pm/Attribution; -[Landroid/content/pm/ConfigurationInfo; -[Landroid/content/pm/FeatureGroupInfo; -[Landroid/content/pm/FeatureInfo; -[Landroid/content/pm/InstrumentationInfo; -[Landroid/content/pm/PackageParser$NewPermissionInfo; -[Landroid/content/pm/PackagePartitions$SystemPartition; -[Landroid/content/pm/PathPermission; -[Landroid/content/pm/PermissionInfo; -[Landroid/content/pm/ProviderInfo; -[Landroid/content/pm/ServiceInfo; -[Landroid/content/pm/SharedLibraryInfo; -[Landroid/content/pm/Signature; -[Landroid/content/pm/VerifierInfo; -[Landroid/content/res/ApkAssets; -[Landroid/content/res/ColorStateList; -[Landroid/content/res/Configuration; -[Landroid/content/res/FontResourcesParser$FontFileResourceEntry; -[Landroid/content/res/XmlBlock; -[Landroid/content/res/loader/ResourcesLoader; -[Landroid/content/res/loader/ResourcesProvider; -[Landroid/database/Cursor; -[Landroid/database/CursorWindow; -[Landroid/database/sqlite/SQLiteConnection$Operation; -[Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus; -[Landroid/graphics/Bitmap$CompressFormat; -[Landroid/graphics/Bitmap$Config; -[Landroid/graphics/Bitmap; -[Landroid/graphics/BlendMode; -[Landroid/graphics/BlurMaskFilter$Blur; -[Landroid/graphics/Canvas$EdgeType; -[Landroid/graphics/ColorSpace$Adaptation; -[Landroid/graphics/ColorSpace$Model; -[Landroid/graphics/ColorSpace$Named; -[Landroid/graphics/ColorSpace$RenderIntent; -[Landroid/graphics/ColorSpace; -[Landroid/graphics/Insets; -[Landroid/graphics/Interpolator$Result; -[Landroid/graphics/Matrix$ScaleToFit; -[Landroid/graphics/Matrix; -[Landroid/graphics/Paint$Align; -[Landroid/graphics/Paint$Cap; -[Landroid/graphics/Paint$Join; -[Landroid/graphics/Paint$Style; -[Landroid/graphics/Path$Direction; -[Landroid/graphics/Path$FillType; -[Landroid/graphics/Path$Op; -[Landroid/graphics/Point; -[Landroid/graphics/PointF; -[Landroid/graphics/PorterDuff$Mode; -[Landroid/graphics/Rect; -[Landroid/graphics/Region$Op; -[Landroid/graphics/RenderNode$PositionUpdateListener; -[Landroid/graphics/Shader$TileMode; -[Landroid/graphics/Typeface; -[Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable; -[Landroid/graphics/drawable/Drawable; -[Landroid/graphics/drawable/GradientDrawable$Orientation; -[Landroid/graphics/drawable/LayerDrawable$ChildDrawable; -[Landroid/graphics/drawable/RippleForeground; -[Landroid/graphics/fonts/FontVariationAxis; -[Landroid/hardware/CameraStatus; -[Landroid/hardware/biometrics/BiometricSourceType; -[Landroid/hardware/camera2/params/Capability; -[Landroid/hardware/camera2/params/Face; -[Landroid/hardware/camera2/params/HighSpeedVideoConfiguration; -[Landroid/hardware/camera2/params/LensIntrinsicsSample; -[Landroid/hardware/camera2/params/MandatoryStreamCombination$ReprocessType; -[Landroid/hardware/camera2/params/MandatoryStreamCombination$SizeThreshold; -[Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamCombinationTemplate; -[Landroid/hardware/camera2/params/MandatoryStreamCombination$StreamTemplate; -[Landroid/hardware/camera2/params/MandatoryStreamCombination; -[Landroid/hardware/camera2/params/MeteringRectangle; -[Landroid/hardware/camera2/params/OisSample; -[Landroid/hardware/camera2/params/RecommendedStreamConfiguration; -[Landroid/hardware/camera2/params/StreamConfiguration; -[Landroid/hardware/camera2/params/StreamConfigurationDuration; -[Landroid/hardware/camera2/utils/ConcurrentCameraIdCombination; -[Landroid/hardware/display/WifiDisplay; -[Landroid/hardware/location/MemoryRegion; -[Landroid/hardware/location/NanoAppRpcService; -[Landroid/hardware/security/keymint/KeyParameter; -[Landroid/icu/impl/CacheValue$Strength; -[Landroid/icu/impl/CacheValue; -[Landroid/icu/impl/CalType; -[Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern; -[Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType; -[Landroid/icu/impl/DayPeriodRules$CutoffType; -[Landroid/icu/impl/DayPeriodRules$DayPeriod; -[Landroid/icu/impl/DayPeriodRules; -[Landroid/icu/impl/ICUCurrencyDisplayInfoProvider$ICUCurrencyDisplayInfo$CurrencySink$EntrypointTable; -[Landroid/icu/impl/ICUResourceBundle$OpenType; -[Landroid/icu/impl/LocaleDisplayNamesImpl$CapitalizationContextUsage; -[Landroid/icu/impl/LocaleDisplayNamesImpl$DataTableType; -[Landroid/icu/impl/StandardPlural; -[Landroid/icu/impl/StaticUnicodeSets$Key; -[Landroid/icu/impl/TimeZoneGenericNames$GenericNameType; -[Landroid/icu/impl/TimeZoneGenericNames$Pattern; -[Landroid/icu/impl/TimeZoneNamesImpl$ZNames$NameTypeIndex; -[Landroid/icu/impl/Trie2$ValueWidth; -[Landroid/icu/impl/UCharacterName$AlgorithmName; -[Landroid/icu/impl/UCharacterProperty$BinaryProperty; -[Landroid/icu/impl/UCharacterProperty$IntProperty; -[Landroid/icu/impl/ValidIdentifiers$Datasubtype; -[Landroid/icu/impl/ValidIdentifiers$Datatype; -[Landroid/icu/impl/coll/CollationRuleParser$Position; -[Landroid/icu/impl/coll/FCDIterCollationIterator$State; -[Landroid/icu/impl/duration/TimeUnit; -[Landroid/icu/impl/locale/KeyTypeData$KeyInfoType; -[Landroid/icu/impl/locale/KeyTypeData$SpecialType; -[Landroid/icu/impl/locale/KeyTypeData$TypeInfoType; -[Landroid/icu/impl/locale/KeyTypeData$ValueType; -[Landroid/icu/impl/locale/LSR; -[Landroid/icu/impl/locale/LocaleValidityChecker$SpecialCase; -[Landroid/icu/impl/number/CompactData$CompactType; -[Landroid/icu/impl/number/DecimalFormatProperties$ParseMode; -[Landroid/icu/impl/number/Modifier$Signum; -[Landroid/icu/impl/number/Modifier; -[Landroid/icu/impl/number/Padder$PadPosition; -[Landroid/icu/impl/number/PatternStringUtils$PatternSignType; -[Landroid/icu/impl/units/MeasureUnitImpl$CompoundPart; -[Landroid/icu/impl/units/MeasureUnitImpl$InitialCompoundPart; -[Landroid/icu/impl/units/MeasureUnitImpl$PowerPart; -[Landroid/icu/impl/units/MeasureUnitImpl$UnitsParser$Token$Type; -[Landroid/icu/lang/UCharacter$UnicodeBlock; -[Landroid/icu/lang/UScript$ScriptUsage; -[Landroid/icu/lang/UScriptRun$ParenStackEntry; -[Landroid/icu/number/NumberFormatter$DecimalSeparatorDisplay; -[Landroid/icu/number/NumberFormatter$GroupingStrategy; -[Landroid/icu/number/NumberFormatter$RoundingPriority; -[Landroid/icu/number/NumberFormatter$SignDisplay; -[Landroid/icu/number/NumberFormatter$TrailingZeroDisplay; -[Landroid/icu/number/NumberFormatter$UnitWidth; -[Landroid/icu/number/NumberRangeFormatter$RangeCollapse; -[Landroid/icu/number/NumberRangeFormatter$RangeIdentityFallback; -[Landroid/icu/number/NumberRangeFormatter$RangeIdentityResult; -[Landroid/icu/number/NumberSkeletonImpl$ParseState; -[Landroid/icu/number/NumberSkeletonImpl$StemEnum; -[Landroid/icu/text/AlphabeticIndex$Bucket$LabelType; -[Landroid/icu/text/Bidi$IsoRun; -[Landroid/icu/text/Bidi$Isolate; -[Landroid/icu/text/Bidi$Opening; -[Landroid/icu/text/Bidi$Point; -[Landroid/icu/text/BidiRun; -[Landroid/icu/text/BidiTransform$Mirroring; -[Landroid/icu/text/BidiTransform$Order; -[Landroid/icu/text/BidiTransform$ReorderingScheme; -[Landroid/icu/text/CharsetRecog_sbcs$NGramsPlusLang; -[Landroid/icu/text/CompactDecimalFormat$CompactStyle; -[Landroid/icu/text/ConstrainedFieldPosition$ConstraintType; -[Landroid/icu/text/DateFormat$BooleanAttribute; -[Landroid/icu/text/DateFormat$Field; -[Landroid/icu/text/DateFormat$HourCycle; -[Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType; -[Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage; -[Landroid/icu/text/DateTimePatternGenerator$DTPGflags; -[Landroid/icu/text/DateTimePatternGenerator$DisplayWidth; -[Landroid/icu/text/DisplayContext$Type; -[Landroid/icu/text/DisplayContext; -[Landroid/icu/text/IDNA$Error; -[Landroid/icu/text/ListFormatter$Type; -[Landroid/icu/text/ListFormatter$Width; -[Landroid/icu/text/LocaleDisplayNames$DialectHandling; -[Landroid/icu/text/MeasureFormat$FormatWidth; -[Landroid/icu/text/MessagePattern$ApostropheMode; -[Landroid/icu/text/MessagePattern$ArgType; -[Landroid/icu/text/MessagePattern$Part$Type; -[Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type; -[Landroid/icu/text/Normalizer2$Mode; -[Landroid/icu/text/PluralRules$KeywordStatus; -[Landroid/icu/text/PluralRules$Operand; -[Landroid/icu/text/PluralRules$PluralType; -[Landroid/icu/text/PluralRules$SampleType; -[Landroid/icu/text/RBBIRuleParseTable$RBBIRuleTableElement; -[Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit; -[Landroid/icu/text/RelativeDateTimeFormatter$Direction; -[Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit; -[Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit; -[Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit; -[Landroid/icu/text/RelativeDateTimeFormatter$Style; -[Landroid/icu/text/SearchIterator$ElementComparisonType; -[Landroid/icu/text/SimpleDateFormat$ContextValue; -[Landroid/icu/text/SpoofChecker$RestrictionLevel; -[Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType; -[Landroid/icu/text/TimeZoneFormat$OffsetFields; -[Landroid/icu/text/TimeZoneFormat$ParseOption; -[Landroid/icu/text/TimeZoneFormat$Style; -[Landroid/icu/text/TimeZoneFormat$TimeType; -[Landroid/icu/text/TimeZoneNames$NameType; -[Landroid/icu/text/UnicodeSet$ComparisonStyle; -[Landroid/icu/text/UnicodeSet$SpanCondition; -[Landroid/icu/text/UnicodeSet; -[Landroid/icu/text/UnicodeSetSpanner$CountMethod; -[Landroid/icu/text/UnicodeSetSpanner$TrimOption; -[Landroid/icu/util/BasicTimeZone$LocalOption; -[Landroid/icu/util/BytesTrie$Result; -[Landroid/icu/util/CodePointMap$RangeOption; -[Landroid/icu/util/CodePointMap; -[Landroid/icu/util/CodePointTrie$Type; -[Landroid/icu/util/CodePointTrie$ValueWidth; -[Landroid/icu/util/Currency$CurrencyUsage; -[Landroid/icu/util/GenderInfo$Gender; -[Landroid/icu/util/GenderInfo$ListGenderStyle; -[Landroid/icu/util/Holiday; -[Landroid/icu/util/IslamicCalendar$CalculationType; -[Landroid/icu/util/LocaleMatcher$Demotion; -[Landroid/icu/util/LocaleMatcher$Direction; -[Landroid/icu/util/LocaleMatcher$FavorSubtag; -[Landroid/icu/util/Measure; -[Landroid/icu/util/MeasureUnit$Complexity; -[Landroid/icu/util/MeasureUnit$MeasurePrefix; -[Landroid/icu/util/Region$RegionType; -[Landroid/icu/util/StringTrieBuilder$Node; -[Landroid/icu/util/StringTrieBuilder$Option; -[Landroid/icu/util/StringTrieBuilder$State; -[Landroid/icu/util/TimeArrayTimeZoneRule; -[Landroid/icu/util/TimeZone$SystemTimeZoneType; -[Landroid/icu/util/TimeZoneRule; -[Landroid/icu/util/ULocale$AvailableType; -[Landroid/icu/util/ULocale$Category; -[Landroid/icu/util/ULocale$Minimize; -[Landroid/icu/util/ULocale; -[Landroid/icu/util/UResourceBundle$RootType; -[Landroid/icu/util/UniversalTimeScale$TimeScaleData; -[Landroid/media/AudioAttributes; -[Landroid/media/AudioDeviceInfo; -[Landroid/media/AudioGain; -[Landroid/media/AudioPatch; -[Landroid/media/AudioPort; -[Landroid/media/AudioPortConfig; -[Landroid/media/DrmInitData$SchemeInitData; -[Landroid/media/ExifInterface$ExifTag; -[Landroid/media/ImageReader$SurfaceImage$SurfacePlane; -[Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane; -[Landroid/media/MediaCodecInfo$CodecCapabilities; -[Landroid/media/MediaCodecInfo$CodecProfileLevel; -[Landroid/media/MediaCodecInfo$Feature; -[Landroid/media/MediaCodecInfo; -[Landroid/media/MediaPlayer$TrackInfo; -[Landroid/media/MediaTimeProvider$OnMediaTimeListener; -[Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup; -[Landroid/net/LocalSocketAddress$Namespace; -[Landroid/net/NetworkKey; -[Landroid/net/Uri; -[Landroid/net/rtp/AudioCodec; -[Landroid/os/AsyncTask$Status; -[Landroid/os/BatteryConsumer$Key; -[Landroid/os/BatteryStats$BitDescription; -[Landroid/os/BatteryStats$IntToString; -[Landroid/os/BatteryStats$LongCounter; -[Landroid/os/Bundle; -[Landroid/os/DdmSyncState$Stage; -[Landroid/os/Debug$MemoryInfo; -[Landroid/os/IBinder; -[Landroid/os/MessageQueue$IdleHandler; -[Landroid/os/ParcelFileDescriptor; -[Landroid/os/ParcelUuid; -[Landroid/os/Parcelable; -[Landroid/os/PatternMatcher; -[Landroid/os/PersistableBundle; -[Landroid/os/SystemService$State; -[Landroid/os/Temperature; -[Landroid/os/UserHandle; -[Landroid/os/VibratorInfo; -[Landroid/os/health/HealthKeys$SortedIntArray; -[Landroid/os/storage/DiskInfo; -[Landroid/os/storage/StorageVolume; -[Landroid/os/storage/VolumeInfo; -[Landroid/os/storage/VolumeRecord; -[Landroid/os/vibrator/VibrationEffectSegment; -[Landroid/provider/FontsContract$FontInfo; -[Landroid/renderscript/Element$DataKind; -[Landroid/renderscript/Element$DataType; -[Landroid/renderscript/RenderScript$ContextType; -[Landroid/service/notification/NotificationListenerService$Ranking; -[Landroid/service/notification/StatusBarNotification; -[Landroid/service/notification/ZenModeConfig$ZenRule; -[Landroid/service/wallpaper/EngineWindowPage; -[Landroid/sysprop/CryptoProperties$state_values; -[Landroid/sysprop/CryptoProperties$type_values; -[Landroid/system/StructCapUserData; -[Landroid/system/StructIfaddrs; -[Landroid/system/StructPollfd; -[Landroid/system/keystore2/Authorization; -[Landroid/system/suspend/internal/WakeLockInfo; -[Landroid/telephony/ActivityStatsTechSpecificInfo; -[Landroid/telephony/LocationAccessPolicy$LocationPermissionResult; -[Landroid/telephony/SmsMessage$MessageClass; -[Landroid/telephony/SubscriptionPlan; -[Landroid/telephony/TelephonyManager$MultiSimVariants; -[Landroid/telephony/UiccAccessRule; -[Landroid/telephony/gsm/SmsMessage$MessageClass; -[Landroid/text/DynamicLayout$ChangeWatcher; -[Landroid/text/InputFilter; -[Landroid/text/Layout$Alignment; -[Landroid/text/Layout$Directions; -[Landroid/text/PrecomputedText$ParagraphInfo; -[Landroid/text/Selection$MemoryTextWatcher; -[Landroid/text/SpanWatcher; -[Landroid/text/TextLine; -[Landroid/text/TextUtils$TruncateAt; -[Landroid/text/TextWatcher; -[Landroid/text/method/MultiTapKeyListener; -[Landroid/text/method/QwertyKeyListener$Replaced; -[Landroid/text/method/QwertyKeyListener; -[Landroid/text/method/TextKeyListener$Capitalize; -[Landroid/text/method/TextKeyListener; -[Landroid/text/method/Touch$DragState; -[Landroid/text/style/AlignmentSpan; -[Landroid/text/style/CharacterStyle; -[Landroid/text/style/ClickableSpan; -[Landroid/text/style/LeadingMarginSpan; -[Landroid/text/style/LineBackgroundSpan; -[Landroid/text/style/LineBreakConfigSpan; -[Landroid/text/style/LineHeightSpan; -[Landroid/text/style/MetricAffectingSpan; -[Landroid/text/style/ParagraphStyle; -[Landroid/text/style/ReplacementSpan; -[Landroid/text/style/SpellCheckSpan; -[Landroid/text/style/SuggestionSpan; -[Landroid/text/style/TabStopSpan; -[Landroid/text/style/URLSpan; -[Landroid/util/ArrayMap; -[Landroid/util/DataUnit; -[Landroid/util/JsonScope; -[Landroid/util/JsonToken; -[Landroid/util/LongSparseArray; -[Landroid/util/Pair; -[Landroid/util/Range; -[Landroid/util/Rational; -[Landroid/util/Size; -[Landroid/util/SparseIntArray; -[Landroid/util/Xml$Encoding; -[Landroid/util/apk/DataSource; -[Landroid/view/AppTransitionAnimationSpec; -[Landroid/view/Choreographer$CallbackQueue; -[Landroid/view/Choreographer$FrameTimeline; -[Landroid/view/Display$Mode; -[Landroid/view/Display; -[Landroid/view/DisplayEventReceiver$VsyncEventData$FrameTimeline; -[Landroid/view/HandlerActionQueue$HandlerAction; -[Landroid/view/InsetsFrameProvider; -[Landroid/view/InsetsSource; -[Landroid/view/InsetsSourceControl; -[Landroid/view/MenuItem; -[Landroid/view/MotionEvent$PointerCoords; -[Landroid/view/MotionEvent$PointerProperties; -[Landroid/view/RemoteAnimationTarget; -[Landroid/view/RoundedCorner; -[Landroid/view/SurfaceControl$DisplayMode; -[Landroid/view/SurfaceHolder$Callback; -[Landroid/view/SyncRtSurfaceTransactionApplier$SurfaceParams; -[Landroid/view/View$AttachInfo$InvalidateInfo; -[Landroid/view/View; -[Landroid/view/WindowManager$LayoutParams; -[Landroid/view/accessibility/CaptioningManager$CaptionStyle; -[Landroid/view/autofill/AutofillId; -[Landroid/view/inputmethod/CompletionInfo; -[Landroid/view/inputmethod/InputMethodSubtype; -[Landroid/view/textservice/SentenceSuggestionsInfo; -[Landroid/view/textservice/SuggestionsInfo; -[Landroid/view/textservice/TextInfo; -[Landroid/webkit/ConsoleMessage$MessageLevel; -[Landroid/webkit/FindAddress$ZipRange; -[Landroid/webkit/WebMessagePort; -[Landroid/webkit/WebSettings$LayoutAlgorithm; -[Landroid/webkit/WebSettings$PluginState; -[Landroid/webkit/WebSettings$RenderPriority; -[Landroid/webkit/WebSettings$ZoomDensity; -[Landroid/widget/Editor$TextRenderNode; -[Landroid/widget/Editor$TextViewPositionListener; -[Landroid/widget/GridLayout$Arc; -[Landroid/widget/GridLayout$Bounds; -[Landroid/widget/GridLayout$Interval; -[Landroid/widget/GridLayout$MutableInt; -[Landroid/widget/GridLayout$Spec; -[Landroid/widget/ImageView$ScaleType; -[Landroid/widget/SpellChecker$RemoveReason; -[Landroid/widget/SpellChecker$SpellParser; -[Landroid/widget/TextView$BufferType; -[Landroid/widget/TextView$ChangeWatcher; -[Landroid/window/TransitionFilter$Requirement; -[Lcom/android/framework/protobuf/GeneratedMessageLite$MethodToInvoke; -[Lcom/android/framework/protobuf/MessageInfoFactory; -[Lcom/android/framework/protobuf/ProtoSyntax; -[Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType; -[Lcom/android/i18n/phonenumbers/PhoneNumberMatcher$State; -[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency; -[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType; -[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat; -[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType; -[Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult; -[Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource; -[Lcom/android/i18n/phonenumbers/ShortNumberInfo$ShortNumberCost; -[Lcom/android/internal/app/ResolverActivity$ActionTitle; -[Lcom/android/internal/graphics/drawable/BackgroundBlurDrawable$BlurRegion; -[Lcom/android/internal/os/PowerProfile$CpuClusterKey; -[Lcom/android/internal/os/ZygoteServer$UsapPoolRefillAction; -[Lcom/android/internal/policy/PhoneWindow$PanelFeatureState; -[Lcom/android/internal/protolog/ProtoLogGroup; -[Lcom/android/internal/statusbar/LetterboxDetails; -[Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation; -[Lcom/android/internal/telephony/Call$SrvccState; -[Lcom/android/internal/telephony/Call$State; -[Lcom/android/internal/telephony/CommandException$Error; -[Lcom/android/internal/telephony/Connection$PostDialState; -[Lcom/android/internal/telephony/DctConstants$Activity; -[Lcom/android/internal/telephony/DctConstants$State; -[Lcom/android/internal/telephony/DriverCall$State; -[Lcom/android/internal/telephony/IccCardConstants$State; -[Lcom/android/internal/telephony/MmiCode$State; -[Lcom/android/internal/telephony/OperatorInfo$State; -[Lcom/android/internal/telephony/Phone; -[Lcom/android/internal/telephony/PhoneConstants$DataState; -[Lcom/android/internal/telephony/PhoneConstants$State; -[Lcom/android/internal/telephony/PhoneInternalInterface$DataActivityState; -[Lcom/android/internal/telephony/PhoneInternalInterface$SuppService; -[Lcom/android/internal/telephony/SmsConstants$MessageClass; -[Lcom/android/internal/telephony/cat/AppInterface$CommandType; -[Lcom/android/internal/telephony/cat/ComprehensionTlvTag; -[Lcom/android/internal/telephony/cat/Duration$TimeUnit; -[Lcom/android/internal/telephony/cat/FontSize; -[Lcom/android/internal/telephony/cat/LaunchBrowserMode; -[Lcom/android/internal/telephony/cat/PresentationType; -[Lcom/android/internal/telephony/cat/ResultCode; -[Lcom/android/internal/telephony/cat/TextAlignment; -[Lcom/android/internal/telephony/cat/TextColor; -[Lcom/android/internal/telephony/cat/Tone; -[Lcom/android/internal/telephony/gsm/SsData$RequestType; -[Lcom/android/internal/telephony/gsm/SsData$ServiceType; -[Lcom/android/internal/telephony/gsm/SsData$TeleserviceType; -[Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$HoldSwapState; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularDataServiceSwitch; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$CellularServiceState; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$DataCallSession; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationStats; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$ImsRegistrationTermination; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$IncomingSms; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$NetworkRequests; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$OutgoingSms; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallRatUsage; -[Lcom/android/internal/telephony/nano/PersistAtomsProto$VoiceCallSession; -[Lcom/android/internal/telephony/phonenumbers/NumberParseException$ErrorType; -[Lcom/android/internal/telephony/phonenumbers/PhoneNumberMatcher$State; -[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$Leniency; -[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$MatchType; -[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberFormat; -[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$PhoneNumberType; -[Lcom/android/internal/telephony/phonenumbers/PhoneNumberUtil$ValidationResult; -[Lcom/android/internal/telephony/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource; -[Lcom/android/internal/telephony/phonenumbers/ShortNumberInfo$ShortNumberCost; -[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState; -[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType; -[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState; -[Lcom/android/internal/telephony/uicc/IccCardStatus$CardState; -[Lcom/android/internal/telephony/uicc/IccCardStatus$PinState; -[Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState; -[Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService; -[Lcom/android/internal/util/StateMachine$SmHandler$StateInfo; -[Lcom/android/internal/view/AppearanceRegion; -[Lcom/android/okhttp/CipherSuite; -[Lcom/android/okhttp/ConnectionSpec; -[Lcom/android/okhttp/HttpUrl$Builder$ParseResult; -[Lcom/android/okhttp/Protocol; -[Lcom/android/okhttp/TlsVersion; -[Lcom/android/okhttp/okio/ByteString; -[Lcom/android/org/bouncycastle/asn1/ASN1Encodable; -[Lcom/android/org/bouncycastle/asn1/ASN1Enumerated; -[Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier; -[Lcom/android/org/bouncycastle/asn1/ASN1OctetString; -[Lcom/android/org/bouncycastle/asn1/ASN1Primitive; -[Lcom/android/org/bouncycastle/crypto/params/DHParameters; -[Lcom/android/org/bouncycastle/crypto/params/DSAParameters; -[Lcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil$Boundaries; -[Lcom/android/org/kxml2/io/KXmlParser$ValueContext; -[Ldalvik/system/DexPathList$Element; -[Ldalvik/system/DexPathList$NativeLibraryElement; -[Lgov/nist/javax/sip/DialogTimeoutEvent$Reason; -[Ljava/io/File$PathStatus; -[Ljava/io/File; -[Ljava/io/ObjectInputStream$HandleTable$HandleList; -[Ljava/io/ObjectStreamClass$ClassDataSlot; -[Ljava/io/ObjectStreamClass$MemberSignature; -[Ljava/io/ObjectStreamField; -[Ljava/lang/Byte; -[Ljava/lang/CharSequence; -[Ljava/lang/Character$UnicodeBlock; -[Ljava/lang/Character; -[Ljava/lang/Class; -[Ljava/lang/ClassValue$Entry; -[Ljava/lang/Comparable; -[Ljava/lang/Daemons$Daemon; -[Ljava/lang/Double; -[Ljava/lang/Enum; -[Ljava/lang/Integer; -[Ljava/lang/Long; -[Ljava/lang/Number; -[Ljava/lang/Object; -[Ljava/lang/Package; -[Ljava/lang/ProcessBuilder$Redirect; -[Ljava/lang/Runnable; -[Ljava/lang/Short; -[Ljava/lang/StackTraceElement; -[Ljava/lang/StackWalker$Option; -[Ljava/lang/String; -[Ljava/lang/StringBuilder; -[Ljava/lang/Thread$State; -[Ljava/lang/Thread; -[Ljava/lang/ThreadGroup; -[Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; -[Ljava/lang/Throwable; -[Ljava/lang/annotation/Annotation; -[Ljava/lang/constant/ClassDesc; -[Ljava/lang/constant/Constable; -[Ljava/lang/constant/ConstantDesc; -[Ljava/lang/constant/DirectMethodHandleDesc$Kind; -[Ljava/lang/invoke/MethodHandle; -[Ljava/lang/invoke/MethodType; -[Ljava/lang/invoke/TypeDescriptor$OfField; -[Ljava/lang/invoke/VarHandle$AccessMode; -[Ljava/lang/invoke/VarHandle$AccessType; -[Ljava/lang/invoke/VarHandle$VarHandleDesc$Kind; -[Ljava/lang/ref/WeakReference; -[Ljava/lang/reflect/AccessibleObject; -[Ljava/lang/reflect/Constructor; -[Ljava/lang/reflect/Field; -[Ljava/lang/reflect/Method; -[Ljava/lang/reflect/Parameter; -[Ljava/lang/reflect/RecordComponent; -[Ljava/lang/reflect/Type; -[Ljava/lang/reflect/TypeVariable; -[Ljava/math/BigDecimal; -[Ljava/math/BigInteger; -[Ljava/math/RoundingMode; -[Ljava/net/Authenticator$RequestorType; -[Ljava/net/InetAddress; -[Ljava/net/InterfaceAddress; -[Ljava/net/NetworkInterface; -[Ljava/net/Proxy$Type; -[Ljava/net/StandardProtocolFamily; -[Ljava/nio/ByteBuffer; -[Ljava/nio/channels/SelectionKey; -[Ljava/nio/charset/CoderResult; -[Ljava/nio/file/AccessMode; -[Ljava/nio/file/CopyOption; -[Ljava/nio/file/FileVisitResult; -[Ljava/nio/file/LinkOption; -[Ljava/nio/file/OpenOption; -[Ljava/nio/file/StandardCopyOption; -[Ljava/nio/file/StandardOpenOption; -[Ljava/nio/file/attribute/FileAttribute; -[Ljava/security/CodeSigner; -[Ljava/security/CryptoPrimitive; -[Ljava/security/Permission; -[Ljava/security/Principal; -[Ljava/security/ProtectionDomain; -[Ljava/security/Provider; -[Ljava/security/cert/CRLReason; -[Ljava/security/cert/CertPathValidatorException$BasicReason; -[Ljava/security/cert/Certificate; -[Ljava/security/cert/PKIXReason; -[Ljava/security/cert/PKIXRevocationChecker$Option; -[Ljava/security/cert/X509CRL; -[Ljava/security/cert/X509Certificate; -[Ljava/text/DateFormat$Field; -[Ljava/text/Format; -[Ljava/text/Normalizer$Form; -[Ljava/text/NumberFormat$Style; -[Ljava/time/DayOfWeek; -[Ljava/time/LocalDateTime; -[Ljava/time/LocalTime; -[Ljava/time/Month; -[Ljava/time/ZoneOffset; -[Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser; -[Ljava/time/format/DateTimeFormatterBuilder$SettingsParser; -[Ljava/time/format/ResolverStyle; -[Ljava/time/format/SignStyle; -[Ljava/time/format/TextStyle; -[Ljava/time/temporal/ChronoField; -[Ljava/time/temporal/ChronoUnit; -[Ljava/time/temporal/IsoFields$Field; -[Ljava/time/temporal/IsoFields$Unit; -[Ljava/time/temporal/JulianFields$Field; -[Ljava/time/temporal/TemporalUnit; -[Ljava/time/zone/ZoneOffsetTransition; -[Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition; -[Ljava/time/zone/ZoneOffsetTransitionRule; -[Ljava/util/Comparators$NaturalOrderComparator; -[Ljava/util/Enumeration; -[Ljava/util/Formatter$Flags; -[Ljava/util/HashMap$Node; -[Ljava/util/Hashtable$HashtableEntry; -[Ljava/util/List; -[Ljava/util/Locale$Category; -[Ljava/util/Locale$FilteringMode; -[Ljava/util/Locale$IsoCountryCode; -[Ljava/util/Locale; -[Ljava/util/Map$Entry; -[Ljava/util/TimerTask; -[Ljava/util/WeakHashMap$Entry; -[Ljava/util/concurrent/ConcurrentHashMap$CounterCell; -[Ljava/util/concurrent/ConcurrentHashMap$Node; -[Ljava/util/concurrent/ConcurrentHashMap$Segment; -[Ljava/util/concurrent/ForkJoinPool$WorkQueue; -[Ljava/util/concurrent/ForkJoinTask; -[Ljava/util/concurrent/RunnableScheduledFuture; -[Ljava/util/concurrent/TimeUnit; -[Ljava/util/concurrent/atomic/Striped64$Cell; -[Ljava/util/logging/Handler; -[Ljava/util/prefs/AbstractPreferences; -[Ljava/util/regex/Pattern; -[Ljava/util/stream/Collector$Characteristics; -[Ljava/util/stream/MatchOps$MatchKind; -[Ljava/util/stream/StreamOpFlag$Type; -[Ljava/util/stream/StreamOpFlag; -[Ljava/util/stream/StreamShape; -[Ljavax/crypto/Cipher$InitType; -[Ljavax/crypto/Cipher$NeedToSet; -[Ljavax/microedition/khronos/egl/EGLConfig; -[Ljavax/net/ssl/KeyManager; -[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus; -[Ljavax/net/ssl/SSLEngineResult$Status; -[Ljavax/net/ssl/TrustManager; -[Ljavax/security/auth/callback/Callback; -[Ljavax/security/cert/X509Certificate; -[Ljavax/sip/DialogState; -[Ljavax/sip/Timeout; -[Ljavax/sip/TransactionState; -[Ljdk/internal/math/FDBigInteger; -[Ljdk/internal/math/FormattedFloatingDecimal$Form; -[Llibcore/io/ClassPathURLStreamHandler; -[Llibcore/io/IoTracker$Mode; -[Llibcore/reflect/AnnotationMember$DefaultValues; -[Llibcore/reflect/AnnotationMember; -[Lorg/json/JSONStringer$Scope; -[Lsun/invoke/util/Wrapper; -[Lsun/nio/ch/SelectionKeyImpl; -[Lsun/nio/fs/NativeBuffer; -[Lsun/security/jca/ProviderConfig; -[Lsun/security/jca/ServiceId; -[Lsun/security/pkcs/SignerInfo; -[Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus; -[Lsun/security/provider/certpath/OCSPResponse$ResponseStatus; -[Lsun/security/provider/certpath/RevocationChecker$Mode; -[Lsun/security/util/DerEncoder; -[Lsun/security/util/DerOutputStream; -[Lsun/security/util/DerValue; -[Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator; -[Lsun/security/util/ObjectIdentifier; -[Lsun/security/x509/AVA; -[Lsun/security/x509/AlgorithmId; -[Lsun/security/x509/NetscapeCertTypeExtension$MapEntry; -[Lsun/security/x509/RDN; -[Lsun/util/calendar/Era; -[Lsun/util/locale/BaseLocale; -[Lsun/util/logging/PlatformLogger$Level; -[S -[Z -[[B -[[D -[[I -[[J -[[Landroid/graphics/Rect; -[[Landroid/media/ExifInterface$ExifTag; -[[Landroid/widget/GridLayout$Arc; -[[Lcom/android/internal/widget/LockPatternView$Cell; -[[Ljava/lang/Byte; -[[Ljava/lang/Class; -[[Ljava/lang/Object; -[[Ljava/lang/String; -[[Ljava/lang/annotation/Annotation; -[[Ljava/lang/invoke/MethodHandle; -[[Ljava/math/BigInteger; -[[Z diff --git a/core/api/current.txt b/core/api/current.txt index 664dfe980b49..67b328057efe 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -8822,6 +8822,7 @@ package android.app.appfunctions { field @NonNull public static final android.os.Parcelable.Creator<android.app.appfunctions.ExecuteAppFunctionResponse> CREATOR; field public static final String PROPERTY_RETURN_VALUE = "returnValue"; field public static final int RESULT_APP_UNKNOWN_ERROR = 2; // 0x2 + field public static final int RESULT_CANCELLED = 7; // 0x7 field public static final int RESULT_DENIED = 1; // 0x1 field public static final int RESULT_DISABLED = 6; // 0x6 field public static final int RESULT_INTERNAL_ERROR = 3; // 0x3 @@ -11480,8 +11481,8 @@ package android.content { field @FlaggedApi("android.service.chooser.chooser_payload_toggling") public static final String EXTRA_CHOOSER_FOCUSED_ITEM_POSITION = "android.intent.extra.CHOOSER_FOCUSED_ITEM_POSITION"; field public static final String EXTRA_CHOOSER_MODIFY_SHARE_ACTION = "android.intent.extra.CHOOSER_MODIFY_SHARE_ACTION"; field public static final String EXTRA_CHOOSER_REFINEMENT_INTENT_SENDER = "android.intent.extra.CHOOSER_REFINEMENT_INTENT_SENDER"; - field @FlaggedApi("android.service.chooser.enable_chooser_result") public static final String EXTRA_CHOOSER_RESULT = "android.intent.extra.CHOOSER_RESULT"; - field @FlaggedApi("android.service.chooser.enable_chooser_result") public static final String EXTRA_CHOOSER_RESULT_INTENT_SENDER = "android.intent.extra.CHOOSER_RESULT_INTENT_SENDER"; + field public static final String EXTRA_CHOOSER_RESULT = "android.intent.extra.CHOOSER_RESULT"; + field public static final String EXTRA_CHOOSER_RESULT_INTENT_SENDER = "android.intent.extra.CHOOSER_RESULT_INTENT_SENDER"; field public static final String EXTRA_CHOOSER_TARGETS = "android.intent.extra.CHOOSER_TARGETS"; field public static final String EXTRA_CHOSEN_COMPONENT = "android.intent.extra.CHOSEN_COMPONENT"; field public static final String EXTRA_CHOSEN_COMPONENT_INTENT_SENDER = "android.intent.extra.CHOSEN_COMPONENT_INTENT_SENDER"; @@ -40652,7 +40653,7 @@ package android.service.chooser { method @NonNull public android.service.chooser.ChooserAction build(); } - @FlaggedApi("android.service.chooser.enable_chooser_result") public final class ChooserResult implements android.os.Parcelable { + public final class ChooserResult implements android.os.Parcelable { method public int describeContents(); method @Nullable public android.content.ComponentName getSelectedComponent(); method public int getType(); diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index 8447a7feb54e..287e7874be41 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -604,6 +604,7 @@ package android.telephony { public class TelephonyManager { method @NonNull public static int[] getAllNetworkTypes(); + method @FlaggedApi("android.os.mainline_vcn_platform_api") @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.Set<java.lang.String> getPackagesWithCarrierPrivileges(); } } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 20bcf5fdf6fb..1a1f3548fa74 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -13046,6 +13046,7 @@ package android.service.notification { method public void onPanelHidden(); method public void onPanelRevealed(int); method public void onSuggestedReplySent(@NonNull String, @NonNull CharSequence, int); + method @FlaggedApi("android.service.notification.notification_classification") public final void setAdjustmentTypeSupportedState(@NonNull String, boolean); method public final void unsnoozeNotification(@NonNull String); field public static final String ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS = "android.service.notification.action.NOTIFICATION_ASSISTANT_DETAIL_SETTINGS"; field @FlaggedApi("android.service.notification.notification_classification") public static final String ACTION_NOTIFICATION_ASSISTANT_FEEDBACK_SETTINGS = "android.service.notification.action.NOTIFICATION_ASSISTANT_FEEDBACK_SETTINGS"; diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 0a10920154b8..9bcdf959a6a7 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -396,6 +396,7 @@ package android.app { method public void cleanUpCallersAfter(long); method @FlaggedApi("android.app.modes_api") @NonNull public android.service.notification.ZenPolicy getDefaultZenPolicy(); method public android.content.ComponentName getEffectsSuppressor(); + method @FlaggedApi("android.service.notification.notification_classification") @NonNull public java.util.Set<java.lang.String> getUnsupportedAdjustmentTypes(); method public boolean isNotificationPolicyAccessGrantedForPackage(@NonNull String); method @FlaggedApi("android.app.modes_api") public boolean removeAutomaticZenRule(@NonNull String, boolean); method @FlaggedApi("android.app.api_rich_ongoing") public void setCanPostPromotedNotifications(@NonNull String, int, boolean); @@ -3123,7 +3124,7 @@ package android.service.autofill.augmented { package android.service.chooser { - @FlaggedApi("android.service.chooser.enable_chooser_result") public final class ChooserResult implements android.os.Parcelable { + public final class ChooserResult implements android.os.Parcelable { ctor public ChooserResult(int, @Nullable android.content.ComponentName, boolean); } diff --git a/core/java/Android.bp b/core/java/Android.bp index 99046328b1e2..2fa418a0ca58 100644 --- a/core/java/Android.bp +++ b/core/java/Android.bp @@ -660,7 +660,7 @@ java_library { java_library { name: "protolog-groups", srcs: [ - "com/android/internal/protolog/ProtoLogGroup.java", + "com/android/internal/protolog/WmProtoLogGroups.java", ":protolog-common-src", ], } diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl index 8a54b5d4ec4f..3b2aab4591a5 100644 --- a/core/java/android/app/INotificationManager.aidl +++ b/core/java/android/app/INotificationManager.aidl @@ -160,8 +160,8 @@ interface INotificationManager void requestBindProvider(in ComponentName component); void requestUnbindProvider(in IConditionProvider token); - void setNotificationsShownFromListener(in INotificationListener token, in String[] keys); + void setNotificationsShownFromListener(in INotificationListener token, in String[] keys); ParceledListSlice getActiveNotificationsFromListener(in INotificationListener token, in String[] keys, int trim); ParceledListSlice getSnoozedNotificationsFromListener(in INotificationListener token, int trim); void clearRequestedListenerHints(in INotificationListener token); @@ -261,4 +261,7 @@ interface INotificationManager void setCanBePromoted(String pkg, int uid, boolean promote, boolean fromUser); boolean appCanBePromoted(String pkg, int uid); boolean canBePromoted(String pkg); + + void setAdjustmentTypeSupportedState(in INotificationListener token, String key, boolean supported); + List<String> getUnsupportedAdjustmentTypes(); } diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index c7b84ae6283b..dfed1f738e44 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -68,9 +68,11 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.concurrent.Executor; /** @@ -3094,4 +3096,19 @@ public class NotificationManager { } } + /** + * Returns the list of {@link Adjustment} keys that the current approved + * {@link android.service.notification.NotificationAssistantService} does not support. + * @hide + */ + @TestApi + @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public @NonNull Set<String> getUnsupportedAdjustmentTypes() { + INotificationManager service = getService(); + try { + return new HashSet<>(service.getUnsupportedAdjustmentTypes()); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java index 99e622053fee..af242dda9341 100644 --- a/core/java/android/app/TaskInfo.java +++ b/core/java/android/app/TaskInfo.java @@ -35,6 +35,7 @@ import android.os.Build; import android.os.IBinder; import android.os.Parcel; import android.view.DisplayCutout; +import android.view.WindowInsets; import android.window.WindowContainerToken; import java.util.ArrayList; @@ -329,6 +330,13 @@ public class TaskInfo { public long capturedLinkTimestamp; /** + * The requested visible types of insets. + * @hide + */ + @WindowInsets.Type.InsetsType + public int requestedVisibleTypes; + + /** * Encapsulate specific App Compat information. * @hide */ @@ -465,6 +473,7 @@ public class TaskInfo { && lastNonFullscreenBounds == this.lastNonFullscreenBounds && Objects.equals(capturedLink, that.capturedLink) && capturedLinkTimestamp == that.capturedLinkTimestamp + && requestedVisibleTypes == that.requestedVisibleTypes && appCompatTaskInfo.equalsForTaskOrganizer(that.appCompatTaskInfo); } @@ -539,6 +548,7 @@ public class TaskInfo { lastNonFullscreenBounds = source.readTypedObject(Rect.CREATOR); capturedLink = source.readTypedObject(Uri.CREATOR); capturedLinkTimestamp = source.readLong(); + requestedVisibleTypes = source.readInt(); appCompatTaskInfo = source.readTypedObject(AppCompatTaskInfo.CREATOR); } @@ -591,6 +601,7 @@ public class TaskInfo { dest.writeTypedObject(lastNonFullscreenBounds, flags); dest.writeTypedObject(capturedLink, flags); dest.writeLong(capturedLinkTimestamp); + dest.writeInt(requestedVisibleTypes); dest.writeTypedObject(appCompatTaskInfo, flags); } @@ -633,6 +644,7 @@ public class TaskInfo { + " lastNonFullscreenBounds=" + lastNonFullscreenBounds + " capturedLink=" + capturedLink + " capturedLinkTimestamp=" + capturedLinkTimestamp + + " requestedVisibleTypes=" + requestedVisibleTypes + " appCompatTaskInfo=" + appCompatTaskInfo + "}"; } diff --git a/core/java/android/app/admin/flags/flags.aconfig b/core/java/android/app/admin/flags/flags.aconfig index d9f886d41aa8..fd583773d4e9 100644 --- a/core/java/android/app/admin/flags/flags.aconfig +++ b/core/java/android/app/admin/flags/flags.aconfig @@ -323,9 +323,9 @@ flag { } flag { - name: "dont_read_policy_definition" + name: "dont_write_policy_definition" namespace: "enterprise" - description: "Rely on <policy-key-entry> to determine policy definition and ignore <policy-definition-entry>" + description: "Don't write redundant policy-definition-entry tags" bug: "335663055" metadata { purpose: PURPOSE_BUGFIX diff --git a/core/java/android/app/appfunctions/AppFunctionManager.java b/core/java/android/app/appfunctions/AppFunctionManager.java index 6797a51e59f4..439d988e2588 100644 --- a/core/java/android/app/appfunctions/AppFunctionManager.java +++ b/core/java/android/app/appfunctions/AppFunctionManager.java @@ -305,17 +305,18 @@ public final class AppFunctionManager { @Override public void onError(@NonNull ParcelableException exception) { - mExecutor.execute(() -> { - if (IllegalArgumentException.class.isAssignableFrom( - exception.getCause().getClass())) { - mCallback.onError((IllegalArgumentException) exception.getCause()); - } else if (SecurityException.class.isAssignableFrom( - exception.getCause().getClass())) { - mCallback.onError((SecurityException) exception.getCause()); - } else { - mCallback.onError(exception); - } - }); + mExecutor.execute( + () -> { + if (IllegalArgumentException.class.isAssignableFrom( + exception.getCause().getClass())) { + mCallback.onError((IllegalArgumentException) exception.getCause()); + } else if (SecurityException.class.isAssignableFrom( + exception.getCause().getClass())) { + mCallback.onError((SecurityException) exception.getCause()); + } else { + mCallback.onError(exception); + } + }); } } } diff --git a/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java b/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java index 4ed0a1b50a08..2851e92bd57f 100644 --- a/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java +++ b/core/java/android/app/appfunctions/ExecuteAppFunctionResponse.java @@ -102,6 +102,12 @@ public final class ExecuteAppFunctionResponse implements Parcelable { /** The caller tried to execute a disabled app function. */ public static final int RESULT_DISABLED = 6; + /** + * The operation was cancelled. Use this error code to report that a cancellation is done after + * receiving a cancellation signal. + */ + public static final int RESULT_CANCELLED = 7; + /** The result code of the app function execution. */ @ResultCode private final int mResultCode; @@ -278,6 +284,7 @@ public final class ExecuteAppFunctionResponse implements Parcelable { RESULT_INVALID_ARGUMENT, RESULT_TIMED_OUT, RESULT_DISABLED, + RESULT_CANCELLED }) @Retention(RetentionPolicy.SOURCE) public @interface ResultCode {} diff --git a/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java b/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java index 86fc36960203..00182447e9a8 100644 --- a/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java +++ b/core/java/android/app/appfunctions/SafeOneTimeExecuteAppFunctionCallback.java @@ -72,4 +72,12 @@ public class SafeOneTimeExecuteAppFunctionCallback { mOnDispatchCallback.accept(result); } } + + /** + * Disables this callback. Subsequent calls to {@link #onResult(ExecuteAppFunctionResponse)} + * will be ignored. + */ + public void disable() { + mOnResultCalled.set(true); + } } diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 044178c4f6aa..9a93ec4d3b40 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1064,11 +1064,7 @@ public class Intent implements Parcelable, Cloneable { } if (sender != null) { - if (android.service.chooser.Flags.enableChooserResult()) { - intent.putExtra(EXTRA_CHOOSER_RESULT_INTENT_SENDER, sender); - } else { - intent.putExtra(EXTRA_CHOSEN_COMPONENT_INTENT_SENDER, sender); - } + intent.putExtra(EXTRA_CHOOSER_RESULT_INTENT_SENDER, sender); } // Migrate any clip data and flags from target. @@ -6425,7 +6421,6 @@ public class Intent implements Parcelable, Cloneable { * activity. The IntentSender will have the extra {@link #EXTRA_CHOOSER_RESULT} describing * the result. */ - @FlaggedApi(android.service.chooser.Flags.FLAG_ENABLE_CHOOSER_RESULT) public static final String EXTRA_CHOOSER_RESULT_INTENT_SENDER = "android.intent.extra.CHOOSER_RESULT_INTENT_SENDER"; @@ -6435,7 +6430,6 @@ public class Intent implements Parcelable, Cloneable { * An instance is supplied to the optional IntentSender provided to * {@link #createChooser(Intent, CharSequence, IntentSender)} when the session completes. */ - @FlaggedApi(android.service.chooser.Flags.FLAG_ENABLE_CHOOSER_RESULT) public static final String EXTRA_CHOOSER_RESULT = "android.intent.extra.CHOOSER_RESULT"; /** diff --git a/core/java/android/content/pm/TEST_MAPPING b/core/java/android/content/pm/TEST_MAPPING index 2cdae21bde92..44f2a4ca38e2 100644 --- a/core/java/android/content/pm/TEST_MAPPING +++ b/core/java/android/content/pm/TEST_MAPPING @@ -114,6 +114,17 @@ ] }, { + "name": "CtsPackageInstallerCUJDeviceAdminTestCases", + "options":[ + { + "exclude-annotation":"androidx.test.filters.FlakyTest" + }, + { + "exclude-annotation":"org.junit.Ignore" + } + ] + }, + { "name": "CtsPackageInstallerCUJInstallationTestCases", "options":[ { @@ -125,6 +136,17 @@ ] }, { + "name": "CtsPackageInstallerCUJMultiUsersTestCases", + "options":[ + { + "exclude-annotation":"androidx.test.filters.FlakyTest" + }, + { + "exclude-annotation":"org.junit.Ignore" + } + ] + }, + { "name": "CtsPackageInstallerCUJUninstallationTestCases", "options":[ { diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java index 1b21bdf7ba45..9e3a9b389b05 100644 --- a/core/java/android/hardware/camera2/CameraManager.java +++ b/core/java/android/hardware/camera2/CameraManager.java @@ -69,6 +69,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceSpecificException; import android.os.SystemProperties; +import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; @@ -80,6 +81,7 @@ import com.android.internal.camera.flags.Flags; import com.android.internal.util.ArrayUtils; import java.lang.ref.WeakReference; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -2157,6 +2159,12 @@ public final class CameraManager { private final Set<Set<DeviceCameraInfo>> mConcurrentCameraIdCombinations = new ArraySet<>(); + // Diagnostic messages for ArrayIndexOutOfBoundsException in extractCameraIdListLocked + // b/367649718 + private static final int DEVICE_STATUS_ARRAY_SIZE = 10; + private final ArrayDeque<String> mDeviceStatusHistory = + new ArrayDeque<>(DEVICE_STATUS_ARRAY_SIZE); + // Registered availability callbacks and their executors private final ArrayMap<AvailabilityCallback, Executor> mCallbackMap = new ArrayMap<>(); @@ -2274,6 +2282,10 @@ public final class CameraManager { } try { + addDeviceStatusHistoryLocked(TextUtils.formatSimple( + "connectCameraServiceLocked(E): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); + CameraStatus[] cameraStatuses = cameraService.addListener(this); for (CameraStatus cameraStatus : cameraStatuses) { DeviceCameraInfo info = new DeviceCameraInfo(cameraStatus.cameraId, @@ -2296,6 +2308,10 @@ public final class CameraManager { } } mCameraService = cameraService; + + addDeviceStatusHistoryLocked(TextUtils.formatSimple( + "connectCameraServiceLocked(X): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); } catch (ServiceSpecificException e) { // Unexpected failure throw new IllegalStateException("Failed to register a camera service listener", e); @@ -2349,18 +2365,28 @@ public final class CameraManager { } private String[] extractCameraIdListLocked(int deviceId, int devicePolicy) { - List<String> cameraIds = new ArrayList<>(); - for (int i = 0; i < mDeviceStatus.size(); i++) { - int status = mDeviceStatus.valueAt(i); - DeviceCameraInfo info = mDeviceStatus.keyAt(i); - if (status == ICameraServiceListener.STATUS_NOT_PRESENT - || status == ICameraServiceListener.STATUS_ENUMERATING - || shouldHideCamera(deviceId, devicePolicy, info)) { - continue; + addDeviceStatusHistoryLocked(TextUtils.formatSimple( + "extractCameraIdListLocked(E): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); + try { + List<String> cameraIds = new ArrayList<>(); + for (int i = 0; i < mDeviceStatus.size(); i++) { + int status = mDeviceStatus.valueAt(i); + DeviceCameraInfo info = mDeviceStatus.keyAt(i); + if (status == ICameraServiceListener.STATUS_NOT_PRESENT + || status == ICameraServiceListener.STATUS_ENUMERATING + || shouldHideCamera(deviceId, devicePolicy, info)) { + continue; + } + cameraIds.add(info.mCameraId); } - cameraIds.add(info.mCameraId); + return cameraIds.toArray(new String[0]); + } catch (ArrayIndexOutOfBoundsException e) { + String message = e.getMessage(); + String messageWithHistory = message + ": {" + + String.join(" -> ", mDeviceStatusHistory) + "}"; + throw new ArrayIndexOutOfBoundsException(messageWithHistory); } - return cameraIds.toArray(new String[0]); } private Set<Set<String>> extractConcurrentCameraIdListLocked(int deviceId, @@ -2488,6 +2514,10 @@ public final class CameraManager { synchronized (mLock) { connectCameraServiceLocked(); try { + addDeviceStatusHistoryLocked(TextUtils.formatSimple( + "getCameraIdListNoLazy(E): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); + // The purpose of the addListener, removeListener pair here is to get a fresh // list of camera ids from cameraserver. We do this since for in test processes, // changes can happen w.r.t non-changeable permissions (eg: SYSTEM_CAMERA @@ -2521,6 +2551,9 @@ public final class CameraManager { onStatusChangedLocked(ICameraServiceListener.STATUS_NOT_PRESENT, info); mTorchStatus.remove(info); } + addDeviceStatusHistoryLocked(TextUtils.formatSimple( + "getCameraIdListNoLazy(X): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); } catch (ServiceSpecificException e) { // Unexpected failure throw new IllegalStateException("Failed to register a camera service listener", @@ -3209,7 +3242,13 @@ public final class CameraManager { public void onStatusChanged(int status, String cameraId, int deviceId) throws RemoteException { synchronized(mLock) { + addDeviceStatusHistoryLocked( + TextUtils.formatSimple("onStatusChanged(E): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); onStatusChangedLocked(status, new DeviceCameraInfo(cameraId, deviceId)); + addDeviceStatusHistoryLocked( + TextUtils.formatSimple("onStatusChanged(X): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); } } @@ -3352,6 +3391,10 @@ public final class CameraManager { */ public void binderDied() { synchronized(mLock) { + addDeviceStatusHistoryLocked( + TextUtils.formatSimple("binderDied(E): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); + // Only do this once per service death if (mCameraService == null) return; @@ -3380,6 +3423,10 @@ public final class CameraManager { mConcurrentCameraIdCombinations.clear(); scheduleCameraServiceReconnectionLocked(); + + addDeviceStatusHistoryLocked( + TextUtils.formatSimple("binderDied(X): tid(%d): mDeviceStatus size %d", + Thread.currentThread().getId(), mDeviceStatus.size())); } } @@ -3409,5 +3456,13 @@ public final class CameraManager { return Objects.hash(mCameraId, mDeviceId); } } + + private void addDeviceStatusHistoryLocked(String log) { + if (mDeviceStatusHistory.size() == DEVICE_STATUS_ARRAY_SIZE) { + mDeviceStatusHistory.removeFirst(); + } + mDeviceStatusHistory.addLast(log); + } + } // CameraManagerGlobal } // CameraManager diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java index 73b5d947c0fe..e5980972d590 100644 --- a/core/java/android/hardware/display/DisplayManagerInternal.java +++ b/core/java/android/hardware/display/DisplayManagerInternal.java @@ -431,6 +431,17 @@ public abstract class DisplayManagerInternal { */ public abstract IntArray getDisplayGroupIds(); + + /** + * Get all display ids belonging to the display group with given id. + */ + public abstract int[] getDisplayIdsForGroup(int groupId); + + /** + * Get the mapping of display group ids to the display ids that belong to them. + */ + public abstract SparseArray<int[]> getDisplayIdsByGroupsIds(); + /** * Get all available display ids. */ diff --git a/core/java/android/hardware/input/input_framework.aconfig b/core/java/android/hardware/input/input_framework.aconfig index 75683f607c35..99eeca98bce0 100644 --- a/core/java/android/hardware/input/input_framework.aconfig +++ b/core/java/android/hardware/input/input_framework.aconfig @@ -106,9 +106,6 @@ flag { description: "Manage key gestures through Input APIs" is_exported: true bug: "358569822" - metadata { - purpose: PURPOSE_BUGFIX - } } flag { diff --git a/core/java/android/os/BatteryConsumer.java b/core/java/android/os/BatteryConsumer.java index 492b82543fcc..b0ecca790b80 100644 --- a/core/java/android/os/BatteryConsumer.java +++ b/core/java/android/os/BatteryConsumer.java @@ -69,6 +69,7 @@ public abstract class BatteryConsumer { POWER_COMPONENT_AMBIENT_DISPLAY, POWER_COMPONENT_IDLE, POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS, + POWER_COMPONENT_BASE, }) @Retention(RetentionPolicy.SOURCE) public @interface PowerComponent { @@ -101,8 +102,10 @@ public abstract class BatteryConsumer { // The value should be negative or zero. public static final int POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS = OsProtoEnums.POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS; // 17 - - public static final int POWER_COMPONENT_COUNT = 18; + // Power component ID that is used for technical purposes of attribution of time-in-state + // for UIDs and other general computations not associated with specific hardware. + public static final int POWER_COMPONENT_BASE = 18; + public static final int POWER_COMPONENT_COUNT = 19; public static final int FIRST_CUSTOM_POWER_COMPONENT_ID = 1000; public static final int LAST_CUSTOM_POWER_COMPONENT_ID = 9999; @@ -129,6 +132,7 @@ public abstract class BatteryConsumer { sPowerComponentNames[POWER_COMPONENT_AMBIENT_DISPLAY] = "ambient_display"; sPowerComponentNames[POWER_COMPONENT_IDLE] = "idle"; sPowerComponentNames[POWER_COMPONENT_REATTRIBUTED_TO_OTHER_CONSUMERS] = "reattributed"; + sPowerComponentNames[POWER_COMPONENT_BASE] = ""; // Top-level, no need for a name } /** @@ -211,6 +215,7 @@ public abstract class BatteryConsumer { private static final IntArray SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE; static { int[] supportedPowerComponents = { + POWER_COMPONENT_BASE, POWER_COMPONENT_CPU, POWER_COMPONENT_MOBILE_RADIO, POWER_COMPONENT_WIFI, @@ -220,7 +225,9 @@ public abstract class BatteryConsumer { POWER_COMPONENT_FLASHLIGHT, POWER_COMPONENT_CAMERA, POWER_COMPONENT_GNSS, - POWER_COMPONENT_SENSORS}; + POWER_COMPONENT_SENSORS, + POWER_COMPONENT_WAKELOCK, + }; Arrays.sort(supportedPowerComponents); SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE = IntArray.wrap(supportedPowerComponents); }; @@ -939,7 +946,7 @@ public abstract class BatteryConsumer { )); // Declare Keys for all process states, if needed - if (includeProcessStateData) { + if (includeProcessStateData || componentId == POWER_COMPONENT_BASE) { boolean isSupported = SUPPORTED_POWER_COMPONENTS_PER_PROCESS_STATE .binarySearch(componentId) >= 0 || componentId >= FIRST_CUSTOM_POWER_COMPONENT_ID; @@ -1126,6 +1133,13 @@ public abstract class BatteryConsumer { return (T) this; } + @SuppressWarnings("unchecked") + @NonNull + public T addUsageDurationMillis(Key key, long componentUsageTimeMillis) { + mPowerComponentsBuilder.addUsageDurationMillis(key, componentUsageTimeMillis); + return (T) this; + } + /** * Returns the total power accumulated by this builder so far. It may change * by the time the {@code build()} method is called. diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index 996a288ef59d..b9b5295f89b6 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -1950,7 +1950,8 @@ public abstract class BatteryStats { // STATES bits that are used for Power Stats tracking public static final int IMPORTANT_FOR_POWER_STATS_STATES = - STATE_GPS_ON_FLAG | STATE_SENSOR_ON_FLAG | STATE_AUDIO_ON_FLAG; + STATE_GPS_ON_FLAG | STATE_SENSOR_ON_FLAG | STATE_AUDIO_ON_FLAG + | STATE_WAKE_LOCK_FLAG; @UnsupportedAppUsage public int states; @@ -3625,6 +3626,21 @@ public abstract class BatteryStats { public abstract int getLearnedBatteryCapacity(); /** + * Returns best known estimate of the battery capacity in milli-amp-hours. + */ + public int getBatteryCapacity() { + int batteryCapacityUah = getLearnedBatteryCapacity(); + if (batteryCapacityUah > 0) { + return batteryCapacityUah / 1000; + } + batteryCapacityUah = getMinLearnedBatteryCapacity(); + if (batteryCapacityUah > 0) { + return batteryCapacityUah / 1000; + } + return getEstimatedBatteryCapacity(); + } + + /** * Return the array of discharge step durations. */ public abstract LevelStepTracker getDischargeLevelStepTracker(); diff --git a/core/java/android/os/PowerComponents.java b/core/java/android/os/PowerComponents.java index 9200db31279a..f4e3f3b6e430 100644 --- a/core/java/android/os/PowerComponents.java +++ b/core/java/android/os/PowerComponents.java @@ -17,6 +17,7 @@ package android.os; import static android.os.BatteryConsumer.BatteryConsumerDataLayout.POWER_MODEL_NOT_INCLUDED; import static android.os.BatteryConsumer.POWER_COMPONENT_ANY; +import static android.os.BatteryConsumer.POWER_COMPONENT_BASE; import static android.os.BatteryConsumer.POWER_STATE_ANY; import static android.os.BatteryConsumer.POWER_STATE_UNSPECIFIED; import static android.os.BatteryConsumer.PROCESS_STATE_ANY; @@ -184,6 +185,10 @@ class PowerComponents { @BatteryConsumer.PowerState int powerState, boolean skipEmptyComponents) { StringBuilder sb = new StringBuilder(); for (@BatteryConsumer.PowerComponentId int id : mData.layout.powerComponentIds) { + if (id == POWER_COMPONENT_BASE) { + continue; + } + dump(sb, id, PROCESS_STATE_ANY, screenState, powerState, skipEmptyComponents); if (mData.layout.processStateDataIncluded) { for (int processState = 0; processState < BatteryConsumer.PROCESS_STATE_COUNT; @@ -491,6 +496,14 @@ class PowerComponents { return this; } + @NonNull + public Builder addUsageDurationMillis(BatteryConsumer.Key key, + long componentUsageDurationMillis) { + mData.putLong(key.mDurationColumnIndex, + mData.getLong(key.mDurationColumnIndex) + componentUsageDurationMillis); + return this; + } + public void addPowerAndDuration(PowerComponents.Builder other) { addPowerAndDuration(other.mData); } diff --git a/core/java/android/os/UidBatteryConsumer.java b/core/java/android/os/UidBatteryConsumer.java index 9b5a378d6591..7f7ef0467e08 100644 --- a/core/java/android/os/UidBatteryConsumer.java +++ b/core/java/android/os/UidBatteryConsumer.java @@ -70,10 +70,7 @@ public final class UidBatteryConsumer extends BatteryConsumer { static final int COLUMN_INDEX_UID = BatteryConsumer.COLUMN_COUNT; static final int COLUMN_INDEX_PACKAGE_WITH_HIGHEST_DRAIN = COLUMN_INDEX_UID + 1; - static final int COLUMN_INDEX_TIME_IN_FOREGROUND = COLUMN_INDEX_UID + 2; - static final int COLUMN_INDEX_TIME_IN_BACKGROUND = COLUMN_INDEX_UID + 3; - static final int COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE = COLUMN_INDEX_UID + 4; - static final int COLUMN_COUNT = BatteryConsumer.COLUMN_COUNT + 5; + static final int COLUMN_COUNT = BatteryConsumer.COLUMN_COUNT + 2; UidBatteryConsumer(BatteryConsumerData data) { super(data); @@ -100,10 +97,10 @@ public final class UidBatteryConsumer extends BatteryConsumer { public long getTimeInStateMs(@State int state) { switch (state) { case STATE_BACKGROUND: - return mData.getInt(COLUMN_INDEX_TIME_IN_BACKGROUND) - + mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE); + return getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND) + + getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE); case STATE_FOREGROUND: - return mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND); + return getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND); } return 0; } @@ -112,13 +109,9 @@ public final class UidBatteryConsumer extends BatteryConsumer { * Returns the amount of time in milliseconds this UID spent in the specified process state. */ public long getTimeInProcessStateMs(@ProcessState int state) { - switch (state) { - case PROCESS_STATE_BACKGROUND: - return mData.getInt(COLUMN_INDEX_TIME_IN_BACKGROUND); - case PROCESS_STATE_FOREGROUND: - return mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND); - case PROCESS_STATE_FOREGROUND_SERVICE: - return mData.getInt(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE); + Key key = getKey(POWER_COMPONENT_BASE, state); + if (key != null) { + return getUsageDurationMillis(key); } return 0; } @@ -130,20 +123,16 @@ public final class UidBatteryConsumer extends BatteryConsumer { pw.print(": "); pw.print(BatteryStats.formatCharge(getConsumedPower())); - if (mData.layout.processStateDataIncluded) { - StringBuilder sb = new StringBuilder(); - appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND, - skipEmptyComponents); - appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_BACKGROUND, - skipEmptyComponents); - appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE, - skipEmptyComponents); - appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_CACHED, - skipEmptyComponents); - pw.println(sb); - } else { - pw.println(); - } + StringBuilder sb = new StringBuilder(); + appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND, + skipEmptyComponents); + appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_BACKGROUND, + skipEmptyComponents); + appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE, + skipEmptyComponents); + appendProcessStateData(sb, BatteryConsumer.PROCESS_STATE_CACHED, + skipEmptyComponents); + pw.println(sb); pw.print(" "); mPowerComponents.dump(pw, SCREEN_STATE_ANY, POWER_STATE_ANY, skipEmptyComponents); @@ -190,12 +179,20 @@ public final class UidBatteryConsumer extends BatteryConsumer { boolean skipEmptyComponents) { Dimensions dimensions = new Dimensions(POWER_COMPONENT_ANY, processState); final double power = mPowerComponents.getConsumedPower(dimensions); - if (power == 0 && skipEmptyComponents) { + + Key key = getKey(POWER_COMPONENT_BASE, processState); + long durationMs = key != null ? mPowerComponents.getUsageDurationMillis(key) : 0; + if (power == 0 && durationMs == 0 && skipEmptyComponents) { return; } sb.append(" ").append(processStateToString(processState)).append(": ") .append(BatteryStats.formatCharge(power)); + if (durationMs != 0) { + sb.append(" ("); + BatteryStats.formatTimeMsNoSpace(sb, durationMs); + sb.append(")"); + } } /** Serializes this object to XML */ @@ -322,10 +319,10 @@ public final class UidBatteryConsumer extends BatteryConsumer { public Builder setTimeInStateMs(@State int state, long timeInStateMs) { switch (state) { case STATE_FOREGROUND: - mData.putLong(COLUMN_INDEX_TIME_IN_FOREGROUND, timeInStateMs); + setTimeInProcessStateMs(PROCESS_STATE_FOREGROUND, timeInStateMs); break; case STATE_BACKGROUND: - mData.putLong(COLUMN_INDEX_TIME_IN_BACKGROUND, timeInStateMs); + setTimeInProcessStateMs(PROCESS_STATE_BACKGROUND, timeInStateMs); break; default: throw new IllegalArgumentException("Unsupported state: " + state); @@ -339,18 +336,9 @@ public final class UidBatteryConsumer extends BatteryConsumer { */ @NonNull public Builder setTimeInProcessStateMs(@ProcessState int state, long timeInProcessStateMs) { - switch (state) { - case PROCESS_STATE_FOREGROUND: - mData.putLong(COLUMN_INDEX_TIME_IN_FOREGROUND, timeInProcessStateMs); - break; - case PROCESS_STATE_BACKGROUND: - mData.putLong(COLUMN_INDEX_TIME_IN_BACKGROUND, timeInProcessStateMs); - break; - case PROCESS_STATE_FOREGROUND_SERVICE: - mData.putLong(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE, timeInProcessStateMs); - break; - default: - throw new IllegalArgumentException("Unsupported process state: " + state); + Key key = getKey(POWER_COMPONENT_BASE, state); + if (key != null) { + mData.putLong(key.mDurationColumnIndex, timeInProcessStateMs); } return this; } @@ -368,17 +356,6 @@ public final class UidBatteryConsumer extends BatteryConsumer { */ public Builder add(UidBatteryConsumer consumer) { mPowerComponentsBuilder.addPowerAndDuration(consumer.mPowerComponents); - - setTimeInProcessStateMs(PROCESS_STATE_FOREGROUND, - mData.getLong(COLUMN_INDEX_TIME_IN_FOREGROUND) - + consumer.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND)); - setTimeInProcessStateMs(PROCESS_STATE_BACKGROUND, - mData.getLong(COLUMN_INDEX_TIME_IN_BACKGROUND) - + consumer.getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND)); - setTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE, - mData.getLong(COLUMN_INDEX_TIME_IN_FOREGROUND_SERVICE) - + consumer.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE)); - if (mPackageWithHighestDrain == PACKAGE_NAME_UNINITIALIZED) { mPackageWithHighestDrain = consumer.getPackageWithHighestDrain(); } else if (!TextUtils.equals(mPackageWithHighestDrain, diff --git a/core/java/android/os/image/flags/trade_in_mode_flags.aconfig b/core/java/android/os/image/flags/trade_in_mode_flags.aconfig new file mode 100644 index 000000000000..e2e56ef70d62 --- /dev/null +++ b/core/java/android/os/image/flags/trade_in_mode_flags.aconfig @@ -0,0 +1,11 @@ +package: "com.android.tradeinmode.flags" +container: "system" + +flag { + name: "enable_trade_in_mode" + is_exported: true + namespace: "phoenix" + description: "Enable Trade-in Mode" + bug: "332683751" + is_fixed_read_only: true +} diff --git a/core/java/android/security/attestationverification/AttestationVerificationManager.java b/core/java/android/security/attestationverification/AttestationVerificationManager.java index acf33822b3c7..ca4d417ad8fe 100644 --- a/core/java/android/security/attestationverification/AttestationVerificationManager.java +++ b/core/java/android/security/attestationverification/AttestationVerificationManager.java @@ -79,9 +79,7 @@ public class AttestationVerificationManager { * is also associated with a particular connection. * * <p>The {@code callback} is called with a result and {@link VerificationToken} (which may be - * null). The result is an integer (see constants in this class with the prefix {@code RESULT_}. - * The result is {@link #RESULT_SUCCESS} when at least one verifier has passed its checks. The - * token may be used in calls to other parts of the system. + * null). The result is an integer (see constants in {@link VerificationResultFlags}). * * <p>It's expected that a verifier will be able to decode and understand the passed values, * otherwise fail to verify. {@code attestation} should contain some type data to prevent parse @@ -108,7 +106,7 @@ public class AttestationVerificationManager { @NonNull Bundle requirements, @NonNull byte[] attestation, @NonNull @CallbackExecutor Executor executor, - @NonNull BiConsumer<@VerificationResult Integer, VerificationToken> callback) { + @NonNull BiConsumer<@VerificationResultFlags Integer, VerificationToken> callback) { try { AndroidFuture<IVerificationResult> resultCallback = new AndroidFuture<>(); resultCallback.thenAccept(result -> { @@ -155,7 +153,7 @@ public class AttestationVerificationManager { */ @RequiresPermission(Manifest.permission.USE_ATTESTATION_VERIFICATION_SERVICE) @CheckResult - @VerificationResult + @VerificationResultFlags public int verifyToken( @NonNull AttestationProfile profile, @LocalBindingType int localBindingType, @@ -280,30 +278,66 @@ public class AttestationVerificationManager { */ public static final int TYPE_CHALLENGE = 3; - /** @hide */ - @IntDef( - prefix = {"RESULT_"}, - value = { - RESULT_UNKNOWN, - RESULT_SUCCESS, - RESULT_FAILURE, - }) - @Retention(RetentionPolicy.SOURCE) + /** + * Verification result returned from {@link #verifyAttestation}. + * + * A value of {@code 0} indicates success. Otherwise, a bit flag is set from first failing stage + * below: + * <ol> + * <li> The received attestation's integrity (e.g. the certificate signatures) is validated. + * If this fails, {@link #FLAG_FAILURE_CERTS} will be returned with all other bits unset. + * <li> The local binding requirements are checked. If this fails, + * {@link #FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS} is returned with all other bits unset. + * <li> The profile requirements are checked. If this fails, a bit flag will be returned with + * some of the these bits set to indicate the type of profile requirement failure: + * {@link #FLAG_FAILURE_UNSUPPORTED_PROFILE}, {@link #FLAG_FAILURE_KEYSTORE_REQUIREMENTS}, + * {@link #FLAG_FAILURE_BOOT_STATE}, and {@link #FLAG_FAILURE_PATCH_LEVEL_DIFF}. + * </ol> + * + * Note: The reason of the failure must be not be provided to the remote device. + * + * @hide + */ + @IntDef(flag = true, prefix = {"FLAG_FAILURE_"}, + value = { + FLAG_FAILURE_UNKNOWN, + FLAG_FAILURE_UNSUPPORTED_PROFILE, + FLAG_FAILURE_CERTS, + FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS, + FLAG_FAILURE_KEYSTORE_REQUIREMENTS, + FLAG_FAILURE_BOOT_STATE, + FLAG_FAILURE_PATCH_LEVEL_DIFF, + }) @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) - public @interface VerificationResult { - } + @Retention(RetentionPolicy.SOURCE) + public @interface VerificationResultFlags{} - /** The result of the verification is unknown because it has a value unknown to this SDK. */ - public static final int RESULT_UNKNOWN = 0; + /** Flag: If there are unknown failures e.g. runtime exception. 0 = no, 1 = yes. */ + public static final int FLAG_FAILURE_UNKNOWN = 1; - /** The result of the verification was successful. */ - public static final int RESULT_SUCCESS = 1; + /** Flag: If the AVF profile is supported. 0 = supported, 1 = not supported */ + public static final int FLAG_FAILURE_UNSUPPORTED_PROFILE = 1 << 1; /** - * The result of the attestation verification was failure. The attestation could not be - * verified. + * Flag: Result bit for certs verification e.g. loading, generating, parsing certs. + * 0 = success, 1 = failure */ - public static final int RESULT_FAILURE = 2; + public static final int FLAG_FAILURE_CERTS = 1 << 2; + + /** Flag: Result bit for local binding requirements verification. 0 = success, 1 = failure. */ + public static final int FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS = 1 << 3; + + /** + * Flag: Result bit for KeyStore requirements verification. + * 0 = success, 1 = failure. + */ + public static final int FLAG_FAILURE_KEYSTORE_REQUIREMENTS = 1 << 4; + + /** Flag: Result bit for boot state verification. 0 = success, 1 = failure */ + public static final int FLAG_FAILURE_BOOT_STATE = 1 << 5; + + /** Flag: Result bit for patch level diff checks. 0 = success, 1 = failure. */ + public static final int FLAG_FAILURE_PATCH_LEVEL_DIFF = 1 << 6; /** * Requirements bundle parameter key for a public key, a byte array. @@ -351,26 +385,4 @@ public class AttestationVerificationManager { } return text + "(" + localBindingType + ")"; } - - /** @hide */ - public static String verificationResultCodeToString(@VerificationResult int resultCode) { - final String text; - switch (resultCode) { - case RESULT_UNKNOWN: - text = "UNKNOWN"; - break; - - case RESULT_SUCCESS: - text = "SUCCESS"; - break; - - case RESULT_FAILURE: - text = "FAILURE"; - break; - - default: - return Integer.toString(resultCode); - } - return text + "(" + resultCode + ")"; - } } diff --git a/core/java/android/security/attestationverification/AttestationVerificationService.java b/core/java/android/security/attestationverification/AttestationVerificationService.java index 26c3051f7f38..01668d729282 100644 --- a/core/java/android/security/attestationverification/AttestationVerificationService.java +++ b/core/java/android/security/attestationverification/AttestationVerificationService.java @@ -20,7 +20,7 @@ import android.annotation.CheckResult; import android.annotation.NonNull; import android.app.Service; import android.os.Bundle; -import android.security.attestationverification.AttestationVerificationManager.VerificationResult; +import android.security.attestationverification.AttestationVerificationManager.VerificationResultFlags; /** * A verifier which can be implemented by apps to verify an attestation (as described in {@link @@ -93,7 +93,7 @@ public abstract class AttestationVerificationService extends Service { * byte[], java.util.concurrent.Executor, java.util.function.BiConsumer) */ @CheckResult - @VerificationResult + @VerificationResultFlags public abstract int onVerifyPeerDeviceAttestation( @NonNull Bundle requirements, @NonNull byte[] attestation); diff --git a/core/java/android/security/attestationverification/VerificationToken.java b/core/java/android/security/attestationverification/VerificationToken.java index ae26823a9c7d..015010c52755 100644 --- a/core/java/android/security/attestationverification/VerificationToken.java +++ b/core/java/android/security/attestationverification/VerificationToken.java @@ -21,7 +21,7 @@ import android.os.Binder; import android.os.Bundle; import android.os.Parcelable; import android.security.attestationverification.AttestationVerificationManager.LocalBindingType; -import android.security.attestationverification.AttestationVerificationManager.VerificationResult; +import android.security.attestationverification.AttestationVerificationManager.VerificationResultFlags; import com.android.internal.util.DataClass; import com.android.internal.util.Parcelling; @@ -41,10 +41,6 @@ import java.util.function.BiConsumer; * @hide * @see Bundle#putParcelable(String, Parcelable) */ -@DataClass( - genConstructor = false, - genHiddenBuilder = true -) public final class VerificationToken implements Parcelable { /** @@ -69,17 +65,18 @@ public final class VerificationToken implements Parcelable { private final Bundle mRequirements; /** - * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle, - * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from - * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this - * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken, - * Duration)} to verify a valid token and it will return this value. + * The result of the {@link AttestationVerificationManager#verifyAttestation(AttestationProfile, + * int, Bundle, byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token + * holders from accidentally reading this value without calling {@code verifyToken}. Do + * <b>not</b> use this value directly; call {@link AttestationVerificationManager#verifyToken( + * AttestationProfile, int, Bundle, VerificationToken, Duration)} to verify a valid token and it + * will return this value. * * If the token is valid, this value is returned directly by {#verifyToken}. * * @hide */ - @VerificationResult + @VerificationResultFlags private final int mVerificationResult; /** @@ -111,28 +108,13 @@ public final class VerificationToken implements Parcelable { private int mUid; - // Code below generated by codegen v1.0.23. - // - // DO NOT MODIFY! - // CHECKSTYLE:OFF Generated code - // - // To regenerate run: - // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/security/attestationverification/VerificationToken.java - // - // To exclude the generated code from IntelliJ auto-formatting enable (one-time): - // Settings > Editor > Code Style > Formatter Control - //@formatter:off - - - @DataClass.Generated.Member - /* package-private */ VerificationToken( + VerificationToken( @NonNull AttestationProfile attestationProfile, @LocalBindingType int localBindingType, @NonNull Bundle requirements, - @VerificationResult int verificationResult, + @VerificationResultFlags int verificationResult, @NonNull java.time.Instant verificationTime, - @NonNull byte[] hmac, - int uid) { + @NonNull byte[] hmac) { this.mAttestationProfile = attestationProfile; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mAttestationProfile); @@ -144,62 +126,61 @@ public final class VerificationToken implements Parcelable { NonNull.class, null, mRequirements); this.mVerificationResult = verificationResult; com.android.internal.util.AnnotationValidations.validate( - VerificationResult.class, null, mVerificationResult); + VerificationResultFlags.class, null, mVerificationResult); this.mVerificationTime = verificationTime; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mVerificationTime); this.mHmac = hmac; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mHmac); - this.mUid = uid; - - // onConstructed(); // You can define this method to get a callback } /** * The attestation profile which was used to perform the verification. + * + * @hide */ - @DataClass.Generated.Member public @NonNull AttestationProfile getAttestationProfile() { return mAttestationProfile; } /** * The local binding type of the local binding data used to perform the verification. + * + * @hide */ - @DataClass.Generated.Member public @LocalBindingType int getLocalBindingType() { return mLocalBindingType; } /** * The requirements used to perform the verification. + * + * @hide */ - @DataClass.Generated.Member public @NonNull Bundle getRequirements() { return mRequirements; } /** - * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle, - * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from - * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this - * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken, - * Duration)} to verify a valid token and it will return this value. + * The result of the {@link AttestationVerificationManager#verifyAttestation(AttestationProfile, + * int, Bundle, byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token + * holders from accidentally reading this value without calling {@code verifyToken}. Do + * <b>not</b> use this value directly; call {@link AttestationVerificationManager#verifyToken( + * AttestationProfile, int, Bundle, VerificationToken, Duration)} to verify a valid token and it + * will return this value. * * If the token is valid, this value is returned directly by {#verifyToken}. * * @hide */ - @DataClass.Generated.Member - public @VerificationResult int getVerificationResult() { + public @VerificationResultFlags int getVerificationResult() { return mVerificationResult; } /** * Time when the token was generated, set by the system. */ - @DataClass.Generated.Member public @NonNull java.time.Instant getVerificationTime() { return mVerificationTime; } @@ -212,25 +193,10 @@ public final class VerificationToken implements Parcelable { * * @hide */ - @DataClass.Generated.Member public @NonNull byte[] getHmac() { return mHmac; } - /** - * The UID of the process which called {@code verifyAttestation} to create the token, as - * returned by {@link Binder#getCallingUid()}. Calls to {@code verifyToken} will fail if the UID - * of calling process does not match this value. This ensures that tokens cannot be shared - * between UIDs. - * - * @hide - */ - @DataClass.Generated.Member - public int getUid() { - return mUid; - } - - @DataClass.Generated.Member static Parcelling<java.time.Instant> sParcellingForVerificationTime = Parcelling.Cache.get( ForInstant.class); @@ -242,7 +208,6 @@ public final class VerificationToken implements Parcelable { } @Override - @DataClass.Generated.Member public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { // You can override field parcelling by defining methods like: // void parcelFieldName(Parcel dest, int flags) { ... } @@ -253,27 +218,24 @@ public final class VerificationToken implements Parcelable { dest.writeInt(mVerificationResult); sParcellingForVerificationTime.parcel(mVerificationTime, dest, flags); dest.writeByteArray(mHmac); - dest.writeInt(mUid); } @Override - @DataClass.Generated.Member public int describeContents() { return 0; } /** @hide */ @SuppressWarnings({"unchecked", "RedundantCast"}) - @DataClass.Generated.Member - /* package-private */ VerificationToken(@NonNull android.os.Parcel in) { + VerificationToken(@NonNull android.os.Parcel in) { // You can override field unparcelling by defining methods like: // static FieldType unparcelFieldName(Parcel in) { ... } - AttestationProfile attestationProfile = (AttestationProfile) in.readTypedObject(AttestationProfile.CREATOR); + AttestationProfile attestationProfile = (AttestationProfile) in.readTypedObject( + AttestationProfile.CREATOR); int localBindingType = in.readInt(); Bundle requirements = in.readBundle(); int verificationResult = in.readInt(); java.time.Instant verificationTime = sParcellingForVerificationTime.unparcel(in); byte[] hmac = in.createByteArray(); - int uid = in.readInt(); this.mAttestationProfile = attestationProfile; com.android.internal.util.AnnotationValidations.validate( @@ -286,19 +248,15 @@ public final class VerificationToken implements Parcelable { NonNull.class, null, mRequirements); this.mVerificationResult = verificationResult; com.android.internal.util.AnnotationValidations.validate( - VerificationResult.class, null, mVerificationResult); + VerificationResultFlags.class, null, mVerificationResult); this.mVerificationTime = verificationTime; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mVerificationTime); this.mHmac = hmac; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mHmac); - this.mUid = uid; - - // onConstructed(); // You can define this method to get a callback } - @DataClass.Generated.Member public static final @NonNull Parcelable.Creator<VerificationToken> CREATOR = new Parcelable.Creator<VerificationToken>() { @Override @@ -317,16 +275,14 @@ public final class VerificationToken implements Parcelable { * @hide */ @SuppressWarnings("WeakerAccess") - @DataClass.Generated.Member public static final class Builder { private @NonNull AttestationProfile mAttestationProfile; private @LocalBindingType int mLocalBindingType; private @NonNull Bundle mRequirements; - private @VerificationResult int mVerificationResult; + private @VerificationResultFlags int mVerificationResult; private @NonNull java.time.Instant mVerificationTime; private @NonNull byte[] mHmac; - private int mUid; private long mBuilderFieldsSet = 0L; @@ -340,34 +296,29 @@ public final class VerificationToken implements Parcelable { * @param requirements * The requirements used to perform the verification. * @param verificationResult - * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle, - * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from - * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this - * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken, - * Duration)} to verify a valid token and it will return this value. + * The result of the {@link AttestationVerificationManager#verifyAttestation( + * AttestationProfile, int, Bundle, byte[], Executor, BiConsumer)} call. This value is + * kept hidden to prevent token holders from accidentally reading this value without + * calling {@code verifyToken}. Do <b>not</b> use this value directly; call {@link + * AttestationVerificationManager#verifyToken(AttestationProfile, int, Bundle, + * VerificationToken, Duration)} to verify a valid token and it will return this value. * * If the token is valid, this value is returned directly by {#verifyToken}. * @param verificationTime * Time when the token was generated, set by the system. * @param hmac - * A Hash-based message authentication code used to verify the contents and authenticity of the - * rest of the token. The hash is created using a secret key known only to the system server. - * When verifying the token, the system re-hashes the token and verifies the generated HMAC is - * the same. - * @param uid - * The UID of the process which called {@code verifyAttestation} to create the token, as - * returned by {@link Binder#getCallingUid()}. Calls to {@code verifyToken} will fail if the UID - * of calling process does not match this value. This ensures that tokens cannot be shared - * between UIDs. + * A Hash-based message authentication code used to verify the contents and authenticity + * of the rest of the token. The hash is created using a secret key known only to the + * system server. When verifying the token, the system re-hashes the token and verifies + * the generated HMAC is the same. */ public Builder( @NonNull AttestationProfile attestationProfile, @LocalBindingType int localBindingType, @NonNull Bundle requirements, - @VerificationResult int verificationResult, + @VerificationResultFlags int verificationResult, @NonNull java.time.Instant verificationTime, - @NonNull byte[] hmac, - int uid) { + @NonNull byte[] hmac) { mAttestationProfile = attestationProfile; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mAttestationProfile); @@ -379,20 +330,20 @@ public final class VerificationToken implements Parcelable { NonNull.class, null, mRequirements); mVerificationResult = verificationResult; com.android.internal.util.AnnotationValidations.validate( - VerificationResult.class, null, mVerificationResult); + VerificationResultFlags.class, null, mVerificationResult); mVerificationTime = verificationTime; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mVerificationTime); mHmac = hmac; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mHmac); - mUid = uid; } /** * The attestation profile which was used to perform the verification. + * + * @hide */ - @DataClass.Generated.Member public @NonNull Builder setAttestationProfile(@NonNull AttestationProfile value) { checkNotUsed(); mBuilderFieldsSet |= 0x1; @@ -402,8 +353,9 @@ public final class VerificationToken implements Parcelable { /** * The local binding type of the local binding data used to perform the verification. + * + * @hide */ - @DataClass.Generated.Member public @NonNull Builder setLocalBindingType(@LocalBindingType int value) { checkNotUsed(); mBuilderFieldsSet |= 0x2; @@ -413,8 +365,9 @@ public final class VerificationToken implements Parcelable { /** * The requirements used to perform the verification. + * + * @hide */ - @DataClass.Generated.Member public @NonNull Builder setRequirements(@NonNull Bundle value) { checkNotUsed(); mBuilderFieldsSet |= 0x4; @@ -423,18 +376,18 @@ public final class VerificationToken implements Parcelable { } /** - * The result of the {@link AttestationVerificationManager#verifyAttestation(int, int, Bundle, - * byte[], Executor, BiConsumer)} call. This value is kept hidden to prevent token holders from - * accidentally reading this value without calling {@code verifyToken}. Do <b>not</b> use this - * value directly; call {@link AttestationVerificationManager#verifyToken(VerificationToken, - * Duration)} to verify a valid token and it will return this value. + * The result of the {@link AttestationVerificationManager#verifyAttestation( + * AttestationProfile, int, Bundle, byte[], Executor, BiConsumer)} call. This value is kept + * hidden to prevent token holders from accidentally reading this value without calling + * {@code verifyToken}. Do <b>not</b> use this value directly; call {@link + * AttestationVerificationManager#verifyToken(AttestationProfile, int, Bundle, + * VerificationToken, Duration)} to verify a valid token and it will return this value. * * If the token is valid, this value is returned directly by {#verifyToken}. * * @hide */ - @DataClass.Generated.Member - public @NonNull Builder setVerificationResult(@VerificationResult int value) { + public @NonNull Builder setVerificationResult(@VerificationResultFlags int value) { checkNotUsed(); mBuilderFieldsSet |= 0x8; mVerificationResult = value; @@ -444,7 +397,6 @@ public final class VerificationToken implements Parcelable { /** * Time when the token was generated, set by the system. */ - @DataClass.Generated.Member public @NonNull Builder setVerificationTime(@NonNull java.time.Instant value) { checkNotUsed(); mBuilderFieldsSet |= 0x10; @@ -453,14 +405,13 @@ public final class VerificationToken implements Parcelable { } /** - * A Hash-based message authentication code used to verify the contents and authenticity of the - * rest of the token. The hash is created using a secret key known only to the system server. - * When verifying the token, the system re-hashes the token and verifies the generated HMAC is - * the same. + * A Hash-based message authentication code used to verify the contents and authenticity of + * the rest of the token. The hash is created using a secret key known only to the system + * server. When verifying the token, the system re-hashes the token and verifies the + * generated HMAC is the same. * * @hide */ - @DataClass.Generated.Member public @NonNull Builder setHmac(@NonNull byte... value) { checkNotUsed(); mBuilderFieldsSet |= 0x20; @@ -468,26 +419,10 @@ public final class VerificationToken implements Parcelable { return this; } - /** - * The UID of the process which called {@code verifyAttestation} to create the token, as - * returned by {@link Binder#getCallingUid()}. Calls to {@code verifyToken} will fail if the UID - * of calling process does not match this value. This ensures that tokens cannot be shared - * between UIDs. - * - * @hide - */ - @DataClass.Generated.Member - public @NonNull Builder setUid(int value) { - checkNotUsed(); - mBuilderFieldsSet |= 0x40; - mUid = value; - return this; - } - /** Builds the instance. This builder should not be touched after calling this! */ public @NonNull VerificationToken build() { checkNotUsed(); - mBuilderFieldsSet |= 0x80; // Mark builder used + mBuilderFieldsSet |= 0x40; // Mark builder used VerificationToken o = new VerificationToken( mAttestationProfile, @@ -495,29 +430,15 @@ public final class VerificationToken implements Parcelable { mRequirements, mVerificationResult, mVerificationTime, - mHmac, - mUid); + mHmac); return o; } private void checkNotUsed() { - if ((mBuilderFieldsSet & 0x80) != 0) { + if ((mBuilderFieldsSet & 0x40) != 0) { throw new IllegalStateException( "This Builder should not be reused. Use a new Builder instance instead"); } } } - - @DataClass.Generated( - time = 1633629747234L, - codegenVersion = "1.0.23", - sourceFile = "frameworks/base/core/java/android/security/attestationverification/VerificationToken.java", - inputSignatures = "private final @android.annotation.NonNull android.security.attestationverification.AttestationProfile mAttestationProfile\nprivate final @android.security.attestationverification.AttestationVerificationManager.LocalBindingType int mLocalBindingType\nprivate final @android.annotation.NonNull android.os.Bundle mRequirements\nprivate final @android.security.attestationverification.AttestationVerificationManager.VerificationResult int mVerificationResult\nprivate final @android.annotation.NonNull @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInstant.class) java.time.Instant mVerificationTime\nprivate final @android.annotation.NonNull byte[] mHmac\nprivate int mUid\nclass VerificationToken extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genHiddenBuilder=true)") - @Deprecated - private void __metadata() {} - - - //@formatter:on - // End of generated code - } diff --git a/core/java/android/service/chooser/ChooserResult.java b/core/java/android/service/chooser/ChooserResult.java index 2d56ec730836..9e6c4ff5d24e 100644 --- a/core/java/android/service/chooser/ChooserResult.java +++ b/core/java/android/service/chooser/ChooserResult.java @@ -16,7 +16,6 @@ package android.service.chooser; -import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -41,7 +40,6 @@ import java.util.Objects; * * @see Intent#EXTRA_CHOOSER_RESULT_INTENT_SENDER */ -@FlaggedApi(android.service.chooser.Flags.FLAG_ENABLE_CHOOSER_RESULT) public final class ChooserResult implements Parcelable { /** diff --git a/core/java/android/service/notification/NotificationAssistantService.java b/core/java/android/service/notification/NotificationAssistantService.java index 48d7cf768e77..7b7058e83acc 100644 --- a/core/java/android/service/notification/NotificationAssistantService.java +++ b/core/java/android/service/notification/NotificationAssistantService.java @@ -393,6 +393,23 @@ public abstract class NotificationAssistantService extends NotificationListenerS } } + /** + * Informs the notification manager about what {@link Adjustment Adjustments} are supported by + * this NAS. + * + * For backwards compatibility, we assume all Adjustment types are supported by the NAS. + */ + @FlaggedApi(Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public final void setAdjustmentTypeSupportedState(@NonNull @Adjustment.Keys String key, + boolean supported) { + if (!isBound()) return; + try { + getNotificationInterface().setAdjustmentTypeSupportedState(mWrapper, key, supported); + } catch (android.os.RemoteException ex) { + Log.v(TAG, "Unable to contact notification manager", ex); + } + } + private class NotificationAssistantServiceWrapper extends NotificationListenerWrapper { @Override public void onNotificationEnqueuedWithChannel(IStatusBarNotificationHolder sbnHolder, diff --git a/core/java/android/service/notification/ZenModeDiff.java b/core/java/android/service/notification/ZenModeDiff.java index 60a7d6b5a3be..a9c57909e1c1 100644 --- a/core/java/android/service/notification/ZenModeDiff.java +++ b/core/java/android/service/notification/ZenModeDiff.java @@ -16,6 +16,7 @@ package android.service.notification; +import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.Nullable; import android.app.Flags; @@ -663,4 +664,338 @@ public class ZenModeDiff { return mActiveDiff != null && !mActiveDiff.to(); } } + + /** + * Diff class representing a change between two + * {@link android.service.notification.ZenDeviceEffects}. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static class DeviceEffectsDiff extends BaseDiff { + public static final String FIELD_GRAYSCALE = "mGrayscale"; + public static final String FIELD_SUPPRESS_AMBIENT_DISPLAY = "mSuppressAmbientDisplay"; + public static final String FIELD_DIM_WALLPAPER = "mDimWallpaper"; + public static final String FIELD_NIGHT_MODE = "mNightMode"; + public static final String FIELD_DISABLE_AUTO_BRIGHTNESS = "mDisableAutoBrightness"; + public static final String FIELD_DISABLE_TAP_TO_WAKE = "mDisableTapToWake"; + public static final String FIELD_DISABLE_TILT_TO_WAKE = "mDisableTiltToWake"; + public static final String FIELD_DISABLE_TOUCH = "mDisableTouch"; + public static final String FIELD_MINIMIZE_RADIO_USAGE = "mMinimizeRadioUsage"; + public static final String FIELD_MAXIMIZE_DOZE = "mMaximizeDoze"; + public static final String FIELD_EXTRA_EFFECTS = "mExtraEffects"; + // NOTE: new field strings must match the variable names in ZenDeviceEffects + + /** + * Create a DeviceEffectsDiff representing the difference between two ZenDeviceEffects + * objects. + * @param from previous ZenDeviceEffects + * @param to new ZenDeviceEffects + * @return The diff between the two given ZenDeviceEffects + */ + public DeviceEffectsDiff(ZenDeviceEffects from, ZenDeviceEffects to) { + super(from, to); + // Short-circuit the both-null case + if (from == null && to == null) { + return; + } + if (hasExistenceChange()) { + // either added or removed; return here. otherwise (they're not both null) there's + // field diffs. + return; + } + + // Compare all fields, knowing there's some diff and that neither is null. + if (from.shouldDisplayGrayscale() != to.shouldDisplayGrayscale()) { + addField(FIELD_GRAYSCALE, new FieldDiff<>(from.shouldDisplayGrayscale(), + to.shouldDisplayGrayscale())); + } + if (from.shouldSuppressAmbientDisplay() != to.shouldSuppressAmbientDisplay()) { + addField(FIELD_SUPPRESS_AMBIENT_DISPLAY, + new FieldDiff<>(from.shouldSuppressAmbientDisplay(), + to.shouldSuppressAmbientDisplay())); + } + if (from.shouldDimWallpaper() != to.shouldDimWallpaper()) { + addField(FIELD_DIM_WALLPAPER, new FieldDiff<>(from.shouldDimWallpaper(), + to.shouldDimWallpaper())); + } + if (from.shouldUseNightMode() != to.shouldUseNightMode()) { + addField(FIELD_NIGHT_MODE, new FieldDiff<>(from.shouldUseNightMode(), + to.shouldUseNightMode())); + } + if (from.shouldDisableAutoBrightness() != to.shouldDisableAutoBrightness()) { + addField(FIELD_DISABLE_AUTO_BRIGHTNESS, + new FieldDiff<>(from.shouldDisableAutoBrightness(), + to.shouldDisableAutoBrightness())); + } + if (from.shouldDisableTapToWake() != to.shouldDisableTapToWake()) { + addField(FIELD_DISABLE_TAP_TO_WAKE, new FieldDiff<>(from.shouldDisableTapToWake(), + to.shouldDisableTapToWake())); + } + if (from.shouldDisableTiltToWake() != to.shouldDisableTiltToWake()) { + addField(FIELD_DISABLE_TILT_TO_WAKE, + new FieldDiff<>(from.shouldDisableTiltToWake(), + to.shouldDisableTiltToWake())); + } + if (from.shouldDisableTouch() != to.shouldDisableTouch()) { + addField(FIELD_DISABLE_TOUCH, new FieldDiff<>(from.shouldDisableTouch(), + to.shouldDisableTouch())); + } + if (from.shouldMinimizeRadioUsage() != to.shouldMinimizeRadioUsage()) { + addField(FIELD_MINIMIZE_RADIO_USAGE, + new FieldDiff<>(from.shouldMinimizeRadioUsage(), + to.shouldMinimizeRadioUsage())); + } + if (from.shouldMaximizeDoze() != to.shouldMaximizeDoze()) { + addField(FIELD_MAXIMIZE_DOZE, new FieldDiff<>(from.shouldMaximizeDoze(), + to.shouldMaximizeDoze())); + } + if (!Objects.equals(from.getExtraEffects(), to.getExtraEffects())) { + addField(FIELD_EXTRA_EFFECTS, new FieldDiff<>(from.getExtraEffects(), + to.getExtraEffects())); + } + } + + /** + * Returns whether this object represents an actual diff. + */ + @Override + public boolean hasDiff() { + return hasExistenceChange() || hasFieldDiffs(); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("ZenDeviceEffectsDiff{"); + if (!hasDiff()) { + sb.append("no changes"); + } + + // If added or deleted, we just append that. + if (hasExistenceChange()) { + if (wasAdded()) { + sb.append("added"); + } else if (wasRemoved()) { + sb.append("removed"); + } + } + + // Append all of the individual field diffs + boolean first = true; + for (String key : fieldNamesWithDiff()) { + FieldDiff diff = getDiffForField(key); + if (diff == null) { + // The diff should not have null diffs added, but we add this to be defensive. + continue; + } + if (first) { + first = false; + } else { + sb.append(", "); + } + + sb.append(key); + sb.append(":"); + sb.append(diff); + } + + return sb.append("}").toString(); + } + } + + /** + * Diff class representing a change between two {@link android.service.notification.ZenPolicy}. + */ + @FlaggedApi(Flags.FLAG_MODES_API) + public static class PolicyDiff extends BaseDiff { + public static final String FIELD_PRIORITY_CATEGORY_REMINDERS = + "mPriorityCategories_Reminders"; + public static final String FIELD_PRIORITY_CATEGORY_EVENTS = "mPriorityCategories_Events"; + public static final String FIELD_PRIORITY_CATEGORY_MESSAGES = + "mPriorityCategories_Messages"; + public static final String FIELD_PRIORITY_CATEGORY_CALLS = "mPriorityCategories_Calls"; + public static final String FIELD_PRIORITY_CATEGORY_REPEAT_CALLERS = + "mPriorityCategories_RepeatCallers"; + public static final String FIELD_PRIORITY_CATEGORY_ALARMS = "mPriorityCategories_Alarms"; + public static final String FIELD_PRIORITY_CATEGORY_MEDIA = "mPriorityCategories_Media"; + public static final String FIELD_PRIORITY_CATEGORY_SYSTEM = "mPriorityCategories_System"; + public static final String FIELD_PRIORITY_CATEGORY_CONVERSATIONS = + "mPriorityCategories_Conversations"; + + public static final String FIELD_VISUAL_EFFECT_FULL_SCREEN_INTENT = + "mVisualEffects_FullScreenIntent"; + public static final String FIELD_VISUAL_EFFECT_LIGHTS = "mVisualEffects_Lights"; + public static final String FIELD_VISUAL_EFFECT_PEEK = "mVisualEffects_Peek"; + public static final String FIELD_VISUAL_EFFECT_STATUS_BAR = "mVisualEffects_StatusBar"; + public static final String FIELD_VISUAL_EFFECT_BADGE = "mVisualEffects_Badge"; + public static final String FIELD_VISUAL_EFFECT_AMBIENT = "mVisualEffects_Ambient"; + public static final String FIELD_VISUAL_EFFECT_NOTIFICATION_LIST = + "mVisualEffects_NotificationList"; + + public static final String FIELD_PRIORITY_MESSAGES = "mPriorityMessages"; + public static final String FIELD_PRIORITY_CALLS = "mPriorityCalls"; + public static final String FIELD_CONVERSATION_SENDERS = "mConversationSenders"; + public static final String FIELD_ALLOW_CHANNELS = "mAllowChannels"; + + /** + * Create a PolicyDiff representing the difference between two ZenPolicy objects. + * + * @param from previous ZenPolicy + * @param to new ZenPolicy + * @return The diff between the two given ZenPolicy + */ + public PolicyDiff(ZenPolicy from, ZenPolicy to) { + super(from, to); + // Short-circuit the both-null case + if (from == null && to == null) { + return; + } + if (hasExistenceChange()) { + // either added or removed; return here. otherwise (they're not both null) there's + // field diffs. + return; + } + + // Compare all fields, knowing there's some diff and that neither is null. + if (from.getPriorityCategoryReminders() != to.getPriorityCategoryReminders()) { + addField(FIELD_PRIORITY_CATEGORY_REMINDERS, + new FieldDiff<>(from.getPriorityCategoryReminders(), + to.getPriorityCategoryReminders())); + } + if (from.getPriorityCategoryEvents() != to.getPriorityCategoryEvents()) { + addField(FIELD_PRIORITY_CATEGORY_EVENTS, + new FieldDiff<>(from.getPriorityCategoryEvents(), + to.getPriorityCategoryEvents())); + } + if (from.getPriorityCategoryMessages() != to.getPriorityCategoryMessages()) { + addField(FIELD_PRIORITY_CATEGORY_MESSAGES, + new FieldDiff<>(from.getPriorityCategoryMessages(), + to.getPriorityCategoryMessages())); + } + if (from.getPriorityCategoryCalls() != to.getPriorityCategoryCalls()) { + addField(FIELD_PRIORITY_CATEGORY_CALLS, + new FieldDiff<>(from.getPriorityCategoryCalls(), + to.getPriorityCategoryCalls())); + } + if (from.getPriorityCategoryRepeatCallers() != to.getPriorityCategoryRepeatCallers()) { + addField(FIELD_PRIORITY_CATEGORY_REPEAT_CALLERS, + new FieldDiff<>(from.getPriorityCategoryRepeatCallers(), + to.getPriorityCategoryRepeatCallers())); + } + if (from.getPriorityCategoryAlarms() != to.getPriorityCategoryAlarms()) { + addField(FIELD_PRIORITY_CATEGORY_ALARMS, + new FieldDiff<>(from.getPriorityCategoryAlarms(), + to.getPriorityCategoryAlarms())); + } + if (from.getPriorityCategoryMedia() != to.getPriorityCategoryMedia()) { + addField(FIELD_PRIORITY_CATEGORY_MEDIA, + new FieldDiff<>(from.getPriorityCategoryMedia(), + to.getPriorityCategoryMedia())); + } + if (from.getPriorityCategorySystem() != to.getPriorityCategorySystem()) { + addField(FIELD_PRIORITY_CATEGORY_SYSTEM, + new FieldDiff<>(from.getPriorityCategorySystem(), + to.getPriorityCategorySystem())); + } + if (from.getPriorityCategoryConversations() != to.getPriorityCategoryConversations()) { + addField(FIELD_PRIORITY_CATEGORY_CONVERSATIONS, + new FieldDiff<>(from.getPriorityCategoryConversations(), + to.getPriorityCategoryConversations())); + } + if (from.getVisualEffectFullScreenIntent() != to.getVisualEffectFullScreenIntent()) { + addField(FIELD_VISUAL_EFFECT_FULL_SCREEN_INTENT, + new FieldDiff<>(from.getVisualEffectFullScreenIntent(), + to.getVisualEffectFullScreenIntent())); + } + if (from.getVisualEffectLights() != to.getVisualEffectLights()) { + addField(FIELD_VISUAL_EFFECT_LIGHTS, + new FieldDiff<>(from.getVisualEffectLights(), to.getVisualEffectLights())); + } + if (from.getVisualEffectPeek() != to.getVisualEffectPeek()) { + addField(FIELD_VISUAL_EFFECT_PEEK, new FieldDiff<>(from.getVisualEffectPeek(), + to.getVisualEffectPeek())); + } + if (from.getVisualEffectStatusBar() != to.getVisualEffectStatusBar()) { + addField(FIELD_VISUAL_EFFECT_STATUS_BAR, + new FieldDiff<>(from.getVisualEffectStatusBar(), + to.getVisualEffectStatusBar())); + } + if (from.getVisualEffectBadge() != to.getVisualEffectBadge()) { + addField(FIELD_VISUAL_EFFECT_BADGE, new FieldDiff<>(from.getVisualEffectBadge(), + to.getVisualEffectBadge())); + } + if (from.getVisualEffectAmbient() != to.getVisualEffectAmbient()) { + addField(FIELD_VISUAL_EFFECT_AMBIENT, new FieldDiff<>(from.getVisualEffectAmbient(), + to.getVisualEffectAmbient())); + } + if (from.getVisualEffectNotificationList() != to.getVisualEffectNotificationList()) { + addField(FIELD_VISUAL_EFFECT_NOTIFICATION_LIST, + new FieldDiff<>(from.getVisualEffectNotificationList(), + to.getVisualEffectNotificationList())); + } + if (from.getPriorityMessageSenders() != to.getPriorityMessageSenders()) { + addField(FIELD_PRIORITY_MESSAGES, new FieldDiff<>(from.getPriorityMessageSenders(), + to.getPriorityMessageSenders())); + } + if (from.getPriorityCallSenders() != to.getPriorityCallSenders()) { + addField(FIELD_PRIORITY_CALLS, new FieldDiff<>(from.getPriorityCallSenders(), + to.getPriorityCallSenders())); + } + if (from.getPriorityConversationSenders() != to.getPriorityConversationSenders()) { + addField(FIELD_CONVERSATION_SENDERS, + new FieldDiff<>(from.getPriorityConversationSenders(), + to.getPriorityConversationSenders())); + } + if (from.getPriorityChannelsAllowed() != to.getPriorityChannelsAllowed()) { + addField(FIELD_ALLOW_CHANNELS, new FieldDiff<>(from.getPriorityChannelsAllowed(), + to.getPriorityChannelsAllowed())); + } + } + + /** + * Returns whether this object represents an actual diff. + */ + @Override + public boolean hasDiff() { + return hasExistenceChange() || hasFieldDiffs(); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("ZenPolicyDiff{"); + // The diff should not have null diffs added, but we add this to be defensive. + if (!hasDiff()) { + sb.append("no changes"); + } + + // If added or deleted, we just append that. + if (hasExistenceChange()) { + if (wasAdded()) { + sb.append("added"); + } else if (wasRemoved()) { + sb.append("removed"); + } + } + + // Go through all of the individual fields + boolean first = true; + for (String key : fieldNamesWithDiff()) { + FieldDiff diff = getDiffForField(key); + if (diff == null) { + // this shouldn't happen... + continue; + } + if (first) { + first = false; + } else { + sb.append(", "); + } + + sb.append(key); + sb.append(":"); + sb.append(diff); + } + + return sb.append("}").toString(); + } + } + } diff --git a/core/java/android/service/notification/ZenPolicy.java b/core/java/android/service/notification/ZenPolicy.java index be0d7b3a72f2..4cff67e24a0f 100644 --- a/core/java/android/service/notification/ZenPolicy.java +++ b/core/java/android/service/notification/ZenPolicy.java @@ -29,6 +29,8 @@ import android.os.Parcel; import android.os.Parcelable; import android.util.proto.ProtoOutputStream; +import androidx.annotation.VisibleForTesting; + import java.io.ByteArrayOutputStream; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -207,8 +209,10 @@ public final class ZenPolicy implements Parcelable { /** * Total number of priority categories. Keep updated with any updates to PriorityCategory enum. + * If this changes, you must update {@link ZenModeDiff.PolicyDiff} to include new categories. * @hide */ + @VisibleForTesting public static final int NUM_PRIORITY_CATEGORIES = 9; /** @hide */ @@ -241,8 +245,10 @@ public final class ZenPolicy implements Parcelable { /** * Total number of visual effects. Keep updated with any updates to VisualEffect enum. + * If this changes, you must update {@link ZenModeDiff.PolicyDiff} to include new categories. * @hide */ + @VisibleForTesting public static final int NUM_VISUAL_EFFECTS = 7; /** @hide */ diff --git a/core/java/android/view/InputEventCompatProcessor.java b/core/java/android/view/InputEventCompatProcessor.java index ff8407a40cf5..50d81f4b6eec 100644 --- a/core/java/android/view/InputEventCompatProcessor.java +++ b/core/java/android/view/InputEventCompatProcessor.java @@ -18,6 +18,9 @@ package android.view; import android.content.Context; import android.os.Build; +import android.os.Handler; + +import com.android.window.flags.Flags; import java.util.ArrayList; import java.util.List; @@ -32,50 +35,102 @@ public class InputEventCompatProcessor { protected Context mContext; protected int mTargetSdkVersion; + private final LetterboxScrollProcessor mLetterboxScrollProcessor; /** List of events to be used to return the processed events */ - private List<InputEvent> mProcessedEvents; + private final List<InputEvent> mProcessedEvents; public InputEventCompatProcessor(Context context) { + this(context, null); + } + + public InputEventCompatProcessor(Context context, Handler handler) { mContext = context; mTargetSdkVersion = context.getApplicationInfo().targetSdkVersion; + if (Flags.scrollingFromLetterbox()) { + mLetterboxScrollProcessor = new LetterboxScrollProcessor(mContext, handler); + } else { + mLetterboxScrollProcessor = null; + } + mProcessedEvents = new ArrayList<>(); } + /** * Processes the InputEvent for compatibility before it is sent to the app, allowing for the * generation of more than one event if necessary. * - * @param e The InputEvent to process - * @return The list of adjusted events, or null if no adjustments are needed. Do not keep a - * reference to the output as the list is reused. + * @param inputEvent The InputEvent to process. + * @return The list of adjusted events, or null if no adjustments are needed. The list is empty + * if the event should be ignored. Do not keep a reference to the output as the list is reused. */ - public List<InputEvent> processInputEventForCompatibility(InputEvent e) { - if (mTargetSdkVersion < Build.VERSION_CODES.M && e instanceof MotionEvent) { - mProcessedEvents.clear(); - MotionEvent motion = (MotionEvent) e; - final int mask = - MotionEvent.BUTTON_STYLUS_PRIMARY | MotionEvent.BUTTON_STYLUS_SECONDARY; - final int buttonState = motion.getButtonState(); - final int compatButtonState = (buttonState & mask) >> 4; - if (compatButtonState != 0) { - motion.setButtonState(buttonState | compatButtonState); + public List<InputEvent> processInputEventForCompatibility(InputEvent inputEvent) { + mProcessedEvents.clear(); + + // Process the event for StylusButtonCompatibility. + final InputEvent stylusCompatEvent = processStylusButtonCompatibility(inputEvent); + + // Process the event for LetterboxScrollCompatibility. + List<MotionEvent> letterboxScrollCompatEvents = processLetterboxScrollCompatibility( + stylusCompatEvent != null ? stylusCompatEvent : inputEvent); + + // If no adjustments are needed for LetterboxCompatibility. + if (letterboxScrollCompatEvents == null) { + // If stylus compatibility made adjustments, return that adjusted event. + if (stylusCompatEvent != null) { + mProcessedEvents.add(stylusCompatEvent); + return mProcessedEvents; } - mProcessedEvents.add(motion); - return mProcessedEvents; + // Otherwise, return null to indicate no adjustments. + return null; } - return null; + + // Otherwise if LetterboxCompatibility made adjustments, return the list of adjusted events. + mProcessedEvents.addAll(letterboxScrollCompatEvents); + return mProcessedEvents; } /** * Processes the InputEvent for compatibility before it is finished by calling * InputEventReceiver#finishInputEvent(). * - * @param e The InputEvent to process - * @return The InputEvent to finish, or null if it should not be finished + * @param inputEvent The InputEvent to process. + * @return The InputEvent to finish, or null if it should not be finished. */ - public InputEvent processInputEventBeforeFinish(InputEvent e) { + public InputEvent processInputEventBeforeFinish(InputEvent inputEvent) { + if (mLetterboxScrollProcessor != null && inputEvent instanceof MotionEvent motionEvent) { + // LetterboxScrollProcessor may have generated events while processing motion events. + return mLetterboxScrollProcessor.processMotionEventBeforeFinish(motionEvent); + } + // No changes needed - return e; + return inputEvent; + } + + + private List<MotionEvent> processLetterboxScrollCompatibility(InputEvent inputEvent) { + if (mLetterboxScrollProcessor != null + && inputEvent instanceof MotionEvent motionEvent + && motionEvent.getAction() != MotionEvent.ACTION_OUTSIDE) { + return mLetterboxScrollProcessor.processMotionEvent(motionEvent); + } + return null; + } + + + private InputEvent processStylusButtonCompatibility(InputEvent inputEvent) { + if (mTargetSdkVersion < Build.VERSION_CODES.M && inputEvent instanceof MotionEvent) { + MotionEvent motion = (MotionEvent) inputEvent; + final int mask = + MotionEvent.BUTTON_STYLUS_PRIMARY | MotionEvent.BUTTON_STYLUS_SECONDARY; + final int buttonState = motion.getButtonState(); + final int compatButtonState = (buttonState & mask) >> 4; + if (compatButtonState != 0) { + motion.setButtonState(buttonState | compatButtonState); + } + return motion; + } + return null; } } diff --git a/core/java/android/view/LetterboxScrollProcessor.java b/core/java/android/view/LetterboxScrollProcessor.java new file mode 100644 index 000000000000..dc736d6abf7d --- /dev/null +++ b/core/java/android/view/LetterboxScrollProcessor.java @@ -0,0 +1,194 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.view; + +import android.annotation.Nullable; +import android.content.Context; +import android.graphics.Rect; +import android.os.Handler; + +import androidx.annotation.NonNull; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +/** + * {@link MotionEvent} processor that forwards scrolls on the letterbox area to the app's view + * hierarchy by translating the coordinates to app's inbound area. + * + * @hide + */ +public class LetterboxScrollProcessor { + + private enum LetterboxScrollState { + AWAITING_GESTURE_START, + GESTURE_STARTED_IN_APP, + GESTURE_STARTED_OUTSIDE_APP, + SCROLLING_STARTED_OUTSIDE_APP + } + + @NonNull private LetterboxScrollState mState = LetterboxScrollState.AWAITING_GESTURE_START; + @NonNull private final List<MotionEvent> mProcessedEvents = new ArrayList<>(); + + @NonNull private final GestureDetector mScrollDetector; + @NonNull private final Context mContext; + + /** IDs of events generated from this class */ + private final Set<Integer> mGeneratedEventIds = new HashSet<>(); + + public LetterboxScrollProcessor(@NonNull Context context, @Nullable Handler handler) { + mContext = context; + mScrollDetector = new GestureDetector(context, new ScrollListener(), handler); + } + + /** + * Processes the MotionEvent. If the gesture is started in the app's bounds, or moves over the + * app then the motion events are not adjusted. Motion events from outside the app's + * bounds that are detected as a scroll gesture are adjusted to be over the app's bounds. + * Otherwise (if the events are outside the app's bounds and not part of a scroll gesture), the + * motion events are ignored. + * + * @param motionEvent The MotionEvent to process. + * @return The list of adjusted events, or null if no adjustments are needed. The list is empty + * if the event should be ignored. Do not keep a reference to the output as the list is reused. + */ + public List<MotionEvent> processMotionEvent(MotionEvent motionEvent) { + mProcessedEvents.clear(); + final Rect appBounds = getAppBounds(); + + // Set state at the start of the gesture (when ACTION_DOWN is received) + if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { + if (isOutsideAppBounds(motionEvent, appBounds)) { + mState = LetterboxScrollState.GESTURE_STARTED_OUTSIDE_APP; + } else { + mState = LetterboxScrollState.GESTURE_STARTED_IN_APP; + } + } + + boolean makeNoAdjustments = false; + + switch (mState) { + case AWAITING_GESTURE_START: + case GESTURE_STARTED_IN_APP: + // Do not adjust events if gesture is started in or is over the app. + makeNoAdjustments = true; + break; + + case GESTURE_STARTED_OUTSIDE_APP: + // Send offset events to the scroll-detector. These events are not added to + // mProcessedEvents and are therefore ignored until detected as part of a scroll. + applyOffset(motionEvent, appBounds); + mScrollDetector.onTouchEvent(motionEvent); + // If scroll-detector triggered, then the state is changed to + // SCROLLING_STARTED_OUTSIDE_APP (scroll detector can only trigger after an + // ACTION_MOVE event is received). + if (mState == LetterboxScrollState.SCROLLING_STARTED_OUTSIDE_APP) { + // Also, include ACTION_MOVE motion event that triggered the scroll-detector. + mProcessedEvents.add(motionEvent); + } + break; + + // Once scroll-detector has detected scrolling, offset is applied to the gesture. + case SCROLLING_STARTED_OUTSIDE_APP: + if (isOutsideAppBounds(motionEvent, appBounds)) { + // Offset the event to be over the app if the event is out-of-bounds. + applyOffset(motionEvent, appBounds); + } else { + // Otherwise, the gesture is already over the app so stop offsetting it. + mState = LetterboxScrollState.GESTURE_STARTED_IN_APP; + } + mProcessedEvents.add(motionEvent); + break; + } + + // Reset state at the end of the gesture + if (motionEvent.getAction() == MotionEvent.ACTION_UP + || motionEvent.getAction() == MotionEvent.ACTION_CANCEL) { + mState = LetterboxScrollState.AWAITING_GESTURE_START; + } + + if (makeNoAdjustments) return null; + return mProcessedEvents; + } + + + /** + * Processes the InputEvent for compatibility before it is finished by calling + * InputEventReceiver#finishInputEvent(). + * + * @param motionEvent The MotionEvent to process. + * @return The motionEvent to finish, or null if it should not be finished. + */ + public InputEvent processMotionEventBeforeFinish(MotionEvent motionEvent) { + if (mGeneratedEventIds.remove(motionEvent.getId())) return null; + return motionEvent; + } + + private Rect getAppBounds() { + return mContext.getResources().getConfiguration().windowConfiguration.getBounds(); + } + + private boolean isOutsideAppBounds(MotionEvent motionEvent, Rect appBounds) { + return motionEvent.getX() < 0 || motionEvent.getX() >= appBounds.width() + || motionEvent.getY() < 0 || motionEvent.getY() >= appBounds.height(); + } + + private void applyOffset(MotionEvent event, Rect appBounds) { + float horizontalOffset = calculateOffset(event.getX(), appBounds.width()); + float verticalOffset = calculateOffset(event.getY(), appBounds.height()); + // Apply the offset to the motion event so it is over the app's view. + event.offsetLocation(horizontalOffset, verticalOffset); + } + + private float calculateOffset(float eventCoord, int appBoundary) { + if (eventCoord < 0) { + return -eventCoord; + } else if (eventCoord >= appBoundary) { + return -(eventCoord - appBoundary + 1); + } else { + return 0; + } + } + + private class ScrollListener extends GestureDetector.SimpleOnGestureListener { + private ScrollListener() {} + + @Override + public boolean onScroll( + @Nullable MotionEvent actionDownEvent, + @NonNull MotionEvent actionMoveEvent, + float distanceX, + float distanceY) { + // Inject in-bounds ACTION_DOWN event before continuing gesture with offset. + final MotionEvent newActionDownEvent = MotionEvent.obtain( + Objects.requireNonNull(actionDownEvent)); + Rect appBounds = getAppBounds(); + applyOffset(newActionDownEvent, appBounds); + mGeneratedEventIds.add(newActionDownEvent.getId()); + mProcessedEvents.add(newActionDownEvent); + + // Change state when onScroll method is triggered - at this point, the passed event is + // known to be 'part of' a scroll gesture. + mState = LetterboxScrollState.SCROLLING_STARTED_OUTSIDE_APP; + + return super.onScroll(actionDownEvent, actionMoveEvent, distanceX, distanceY); + } + } +} diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 0ed0e60f6b4d..1b62cfdf5dcb 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -42,6 +42,7 @@ import static android.view.flags.Flags.FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY; import static android.view.flags.Flags.FLAG_VIEW_VELOCITY_API; import static android.view.flags.Flags.enableUseMeasureCacheDuringForceLayout; import static android.view.flags.Flags.sensitiveContentAppProtection; +import static android.view.flags.Flags.toolkitFrameRateAnimationBugfix25q1; import static android.view.flags.Flags.toolkitFrameRateBySizeReadOnly; import static android.view.flags.Flags.toolkitFrameRateDefaultNormalReadOnly; import static android.view.flags.Flags.toolkitFrameRateSmallUsesPercentReadOnly; @@ -2458,13 +2459,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, toolkitFrameRateDefaultNormalReadOnly(); private static final boolean sToolkitFrameRateBySizeReadOnlyFlagValue = toolkitFrameRateBySizeReadOnly(); - private static final boolean sToolkitFrameRateSmallUsesPercentReadOnlyFlagValue = toolkitFrameRateSmallUsesPercentReadOnly(); private static final boolean sToolkitFrameRateViewEnablingReadOnlyFlagValue = toolkitFrameRateViewEnablingReadOnly(); private static boolean sToolkitFrameRateVelocityMappingReadOnlyFlagValue = toolkitFrameRateVelocityMappingReadOnly(); + private static boolean sToolkitFrameRateAnimationBugfix25q1FlagValue = + toolkitFrameRateAnimationBugfix25q1(); // Used to set frame rate compatibility. @Surface.FrameRateCompatibility int mFrameRateCompatibility = @@ -24429,6 +24431,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, invalidationTransform = t; } + // Increase the frame rate if there is a transformation that applies a matrix. + if (sToolkitFrameRateAnimationBugfix25q1FlagValue + && ((t.getTransformationType() & Transformation.TYPE_MATRIX) != 0)) { + mPrivateFlags4 |= PFLAG4_HAS_VIEW_PROPERTY_INVALIDATION; + mPrivateFlags4 |= PFLAG4_HAS_MOVED; + } + if (more) { if (!a.willChangeBounds()) { if ((flags & (ViewGroup.FLAG_OPTIMIZE_INVALIDATE | ViewGroup.FLAG_ANIMATION_DONE)) == diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index ac208b57788d..40a75fdcaa06 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1283,7 +1283,7 @@ public final class ViewRootImpl implements ViewParent, R.string.config_inputEventCompatProcessorOverrideClassName); if (processorOverrideName.isEmpty()) { // No compatibility processor override, using default. - mInputCompatProcessor = new InputEventCompatProcessor(context); + mInputCompatProcessor = new InputEventCompatProcessor(context, mHandler); } else { InputEventCompatProcessor compatProcessor = null; try { diff --git a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig index 513587eacfa7..b9e97502cad7 100644 --- a/core/java/android/view/accessibility/flags/accessibility_flags.aconfig +++ b/core/java/android/view/accessibility/flags/accessibility_flags.aconfig @@ -4,6 +4,13 @@ container: "system" # NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors. flag { + name: "a11y_expansion_state_api" + namespace: "accessibility" + description: "Enables new APIs for an app to convey if a node is expanded or collapsed." + bug: "362782536" +} + +flag { name: "a11y_overlay_callbacks" is_exported: true namespace: "accessibility" diff --git a/core/java/android/view/flags/refresh_rate_flags.aconfig b/core/java/android/view/flags/refresh_rate_flags.aconfig index e3054da51a29..7b049278731d 100644 --- a/core/java/android/view/flags/refresh_rate_flags.aconfig +++ b/core/java/android/view/flags/refresh_rate_flags.aconfig @@ -111,4 +111,12 @@ flag { description: "Feature flag to enable the functionality on views for the dVRR feature" bug: "335874198" is_fixed_read_only: true +} + +flag { + name: "toolkit_frame_rate_animation_bugfix_25q1" + namespace: "toolkit" + description: "Feature flag to enable the fix for applyLegacyAnimation for VRR V QPR2" + bug: "335874198" + is_fixed_read_only: true }
\ No newline at end of file diff --git a/core/java/android/window/flags/DesktopModeFlags.java b/core/java/android/window/flags/DesktopModeFlags.java index 944a106bf441..47af50dac930 100644 --- a/core/java/android/window/flags/DesktopModeFlags.java +++ b/core/java/android/window/flags/DesktopModeFlags.java @@ -64,7 +64,8 @@ public enum DesktopModeFlags { ENABLE_WINDOWING_EDGE_DRAG_RESIZE(Flags::enableWindowingEdgeDragResize, true), ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS( Flags::enableDesktopWindowingTaskbarRunningApps, true), - ENABLE_DESKTOP_WINDOWING_TRANSITIONS(Flags::enableDesktopWindowingTransitions, false); + ENABLE_DESKTOP_WINDOWING_TRANSITIONS(Flags::enableDesktopWindowingTransitions, false), + ENABLE_DESKTOP_WINDOWING_EXIT_TRANSITIONS(Flags::enableDesktopWindowingExitTransitions, false); private static final String TAG = "DesktopModeFlagsUtil"; // Function called to obtain aconfig flag value. diff --git a/core/java/com/android/internal/os/BatteryStatsHistory.java b/core/java/com/android/internal/os/BatteryStatsHistory.java index 5c270e0e874c..d61785e5f3e9 100644 --- a/core/java/com/android/internal/os/BatteryStatsHistory.java +++ b/core/java/com/android/internal/os/BatteryStatsHistory.java @@ -48,6 +48,7 @@ import com.android.internal.annotations.VisibleForTesting; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.ConcurrentModificationException; @@ -1745,9 +1746,12 @@ public class BatteryStatsHistory { mHistoryAddTmp.setTo(mHistoryLastWritten); mHistoryAddTmp.wakelockTag = null; mHistoryAddTmp.wakeReasonTag = null; + mHistoryAddTmp.powerStats = null; + mHistoryAddTmp.processStateChange = null; mHistoryAddTmp.eventCode = HistoryItem.EVENT_NONE; mHistoryAddTmp.states &= ~HistoryItem.STATE_CPU_RUNNING_FLAG; writeHistoryItem(wakeElapsedTimeMs, uptimeMs, mHistoryAddTmp); + } } mHistoryCur.states |= HistoryItem.STATE_CPU_RUNNING_FLAG; @@ -2453,6 +2457,20 @@ public class BatteryStatsHistory { } /** + * Prints battery stats history for debugging. + */ + public void dump(PrintWriter pw, long startTimeMs, long endTimeMs) { + BatteryStats.HistoryPrinter printer = new BatteryStats.HistoryPrinter(); + try (BatteryStatsHistoryIterator iterate = iterate(startTimeMs, endTimeMs)) { + while (iterate.hasNext()) { + HistoryItem next = iterate.next(); + printer.printNextItem(pw, next, 0, false, true); + } + } + pw.flush(); + } + + /** * Writes/reads an array of longs into Parcel using a compact format, where small integers use * fewer bytes. It is a bit more expensive than just writing the long into the parcel, * but at scale saves a lot of storage and allows recording of longer battery history. diff --git a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java index cff42fbcfcc5..4d0cd27fb037 100644 --- a/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java +++ b/core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java @@ -893,7 +893,7 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto } } - private static class Message { + protected static class Message { @Nullable private final Long mMessageHash; private final int mMessageMask; @@ -918,12 +918,17 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto } @Nullable - private String getMessage() { + protected Long getMessageHash() { + return mMessageHash; + } + + @Nullable + protected String getMessage() { return mMessageString; } @Nullable - private String getMessage(@NonNull ProtoLogViewerConfigReader viewerConfigReader) { + protected String getMessage(@NonNull ProtoLogViewerConfigReader viewerConfigReader) { if (mMessageString != null) { return mMessageString; } diff --git a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java index e382ac1513e0..8d37899f8602 100644 --- a/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java +++ b/core/java/com/android/internal/protolog/ProtoLogConfigurationServiceImpl.java @@ -110,12 +110,12 @@ public class ProtoLogConfigurationServiceImpl extends IProtoLogConfigurationServ private final ViewerConfigFileTracer mViewerConfigFileTracer; public ProtoLogConfigurationServiceImpl() { - this(ProtoLogDataSource::new, ProtoLogConfigurationServiceImpl::dumpTransitionTraceConfig); + this(ProtoLogDataSource::new, ProtoLogConfigurationServiceImpl::dumpViewerConfig); } @VisibleForTesting public ProtoLogConfigurationServiceImpl(@NonNull ProtoLogDataSourceBuilder dataSourceBuilder) { - this(dataSourceBuilder, ProtoLogConfigurationServiceImpl::dumpTransitionTraceConfig); + this(dataSourceBuilder, ProtoLogConfigurationServiceImpl::dumpViewerConfig); } @VisibleForTesting @@ -375,7 +375,7 @@ public class ProtoLogConfigurationServiceImpl extends IProtoLogConfigurationServ mRunningInstances.remove(instanceIdx); } - private static void dumpTransitionTraceConfig(@NonNull ProtoLogDataSource dataSource, + private static void dumpViewerConfig(@NonNull ProtoLogDataSource dataSource, @NonNull String viewerConfigFilePath) { Utils.dumpViewerConfig(dataSource, () -> { try { diff --git a/core/java/com/android/internal/protolog/ProtoLogGroup.java b/core/java/com/android/internal/protolog/ProtoLogGroup.java index bb3507caf7f4..65218702110a 100644 --- a/core/java/com/android/internal/protolog/ProtoLogGroup.java +++ b/core/java/com/android/internal/protolog/ProtoLogGroup.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 The Android Open Source Project + * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,108 +16,35 @@ package com.android.internal.protolog; +import android.annotation.NonNull; + import com.android.internal.protolog.common.IProtoLogGroup; -import java.util.UUID; +public class ProtoLogGroup implements IProtoLogGroup { -/** - * Defines logging groups for ProtoLog. - * - * This file is used by the ProtoLogTool to generate optimized logging code. All of its dependencies - * must be included in services.core.wm.protologgroups build target. - */ -public enum ProtoLogGroup implements IProtoLogGroup { - WM_ERROR(true, true, true, Consts.TAG_WM), - WM_DEBUG_ORIENTATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_FOCUS_LIGHT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_BOOT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_RESIZE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_ADD_REMOVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_CONFIGURATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_SWITCH(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_CONTAINERS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_FOCUS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_IMMERSIVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_LOCKTASK(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_STATES(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_TASKS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_STARTING_WINDOW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_SHOW_TRANSACTIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_SHOW_SURFACE_ALLOC(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_APP_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), - WM_DEBUG_APP_TRANSITIONS_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_RECENTS_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_DRAW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), - WM_DEBUG_REMOTE_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), - WM_DEBUG_KEEP_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_WINDOW_MOVEMENT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_IME(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_WINDOW_ORGANIZER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_SYNC_ENGINE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_WINDOW_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_WINDOW_TRANSITIONS_MIN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, - Consts.TAG_WM), - WM_DEBUG_WINDOW_INSETS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - WM_DEBUG_CONTENT_RECORDING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, - Consts.TAG_WM), - WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), - WM_DEBUG_BACK_PREVIEW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, - "CoreBackPreview"), - WM_DEBUG_DREAM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM), - - WM_DEBUG_DIMMER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), - WM_DEBUG_TPL(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), - WM_DEBUG_EMBEDDED_WINDOWS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, - Consts.TAG_WM), - TEST_GROUP(true, true, false, "WindowManagerProtoLogTest"); - - private final boolean mEnabled; - private volatile boolean mLogToProto; - private volatile boolean mLogToLogcat; + /** The name should be unique across the codebase. */ + @NonNull + private final String mName; + @NonNull private final String mTag; + private final boolean mEnabled; + private boolean mLogToProto; + private boolean mLogToLogcat; + + public ProtoLogGroup(@NonNull String name) { + this(name, name); + } - /** - * @param enabled set to false to exclude all log statements for this group from - * compilation, - * they will not be available in runtime. - * @param logToProto enable binary logging for the group - * @param logToLogcat enable text logging for the group - * @param tag name of the source of the logged message - */ - ProtoLogGroup(boolean enabled, boolean logToProto, boolean logToLogcat, String tag) { - this.mEnabled = enabled; - this.mLogToProto = logToProto; - this.mLogToLogcat = logToLogcat; - this.mTag = tag; + public ProtoLogGroup(@NonNull String name, @NonNull String tag) { + this(name, tag, true); + } + + public ProtoLogGroup(@NonNull String name, @NonNull String tag, boolean enabled) { + mName = name; + mTag = tag; + mEnabled = enabled; + mLogToProto = enabled; + mLogToLogcat = enabled; } @Override @@ -125,6 +52,7 @@ public enum ProtoLogGroup implements IProtoLogGroup { return mEnabled; } + @Deprecated @Override public boolean isLogToProto() { return mLogToProto; @@ -136,37 +64,30 @@ public enum ProtoLogGroup implements IProtoLogGroup { } @Override - public boolean isLogToAny() { - return mLogToLogcat || mLogToProto; - } - - @Override + @NonNull public String getTag() { return mTag; } + @Deprecated @Override public void setLogToProto(boolean logToProto) { - this.mLogToProto = logToProto; + mLogToProto = logToProto; } @Override public void setLogToLogcat(boolean logToLogcat) { - this.mLogToLogcat = logToLogcat; + mLogToLogcat = logToLogcat; } @Override - public int getId() { - return Consts.START_ID + this.ordinal(); + @NonNull + public String name() { + return mName; } - private static class Consts { - private static final String TAG_WM = "WindowManager"; - - private static final boolean ENABLE_DEBUG = true; - private static final boolean ENABLE_LOG_TO_PROTO_DEBUG = true; - private static final int START_ID = (int) ( - UUID.nameUUIDFromBytes(ProtoLogGroup.class.getName().getBytes()) - .getMostSignificantBits() % Integer.MAX_VALUE); + @Override + public int getId() { + return mName.hashCode(); } } diff --git a/core/java/com/android/internal/protolog/WmProtoLogGroups.java b/core/java/com/android/internal/protolog/WmProtoLogGroups.java new file mode 100644 index 000000000000..4bd5d24b71e2 --- /dev/null +++ b/core/java/com/android/internal/protolog/WmProtoLogGroups.java @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.protolog; + +import com.android.internal.protolog.common.IProtoLogGroup; + +import java.util.UUID; + +/** + * Defines logging groups for ProtoLog. + * + * This file is used by the ProtoLogTool to generate optimized logging code. All of its dependencies + * must be included in services.core.wm.protologgroups build target. + */ +public enum WmProtoLogGroups implements IProtoLogGroup { + WM_ERROR(true, true, true, Consts.TAG_WM), + WM_DEBUG_ORIENTATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_FOCUS_LIGHT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_BOOT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_RESIZE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_ADD_REMOVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_CONFIGURATION(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_SWITCH(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_CONTAINERS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_FOCUS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_IMMERSIVE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_LOCKTASK(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_STATES(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_TASKS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_STARTING_WINDOW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_SHOW_TRANSACTIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_SHOW_SURFACE_ALLOC(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_APP_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), + WM_DEBUG_APP_TRANSITIONS_ANIM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_RECENTS_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_DRAW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), + WM_DEBUG_REMOTE_ANIMATIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), + WM_DEBUG_KEEP_SCREEN_ON(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_SLEEP_TOKEN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, + Consts.TAG_WM), + WM_DEBUG_WINDOW_MOVEMENT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_IME(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_WINDOW_ORGANIZER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_SYNC_ENGINE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_WINDOW_TRANSITIONS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_WINDOW_TRANSITIONS_MIN(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, + Consts.TAG_WM), + WM_DEBUG_WINDOW_INSETS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + WM_DEBUG_CONTENT_RECORDING(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, + Consts.TAG_WM), + WM_DEBUG_WALLPAPER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), + WM_DEBUG_BACK_PREVIEW(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, + "CoreBackPreview"), + WM_DEBUG_DREAM(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, true, Consts.TAG_WM), + + WM_DEBUG_DIMMER(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), + WM_DEBUG_TPL(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, Consts.TAG_WM), + WM_DEBUG_EMBEDDED_WINDOWS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false, + Consts.TAG_WM), + TEST_GROUP(true, true, false, "WindowManagerProtoLogTest"); + + private final boolean mEnabled; + private volatile boolean mLogToProto; + private volatile boolean mLogToLogcat; + private final String mTag; + + /** + * @param enabled set to false to exclude all log statements for this group from + * compilation, + * they will not be available in runtime. + * @param logToProto enable binary logging for the group + * @param logToLogcat enable text logging for the group + * @param tag name of the source of the logged message + */ + WmProtoLogGroups(boolean enabled, boolean logToProto, boolean logToLogcat, String tag) { + this.mEnabled = enabled; + this.mLogToProto = logToProto; + this.mLogToLogcat = logToLogcat; + this.mTag = tag; + } + + @Override + public boolean isEnabled() { + return mEnabled; + } + + @Override + public boolean isLogToProto() { + return mLogToProto; + } + + @Override + public boolean isLogToLogcat() { + return mLogToLogcat; + } + + @Override + public boolean isLogToAny() { + return mLogToLogcat || mLogToProto; + } + + @Override + public String getTag() { + return mTag; + } + + @Override + public void setLogToProto(boolean logToProto) { + this.mLogToProto = logToProto; + } + + @Override + public void setLogToLogcat(boolean logToLogcat) { + this.mLogToLogcat = logToLogcat; + } + + @Override + public int getId() { + return Consts.START_ID + this.ordinal(); + } + + private static class Consts { + private static final String TAG_WM = "WindowManager"; + + private static final boolean ENABLE_DEBUG = true; + private static final boolean ENABLE_LOG_TO_PROTO_DEBUG = true; + private static final int START_ID = (int) ( + UUID.nameUUIDFromBytes(WmProtoLogGroups.class.getName().getBytes()) + .getMostSignificantBits() % Integer.MAX_VALUE); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java index 2d365368a013..deae9a571e12 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/CompanionOperation.java @@ -27,9 +27,5 @@ public interface CompanionOperation { * @param operations command is to be added */ void read(WireBuffer buffer, List<Operation> operations); - - // Debugging / Documentation utility functions - String name(); - int id(); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java index effbbe2f0c1d..18be4809998c 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +++ b/core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java @@ -15,16 +15,23 @@ */ package com.android.internal.widget.remotecompose.core; +import com.android.internal.widget.remotecompose.core.operations.ComponentValue; import com.android.internal.widget.remotecompose.core.operations.NamedVariable; import com.android.internal.widget.remotecompose.core.operations.RootContentBehavior; import com.android.internal.widget.remotecompose.core.operations.Theme; +import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierEnd; +import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentEnd; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation; import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent; import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentModifiers; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ModifierOperation; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.Set; @@ -34,6 +41,8 @@ import java.util.Set; */ public class CoreDocument { + private static final boolean DEBUG = false; + ArrayList<Operation> mOperations; RootLayoutComponent mRootLayoutComponent = null; @@ -57,6 +66,8 @@ public class CoreDocument { RemoteComposeBuffer mBuffer = new RemoteComposeBuffer(mRemoteComposeState); + private int mLastId = 1; // last component id when inflating the file + public String getContentDescription() { return mContentDescription; } @@ -303,6 +314,59 @@ public class CoreDocument { return null; } + /** + * Returns a string representation of the component hierarchy of the document + * + * @return a standardized string representation of the component hierarchy + */ + public String displayHierarchy() { + StringSerializer serializer = new StringSerializer(); + for (Operation op : mOperations) { + if (op instanceof RootLayoutComponent) { + ((RootLayoutComponent) op).displayHierarchy((Component) op, 0, serializer); + } else if (op instanceof SerializableToString) { + ((SerializableToString) op).serializeToString(0, serializer); + } + } + return serializer.toString(); + } + + /** + * Callback interface for host actions + */ + public interface ActionCallback { + // TODO: add payload support + void onAction(String name); + } + + HashSet<ActionCallback> mActionListeners = new HashSet<ActionCallback>(); + + /** + * Warn action listeners for the given named action + * @param name the action name + */ + public void runNamedAction(String name) { + for (ActionCallback callback : mActionListeners) { + callback.onAction(name); + } + } + + /** + * Add a callback for handling the named host actions + * + * @param callback + */ + public void addActionCallback(ActionCallback callback) { + mActionListeners.add(callback); + } + + /** + * Clear existing callbacks for named host actions + */ + public void clearActionCallbacks() { + mActionListeners.clear(); + } + public interface ClickCallbacks { void click(int id, String metadata); } @@ -403,7 +467,7 @@ public class CoreDocument { } } if (mRootLayoutComponent != null) { - mRootLayoutComponent.assignIds(); + mRootLayoutComponent.assignIds(mLastId); } } @@ -417,7 +481,9 @@ public class CoreDocument { ArrayList<Component> components = new ArrayList<>(); ArrayList<Operation> finalOperationsList = new ArrayList<>(); ArrayList<Operation> ops = finalOperationsList; + ClickModifierOperation currentClickModifier = null; + mLastId = -1; for (Operation o : operations) { if (o instanceof ComponentStartOperation) { Component component = (Component) o; @@ -426,6 +492,9 @@ public class CoreDocument { currentComponent = component; ops.add(currentComponent); ops = currentComponent.getList(); + if (component.getComponentId() < mLastId) { + mLastId = component.getComponentId(); + } } else if (o instanceof ComponentEnd) { if (currentComponent instanceof LayoutComponent) { ((LayoutComponent) currentComponent).inflate(); @@ -437,6 +506,14 @@ public class CoreDocument { } else { ops = finalOperationsList; } + } else if (o instanceof ClickModifierOperation) { + // TODO: refactor to add container <- component... + currentClickModifier = (ClickModifierOperation) o; + ops = ((ClickModifierOperation) o).getList(); + } else if (o instanceof ClickModifierEnd) { + ops = currentComponent.getList(); + ops.add(currentClickModifier); + currentClickModifier = null; } else { ops.add(o); } @@ -444,12 +521,46 @@ public class CoreDocument { return ops; } + private HashMap<Integer, Component> mComponentMap = new HashMap<Integer, Component>(); + + private void registerVariables(RemoteContext context, ArrayList<Operation> list) { + for (Operation op : list) { + if (op instanceof VariableSupport) { + ((VariableSupport) op).updateVariables(context); + ((VariableSupport) op).registerListening(context); + } + if (op instanceof Component) { + mComponentMap.put(((Component) op).getComponentId(), (Component) op); + registerVariables(context, ((Component) op).getList()); + } + if (op instanceof ComponentValue) { + ComponentValue v = (ComponentValue) op; + Component component = mComponentMap.get(v.getComponentId()); + if (component != null) { + component.addComponentValue(v); + } else { + System.out.println("=> Component not found for id " + v.getComponentId()); + } + } + if (op instanceof ComponentModifiers) { + for (ModifierOperation modifier : ((ComponentModifiers) op).getList()) { + if (modifier instanceof VariableSupport) { + ((VariableSupport) modifier).updateVariables(context); + ((VariableSupport) modifier).registerListening(context); + } + } + } + op.apply(context); + } + } + /** * Called when an initialization is needed, allowing the document to eg load * resources / cache them. */ public void initializeContext(RemoteContext context) { mRemoteComposeState.reset(); + mRemoteComposeState.setContext(context); mClickAreas.clear(); mRemoteComposeState.setNextId(RemoteComposeState.START_ID); context.mDocument = this; @@ -458,15 +569,8 @@ public class CoreDocument { context.mMode = RemoteContext.ContextMode.DATA; mTimeVariables.updateTime(context); - for (Operation op : mOperations) { - if (op instanceof VariableSupport) { - ((VariableSupport) op).updateVariables(context); - ((VariableSupport) op).registerListening(context); - } - op.apply(context); - } + registerVariables(context, mOperations); context.mMode = RemoteContext.ContextMode.UNSET; - } /////////////////////////////////////////////////////////////////////////////////////////////// @@ -529,15 +633,27 @@ public class CoreDocument { } /** + * Returns the list of set click listeners + * + * @return set of click listeners + */ + public HashSet<CoreDocument.ClickCallbacks> getClickListeners() { + return mClickListeners; + } + + /** * Passing a click event to the document. This will possibly result in calling the click * listeners. */ - public void onClick(float x, float y) { + public void onClick(RemoteContext context, float x, float y) { for (ClickAreaRepresentation clickArea : mClickAreas) { if (clickArea.contains(x, y)) { warnClickListeners(clickArea); } } + if (mRootLayoutComponent != null) { + mRootLayoutComponent.onClick(context, this, x, y); + } } /** @@ -551,6 +667,9 @@ public class CoreDocument { warnClickListeners(clickArea); } } + for (ClickCallbacks listener : mClickListeners) { + listener.click(id, ""); + } } /** @@ -627,13 +746,17 @@ public class CoreDocument { * @param theme the theme we want to use for this document. */ public void paint(RemoteContext context, int theme) { - context.mMode = RemoteContext.ContextMode.PAINT; + long time = System.nanoTime(); + context.getPaintContext().clearNeedsRepaint(); + context.mMode = RemoteContext.ContextMode.UNSET; // current theme starts as UNSPECIFIED, until a Theme setter // operation gets executed and modify it. context.setTheme(Theme.UNSPECIFIED); context.mRemoteComposeState = mRemoteComposeState; + context.mRemoteComposeState.setContext(context); + if (mContentSizing == RootContentBehavior.SIZING_SCALE) { // we need to add canvas transforms ops here computeScale(context.mWidth, context.mHeight, mScaleOutput); @@ -643,8 +766,8 @@ public class CoreDocument { context.mPaintContext.scale(mScaleOutput[0], mScaleOutput[1]); } mTimeVariables.updateTime(context); - context.loadFloat(RemoteContext.ID_WINDOW_WIDTH, getWidth()); - context.loadFloat(RemoteContext.ID_WINDOW_HEIGHT, getHeight()); + context.loadFloat(RemoteContext.ID_WINDOW_WIDTH, context.mWidth); + context.loadFloat(RemoteContext.ID_WINDOW_HEIGHT, context.mHeight); mRepaintNext = context.updateOps(); if (mRootLayoutComponent != null) { if (context.mWidth != mRootLayoutComponent.getWidth() @@ -654,10 +777,19 @@ public class CoreDocument { if (mRootLayoutComponent.needsMeasure()) { mRootLayoutComponent.layout(context); } + // TODO -- this should be specifically about applying animation, not paint + mRootLayoutComponent.paint(context.getPaintContext()); + // TODO -- should be able to remove this + mRootLayoutComponent.updateVariables(context); + if (DEBUG) { + String hierarchy = mRootLayoutComponent.displayHierarchy(); + System.out.println(hierarchy); + } if (mRootLayoutComponent.doesNeedsRepaint()) { mRepaintNext = 1; } } + context.mMode = RemoteContext.ContextMode.PAINT; for (Operation op : mOperations) { // operations will only be executed if no theme is set (ie UNSPECIFIED) // or the theme is equal as the one passed in argument to paint. @@ -671,8 +803,95 @@ public class CoreDocument { op.apply(context); } } + if (context.getPaintContext().doesNeedsRepaint() + || (mRootLayoutComponent != null && mRootLayoutComponent.doesNeedsRepaint())) { + mRepaintNext = 1; + } context.mMode = RemoteContext.ContextMode.UNSET; + // System.out.println(">> " + ( System.nanoTime() - time)*1E-6f+" ms"); + } + + public String[] getStats() { + ArrayList<String> ret = new ArrayList<>(); + WireBuffer buffer = new WireBuffer(); + int count = mOperations.size(); + HashMap<String, int[]> map = new HashMap<>(); + for (Operation mOperation : mOperations) { + Class<? extends Operation> c = mOperation.getClass(); + int[] values; + if (map.containsKey(c.getSimpleName())) { + values = map.get(c.getSimpleName()); + } else { + values = new int[2]; + map.put(c.getSimpleName(), values); + } + + values[0] += 1; + values[1] += sizeOfComponent(mOperation, buffer); + if (mOperation instanceof Component) { + Component com = (Component) mOperation; + count += addChildren(com, map, buffer); + + } + } + + ret.add(0, "number of operations : " + count); + + for (String s : map.keySet()) { + int[] v = map.get(s); + ret.add(s + " : " + v[0] + ":" + v[1]); + } + return ret.toArray(new String[0]); + } + + private int sizeOfComponent(Operation com, WireBuffer tmp) { + tmp.reset(100); + com.write(tmp); + int size = tmp.getSize(); + tmp.reset(100); + return size; } + private int addChildren(Component base, HashMap<String, int[]> map, WireBuffer tmp) { + int count = base.mList.size(); + for (Operation mOperation : base.mList) { + Class<? extends Operation> c = mOperation.getClass(); + int[] values; + if (map.containsKey(c.getSimpleName())) { + values = map.get(c.getSimpleName()); + } else { + values = new int[2]; + map.put(c.getSimpleName(), values); + } + values[0] += 1; + values[1] += sizeOfComponent(mOperation, tmp); + if (mOperation instanceof Component) { + count += addChildren((Component) mOperation, map, tmp); + } + } + return count; + } + + public String toNestedString() { + StringBuilder ret = new StringBuilder(); + for (Operation mOperation : mOperations) { + ret.append(mOperation.toString()); + ret.append("\n"); + if (mOperation instanceof Component) { + toNestedString((Component) mOperation, ret, " "); + } + } + return ret.toString(); + } + + private void toNestedString(Component base, StringBuilder ret, String indent) { + for (Operation mOperation : base.mList) { + ret.append(mOperation.toString()); + ret.append("\n"); + if (mOperation instanceof Component) { + toNestedString((Component) mOperation, ret, indent + " "); + } + } + } } diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirect.java b/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java index b582ccf7b656..661cf7cf4491 100644 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirect.java +++ b/core/java/com/android/internal/widget/remotecompose/core/DocumentedCompanion.java @@ -13,23 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.ravenwood.annotation; +package com.android.internal.widget.remotecompose.core; -import static java.lang.annotation.ElementType.METHOD; +import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; +public interface DocumentedCompanion extends CompanionOperation , DocumentedCompanionOperation { -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * - * @hide - */ -@Target({METHOD}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodRedirect { } diff --git a/core/java/com/android/internal/widget/remotecompose/core/Operations.java b/core/java/com/android/internal/widget/remotecompose/core/Operations.java index 9cb024bd234e..4a25b5eff3c9 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/Operations.java +++ b/core/java/com/android/internal/widget/remotecompose/core/Operations.java @@ -21,6 +21,10 @@ import com.android.internal.widget.remotecompose.core.operations.ClipPath; import com.android.internal.widget.remotecompose.core.operations.ClipRect; import com.android.internal.widget.remotecompose.core.operations.ColorConstant; import com.android.internal.widget.remotecompose.core.operations.ColorExpression; +import com.android.internal.widget.remotecompose.core.operations.ComponentValue; +import com.android.internal.widget.remotecompose.core.operations.DataListFloat; +import com.android.internal.widget.remotecompose.core.operations.DataListIds; +import com.android.internal.widget.remotecompose.core.operations.DataMapIds; import com.android.internal.widget.remotecompose.core.operations.DrawArc; import com.android.internal.widget.remotecompose.core.operations.DrawBitmap; import com.android.internal.widget.remotecompose.core.operations.DrawBitmapInt; @@ -54,24 +58,35 @@ import com.android.internal.widget.remotecompose.core.operations.TextData; import com.android.internal.widget.remotecompose.core.operations.TextFromFloat; import com.android.internal.widget.remotecompose.core.operations.TextMerge; import com.android.internal.widget.remotecompose.core.operations.Theme; +import com.android.internal.widget.remotecompose.core.operations.layout.CanvasContent; +import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierEnd; +import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentEnd; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStart; import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponentContent; import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent; import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimationSpec; import com.android.internal.widget.remotecompose.core.operations.layout.managers.BoxLayout; +import com.android.internal.widget.remotecompose.core.operations.layout.managers.CanvasLayout; import com.android.internal.widget.remotecompose.core.operations.layout.managers.ColumnLayout; import com.android.internal.widget.remotecompose.core.operations.layout.managers.RowLayout; +import com.android.internal.widget.remotecompose.core.operations.layout.managers.TextLayout; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BackgroundModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BorderModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ClipRectModifierOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentVisibilityOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HeightModifierOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostActionOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostNamedActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueIntegerChangeActionOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueStringChangeActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.WidthModifierOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.IntMap; import com.android.internal.widget.remotecompose.core.types.BooleanConstant; import com.android.internal.widget.remotecompose.core.types.IntegerConstant; +import com.android.internal.widget.remotecompose.core.types.LongConstant; /** * List of operations supported in a RemoteCompose document @@ -130,6 +145,10 @@ public class Operations { public static final int DATA_INT = 140; public static final int DATA_BOOLEAN = 143; public static final int INTEGER_EXPRESSION = 144; + public static final int ID_MAP = 145; + public static final int ID_LIST = 146; + public static final int FLOAT_LIST = 147; + public static final int DATA_LONG = 148; /////////////////////////////////////////====================== @@ -142,6 +161,10 @@ public class Operations { public static final int LAYOUT_BOX = 202; public static final int LAYOUT_ROW = 203; public static final int LAYOUT_COLUMN = 204; + public static final int LAYOUT_CANVAS = 205; + public static final int LAYOUT_CANVAS_CONTENT = 207; + + public static final int LAYOUT_TEXT = 208; public static final int COMPONENT_START = 2; public static final int COMPONENT_END = 3; public static final int MODIFIER_WIDTH = 16; @@ -151,73 +174,110 @@ public class Operations { public static final int MODIFIER_PADDING = 58; public static final int MODIFIER_CLIP_RECT = 108; public static final int MODIFIER_ROUNDED_CLIP_RECT = 54; + + public static final int MODIFIER_CLICK = 59; + + public static final int MODIFIER_CLICK_END = 214; + + public static final int MODIFIER_VISIBILITY = 211; + public static final int HOST_ACTION = 209; + public static final int HOST_NAMED_ACTION = 210; + + public static final int VALUE_INTEGER_CHANGE_ACTION = 212; + public static final int VALUE_STRING_CHANGE_ACTION = 213; + public static final int ANIMATION_SPEC = 14; - public static IntMap<CompanionOperation> map = new IntMap<>(); + public static final int COMPONENT_VALUE = 150; + + public static UniqueIntMap<CompanionOperation> map = new UniqueIntMap<>(); + + static class UniqueIntMap<T> extends IntMap<T> { + @Override + public T put(int key, T value) { + assert null == get(key) : "Opcode " + key + " already used in Operations !"; + return super.put(key, value); + } + } static { - map.put(HEADER, Header.COMPANION); - map.put(DRAW_BITMAP_INT, DrawBitmapInt.COMPANION); - map.put(DATA_BITMAP, BitmapData.COMPANION); - map.put(DATA_TEXT, TextData.COMPANION); - map.put(THEME, Theme.COMPANION); - map.put(CLICK_AREA, ClickArea.COMPANION); - map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior.COMPANION); - map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription.COMPANION); - - map.put(DRAW_ARC, DrawArc.COMPANION); - map.put(DRAW_BITMAP, DrawBitmap.COMPANION); - map.put(DRAW_CIRCLE, DrawCircle.COMPANION); - map.put(DRAW_LINE, DrawLine.COMPANION); - map.put(DRAW_OVAL, DrawOval.COMPANION); - map.put(DRAW_PATH, DrawPath.COMPANION); - map.put(DRAW_RECT, DrawRect.COMPANION); - map.put(DRAW_ROUND_RECT, DrawRoundRect.COMPANION); - map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath.COMPANION); - map.put(DRAW_TEXT_RUN, DrawText.COMPANION); - map.put(DRAW_TWEEN_PATH, DrawTweenPath.COMPANION); - map.put(DATA_PATH, PathData.COMPANION); - map.put(PAINT_VALUES, PaintData.COMPANION); - map.put(MATRIX_RESTORE, MatrixRestore.COMPANION); - map.put(MATRIX_ROTATE, MatrixRotate.COMPANION); - map.put(MATRIX_SAVE, MatrixSave.COMPANION); - map.put(MATRIX_SCALE, MatrixScale.COMPANION); - map.put(MATRIX_SKEW, MatrixSkew.COMPANION); - map.put(MATRIX_TRANSLATE, MatrixTranslate.COMPANION); - map.put(CLIP_PATH, ClipPath.COMPANION); - map.put(CLIP_RECT, ClipRect.COMPANION); - map.put(DATA_SHADER, ShaderData.COMPANION); - map.put(DATA_FLOAT, FloatConstant.COMPANION); - map.put(ANIMATED_FLOAT, FloatExpression.COMPANION); - map.put(DRAW_TEXT_ANCHOR, DrawTextAnchored.COMPANION); - map.put(COLOR_EXPRESSIONS, ColorExpression.COMPANION); - map.put(TEXT_FROM_FLOAT, TextFromFloat.COMPANION); - map.put(TEXT_MERGE, TextMerge.COMPANION); - map.put(NAMED_VARIABLE, NamedVariable.COMPANION); - map.put(COLOR_CONSTANT, ColorConstant.COMPANION); - map.put(DATA_INT, IntegerConstant.COMPANION); - map.put(INTEGER_EXPRESSION, IntegerExpression.COMPANION); - map.put(DATA_BOOLEAN, BooleanConstant.COMPANION); + map.put(HEADER, Header::read); + map.put(DRAW_BITMAP_INT, DrawBitmapInt::read); + map.put(DATA_BITMAP, BitmapData::read); + map.put(DATA_TEXT, TextData::read); + map.put(THEME, Theme::read); + map.put(CLICK_AREA, ClickArea::read); + map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior::read); + map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription::read); + + map.put(DRAW_ARC, DrawArc::read); + map.put(DRAW_BITMAP, DrawBitmap::read); + map.put(DRAW_CIRCLE, DrawCircle::read); + map.put(DRAW_LINE, DrawLine::read); + map.put(DRAW_OVAL, DrawOval::read); + map.put(DRAW_PATH, DrawPath::read); + map.put(DRAW_RECT, DrawRect::read); + map.put(DRAW_ROUND_RECT, DrawRoundRect::read); + map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath::read); + map.put(DRAW_TEXT_RUN, DrawText::read); + map.put(DRAW_TWEEN_PATH, DrawTweenPath::read); + map.put(DATA_PATH, PathData::read); + map.put(PAINT_VALUES, PaintData::read); + map.put(MATRIX_RESTORE, MatrixRestore::read); + map.put(MATRIX_ROTATE, MatrixRotate::read); + map.put(MATRIX_SAVE, MatrixSave::read); + map.put(MATRIX_SCALE, MatrixScale::read); + map.put(MATRIX_SKEW, MatrixSkew::read); + map.put(MATRIX_TRANSLATE, MatrixTranslate::read); + map.put(CLIP_PATH, ClipPath::read); + map.put(CLIP_RECT, ClipRect::read); + map.put(DATA_SHADER, ShaderData::read); + map.put(DATA_FLOAT, FloatConstant::read); + map.put(ANIMATED_FLOAT, FloatExpression::read); + map.put(DRAW_TEXT_ANCHOR, DrawTextAnchored::read); + map.put(COLOR_EXPRESSIONS, ColorExpression::read); + map.put(TEXT_FROM_FLOAT, TextFromFloat::read); + map.put(TEXT_MERGE, TextMerge::read); + map.put(NAMED_VARIABLE, NamedVariable::read); + map.put(COLOR_CONSTANT, ColorConstant::read); + map.put(DATA_INT, IntegerConstant::read); + map.put(INTEGER_EXPRESSION, IntegerExpression::read); + map.put(DATA_BOOLEAN, BooleanConstant::read); + map.put(ID_MAP, DataMapIds::read); + map.put(ID_LIST, DataListIds::read); + map.put(FLOAT_LIST, DataListFloat::read); + map.put(DATA_LONG, LongConstant::read); // Layout - map.put(COMPONENT_START, ComponentStart.COMPANION); - map.put(COMPONENT_END, ComponentEnd.COMPANION); - map.put(ANIMATION_SPEC, AnimationSpec.COMPANION); - - map.put(MODIFIER_WIDTH, WidthModifierOperation.COMPANION); - map.put(MODIFIER_HEIGHT, HeightModifierOperation.COMPANION); - map.put(MODIFIER_PADDING, PaddingModifierOperation.COMPANION); - map.put(MODIFIER_BACKGROUND, BackgroundModifierOperation.COMPANION); - map.put(MODIFIER_BORDER, BorderModifierOperation.COMPANION); - map.put(MODIFIER_ROUNDED_CLIP_RECT, RoundedClipRectModifierOperation.COMPANION); - map.put(MODIFIER_CLIP_RECT, ClipRectModifierOperation.COMPANION); - - map.put(LAYOUT_ROOT, RootLayoutComponent.COMPANION); - map.put(LAYOUT_CONTENT, LayoutComponentContent.COMPANION); - map.put(LAYOUT_BOX, BoxLayout.COMPANION); - map.put(LAYOUT_COLUMN, ColumnLayout.COMPANION); - map.put(LAYOUT_ROW, RowLayout.COMPANION); - } + map.put(COMPONENT_START, ComponentStart::read); + map.put(COMPONENT_END, ComponentEnd::read); + map.put(ANIMATION_SPEC, AnimationSpec::read); + map.put(MODIFIER_WIDTH, WidthModifierOperation::read); + map.put(MODIFIER_HEIGHT, HeightModifierOperation::read); + map.put(MODIFIER_PADDING, PaddingModifierOperation::read); + map.put(MODIFIER_BACKGROUND, BackgroundModifierOperation::read); + map.put(MODIFIER_BORDER, BorderModifierOperation::read); + map.put(MODIFIER_ROUNDED_CLIP_RECT, RoundedClipRectModifierOperation::read); + map.put(MODIFIER_CLIP_RECT, ClipRectModifierOperation::read); + map.put(MODIFIER_CLICK, ClickModifierOperation::read); + map.put(MODIFIER_CLICK_END, ClickModifierEnd::read); + map.put(MODIFIER_VISIBILITY, ComponentVisibilityOperation::read); + map.put(HOST_ACTION, HostActionOperation::read); + map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read); + map.put(VALUE_INTEGER_CHANGE_ACTION, ValueIntegerChangeActionOperation::read); + map.put(VALUE_STRING_CHANGE_ACTION, ValueStringChangeActionOperation::read); + + map.put(LAYOUT_ROOT, RootLayoutComponent::read); + map.put(LAYOUT_CONTENT, LayoutComponentContent::read); + map.put(LAYOUT_BOX, BoxLayout::read); + map.put(LAYOUT_COLUMN, ColumnLayout::read); + map.put(LAYOUT_ROW, RowLayout::read); + map.put(LAYOUT_CANVAS, CanvasLayout::read); + map.put(LAYOUT_CANVAS_CONTENT, CanvasContent::read); + map.put(LAYOUT_TEXT, TextLayout::read); + + map.put(COMPONENT_VALUE, ComponentValue::read); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java b/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java index 665fcb749db8..4770b122d172 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java +++ b/core/java/com/android/internal/widget/remotecompose/core/PaintContext.java @@ -21,12 +21,23 @@ import com.android.internal.widget.remotecompose.core.operations.paint.PaintBund * Specify an abstract paint context used by RemoteCompose commands to draw */ public abstract class PaintContext { - protected RemoteContext mContext; + public static final int TEXT_MEASURE_MONOSPACE_WIDTH = 0x01; + public static final int TEXT_MEASURE_FONT_HEIGHT = 0x02; + protected RemoteContext mContext; + private boolean mNeedsRepaint = false; public RemoteContext getContext() { return mContext; } + public boolean doesNeedsRepaint() { + return mNeedsRepaint; + } + + public void clearNeedsRepaint() { + mNeedsRepaint = false; + } + public PaintContext(RemoteContext context) { this.mContext = context; } @@ -111,13 +122,16 @@ public abstract class PaintContext { * @param textId * @param start * @param end if end is -1 it means the whole string - * @param monospace measure with better support for monospace + * @param flags how to measure: + * TEXT_MEASURE_MONOSPACE_WIDTH - measure as a monospace font + * TEXT_MEASURE_FULL_HEIGHT - measure bounds of the given string using the + * max ascend and descent of the font (not just of the measured text) * @param bounds the bounds (left, top, right, bottom) */ public abstract void getTextBounds(int textId, int start, int end, - boolean monospace, + int flags, float[]bounds); /** @@ -267,5 +281,8 @@ public abstract class PaintContext { System.out.println("[LOG] " + content); } + public void needsRepaint() { + mNeedsRepaint = true; + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java index 333951ba2386..6b1828f0448f 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java @@ -21,6 +21,10 @@ import com.android.internal.widget.remotecompose.core.operations.ClipPath; import com.android.internal.widget.remotecompose.core.operations.ClipRect; import com.android.internal.widget.remotecompose.core.operations.ColorConstant; import com.android.internal.widget.remotecompose.core.operations.ColorExpression; +import com.android.internal.widget.remotecompose.core.operations.ComponentValue; +import com.android.internal.widget.remotecompose.core.operations.DataListFloat; +import com.android.internal.widget.remotecompose.core.operations.DataListIds; +import com.android.internal.widget.remotecompose.core.operations.DataMapIds; import com.android.internal.widget.remotecompose.core.operations.DrawArc; import com.android.internal.widget.remotecompose.core.operations.DrawBitmap; import com.android.internal.widget.remotecompose.core.operations.DrawBitmapInt; @@ -54,19 +58,23 @@ import com.android.internal.widget.remotecompose.core.operations.TextFromFloat; import com.android.internal.widget.remotecompose.core.operations.TextMerge; import com.android.internal.widget.remotecompose.core.operations.Theme; import com.android.internal.widget.remotecompose.core.operations.Utils; +import com.android.internal.widget.remotecompose.core.operations.layout.CanvasContent; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentEnd; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStart; import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponentContent; import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent; import com.android.internal.widget.remotecompose.core.operations.layout.managers.BoxLayout; +import com.android.internal.widget.remotecompose.core.operations.layout.managers.CanvasLayout; import com.android.internal.widget.remotecompose.core.operations.layout.managers.ColumnLayout; import com.android.internal.widget.remotecompose.core.operations.layout.managers.RowLayout; +import com.android.internal.widget.remotecompose.core.operations.layout.managers.TextLayout; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BackgroundModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BorderModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ClipRectModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; +import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap; import com.android.internal.widget.remotecompose.core.operations.utilities.easing.FloatAnimation; import com.android.internal.widget.remotecompose.core.types.IntegerConstant; @@ -97,6 +105,9 @@ public class RemoteComposeBuffer { RemoteComposeState mRemoteComposeState; private static final boolean DEBUG = false; + private int mLastComponentId = 0; + private int mGeneratedComponentId = -1; + /** * Provides an abstract buffer to encode/decode RemoteCompose operations * @@ -114,6 +125,12 @@ public class RemoteComposeBuffer { public void reset(int expectedSize) { mBuffer.reset(expectedSize); mRemoteComposeState.reset(); + mLastComponentId = 0; + mGeneratedComponentId = -1; + } + + public int getLastComponentId() { + return mLastComponentId; } public Platform getPlatform() { @@ -146,11 +163,11 @@ public class RemoteComposeBuffer { */ public void header(int width, int height, String contentDescription, float density, long capabilities) { - Header.COMPANION.apply(mBuffer, width, height, density, capabilities); + Header.apply(mBuffer, width, height, density, capabilities); int contentDescriptionId = 0; if (contentDescription != null) { contentDescriptionId = addText(contentDescription); - RootContentDescription.COMPANION.apply(mBuffer, contentDescriptionId); + RootContentDescription.apply(mBuffer, contentDescriptionId); } } @@ -187,15 +204,15 @@ public class RemoteComposeBuffer { String contentDescription) { int imageId = mRemoteComposeState.dataGetId(image); if (imageId == -1) { - imageId = mRemoteComposeState.cache(image); + imageId = mRemoteComposeState.cacheData(image); byte[] data = mPlatform.imageToByteArray(image); - BitmapData.COMPANION.apply(mBuffer, imageId, imageWidth, imageHeight, data); + BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data); } int contentDescriptionId = 0; if (contentDescription != null) { contentDescriptionId = addText(contentDescription); } - DrawBitmapInt.COMPANION.apply( + DrawBitmapInt.apply( mBuffer, imageId, srcLeft, srcTop, srcRight, srcBottom, dstLeft, dstTop, dstRight, dstBottom, contentDescriptionId ); @@ -210,8 +227,8 @@ public class RemoteComposeBuffer { public int addText(String text) { int id = mRemoteComposeState.dataGetId(text); if (id == -1) { - id = mRemoteComposeState.cache(text); - TextData.COMPANION.apply(mBuffer, id, text); + id = mRemoteComposeState.cacheData(text); + TextData.apply(mBuffer, id, text); } return id; } @@ -244,7 +261,7 @@ public class RemoteComposeBuffer { if (metadata != null) { metadataId = addText(metadata); } - ClickArea.COMPANION.apply(mBuffer, id, contentDescriptionId, + ClickArea.apply(mBuffer, id, contentDescriptionId, left, top, right, bottom, metadataId); } @@ -268,7 +285,7 @@ public class RemoteComposeBuffer { * The LAYOUT_*_FIXED modes will use the intrinsic document size */ public void setRootContentBehavior(int scroll, int alignment, int sizing, int mode) { - RootContentBehavior.COMPANION.apply(mBuffer, scroll, alignment, sizing, mode); + RootContentBehavior.apply(mBuffer, scroll, alignment, sizing, mode); } /** @@ -298,7 +315,7 @@ public class RemoteComposeBuffer { float bottom, float startAngle, float sweepAngle) { - DrawArc.COMPANION.apply(mBuffer, left, top, right, bottom, startAngle, sweepAngle); + DrawArc.apply(mBuffer, left, top, right, bottom, startAngle, sweepAngle); } /** @@ -317,18 +334,18 @@ public class RemoteComposeBuffer { String contentDescription) { int imageId = mRemoteComposeState.dataGetId(image); if (imageId == -1) { - imageId = mRemoteComposeState.cache(image); + imageId = mRemoteComposeState.cacheData(image); byte[] data = mPlatform.imageToByteArray(image); int imageWidth = mPlatform.getImageWidth(image); int imageHeight = mPlatform.getImageHeight(image); - BitmapData.COMPANION.apply(mBuffer, imageId, imageWidth, imageHeight, data); + BitmapData.apply(mBuffer, imageId, imageWidth, imageHeight, data); } int contentDescriptionId = 0; if (contentDescription != null) { contentDescriptionId = addText(contentDescription); } - DrawBitmap.COMPANION.apply( + DrawBitmap.apply( mBuffer, imageId, left, top, right, bottom, contentDescriptionId ); } @@ -342,7 +359,7 @@ public class RemoteComposeBuffer { * @param radius The radius of the circle to be drawn */ public void addDrawCircle(float centerX, float centerY, float radius) { - DrawCircle.COMPANION.apply(mBuffer, centerX, centerY, radius); + DrawCircle.apply(mBuffer, centerX, centerY, radius); } /** @@ -355,7 +372,7 @@ public class RemoteComposeBuffer { * @param y2 The y-coordinate of the end point of the line */ public void addDrawLine(float x1, float y1, float x2, float y2) { - DrawLine.COMPANION.apply(mBuffer, x1, y1, x2, y2); + DrawLine.apply(mBuffer, x1, y1, x2, y2); } /** @@ -367,7 +384,7 @@ public class RemoteComposeBuffer { * @param bottom bottom coordinate of oval */ public void addDrawOval(float left, float top, float right, float bottom) { - DrawOval.COMPANION.apply(mBuffer, left, top, right, bottom); + DrawOval.apply(mBuffer, left, top, right, bottom); } /** @@ -392,7 +409,7 @@ public class RemoteComposeBuffer { * @param pathId */ public void addDrawPath(int pathId) { - DrawPath.COMPANION.apply(mBuffer, pathId); + DrawPath.apply(mBuffer, pathId); } /** @@ -404,7 +421,7 @@ public class RemoteComposeBuffer { * @param bottom bottom coordinate of rectangle to be drawn */ public void addDrawRect(float left, float top, float right, float bottom) { - DrawRect.COMPANION.apply(mBuffer, left, top, right, bottom); + DrawRect.apply(mBuffer, left, top, right, bottom); } /** @@ -419,7 +436,7 @@ public class RemoteComposeBuffer { */ public void addDrawRoundRect(float left, float top, float right, float bottom, float radiusX, float radiusY) { - DrawRoundRect.COMPANION.apply(mBuffer, left, top, right, bottom, radiusX, radiusY); + DrawRoundRect.apply(mBuffer, left, top, right, bottom, radiusX, radiusY); } /** @@ -436,7 +453,7 @@ public class RemoteComposeBuffer { pathId = addPathData(path); } int textId = addText(text); - DrawTextOnPath.COMPANION.apply(mBuffer, textId, pathId, hOffset, vOffset); + DrawTextOnPath.apply(mBuffer, textId, pathId, hOffset, vOffset); } /** @@ -461,7 +478,7 @@ public class RemoteComposeBuffer { float y, boolean rtl) { int textId = addText(text); - DrawText.COMPANION.apply( + DrawText.apply( mBuffer, textId, start, end, contextStart, contextEnd, x, y, rtl); } @@ -487,7 +504,7 @@ public class RemoteComposeBuffer { float x, float y, boolean rtl) { - DrawText.COMPANION.apply( + DrawText.apply( mBuffer, textId, start, end, contextStart, contextEnd, x, y, rtl); } @@ -520,7 +537,7 @@ public class RemoteComposeBuffer { float panY, int flags) { int textId = addText(text); - DrawTextAnchored.COMPANION.apply( + DrawTextAnchored.apply( mBuffer, textId, x, y, panX, panY, @@ -545,7 +562,7 @@ public class RemoteComposeBuffer { */ public int textMerge(int id1, int id2) { int textId = addText(id1 + "+" + id2); - TextMerge.COMPANION.apply(mBuffer, textId, id1, id2); + TextMerge.apply(mBuffer, textId, id1, id2); return textId; } @@ -571,10 +588,10 @@ public class RemoteComposeBuffer { + "(" + digitsBefore + "," + digitsAfter + "," + flags + ")"; int id = mRemoteComposeState.dataGetId(placeHolder); if (id == -1) { - id = mRemoteComposeState.cache(placeHolder); - // TextData.COMPANION.apply(mBuffer, id, text); + id = mRemoteComposeState.cacheData(placeHolder); + // TextData.apply(mBuffer, id, text); } - TextFromFloat.COMPANION.apply(mBuffer, id, value, digitsBefore, + TextFromFloat.apply(mBuffer, id, value, digitsBefore, digitsAfter, flags); return id; } @@ -607,7 +624,7 @@ public class RemoteComposeBuffer { float panY, int flags) { - DrawTextAnchored.COMPANION.apply( + DrawTextAnchored.apply( mBuffer, textId, x, y, panX, panY, @@ -655,7 +672,7 @@ public class RemoteComposeBuffer { float tween, float start, float stop) { - DrawTweenPath.COMPANION.apply( + DrawTweenPath.apply( mBuffer, path1Id, path2Id, tween, start, stop); } @@ -668,8 +685,8 @@ public class RemoteComposeBuffer { */ public int addPathData(Object path) { float[] pathData = mPlatform.pathToFloatArray(path); - int id = mRemoteComposeState.cache(path); - PathData.COMPANION.apply(mBuffer, id, pathData); + int id = mRemoteComposeState.cacheData(path); + PathData.apply(mBuffer, id, pathData); return id; } @@ -678,7 +695,7 @@ public class RemoteComposeBuffer { * @param paint */ public void addPaint(PaintBundle paint) { - PaintData.COMPANION.apply(mBuffer, paint); + PaintData.apply(mBuffer, paint); } /////////////////////////////////////////////////////////////////////////////////////////////// @@ -697,6 +714,18 @@ public class RemoteComposeBuffer { } } + public static void readNextOperation(WireBuffer buffer, ArrayList<Operation> operations) { + int opId = buffer.readByte(); + if (DEBUG) { + Utils.log(">> " + opId); + } + CompanionOperation operation = Operations.map.get(opId); + if (operation == null) { + throw new RuntimeException("Unknown operation encountered " + opId); + } + operation.read(buffer, operations); + } + RemoteComposeBuffer copy() { ArrayList<Operation> operations = new ArrayList<>(); inflateFromBuffer(operations); @@ -705,7 +734,7 @@ public class RemoteComposeBuffer { } public void setTheme(int theme) { - Theme.COMPANION.apply(mBuffer, theme); + Theme.apply(mBuffer, theme); } static String version() { @@ -743,6 +772,12 @@ public class RemoteComposeBuffer { return buffer; } + /** + * Write the given RemoteComposeBuffer to the given file + * + * @param buffer a RemoteComposeBuffer + * @param file a target file + */ public void write(RemoteComposeBuffer buffer, File file) { try { FileOutputStream fd = new FileOutputStream(file); @@ -750,7 +785,7 @@ public class RemoteComposeBuffer { fd.flush(); fd.close(); } catch (Exception ex) { - ex.printStackTrace(); + throw new RuntimeException(ex); } } @@ -766,8 +801,7 @@ public class RemoteComposeBuffer { System.arraycopy(bytes, 0, buffer.mBuffer.mBuffer, 0, bytes.length); buffer.mBuffer.mSize = bytes.length; } catch (Exception e) { - e.printStackTrace(); - // todo decide how to handel this stuff + throw new RuntimeException(e); } } @@ -794,7 +828,7 @@ public class RemoteComposeBuffer { * @param skewY The amount to skew in Y */ public void addMatrixSkew(float skewX, float skewY) { - MatrixSkew.COMPANION.apply(mBuffer, skewX, skewY); + MatrixSkew.apply(mBuffer, skewX, skewY); } /** @@ -803,7 +837,7 @@ public class RemoteComposeBuffer { * Do not call restore() more times than save() was called. */ public void addMatrixRestore() { - MatrixRestore.COMPANION.apply(mBuffer); + MatrixRestore.apply(mBuffer); } /** @@ -815,7 +849,7 @@ public class RemoteComposeBuffer { * existed before the save() will be reinstated. */ public void addMatrixSave() { - MatrixSave.COMPANION.apply(mBuffer); + MatrixSave.apply(mBuffer); } /** @@ -826,7 +860,7 @@ public class RemoteComposeBuffer { * @param centerY The y-coord for the pivot point (unchanged by the rotation) */ public void addMatrixRotate(float angle, float centerX, float centerY) { - MatrixRotate.COMPANION.apply(mBuffer, angle, centerX, centerY); + MatrixRotate.apply(mBuffer, angle, centerX, centerY); } /** @@ -836,7 +870,7 @@ public class RemoteComposeBuffer { * @param dy The distance to translate in Y */ public void addMatrixTranslate(float dx, float dy) { - MatrixTranslate.COMPANION.apply(mBuffer, dx, dy); + MatrixTranslate.apply(mBuffer, dx, dy); } /** @@ -846,7 +880,7 @@ public class RemoteComposeBuffer { * @param scaleY The amount to scale in Y */ public void addMatrixScale(float scaleX, float scaleY) { - MatrixScale.COMPANION.apply(mBuffer, scaleX, scaleY, Float.NaN, Float.NaN); + MatrixScale.apply(mBuffer, scaleX, scaleY, Float.NaN, Float.NaN); } /** @@ -858,7 +892,7 @@ public class RemoteComposeBuffer { * @param centerY The y-coord for the pivot point (unchanged by the scale) */ public void addMatrixScale(float scaleX, float scaleY, float centerX, float centerY) { - MatrixScale.COMPANION.apply(mBuffer, scaleX, scaleY, centerX, centerY); + MatrixScale.apply(mBuffer, scaleX, scaleY, centerX, centerY); } /** @@ -866,47 +900,47 @@ public class RemoteComposeBuffer { * @param pathId 0 clears the clip */ public void addClipPath(int pathId) { - ClipPath.COMPANION.apply(mBuffer, pathId); + ClipPath.apply(mBuffer, pathId); } /** - * Sets the clip based on clip rect - * @param left - * @param top - * @param right - * @param bottom + * Sets the clip based on clip rec + * @param left left coordinate of the clip rectangle + * @param top top coordinate of the clip rectangle + * @param right right coordinate of the clip rectangle + * @param bottom bottom coordinate of the clip rectangle */ public void addClipRect(float left, float top, float right, float bottom) { - ClipRect.COMPANION.apply(mBuffer, left, top, right, bottom); + ClipRect.apply(mBuffer, left, top, right, bottom); } /** * Add a float return a NaN number pointing to that float - * @param value - * @return + * @param value the value of the float + * @return the nan id of float */ public float addFloat(float value) { int id = mRemoteComposeState.cacheFloat(value); - FloatConstant.COMPANION.apply(mBuffer, id, value); + FloatConstant.apply(mBuffer, id, value); return Utils.asNan(id); } /** * Add a Integer return an id number pointing to that float. - * @param value - * @return + * @param value adds an integer and assigns it an id + * @return the id of the integer to be used */ public int addInteger(int value) { int id = mRemoteComposeState.cacheInteger(value); - IntegerConstant.COMPANION.apply(mBuffer, id, value); + IntegerConstant.apply(mBuffer, id, value); return id; } /** * Add a IntegerId as float ID. * @param id id to be converted - * @return + * @return the id wrapped in a NaN */ public float asFloatId(int id) { return Utils.asNan(id); @@ -918,8 +952,8 @@ public class RemoteComposeBuffer { * @return NaN id of the result of the calculation */ public float addAnimatedFloat(float... value) { - int id = mRemoteComposeState.cache(value); - FloatExpression.COMPANION.apply(mBuffer, id, value, null); + int id = mRemoteComposeState.cacheData(value); + FloatExpression.apply(mBuffer, id, value, null); return Utils.asNan(id); } @@ -931,8 +965,80 @@ public class RemoteComposeBuffer { * @return NaN id of the result of the calculation */ public float addAnimatedFloat(float[] value, float[] animation) { - int id = mRemoteComposeState.cache(value); - FloatExpression.COMPANION.apply(mBuffer, id, value, animation); + int id = mRemoteComposeState.cacheData(value); + FloatExpression.apply(mBuffer, id, value, animation); + return Utils.asNan(id); + } + + + /** + * add a float array + * + * @param values + * + * @return the id of the array, encoded as a float NaN + */ + public float addFloatArray(float[] values) { + int id = mRemoteComposeState.cacheData(values, NanMap.TYPE_ARRAY); + DataListFloat.apply(mBuffer, id, values); + return Utils.asNan(id); + } + + /** + * This creates a list of individual floats + * @param values array of floats to be individually stored + * + * @return id of the list + */ + public float addFloatList(float[] values) { + int []listId = new int[values.length]; + for (int i = 0; i < listId.length; i++) { + listId[i] = mRemoteComposeState.cacheFloat(values[i]); + FloatConstant.apply(mBuffer, listId[i], values[i]); + } + return addList(listId); + } + + /** + * This creates a list of individual floats + * @param listId array id to be stored + * + * @return id of the list + */ + public float addList(int[] listId) { + int id = mRemoteComposeState.cacheData(listId, NanMap.TYPE_ARRAY); + DataListIds.apply(mBuffer, id, listId); + return Utils.asNan(id); + } + + /** + * add a float map + * + * @param keys + * @param values + * + * @return the id of the map, encoded as a float NaN + */ + public float addFloatMap(String[]keys, float[] values) { + int []listId = new int[values.length]; + for (int i = 0; i < listId.length; i++) { + listId[i] = mRemoteComposeState.cacheFloat(values[i]); + FloatConstant.apply(mBuffer, listId[i], values[i]); + } + return addMap(keys, listId); + } + + /** + * add an int map + * + * @param keys + * @param listId + * + * @return the id of the map, encoded as a float NaN + */ + public float addMap(String []keys, int[] listId) { + int id = mRemoteComposeState.cacheData(listId, NanMap.TYPE_ARRAY); + DataMapIds.apply(mBuffer, id, keys, listId); return Utils.asNan(id); } @@ -940,22 +1046,22 @@ public class RemoteComposeBuffer { * Add and integer expression * @param mask defines which elements are operators or variables * @param value array of values to calculate maximum 32 - * @return + * @return the id as an integer */ public int addIntegerExpression(int mask, int[] value) { - int id = mRemoteComposeState.cache(value); - IntegerExpression.COMPANION.apply(mBuffer, id, mask, value); + int id = mRemoteComposeState.cacheData(value); + IntegerExpression.apply(mBuffer, id, mask, value); return id; } /** * Add a simple color - * @param color + * @param color the RGB color value * @return id that represents that color */ public int addColor(int color) { ColorConstant c = new ColorConstant(0, color); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mColorId = id; c.write(mBuffer); return id; @@ -964,14 +1070,14 @@ public class RemoteComposeBuffer { /** * Add a color that represents the tween between two colors - * @param color1 - * @param color2 - * @param tween + * @param color1 the ARGB value of the first color + * @param color2 the ARGB value of the second color + * @param tween the interpolation bet * @return id of the color (color ids are short) */ public short addColorExpression(int color1, int color2, float tween) { ColorExpression c = new ColorExpression(0, 0, color1, color2, tween); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mId = id; c.write(mBuffer); return id; @@ -980,14 +1086,14 @@ public class RemoteComposeBuffer { /** * Add a color that represents the tween between two colors where color1 * is the id of a color - * @param color1 - * @param color2 - * @param tween + * @param color1 id of color + * @param color2 rgb color value + * @param tween the tween between color1 and color2 (1 = color2) * @return id of the color (color ids are short) */ public short addColorExpression(short color1, int color2, float tween) { ColorExpression c = new ColorExpression(0, 1, color1, color2, tween); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mId = id; c.write(mBuffer); return id; @@ -996,14 +1102,14 @@ public class RemoteComposeBuffer { /** * Add a color that represents the tween between two colors where color2 * is the id of a color - * @param color1 - * @param color2 - * @param tween + * @param color1 the ARGB value of the first color + * @param color2 id of the second color + * @param tween the tween between color1 and color2 (1 = color2) * @return id of the color (color ids are short) */ public short addColorExpression(int color1, short color2, float tween) { ColorExpression c = new ColorExpression(0, 2, color1, color2, tween); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mId = id; c.write(mBuffer); return id; @@ -1012,30 +1118,30 @@ public class RemoteComposeBuffer { /** * Add a color that represents the tween between two colors where color1 & * color2 are the ids of colors - * @param color1 - * @param color2 - * @param tween + * @param color1 id of the first color + * @param color2 id of the second color + * @param tween the tween between color1 and color2 (1 = color2) * @return id of the color (color ids are short) */ public short addColorExpression(short color1, short color2, float tween) { ColorExpression c = new ColorExpression(0, 3, color1, color2, tween); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mId = id; c.write(mBuffer); return id; } /** - * Color calculated by Hue saturation and value. - * (as floats they can be variables used to create color transitions) - * @param hue - * @param sat - * @param value + * Color calculated by Hue saturation and value. + * (as floats they can be variables used to create color transitions) + * @param hue the Hue + * @param sat the saturation + * @param value the value * @return id of the color (color ids are short) */ public short addColorExpression(float hue, float sat, float value) { ColorExpression c = new ColorExpression(0, hue, sat, value); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mId = id; c.write(mBuffer); return id; @@ -1044,15 +1150,15 @@ public class RemoteComposeBuffer { /** * Color calculated by Alpha, Hue saturation and value. * (as floats they can be variables used to create color transitions) - * @param alpha - * @param hue - * @param sat - * @param value + * @param alpha the Alpha + * @param hue the hue + * @param sat the saturation + * @param value the value * @return id of the color (color ids are short) */ public short addColorExpression(int alpha, float hue, float sat, float value) { ColorExpression c = new ColorExpression(0, alpha, hue, sat, value); - short id = (short) mRemoteComposeState.cache(c); + short id = (short) mRemoteComposeState.cacheData(c); c.mId = id; c.write(mBuffer); return id; @@ -1061,11 +1167,11 @@ public class RemoteComposeBuffer { /** * create and animation based on description and return as an array of * floats. see addAnimatedFloat - * @param duration - * @param type - * @param spec - * @param initialValue - * @param wrap + * @param duration the duration of the aimation + * @param type the type of animation + * @param spec the parameters of the animation if any + * @param initialValue the initial value if it animates to a start + * @param wrap the wraps value so (e.g 360 so angles 355 would animate to 5) * @return */ public static float[] packAnimation(float duration, @@ -1083,39 +1189,49 @@ public class RemoteComposeBuffer { * @param name Name of the color */ public void setColorName(int id, String name) { - NamedVariable.COMPANION.apply(mBuffer, id, + NamedVariable.apply(mBuffer, id, NamedVariable.COLOR_TYPE, name); } /** + * This defines the name of the string given the id + * + * @param id of the string + * @param name name of the string + */ + public void setStringName(int id, String name) { + NamedVariable.apply(mBuffer, id, + NamedVariable.STRING_TYPE, name); + } + + /** + * Returns a usable component id -- either the one passed in parameter if not -1 + * or a generated one. + * + * @param id the current component id (if -1, we'll generate a new one) + * + * @return a usable component id + */ + private int getComponentId(int id) { + int resolvedId = 0; + if (id != -1) { + resolvedId = id; + } else { + mGeneratedComponentId--; + resolvedId = mGeneratedComponentId; + } + return resolvedId; + } + + /** * Add a component start tag * @param type type of component * @param id component id */ public void addComponentStart(int type, int id) { - switch (type) { - case ComponentStart.ROOT_LAYOUT: { - RootLayoutComponent.COMPANION.apply(mBuffer); - } break; - case ComponentStart.LAYOUT_CONTENT: { - LayoutComponentContent.COMPANION.apply(mBuffer); - } break; - case ComponentStart.LAYOUT_BOX: { - BoxLayout.COMPANION.apply(mBuffer, id, -1, - BoxLayout.CENTER, BoxLayout.CENTER); - } break; - case ComponentStart.LAYOUT_ROW: { - RowLayout.COMPANION.apply(mBuffer, id, -1, - RowLayout.START, RowLayout.TOP, 0f); - } break; - case ComponentStart.LAYOUT_COLUMN: { - ColumnLayout.COMPANION.apply(mBuffer, id, -1, - ColumnLayout.START, ColumnLayout.TOP, 0f); - } break; - default: - ComponentStart.Companion.apply(mBuffer, - type, id, 0f, 0f); - } + mLastComponentId = getComponentId(id); + ComponentStart.apply(mBuffer, + type, mLastComponentId, 0f, 0f); } /** @@ -1130,7 +1246,7 @@ public class RemoteComposeBuffer { * Add a component end tag */ public void addComponentEnd() { - ComponentEnd.Companion.apply(mBuffer); + ComponentEnd.apply(mBuffer); } /** @@ -1143,7 +1259,7 @@ public class RemoteComposeBuffer { float g = ((color >> 8) & 0xff) / 255.0f; float b = ((color) & 0xff) / 255.0f; float a = ((color >> 24) & 0xff) / 255.0f; - BackgroundModifierOperation.COMPANION.apply(mBuffer, 0f, 0f, 0f, 0f, + BackgroundModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f, r, g, b, a, shape); } @@ -1160,7 +1276,7 @@ public class RemoteComposeBuffer { float g = ((color >> 8) & 0xff) / 255.0f; float b = ((color) & 0xff) / 255.0f; float a = ((color >> 24) & 0xff) / 255.0f; - BorderModifierOperation.COMPANION.apply(mBuffer, 0f, 0f, 0f, 0f, + BorderModifierOperation.apply(mBuffer, 0f, 0f, 0f, 0f, borderWidth, borderRoundedCorner, r, g, b, a, shape); } @@ -1172,10 +1288,9 @@ public class RemoteComposeBuffer { * @param bottom bottom padding */ public void addModifierPadding(float left, float top, float right, float bottom) { - PaddingModifierOperation.COMPANION.apply(mBuffer, left, top, right, bottom); + PaddingModifierOperation.apply(mBuffer, left, top, right, bottom); } - /** * Sets the clip based on rounded clip rect * @param topStart @@ -1185,30 +1300,138 @@ public class RemoteComposeBuffer { */ public void addRoundClipRectModifier(float topStart, float topEnd, float bottomStart, float bottomEnd) { - RoundedClipRectModifierOperation.COMPANION.apply(mBuffer, + RoundedClipRectModifierOperation.apply(mBuffer, topStart, topEnd, bottomStart, bottomEnd); } + /** + * Add a clip rect modifier + */ public void addClipRectModifier() { - ClipRectModifierOperation.COMPANION.apply(mBuffer); + ClipRectModifierOperation.apply(mBuffer); } + /** + * Add a box start tag + * + * @param componentId component id + * @param animationId animation id + * @param horizontal horizontal alignment + * @param vertical vertical alignment + */ public void addBoxStart(int componentId, int animationId, int horizontal, int vertical) { - BoxLayout.COMPANION.apply(mBuffer, componentId, animationId, + mLastComponentId = getComponentId(componentId); + BoxLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical); } + /** + * Add a row start tag + * + * @param componentId component id + * @param animationId animation id + * @param horizontal horizontal alignment + * @param vertical vertical alignment + * @param spacedBy spacing between items + */ public void addRowStart(int componentId, int animationId, int horizontal, int vertical, float spacedBy) { - RowLayout.COMPANION.apply(mBuffer, componentId, animationId, + mLastComponentId = getComponentId(componentId); + RowLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical, spacedBy); } + /** + * Add a column start tag + * + * @param componentId component id + * @param animationId animation id + * @param horizontal horizontal alignment + * @param vertical vertical alignment + * @param spacedBy spacing between items + */ public void addColumnStart(int componentId, int animationId, int horizontal, int vertical, float spacedBy) { - ColumnLayout.COMPANION.apply(mBuffer, componentId, animationId, + mLastComponentId = getComponentId(componentId); + ColumnLayout.apply(mBuffer, mLastComponentId, animationId, horizontal, vertical, spacedBy); } + + /** + * Add a canvas start tag + * @param componentId component id + * @param animationId animation id + */ + public void addCanvasStart(int componentId, int animationId) { + mLastComponentId = getComponentId(componentId); + CanvasLayout.apply(mBuffer, mLastComponentId, animationId); + } + + /** + * Add a canvas content start tag + * @param componentId component id + */ + public void addCanvasContentStart(int componentId) { + mLastComponentId = getComponentId(componentId); + CanvasContent.apply(mBuffer, mLastComponentId); + } + + /** + * Add a root start tag + */ + public void addRootStart() { + mLastComponentId = getComponentId(-1); + RootLayoutComponent.apply(mBuffer, mLastComponentId); + } + + /** + * Add a content start tag + */ + public void addContentStart() { + mLastComponentId = getComponentId(-1); + LayoutComponentContent.apply(mBuffer, mLastComponentId); + } + + /** + * Add a component width value + * @param id id of the value + */ + public void addComponentWidthValue(int id) { + ComponentValue.apply(mBuffer, ComponentValue.WIDTH, mLastComponentId, id); + } + + /** + * Add a component height value + * + * @param id id of the value + */ + public void addComponentHeightValue(int id) { + ComponentValue.apply(mBuffer, ComponentValue.HEIGHT, mLastComponentId, id); + } + + /** + * Add a text component start tag + * + * @param componentId component id + * @param animationId animation id + * @param textId id of the text + * @param color color of the text + * @param fontSize font size + * @param fontStyle font style (0 : Normal, 1 : Italic) + * @param fontWeight font weight (1 to 1000, normal is 400) + * @param fontFamily font family or null + */ + public void addTextComponentStart(int componentId, int animationId, + int textId, int color, float fontSize, + int fontStyle, float fontWeight, String fontFamily) { + mLastComponentId = getComponentId(componentId); + int fontFamilyId = -1; + if (fontFamily != null) { + fontFamilyId = addText(fontFamily); + } + TextLayout.apply(mBuffer, mLastComponentId, animationId, textId, color, fontSize, + fontStyle, fontWeight, fontFamilyId); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java index 6b06a544be40..839522e29fdb 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteComposeState.java @@ -20,7 +20,11 @@ import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_TI import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_TIME_IN_SEC; import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_WINDOW_HEIGHT; import static com.android.internal.widget.remotecompose.core.RemoteContext.ID_WINDOW_WIDTH; +import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.START_ARRAY; +import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.START_VAR; +import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; +import com.android.internal.widget.remotecompose.core.operations.utilities.CollectionsAccess; import com.android.internal.widget.remotecompose.core.operations.utilities.IntFloatMap; import com.android.internal.widget.remotecompose.core.operations.utilities.IntIntMap; import com.android.internal.widget.remotecompose.core.operations.utilities.IntMap; @@ -32,18 +36,28 @@ import java.util.HashMap; * Represents runtime state for a RemoteCompose document * State includes things like the value of variables */ -public class RemoteComposeState { +public class RemoteComposeState implements CollectionsAccess { public static final int START_ID = 42; private static final int MAX_FLOATS = 500; private static final int MAX_COLORS = 200; + + private static final int MAX_DATA = 1000; private final IntMap<Object> mIntDataMap = new IntMap<>(); private final IntMap<Boolean> mIntWrittenMap = new IntMap<>(); - private final HashMap<Object, Integer> mDataIntMap = new HashMap(); + private final HashMap<Object, Integer> mDataIntMap = new HashMap<>(); private final IntFloatMap mFloatMap = new IntFloatMap(); // efficient cache private final IntIntMap mIntegerMap = new IntIntMap(); // efficient cache private final IntIntMap mColorMap = new IntIntMap(); // efficient cache + private final boolean[] mColorOverride = new boolean[MAX_COLORS]; + private final IntMap<ArrayAccess> mCollectionMap = new IntMap<>(); + + private final boolean[] mDataOverride = new boolean[MAX_DATA]; + private final boolean[] mIntegerOverride = new boolean[MAX_DATA]; + private int mNextId = START_ID; + private int[] mIdMaps = new int[]{START_ID, START_VAR, START_ARRAY}; + private RemoteContext mRemoteContext = null; /** @@ -70,8 +84,8 @@ public class RemoteComposeState { /** * Return the id of an item from the cache. */ - public int dataGetId(Object image) { - Integer res = mDataIntMap.get(image); + public int dataGetId(Object data) { + Integer res = mDataIntMap.get(data); if (res == null) { return -1; } @@ -79,29 +93,31 @@ public class RemoteComposeState { } /** - * Add an image to the cache. Generates an id for the image and adds it to the cache based on + * Add an item to the cache. Generates an id for the item and adds it to the cache based on * that id. */ - public int cache(Object image) { + public int cacheData(Object item) { int id = nextId(); - mDataIntMap.put(image, id); - mIntDataMap.put(id, image); + mDataIntMap.put(item, id); + mIntDataMap.put(id, item); return id; } /** - * Insert an item in the cache + * Add an item to the cache. Generates an id for the item and adds it to the cache based on + * that id. */ - public void cache(int id, Object item) { + public int cacheData(Object item, int type) { + int id = nextId(type); mDataIntMap.put(item, id); mIntDataMap.put(id, item); + return id; } /** * Insert an item in the cache */ - public void update(int id, Object item) { - mDataIntMap.remove(mIntDataMap.get(id)); + public void cacheData(int id, Object item) { mDataIntMap.put(item, id); mIntDataMap.put(id, item); } @@ -109,20 +125,36 @@ public class RemoteComposeState { /** * Insert an item in the cache */ - public int cacheFloat(float item) { - int id = nextId(); - mFloatMap.put(id, item); - mIntegerMap.put(id, (int) item); - return id; + public void updateData(int id, Object item) { + if (!mDataOverride[id]) { + mDataIntMap.remove(mIntDataMap.get(id)); + mDataIntMap.put(item, id); + mIntDataMap.put(id, item); + updateListeners(id); + } + } + + /** + * Adds a data Override. + * + * @param id + * @param item the new value + */ + public void overrideData(int id, Object item) { + mDataIntMap.remove(mIntDataMap.get(id)); + mDataIntMap.put(item, id); + mIntDataMap.put(id, item); + mDataOverride[id] = true; + updateListeners(id); } /** * Insert an item in the cache */ - public int cacheInteger(int item) { + public int cacheFloat(float item) { int id = nextId(); - mIntegerMap.put(id, item); mFloatMap.put(id, item); + mIntegerMap.put(id, (int) item); return id; } @@ -139,14 +171,41 @@ public class RemoteComposeState { public void updateFloat(int id, float item) { mFloatMap.put(id, item); mIntegerMap.put(id, (int) item); + updateListeners(id); + } + + /** + * Insert an item in the cache + */ + public int cacheInteger(int item) { + int id = nextId(); + mIntegerMap.put(id, item); + mFloatMap.put(id, item); + return id; } /** * Insert an integer item in the cache */ public void updateInteger(int id, int item) { - mFloatMap.put(id, item); - mIntegerMap.put(id, item); + if (!mIntegerOverride[id]) { + mFloatMap.put(id, item); + mIntegerMap.put(id, item); + updateListeners(id); + } + } + + /** + * Adds a integer Override. + * + * @param id + * @param value the new value + */ + public void overrideInteger(int id, int value) { + mIntegerMap.put(id, value); + mFloatMap.put(id, value); + mIntegerOverride[id] = true; + updateListeners(id); } /** @@ -190,11 +249,21 @@ public class RemoteComposeState { return; } mColorMap.put(id, color); + updateListeners(id); + } + + private void updateListeners(int id) { + ArrayList<VariableSupport> v = mVarListeners.get(id); + if (v != null && mRemoteContext != null) { + for (VariableSupport c : v) { + c.updateVariables(mRemoteContext); + } + } } /** * Adds a colorOverride. - * This is a list of ids and there colors optimized for playback; + * This is a list of ids and their colors optimized for playback; * * @param id * @param color @@ -214,6 +283,26 @@ public class RemoteComposeState { } /** + * Clear the data override + * + * @param id the data id to clear + */ + public void clearDataOverride(int id) { + mDataOverride[id] = false; + updateListeners(id); + } + + /** + * Clear the integer override + * + * @param id the integer id to clear + */ + public void clearIntegerOverride(int id) { + mIntegerOverride[id] = false; + updateListeners(id); + } + + /** * Method to determine if a cached value has been written to the documents WireBuffer based on * its id. */ @@ -231,8 +320,9 @@ public class RemoteComposeState { /** * Clear the record of the values that have been written to the WireBuffer. */ - void reset() { + public void reset() { mIntWrittenMap.clear(); + mDataIntMap.clear(); } /** @@ -245,6 +335,18 @@ public class RemoteComposeState { } /** + * Get the next available id + * + * @return + */ + public int nextId(int type) { + if (0 == type) { + return mNextId++; + } + return mIdMaps[type]++; + } + + /** * Set the next id * * @param id @@ -316,4 +418,25 @@ public class RemoteComposeState { updateFloat(ID_WINDOW_HEIGHT, height); } + public void addCollection(int id, ArrayAccess collection) { + mCollectionMap.put(id & 0xFFFFF, collection); + } + + @Override + public float getFloatValue(int id, int index) { + return mCollectionMap.get(id & 0xFFFFF).getFloatValue(index); + } + @Override + public float[] getFloats(int id) { + return mCollectionMap.get(id & 0xFFFFF).getFloats(); + } + + @Override + public int getFloatsLength(int id) { + return mCollectionMap.get(id & 0xFFFFF).getFloatsLength(); + } + + public void setContext(RemoteContext context) { + mRemoteContext = context; + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java index 893dcce30842..0df0aa04ec9c 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java +++ b/core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java @@ -20,6 +20,13 @@ import com.android.internal.widget.remotecompose.core.operations.ShaderData; import com.android.internal.widget.remotecompose.core.operations.Theme; import com.android.internal.widget.remotecompose.core.operations.Utils; import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; +import com.android.internal.widget.remotecompose.core.operations.utilities.CollectionsAccess; + +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; /** * Specify an abstract context used to playback RemoteCompose documents @@ -57,8 +64,18 @@ public abstract class RemoteContext { } /** + * Provide access to the table of collections + * + * @return the CollectionsAccess implementation + */ + public CollectionsAccess getCollectionsAccess() { + return mRemoteComposeState; + } + + /** * Load a path under an id. * Paths can be use in clip drawPath and drawTweenPath + * * @param instanceId * @param floatPath */ @@ -67,22 +84,24 @@ public abstract class RemoteContext { /** * Associate a name with a give id. * - * @param varName - * @param varId - * @param varType + * @param varName the name + * @param varId the id (color,integer,float etc.) + * @param varType thetype */ public abstract void loadVariableName(String varName, int varId, int varType); /** * Save a color under a given id - * @param id - * @param color + * + * @param id the id of the color + * @param color the color to set */ public abstract void loadColor(int id, int color); /** * Set the animation time allowing the creator to control animation rates - * @param time + * + * @param time the animation time in seconds */ public void setAnimationTime(float time) { mAnimationTime = time; @@ -90,6 +109,7 @@ public abstract class RemoteContext { /** * gets the time animation clock as float in seconds + * * @return a monotonic time in seconds (arbitrary zero point) */ public float getAnimationTime() { @@ -100,11 +120,60 @@ public abstract class RemoteContext { /** * Set the value of a named Color. * This overrides the color in the document - * @param colorName - * @param color + * + * @param colorName the name of the color to override + * @param color Override the default color */ public abstract void setNamedColorOverride(String colorName, int color); + /** + * Set the value of a named String. + * This overrides the string in the document + * @param stringName the name of the string to override + * @param value Override the default string + */ + public abstract void setNamedStringOverride(String stringName, String value); + + + /** + * Allows to clear a named String. + * + * If an override exists, we revert back to the default value in the document. + * + * @param stringName the name of the string to override + */ + public abstract void clearNamedStringOverride(String stringName); + + /** + * Set the value of a named Integer. + * This overrides the integer in the document + * @param integerName the name of the integer to override + * @param value Override the default integer + */ + public abstract void setNamedIntegerOverride(String integerName, int value); + + /** + * Allows to clear a named Integer. + * + * If an override exists, we revert back to the default value in the document. + * + * @param integerName the name of the integer to override + */ + public abstract void clearNamedIntegerOverride(String integerName); + + + /** + * Support Collections by registering this collection + * + * @param id id of the collection + * @param collection the collection under this id + */ + public abstract void addCollection(int id, ArrayAccess collection); + + public abstract void runAction(int id, String metadata); + + public abstract void runNamedAction(int textId); + /** * The context can be used in a few different mode, allowing operations to skip being executed: @@ -112,7 +181,7 @@ public abstract class RemoteContext { * - DATA : only operations dealing with DATA (eg loading a bitmap) should execute * - PAINT : only operations painting should execute */ - public enum ContextMode { + public enum ContextMode { UNSET, DATA, PAINT } @@ -174,21 +243,21 @@ public abstract class RemoteContext { /** * Sets the way the player handles the content * - * @param scroll set the horizontal behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL) + * @param scroll set the horizontal behavior (NONE|SCROLL_HORIZONTAL|SCROLL_VERTICAL) * @param alignment set the alignment of the content (TOP|CENTER|BOTTOM|START|END) - * @param sizing set the type of sizing for the content (NONE|SIZING_LAYOUT|SIZING_SCALE) - * @param mode set the mode of sizing, either LAYOUT modes or SCALE modes - * the LAYOUT modes are: - * - LAYOUT_MATCH_PARENT - * - LAYOUT_WRAP_CONTENT - * or adding an horizontal mode and a vertical mode: - * - LAYOUT_HORIZONTAL_MATCH_PARENT - * - LAYOUT_HORIZONTAL_WRAP_CONTENT - * - LAYOUT_HORIZONTAL_FIXED - * - LAYOUT_VERTICAL_MATCH_PARENT - * - LAYOUT_VERTICAL_WRAP_CONTENT - * - LAYOUT_VERTICAL_FIXED - * The LAYOUT_*_FIXED modes will use the intrinsic document size + * @param sizing set the type of sizing for the content (NONE|SIZING_LAYOUT|SIZING_SCALE) + * @param mode set the mode of sizing, either LAYOUT modes or SCALE modes + * the LAYOUT modes are: + * - LAYOUT_MATCH_PARENT + * - LAYOUT_WRAP_CONTENT + * or adding an horizontal mode and a vertical mode: + * - LAYOUT_HORIZONTAL_MATCH_PARENT + * - LAYOUT_HORIZONTAL_WRAP_CONTENT + * - LAYOUT_HORIZONTAL_FIXED + * - LAYOUT_VERTICAL_MATCH_PARENT + * - LAYOUT_VERTICAL_WRAP_CONTENT + * - LAYOUT_VERTICAL_FIXED + * The LAYOUT_*_FIXED modes will use the intrinsic document size */ public void setRootContentBehavior(int scroll, int alignment, int sizing, int mode) { mDocument.setRootContentBehavior(scroll, alignment, sizing, mode); @@ -196,6 +265,7 @@ public abstract class RemoteContext { /** * Set a content description for the document + * * @param contentDescriptionId the text id pointing at the description */ public void setDocumentContentDescription(int contentDescriptionId) { @@ -209,94 +279,112 @@ public abstract class RemoteContext { /** * Save a bitmap under an imageId - * @param imageId - * @param width - * @param height - * @param bitmap + * + * @param imageId the id of the image + * @param width the width of the image + * @param height the height of the image + * @param bitmap the bytes that represent the image */ public abstract void loadBitmap(int imageId, int width, int height, byte[] bitmap); /** * Save a string under a given id - * @param id - * @param text + * + * @param id the id of the string + * @param text the value to set */ public abstract void loadText(int id, String text); /** * Get a string given an id - * @param id + * + * @param id the id of the string * @return */ public abstract String getText(int id); /** * Load a float - * @param id - * @param value + * + * @param id id of the float + * @param value the value to set */ public abstract void loadFloat(int id, float value); /** - * Load a float - * @param id - * @param value + * Load a integer + * + * @param id id of the integer + * @param value the value to set */ public abstract void loadInteger(int id, int value); + + public abstract void overrideInteger(int id, int value); + + public abstract void overrideText(int id, int valueId); + /** * Load an animated float associated with an id * Todo: Remove? - * @param id - * @param animatedFloat + * + * @param id the id of the float + * @param animatedFloat The animated float */ public abstract void loadAnimatedFloat(int id, FloatExpression animatedFloat); /** * Save a shader under and ID - * @param id - * @param value + * + * @param id the id of the Shader + * @param value the shader */ public abstract void loadShader(int id, ShaderData value); /** * Get a float given an id - * @param id - * @return + * + * @param id the id of the float + * @return the value of the float */ public abstract float getFloat(int id); /** - * Get a float given an id - * @param id - * @return + * Get a Integer given an id + * + * @param id of the integer + * @return the value */ public abstract int getInteger(int id); /** * Get the color given and ID - * @param id - * @return + * + * @param id of the color + * @return the color */ public abstract int getColor(int id); /** * called to notify system that a command is interested in a variable - * @param id - * @param variableSupport + * + * @param id track when this id changes value + * @param variableSupport call back when value changes */ public abstract void listensTo(int id, VariableSupport variableSupport); /** * Notify commands with variables have changed - * @return + * + * @return the number of ms to next update */ public abstract int updateOps(); /** * Get a shader given the id - * @param id - * @return + * + * @param id get a shader given the id + * @return The shader */ public abstract ShaderData getShader(int id); @@ -352,6 +440,55 @@ public abstract class RemoteContext { /////////////////////////////////////////////////////////////////////////////////////////////// // Click handling /////////////////////////////////////////////////////////////////////////////////////////////// + public static boolean isTime(float fl) { + int value = Utils.idFromNan(fl); + return value >= ID_CONTINUOUS_SEC && value <= ID_DAY_OF_MONTH; + } + + public static float getTime(float fl) { + LocalDateTime dateTime = LocalDateTime.now(); + // This define the time in the format + // seconds run from Midnight=0 quantized to seconds hour 0..3599 + // minutes run from Midnight=0 quantized to minutes 0..1439 + // hours run from Midnight=0 quantized to Hours 0-23 + // CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600 + // CONTINUOUS_SEC is accurate to milliseconds due to float precession + // ID_OFFSET_TO_UTC is the offset from UTC in sec (typically / 3600f) + int value = Utils.idFromNan(fl); + int month = dateTime.getMonth().getValue(); + int hour = dateTime.getHour(); + int minute = dateTime.getMinute(); + int seconds = dateTime.getSecond(); + int currentMinute = hour * 60 + minute; + int currentSeconds = minute * 60 + seconds; + float sec = currentSeconds + dateTime.getNano() * 1E-9f; + int day_week = dateTime.getDayOfWeek().getValue(); + + + ZoneId zone = ZoneId.systemDefault(); + OffsetDateTime offsetDateTime = dateTime.atZone(zone).toOffsetDateTime(); + ZoneOffset offset = offsetDateTime.getOffset(); + switch (value) { + case ID_OFFSET_TO_UTC: + return offset.getTotalSeconds(); + case ID_CONTINUOUS_SEC: + return sec; + case ID_TIME_IN_SEC: + return currentSeconds; + case ID_TIME_IN_MIN: + return currentMinute; + case ID_TIME_IN_HR: + return hour; + case ID_CALENDAR_MONTH: + case ID_DAY_OF_MONTH: + return month; + case ID_WEEK_DAY: + return day_week; + } + return fl; + } + + public abstract void addClickArea( int id, diff --git a/core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java b/core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java new file mode 100644 index 000000000000..8f9741dd4195 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/SerializableToString.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core; + +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +public interface SerializableToString { + void serializeToString(int indent, StringSerializer serializer); +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java b/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java index d59b1bc65256..ee6d5798bdb2 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java +++ b/core/java/com/android/internal/widget/remotecompose/core/VariableSupport.java @@ -17,7 +17,7 @@ package com.android.internal.widget.remotecompose.core; /** * Interface for operators that interact with variables - * Threw this they register to listen to particular variables + * Through this they register to listen to particular variables * and are notified when they change */ public interface VariableSupport { diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java index 6a98b78f569d..4b84291aa5fe 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/DocumentedCompanionOperation.java @@ -15,8 +15,6 @@ */ package com.android.internal.widget.remotecompose.core.documentation; -import com.android.internal.widget.remotecompose.core.CompanionOperation; - -public interface DocumentedCompanionOperation extends CompanionOperation { +public interface DocumentedCompanionOperation { void documentation(DocumentationBuilder doc); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java index 643b925ae637..9ccb2be9969a 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/Operation.java @@ -27,6 +27,10 @@ public class Operation { public static final int BYTE = 6; public static final int VALUE = 7; public static final int LONG = 8; + public static final int SHORT = 9; + + public static final int FLOAT_ARRAY = 10; + public static final int INT_ARRAY = 11; String mCategory; int mId; @@ -38,7 +42,7 @@ public class Operation { ArrayList<StringPair> mExamples = new ArrayList<>(); ArrayList<OperationField> mFields = new ArrayList<>(); - + String mVarSize = ""; int mExamplesWidth = 100; int mExamplesHeight = 100; @@ -53,6 +57,9 @@ public class Operation { case (BYTE): return "BYTE"; case (VALUE): return "VALUE"; case (LONG): return "LONG"; + case (SHORT): return "SHORT"; + case (FLOAT_ARRAY): return "FLOAT[]"; + case (INT_ARRAY): return "INT[]"; } return "UNKNOWN"; } @@ -88,10 +95,18 @@ public class Operation { return mWIP; } + public String getVarSize() { + return mVarSize; + } + public int getSizeFields() { int size = 0; + mVarSize = ""; for (OperationField field : mFields) { - size += field.getSize(); + size += Math.max(0, field.getSize()); + if (field.getSize() < 0) { + mVarSize += " + " + field.getVarSize() + " x 4"; + } } return size; } @@ -121,6 +136,11 @@ public class Operation { return this; } + public Operation field(int type, String name, String varSize, String description) { + mFields.add(new OperationField(type, name, varSize, description)); + return this; + } + public Operation possibleValues(String name, int value) { if (!mFields.isEmpty()) { mFields.get(mFields.size() - 1).possibleValue(name, "" + value); diff --git a/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java b/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java index fc73f4ed63f8..0dd3039f5f4d 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java +++ b/core/java/com/android/internal/widget/remotecompose/core/documentation/OperationField.java @@ -21,6 +21,8 @@ public class OperationField { int mType; String mName; String mDescription; + String mVarSize = null; + ArrayList<StringPair> mPossibleValues = new ArrayList<>(); public OperationField(int type, String name, String description) { @@ -28,6 +30,14 @@ public class OperationField { mName = name; mDescription = description; } + + public OperationField(int type, String name, String varSize, String description) { + mType = type; + mName = name; + mDescription = description; + mVarSize = varSize; + } + public int getType() { return mType; } @@ -40,18 +50,28 @@ public class OperationField { public ArrayList<StringPair> getPossibleValues() { return mPossibleValues; } + + public void possibleValue(String name, String value) { mPossibleValues.add(new StringPair(name, value)); } public boolean hasEnumeratedValues() { return !mPossibleValues.isEmpty(); } + + public String getVarSize() { + return mVarSize; + } + public int getSize() { switch (mType) { case (Operation.BYTE) : return 1; case (Operation.INT) : return 4; case (Operation.FLOAT) : return 4; case (Operation.LONG) : return 8; + case (Operation.SHORT) : return 2; + case (Operation.INT_ARRAY): return -1; + case (Operation.FLOAT_ARRAY): return -1; default : return 0; } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java index f1863225b766..58be641f608a 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/BitmapData.java @@ -15,11 +15,16 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.SerializableToString; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; @@ -28,15 +33,15 @@ import java.util.List; * On getting an Image during a draw call the bitmap is compressed and saved * in playback the image is decompressed */ -public class BitmapData implements Operation { +public class BitmapData implements Operation, SerializableToString { + private static final int OP_CODE = Operations.DATA_BITMAP; + private static final String CLASS_NAME = "BitmapData"; int mImageId; int mImageWidth; int mImageHeight; byte[] mBitmap; public static final int MAX_IMAGE_DIMENSION = 8000; - public static final Companion COMPANION = new Companion(); - public BitmapData(int imageId, int width, int height, byte[] bitmap) { this.mImageId = imageId; this.mImageWidth = width; @@ -44,9 +49,17 @@ public class BitmapData implements Operation { this.mBitmap = bitmap; } + public int getWidth() { + return mImageWidth; + } + + public int getHeight() { + return mImageHeight; + } + @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mImageId, mImageWidth, mImageHeight, mBitmap); + apply(buffer, mImageId, mImageWidth, mImageHeight, mBitmap); } @Override @@ -54,42 +67,51 @@ public class BitmapData implements Operation { return "BITMAP DATA " + mImageId; } - public static class Companion implements CompanionOperation { - private Companion() { - } - @Override - public String name() { - return "BitmapData"; - } + public static String name() { + return CLASS_NAME; + } - @Override - public int id() { - return Operations.DATA_BITMAP; - } + public static int id() { + return OP_CODE; + } - public void apply(WireBuffer buffer, int imageId, int width, int height, byte[] bitmap) { - buffer.start(Operations.DATA_BITMAP); - buffer.writeInt(imageId); - buffer.writeInt(width); - buffer.writeInt(height); - buffer.writeBuffer(bitmap); - } + public static void apply(WireBuffer buffer, int imageId, int width, int height, byte[] bitmap) { + buffer.start(OP_CODE); + buffer.writeInt(imageId); + buffer.writeInt(width); + buffer.writeInt(height); + buffer.writeBuffer(bitmap); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int imageId = buffer.readInt(); - int width = buffer.readInt(); - int height = buffer.readInt(); - if (width < 1 - || height < 1 - || height > MAX_IMAGE_DIMENSION - || width > MAX_IMAGE_DIMENSION) { - throw new RuntimeException("Dimension of image is invalid " + width + "x" + height); - } - byte[] bitmap = buffer.readBuffer(); - operations.add(new BitmapData(imageId, width, height, bitmap)); + + public static void read(WireBuffer buffer, List<Operation> operations) { + int imageId = buffer.readInt(); + int width = buffer.readInt(); + int height = buffer.readInt(); + if (width < 1 + || height < 1 + || height > MAX_IMAGE_DIMENSION + || width > MAX_IMAGE_DIMENSION) { + throw new RuntimeException("Dimension of image is invalid " + width + "x" + height); } + byte[] bitmap = buffer.readBuffer(); + operations.add(new BitmapData(imageId, width, height, bitmap)); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Bitmap data") + .field(INT, "id", "id of bitmap data") + .field(INT, "width", + "width of the image") + .field(INT, "height", + "height of the image") + .field(INT_ARRAY, "values", "length", + "Array of ints"); } @Override @@ -102,4 +124,9 @@ public class BitmapData implements Operation { return indent + toString(); } + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, CLASS_NAME + + " id " + mImageId + " (" + mImageWidth + "x" + mImageHeight + ")"); + } + } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java index a3cd1973f647..e72e24a0b85a 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClickArea.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteComposeOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -28,6 +30,8 @@ import java.util.List; * Add a click area to the document */ public class ClickArea implements RemoteComposeOperation { + private static final int OP_CODE = Operations.CLICK_AREA; + private static final String CLASS_NAME = "ClickArea"; int mId; int mContentDescription; float mLeft; @@ -36,18 +40,16 @@ public class ClickArea implements RemoteComposeOperation { float mBottom; int mMetadata; - public static final Companion COMPANION = new Companion(); - /** * Add a click area to the document * - * @param id the id of the click area, which will be reported in the listener - * callback on the player + * @param id the id of the click area, which will be reported in the listener + * callback on the player * @param contentDescription the content description (used for accessibility, as a textID) - * @param left left coordinate of the area bounds - * @param top top coordinate of the area bounds - * @param right right coordinate of the area bounds - * @param bottom bottom coordinate of the area bounds + * @param left left coordinate of the area bounds + * @param top top coordinate of the area bounds + * @param right right coordinate of the area bounds + * @param bottom bottom coordinate of the area bounds * @param metadata associated metadata, user-provided (as a textID, pointing to a string) */ public ClickArea(int id, int contentDescription, @@ -65,7 +67,7 @@ public class ClickArea implements RemoteComposeOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId, mContentDescription, mLeft, mTop, mRight, mBottom, mMetadata); + apply(buffer, mId, mContentDescription, mLeft, mTop, mRight, mBottom, mMetadata); } @Override @@ -89,44 +91,57 @@ public class ClickArea implements RemoteComposeOperation { return indent + toString(); } - public static class Companion implements CompanionOperation { - private Companion() {} + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "ClickArea"; - } - @Override - public int id() { - return Operations.CLICK_AREA; - } + public static int id() { + return OP_CODE; + } - public void apply(WireBuffer buffer, int id, int contentDescription, - float left, float top, float right, float bottom, - int metadata) { - buffer.start(Operations.CLICK_AREA); - buffer.writeInt(id); - buffer.writeInt(contentDescription); - buffer.writeFloat(left); - buffer.writeFloat(top); - buffer.writeFloat(right); - buffer.writeFloat(bottom); - buffer.writeInt(metadata); - } + public static void apply(WireBuffer buffer, int id, int contentDescription, + float left, float top, float right, float bottom, + int metadata) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(contentDescription); + buffer.writeFloat(left); + buffer.writeFloat(top); + buffer.writeFloat(right); + buffer.writeFloat(bottom); + buffer.writeInt(metadata); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - int contentDescription = buffer.readInt(); - float left = buffer.readFloat(); - float top = buffer.readFloat(); - float right = buffer.readFloat(); - float bottom = buffer.readFloat(); - int metadata = buffer.readInt(); - ClickArea clickArea = new ClickArea(id, contentDescription, - left, top, right, bottom, metadata); - operations.add(clickArea); - } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int contentDescription = buffer.readInt(); + float left = buffer.readFloat(); + float top = buffer.readFloat(); + float right = buffer.readFloat(); + float bottom = buffer.readFloat(); + int metadata = buffer.readInt(); + ClickArea clickArea = new ClickArea(id, contentDescription, + left, top, right, bottom, metadata); + operations.add(clickArea); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Define a region you can click on") + .field(FLOAT, "left", + "The left side of the region") + .field(FLOAT, "top", + "The top of the region") + .field(FLOAT, "right", + "The right side of the region") + .field(FLOAT, "bottom", + "The bottom of the region") + .field(FLOAT, "metadata", + "user defined string accessible in callback"); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java index e6d5fe7043fd..d77d53cca963 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipPath.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -30,7 +32,8 @@ import java.util.List; * TODO allow id 0 to mean null? */ public class ClipPath extends PaintOperation { - public static final Companion COMPANION = new Companion(); + private static final int OP_CODE = Operations.CLIP_PATH; + private static final String CLASS_NAME = "ClipPath"; int mId; int mRegionOp; @@ -39,17 +42,25 @@ public class ClipPath extends PaintOperation { mRegionOp = regionOp; } - public static final int REPLACE = Companion.PATH_CLIP_REPLACE; - public static final int DIFFERENCE = Companion.PATH_CLIP_DIFFERENCE; - public static final int INTERSECT = Companion.PATH_CLIP_INTERSECT; - public static final int UNION = Companion.PATH_CLIP_UNION; - public static final int XOR = Companion.PATH_CLIP_XOR; - public static final int REVERSE_DIFFERENCE = Companion.PATH_CLIP_REVERSE_DIFFERENCE; - public static final int UNDEFINED = Companion.PATH_CLIP_UNDEFINED; + public static final int PATH_CLIP_REPLACE = 0; + public static final int PATH_CLIP_DIFFERENCE = 1; + public static final int PATH_CLIP_INTERSECT = 2; + public static final int PATH_CLIP_UNION = 3; + public static final int PATH_CLIP_XOR = 4; + public static final int PATH_CLIP_REVERSE_DIFFERENCE = 5; + public static final int PATH_CLIP_UNDEFINED = 6; + + public static final int REPLACE = PATH_CLIP_REPLACE; + public static final int DIFFERENCE = PATH_CLIP_DIFFERENCE; + public static final int INTERSECT = PATH_CLIP_INTERSECT; + public static final int UNION = PATH_CLIP_UNION; + public static final int XOR = PATH_CLIP_XOR; + public static final int REVERSE_DIFFERENCE = PATH_CLIP_REVERSE_DIFFERENCE; + public static final int UNDEFINED = PATH_CLIP_UNDEFINED; @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId); + apply(buffer, mId); } @Override @@ -57,43 +68,40 @@ public class ClipPath extends PaintOperation { return "ClipPath " + mId + ";"; } - public static class Companion implements CompanionOperation { - public static final int PATH_CLIP_REPLACE = 0; - public static final int PATH_CLIP_DIFFERENCE = 1; - public static final int PATH_CLIP_INTERSECT = 2; - public static final int PATH_CLIP_UNION = 3; - public static final int PATH_CLIP_XOR = 4; - public static final int PATH_CLIP_REVERSE_DIFFERENCE = 5; - public static final int PATH_CLIP_UNDEFINED = 6; - - private Companion() { - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int pack = buffer.readInt(); - int id = pack & 0xFFFFF; - int regionOp = pack >> 24; - ClipPath op = new ClipPath(id, regionOp); - operations.add(op); - } - - @Override - public String name() { - return "ClipPath"; - } - - @Override - public int id() { - return Operations.CLIP_PATH; - } - - public void apply(WireBuffer buffer, int id) { - buffer.start(Operations.CLIP_PATH); - buffer.writeInt(id); - } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int pack = buffer.readInt(); + int id = pack & 0xFFFFF; + int regionOp = pack >> 24; + ClipPath op = new ClipPath(id, regionOp); + operations.add(op); + } + + + public static String name() { + return CLASS_NAME; + } + + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int id) { + buffer.start(OP_CODE); + buffer.writeInt(id); } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Intersect the current clip with the path") + .field(INT, "id", + "id of the path"); + } + + @Override public void paint(PaintContext context) { context.clipPath(mId, mRegionOp); diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java index 613ecebf9100..ec9b6fe483c9 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ClipRect.java @@ -15,24 +15,61 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; /** * Support clip with a rectangle */ public class ClipRect extends DrawBase4 { - public static final Companion COMPANION = - new Companion(Operations.CLIP_RECT) { - @Override - public Operation construct(float x1, - float y1, - float x2, - float y2) { - return new ClipRect(x1, y1, x2, y2); - } - }; + public static final int OP_CODE = Operations.CLIP_RECT; + public static final String CLASS_NAME = "ClipRect"; + + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = ClipRect::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4) { + apply(buffer, v1, v2, v3, v4); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("Intersect the current clip with rectangle") + .field(FLOAT, "left", + "The left side of the rectangle to intersect with the current clip") + .field(FLOAT, "top", + "The top of the rectangle to intersect with the current clip") + .field(FLOAT, "right", + "The right side of the rectangle to intersect with the current clip") + .field(FLOAT, "bottom", + "The bottom of the rectangle to intersect with the current clip"); + } + public ClipRect( float left, @@ -40,11 +77,28 @@ public class ClipRect extends DrawBase4 { float right, float bottom) { super(left, top, right, bottom); - mName = "ClipRect"; + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { context.clipRect(mX1, mY1, mX2, mY2); } + + /** + * Writes out the clipRect to the buffer + * + * @param buffer buffer to write to + * @param x1 start x of DrawOval + * @param y1 start y of the DrawOval + * @param x2 end x of the DrawOval + * @param y2 end y of the DrawOval + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2, + float y2) { + write(buffer, OP_CODE, x1, y1, x2, y2); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java index 15c208f2de61..2562e18b386c 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorConstant.java @@ -15,11 +15,13 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -28,9 +30,10 @@ import java.util.List; * Mainly for colors in theming. */ public class ColorConstant implements Operation { + private static final int OP_CODE = Operations.COLOR_CONSTANT; + private static final String CLASS_NAME = "ColorConstant"; public int mColorId; public int mColor; - public static final Companion COMPANION = new Companion(); public ColorConstant(int colorId, int color) { this.mColorId = colorId; @@ -39,7 +42,7 @@ public class ColorConstant implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mColorId, mColor); + apply(buffer, mColorId, mColor); } @Override @@ -47,39 +50,42 @@ public class ColorConstant implements Operation { return "ColorConstant[" + mColorId + "] = " + Utils.colorInt(mColor) + ""; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "ColorConstant"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.COLOR_CONSTANT; - } + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param colorId + * @param color + */ + public static void apply(WireBuffer buffer, int colorId, int color) { + buffer.start(OP_CODE); + buffer.writeInt(colorId); + buffer.writeInt(color); + } - /** - * Writes out the operation to the buffer - * - * @param buffer - * @param colorId - * @param color - */ - public void apply(WireBuffer buffer, int colorId, int color) { - buffer.start(Operations.COLOR_CONSTANT); - buffer.writeInt(colorId); - buffer.writeInt(color); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int colorId = buffer.readInt(); + int color = buffer.readInt(); + operations.add(new ColorConstant(colorId, color)); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int colorId = buffer.readInt(); - int color = buffer.readInt(); - operations.add(new ColorConstant(colorId, color)); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("Define a Color") + .field(INT, "id", + "Id of the color") + .field(INT, "color", + "32 bit ARGB color"); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java index 7d28cea35850..96d667465e8f 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ColorExpression.java @@ -15,12 +15,15 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -34,6 +37,8 @@ import java.util.List; * mMode = 4 H S V mode */ public class ColorExpression implements Operation, VariableSupport { + private static final int OP_CODE = Operations.COLOR_EXPRESSIONS; + private static final String CLASS_NAME = "ColorExpression"; public int mId; int mMode; public int mColor1; @@ -52,8 +57,8 @@ public class ColorExpression implements Operation, VariableSupport { public float mOutTween = 0.0f; public int mOutColor1; public int mOutColor2; - public static final Companion COMPANION = new Companion(); public static final int HSV_MODE = 4; + public ColorExpression(int id, float hue, float sat, float value) { mMode = HSV_MODE; mAlpha = 0xFF; @@ -64,6 +69,7 @@ public class ColorExpression implements Operation, VariableSupport { mColor2 = Float.floatToRawIntBits(sat); mTween = value; } + public ColorExpression(int id, int alpha, float hue, float sat, float value) { mMode = HSV_MODE; mAlpha = alpha; @@ -90,7 +96,6 @@ public class ColorExpression implements Operation, VariableSupport { this.mOutTween = tween; this.mOutColor1 = color1; this.mOutColor2 = color2; - } @Override @@ -163,13 +168,12 @@ public class ColorExpression implements Operation, VariableSupport { context.loadColor(mId, Utils.interpolateColor(mOutColor1, mOutColor2, mOutTween)); } - } @Override public void write(WireBuffer buffer) { int mode = mMode | (mAlpha << 16); - COMPANION.apply(buffer, mId, mode, mColor1, mColor2, mTween); + apply(buffer, mId, mode, mColor1, mColor2, mTween); } @Override @@ -187,51 +191,66 @@ public class ColorExpression implements Operation, VariableSupport { + Utils.floatToString(mTween) + ")"; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "ColorExpression"; - } - @Override - public int id() { - return Operations.COLOR_EXPRESSIONS; - } + public static int id() { + return OP_CODE; + } - /** - * Call to write a ColorExpression object on the buffer - * @param buffer - * @param id of the ColorExpression object - * @param mode if colors are id or actual values - * @param color1 - * @param color2 - * @param tween - */ - public void apply(WireBuffer buffer, - int id, int mode, - int color1, int color2, float tween) { - buffer.start(Operations.COLOR_EXPRESSIONS); - buffer.writeInt(id); - buffer.writeInt(mode); - buffer.writeInt(color1); - buffer.writeInt(color2); - buffer.writeFloat(tween); + /** + * Call to write a ColorExpression object on the buffer + * + * @param buffer + * @param id of the ColorExpression object + * @param mode if colors are id or actual values + * @param color1 + * @param color2 + * @param tween + */ + public static void apply(WireBuffer buffer, + int id, int mode, + int color1, int color2, float tween) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(mode); + buffer.writeInt(color1); + buffer.writeInt(color2); + buffer.writeFloat(tween); - } + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - int mode = buffer.readInt(); - int color1 = buffer.readInt(); - int color2 = buffer.readInt(); - float tween = buffer.readFloat(); + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int mode = buffer.readInt(); + int color1 = buffer.readInt(); + int color2 = buffer.readInt(); + float tween = buffer.readFloat(); + + operations.add(new ColorExpression(id, mode, color1, color2, tween)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("A Color defined by an expression") + .field(INT, "id", "Id of the color") + .field(INT, "mode", "The use of the next 3 fields") + .possibleValues("COLOR_COLOR_INTERPOLATE", 0) + .possibleValues("COLOR_ID_INTERPOLATE", 1) + .possibleValues("ID_COLOR_INTERPOLATE", 2) + .possibleValues("ID_ID_INTERPOLATE", 3) + .possibleValues("HSV", 4) + .field(INT, "color1", + "32 bit ARGB color") + .field(INT, "color2", + "32 bit ARGB color") + .field(FLOAT, "tween", + "32 bit ARGB color"); - operations.add(new ColorExpression(id, mode, color1, color2, tween)); - } } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java new file mode 100644 index 000000000000..22fe673bc072 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ComponentValue.java @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.SerializableToString; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +public class ComponentValue implements Operation, SerializableToString { + public static final int OP_CODE = Operations.COMPONENT_VALUE; + public static final String CLASS_NAME = "ComponentValue"; + + public static final int WIDTH = 0; + public static final int HEIGHT = 1; + + private int mType = WIDTH; + private int mComponentID = -1; + private int mValueId = -1; + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + @Override + public String toString() { + return CLASS_NAME + "(" + mType + ", " + mComponentID + ", " + mValueId + ")"; + } + + public int getType() { + return mType; + } + + public int getComponentId() { + return mComponentID; + } + + public int getValueId() { + return mValueId; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mType, mComponentID, mValueId); + } + + @Override + public void apply(RemoteContext context) { + // Nothing + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int type = buffer.readInt(); + int componentId = buffer.readInt(); + int valueId = buffer.readInt(); + ComponentValue op = new ComponentValue(type, componentId, valueId); + operations.add(op); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("Encode a component-related value (eg its width, height etc.)") + .field(INT, "TYPE", + "The type of value, either WIDTH(0) or HEIGHT(1)") + .field(INT, "COMPONENT_ID", + "The component id to reference") + .field(INT, "VALUE_ID", + "The id of the RemoteFloat representing the described" + + " component value, which can be used in expressions"); + } + + public ComponentValue(int type, int componentId, int valueId) { + mType = type; + mComponentID = componentId; + mValueId = valueId; + } + + /** + * Writes out the ComponentValue to the buffer + * + * @param buffer buffer to write to + * @param type type of value (WIDTH or HEIGHT) + * @param componentId component id to reference + * @param valueId remote float used to represent the component value + */ + public static void apply(WireBuffer buffer, + int type, + int componentId, + int valueId) { + buffer.start(OP_CODE); + buffer.writeInt(type); + buffer.writeInt(componentId); + buffer.writeInt(valueId); + } + + @Override + public String deepToString(String indent) { + return null; + } + + public void serializeToString(int indent, StringSerializer serializer) { + String type = "WIDTH"; + if (mType == HEIGHT) { + type = "HEIGHT"; + } + serializer.append(indent, CLASS_NAME + + " value " + mValueId + " set to " + + type + " of Component " + mComponentID); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java new file mode 100644 index 000000000000..edcb5fef7766 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListFloat.java @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; + +import java.util.Arrays; +import java.util.List; + +public class DataListFloat implements VariableSupport, ArrayAccess, Operation { + private static final int OP_CODE = Operations.FLOAT_LIST; + private static final String CLASS_NAME = "IdListData"; + int mId; + float[] mValues; + private static final int MAX_FLOAT_ARRAY = 2000; + + public DataListFloat(int id, float[] values) { + mId = id; + mValues = values; + } + + @Override + public void updateVariables(RemoteContext context) { + // TODO add support for variables in arrays + } + + @Override + public void registerListening(RemoteContext context) { + context.addCollection(mId, this); + for (float value : mValues) { + if (Utils.isVariable(value)) { + context.listensTo(Utils.idFromNan(value), this); + } + } + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mId, mValues); + } + + @Override + public String toString() { + return "DataListFloat[A_" + (mId & 0xFFFF) + "] " + Arrays.toString(mValues); + } + + public static void apply(WireBuffer buffer, int id, float[] values) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(values.length); + for (int i = 0; i < values.length; i++) { + buffer.writeFloat(values[i]); + } + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int len = buffer.readInt(); + if (len > MAX_FLOAT_ARRAY) { + throw new RuntimeException(len + " map entries more than max = " + MAX_FLOAT_ARRAY); + } + float[] values = new float[len]; + for (int i = 0; i < values.length; i++) { + values[i] = buffer.readFloat(); + } + DataListFloat data = new DataListFloat(id, values); + operations.add(data); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("a list of Floats") + .field(INT, "id", "id the array (2xxxxx)") + .field(INT, "length", "number of floats") + .field(FLOAT_ARRAY, "values", "length", + "array of floats"); + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } + + @Override + public void apply(RemoteContext context) { + context.addCollection(mId, this); + } + + @Override + public float getFloatValue(int index) { + return mValues[index]; + } + + @Override + public float[] getFloats() { + return mValues; + } + + @Override + public int getFloatsLength() { + return mValues.length; + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java new file mode 100644 index 000000000000..bde376e59d9c --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataListIds.java @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; + +import java.util.Arrays; +import java.util.List; + +public class DataListIds implements VariableSupport, ArrayAccess, Operation { + private static final int OP_CODE = Operations.ID_LIST; + private static final String CLASS_NAME = "IdListData"; + int mId; + int[] mIds; + float[] mValues; + private static final int MAX_LIST = 2000; + + public DataListIds(int id, int[] ids) { + mId = id; + mIds = ids; + mValues = new float[ids.length]; + } + + @Override + public void updateVariables(RemoteContext context) { + for (int i = 0; i < mIds.length; i++) { + int id = mIds[i]; + mValues[i] = context.getFloat(id); + } + } + + @Override + public void registerListening(RemoteContext context) { + for (int mId : mIds) { + context.listensTo(mId, this); + } + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mId, mIds); + } + + @Override + public String toString() { + return "map " + "\"" + Arrays.toString(mIds) + "\""; + } + + public static void apply(WireBuffer buffer, int id, int[] ids) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(ids.length); + for (int i = 0; i < ids.length; i++) { + buffer.writeInt(ids[i]); + } + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int len = buffer.readInt(); + if (len > MAX_LIST) { + throw new RuntimeException(len + " list entries more than max = " + MAX_LIST); + } + int[] ids = new int[len]; + for (int i = 0; i < ids.length; i++) { + ids[i] = buffer.readInt(); + } + DataListIds data = new DataListIds(id, ids); + operations.add(data); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("a list of id's") + .field(INT, "id", "id the array") + .field(INT, "length", "number of ids") + .field(INT_ARRAY, "ids[n]", "length", + "ids of other variables"); + + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } + + @Override + public void apply(RemoteContext context) { + context.addCollection(mId, this); + } + + @Override + public float getFloatValue(int index) { + return mValues[index]; + } + + @Override + public float[] getFloats() { + return mValues; + } + + @Override + public int getFloatsLength() { + return mValues.length; + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java new file mode 100644 index 000000000000..53143dcf8211 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DataMapIds.java @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; + +import java.util.List; + +public class DataMapIds implements VariableSupport, ArrayAccess, Operation { + private static final int OP_CODE = Operations.ID_MAP; + private static final String CLASS_NAME = "IdMapData"; + int mId; + String[] mNames; + int[] mIds; + float[] mValues; + private static final int MAX_MAP = 2000; + + public DataMapIds(int id, String[] names, int[] ids) { + mId = id; + mNames = names; + mIds = ids; + mValues = new float[ids.length]; + + } + + @Override + public void updateVariables(RemoteContext context) { + for (int i = 0; i < mIds.length; i++) { + int id = mIds[i]; + mValues[i] = context.getFloat(id); + } + } + + @Override + public void registerListening(RemoteContext context) { + for (int mId : mIds) { + context.listensTo(mId, this); + } + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mId, mNames, mIds); + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder("DataMapIds "); + for (int i = 0; i < mNames.length; i++) { + if (i != 0) { + builder.append(" "); + } + builder.append(mNames[i]); + builder.append("["); + builder.append(mIds[i]); + builder.append("]"); + + } + return builder.toString(); + } + + public static void apply(WireBuffer buffer, int id, String[] names, int[] ids) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(names.length); + for (int i = 0; i < names.length; i++) { + buffer.writeUTF8(names[i]); + buffer.writeInt(ids[i]); + } + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int len = buffer.readInt(); + if (len > MAX_MAP) { + throw new RuntimeException(len + " map entries more than max = " + MAX_MAP); + } + String[] names = new String[len]; + int[] ids = new int[len]; + for (int i = 0; i < names.length; i++) { + names[i] = buffer.readUTF8(); + ids[i] = buffer.readInt(); + } + DataMapIds data = new DataMapIds(id, names, ids); + operations.add(data); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Encode a collection of name id pairs") + .field(INT, "id", "id the array") + .field(INT, "length", "number of entries") + .field(INT, "names[0]", "length", + "path encoded as floats") + .field(UTF8, "id[0]", "length", + "path encoded as floats"); + } + + @Override + public String deepToString(String indent) { + return indent + toString(); + } + + @Override + public void apply(RemoteContext context) { + context.addCollection(mId, this); + } + + @Override + public float getFloatValue(int index) { + return mValues[index]; + } + + @Override + public float[] getFloats() { + return mValues; + } + + @Override + public int getFloatsLength() { + return mValues.length; + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java index c1768647bde6..d37722917b27 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawArc.java @@ -15,23 +15,85 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; public class DrawArc extends DrawBase6 { - public static final Companion COMPANION = - new Companion(Operations.DRAW_ARC) { - @Override - public Operation construct(float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { - return new DrawArc(v1, v2, v3, v4, v5, v6); - } - }; + public static final int OP_CODE = Operations.DRAW_ARC; + private static final String CLASS_NAME = "DrawArc"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = DrawArc::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * @param buffer the buffer to write to + * @param v1 The left side of the Oval + * @param v2 The top of the Oval + * @param v3 The right side of the Oval + * @param v4 The bottom of the Oval + * @param v5 Starting angle (in degrees) where the arc begins + * @param v6 Sweep angle (in degrees) measured clockwise + */ + public static void apply(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4, + float v5, + float v6) { + buffer.start(OP_CODE); + buffer.writeFloat(v1); + buffer.writeFloat(v2); + buffer.writeFloat(v3); + buffer.writeFloat(v4); + buffer.writeFloat(v5); + buffer.writeFloat(v6); + } + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4, + float v5, + float v6) { + apply(buffer, v1, v2, v3, v4, v5, v6); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw the specified arc" + + "which will be scaled to fit inside the specified oval") + .field(FLOAT, "left", + "The left side of the Oval") + .field(FLOAT, "top", + "The top of the Oval") + .field(FLOAT, "right", + "The right side of the Oval") + .field(FLOAT, "bottom", + "The bottom of the Oval") + .field(FLOAT, "startAngle", + "Starting angle (in degrees) where the arc begins") + .field(FLOAT, "sweepAngle", + "Sweep angle (in degrees) measured clockwise"); + } + public DrawArc(float v1, float v2, @@ -43,7 +105,6 @@ public class DrawArc extends DrawBase6 { mName = "DrawArc"; } - @Override public void paint(PaintContext context) { context.drawArc(mV1, mV2, mV3, mV4, mV5, mV6); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java index 0963c1337b70..97eb76bfaaa9 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase2.java @@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations; import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; -import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; @@ -32,14 +30,6 @@ import java.util.List; */ public abstract class DrawBase2 extends PaintOperation implements VariableSupport { - public static final Companion COMPANION = - new Companion(Operations.DRAW_CIRCLE) { - @Override - public Operation construct(float x1, float y1) { - // subclass should return new DrawX(x1, y1); - return null; - } - }; protected String mName = "DrawRectBase"; float mV1; float mV2; @@ -71,9 +61,17 @@ public abstract class DrawBase2 extends PaintOperation } } + @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mV1, mV2); + write(buffer, mV1, mV2); + } + + protected abstract void write(WireBuffer buffer, float v1, float v2); + + protected interface Maker { + DrawBase2 create(float v1, + float v2); } @Override @@ -81,54 +79,42 @@ public abstract class DrawBase2 extends PaintOperation return mName + " " + floatToString(mV1) + " " + floatToString(mV2); } - public static class Companion implements CompanionOperation { - public final int OP_CODE; - protected Companion(int code) { - OP_CODE = code; - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float v1 = buffer.readFloat(); - float v2 = buffer.readFloat(); + public static void read(Maker maker, WireBuffer buffer, List<Operation> operations) { + float v1 = buffer.readFloat(); + float v2 = buffer.readFloat(); - Operation op = construct(v1, v2); - operations.add(op); - } + Operation op = maker.create(v1, v2); + operations.add(op); + } - /** - * Override to construct a 2 float value operation - * @param x1 - * @param y1 - * @return - */ - public Operation construct(float x1, float y1) { - return null; - } + /** + * Override to construct a 2 float value operation + * + * @param x1 + * @param y1 + * @return + */ + public Operation construct(float x1, float y1) { + return null; + } - @Override - public String name() { - return "DrawRect"; - } - @Override - public int id() { - return OP_CODE; - } + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param opCode + * @param x1 + * @param y1 + */ + protected static void write(WireBuffer buffer, + int opCode, + float x1, + float y1) { + buffer.start(opCode); + buffer.writeFloat(x1); + buffer.writeFloat(y1); - /** - * Writes out the operation to the buffer - * @param buffer - * @param x1 - * @param y1 - */ - public void apply(WireBuffer buffer, - float x1, - float y1) { - buffer.start(OP_CODE); - buffer.writeFloat(x1); - buffer.writeFloat(y1); - } } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java index 5a4a9f3754df..2d1d3eb4b78c 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase3.java @@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations; import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; -import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; @@ -32,14 +30,7 @@ import java.util.List; */ public abstract class DrawBase3 extends PaintOperation implements VariableSupport { - public static final Companion COMPANION = - new Companion(Operations.DRAW_CIRCLE) { - @Override - public Operation construct(float x1, float y1, float x2) { - // subclass should return new DrawX(x1, y1, x2, y2); - return null; - } - }; + protected String mName = "DrawRectBase"; float mV1; float mV2; @@ -86,7 +77,18 @@ public abstract class DrawBase3 extends PaintOperation @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mV1, mV2, mV3); + write(buffer, mV1, mV2, mV3); + } + + protected abstract void write(WireBuffer buffer, + float v1, + float v2, + float v3); + + interface Maker { + DrawBase3 create(float v1, + float v2, + float v3); } @Override @@ -95,63 +97,26 @@ public abstract class DrawBase3 extends PaintOperation + " " + floatToString(mV3); } - public static class Companion implements CompanionOperation { - public final int OP_CODE; - - protected Companion(int code) { - OP_CODE = code; - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float v1 = buffer.readFloat(); - float v2 = buffer.readFloat(); - float v3 = buffer.readFloat(); - - Operation op = construct(v1, v2, v3); - operations.add(op); - } - - /** - * Construct and Operation from the 3 variables. - * This must be overridden by subclasses - * @param x1 - * @param y1 - * @param x2 - * @return - */ - public Operation construct(float x1, - float y1, - float x2) { - return null; - } - - @Override - public String name() { - return "DrawRect"; - } - - @Override - public int id() { - return OP_CODE; - } - - /** - * Writes out the operation to the buffer - * @param buffer - * @param x1 - * @param y1 - * @param x2 - */ - public void apply(WireBuffer buffer, - float x1, - float y1, - float x2) { - buffer.start(OP_CODE); - buffer.writeFloat(x1); - buffer.writeFloat(y1); - buffer.writeFloat(x2); + public static void read(Maker maker, WireBuffer buffer, List<Operation> operations) { + float v1 = buffer.readFloat(); + float v2 = buffer.readFloat(); + float v3 = buffer.readFloat(); + Operation op = maker.create(v1, v2, v3); + operations.add(op); + } - } + /** + * Construct and Operation from the 3 variables. + * This must be overridden by subclasses + * + * @param x1 + * @param y1 + * @param x2 + * @return + */ + public Operation construct(float x1, + float y1, + float x2) { + return null; } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java index 53a3aa917d0f..943c5a44b5ac 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase4.java @@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations; import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; -import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; @@ -32,14 +30,6 @@ import java.util.List; */ public abstract class DrawBase4 extends PaintOperation implements VariableSupport { - public static final Companion COMPANION = - new Companion(Operations.DRAW_RECT) { - @Override - public Operation construct(float x1, float y1, float x2, float y2) { - // return new DrawRectBase(x1, y1, x2, y2); - return null; - } - }; protected String mName = "DrawRectBase"; protected float mX1; protected float mY1; @@ -96,7 +86,20 @@ public abstract class DrawBase4 extends PaintOperation @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mX1, mY1, mX2, mY2); + write(buffer, mX1, mY1, mX2, mY2); + } + + protected abstract void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4); + + protected interface Maker { + DrawBase4 create(float v1, + float v2, + float v3, + float v4); } @Override @@ -105,67 +108,54 @@ public abstract class DrawBase4 extends PaintOperation + " " + floatToString(mX2Value, mX2) + " " + floatToString(mY2Value, mY2); } - public static class Companion implements CompanionOperation { - public final int OP_CODE; - - protected Companion(int code) { - OP_CODE = code; - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float sLeft = buffer.readFloat(); - float srcTop = buffer.readFloat(); - float srcRight = buffer.readFloat(); - float srcBottom = buffer.readFloat(); - - Operation op = construct(sLeft, srcTop, srcRight, srcBottom); - operations.add(op); - } + public static void read(Maker maker, WireBuffer buffer, List<Operation> operations) { + float v1 = buffer.readFloat(); + float v2 = buffer.readFloat(); + float v3 = buffer.readFloat(); + float v4 = buffer.readFloat(); - /** - * Construct and Operation from the 3 variables. - * @param x1 - * @param y1 - * @param x2 - * @param y2 - * @return - */ - public Operation construct(float x1, - float y1, - float x2, - float y2) { - return null; - } + Operation op = maker.create(v1, v2, v3, v4); + operations.add(op); + } - @Override - public String name() { - return "DrawRect"; - } + /** + * Construct and Operation from the 3 variables. + * + * @param x1 + * @param y1 + * @param x2 + * @param y2 + * @return + */ + public Operation construct(float x1, + float y1, + float x2, + float y2) { + return null; + } - @Override - public int id() { - return OP_CODE; - } - /** - * Writes out the operation to the buffer - * @param buffer - * @param x1 - * @param y1 - * @param x2 - * @param y2 - */ - public void apply(WireBuffer buffer, - float x1, - float y1, - float x2, - float y2) { - buffer.start(OP_CODE); - buffer.writeFloat(x1); - buffer.writeFloat(y1); - buffer.writeFloat(x2); - buffer.writeFloat(y2); - } + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param opCode + * @param x1 + * @param y1 + * @param x2 + * @param y2 + */ + protected static void write(WireBuffer buffer, + int opCode, + float x1, + float y1, + float x2, + float y2) { + buffer.start(opCode); + buffer.writeFloat(x1); + buffer.writeFloat(y1); + buffer.writeFloat(x2); + buffer.writeFloat(y2); } } + diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java index 2f4335e7f412..767a36d03ace 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBase6.java @@ -17,9 +17,7 @@ package com.android.internal.widget.remotecompose.core.operations; import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; -import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; @@ -32,13 +30,6 @@ import java.util.List; */ public abstract class DrawBase6 extends PaintOperation implements VariableSupport { - public static final Companion COMPANION = - new Companion(Operations.DRAW_RECT) { - public Operation construct(float x1, float y1, float x2, float y2) { - // return new DrawRectBase(x1, y1, x2, y2); - return null; - } - }; protected String mName = "DrawRectBase"; float mV1; float mV2; @@ -115,88 +106,67 @@ public abstract class DrawBase6 extends PaintOperation @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mV1, mV2, mV3, mV4, mV5, mV6); + write(buffer, mV1, mV2, mV3, mV4, mV5, mV6); } + protected abstract void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4, + float v5, + float v6); + @Override public String toString() { return mName + " " + floatToString(mV1) + " " + floatToString(mV2) + " " + floatToString(mV3) + " " + floatToString(mV4); } - public static class Companion implements CompanionOperation { - public final int OP_CODE; - - protected Companion(int code) { - OP_CODE = code; - } + interface Maker { + DrawBase6 create(float v1, + float v2, + float v3, + float v4, + float v5, + float v6); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float sv1 = buffer.readFloat(); - float sv2 = buffer.readFloat(); - float sv3 = buffer.readFloat(); - float sv4 = buffer.readFloat(); - float sv5 = buffer.readFloat(); - float sv6 = buffer.readFloat(); - - Operation op = construct(sv1, sv2, sv3, sv4, sv5, sv6); - operations.add(op); - } + public static void read(Maker build, WireBuffer buffer, List<Operation> operations) { + float sv1 = buffer.readFloat(); + float sv2 = buffer.readFloat(); + float sv3 = buffer.readFloat(); + float sv4 = buffer.readFloat(); + float sv5 = buffer.readFloat(); + float sv6 = buffer.readFloat(); - /** - * writes out a the operation to the buffer. - * @param v1 - * @param v2 - * @param v3 - * @param v4 - * @param v5 - * @param v6 - * @return - */ - public Operation construct(float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { - return null; - } + Operation op = build.create(sv1, sv2, sv3, sv4, sv5, sv6); + operations.add(op); + } - @Override - public String name() { - return "DrawRect"; - } + /** + * writes out a the operation to the buffer. + * + * @param v1 + * @param v2 + * @param v3 + * @param v4 + * @param v5 + * @param v6 + * @return + */ + public Operation construct(float v1, + float v2, + float v3, + float v4, + float v5, + float v6) { + return null; + } - @Override - public int id() { - return OP_CODE; - } - /** - * Writes out the operation to the buffer - * @param buffer - * @param v1 - * @param v2 - * @param v3 - * @param v4 - * @param v5 - * @param v6 - */ - public void apply(WireBuffer buffer, - float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { - buffer.start(OP_CODE); - buffer.writeFloat(v1); - buffer.writeFloat(v2); - buffer.writeFloat(v3); - buffer.writeFloat(v4); - buffer.writeFloat(v5); - buffer.writeFloat(v6); - } + public static String name() { + return "DrawBase6"; } + } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java index ca40d12fd3f9..2748f4c3c369 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmap.java @@ -15,7 +15,9 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; @@ -23,11 +25,13 @@ import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; public class DrawBitmap extends PaintOperation implements VariableSupport { - public static final Companion COMPANION = new Companion(); + private static final int OP_CODE = Operations.DRAW_BITMAP; + private static final String CLASS_NAME = "DrawBitmap"; float mLeft; float mTop; float mRight; @@ -84,7 +88,7 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId, mLeft, mTop, mRight, mBottom, mDescriptionId); + apply(buffer, mId, mLeft, mTop, mRight, mBottom, mDescriptionId); } @Override @@ -93,51 +97,59 @@ public class DrawBitmap extends PaintOperation implements VariableSupport { + " " + mRight + " " + mBottom + ";"; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + float sLeft = buffer.readFloat(); + float srcTop = buffer.readFloat(); + float srcRight = buffer.readFloat(); + float srcBottom = buffer.readFloat(); + int discriptionId = buffer.readInt(); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - float sLeft = buffer.readFloat(); - float srcTop = buffer.readFloat(); - float srcRight = buffer.readFloat(); - float srcBottom = buffer.readFloat(); - int discriptionId = buffer.readInt(); - - DrawBitmap op = new DrawBitmap(id, sLeft, srcTop, srcRight, srcBottom, discriptionId); - operations.add(op); - } + DrawBitmap op = new DrawBitmap(id, sLeft, srcTop, srcRight, srcBottom, discriptionId); + operations.add(op); + } - @Override - public String name() { - return "DrawOval"; - } + public static String name() { + return CLASS_NAME; + } - @Override - public int id() { - return Operations.DRAW_BITMAP; - } + public static int id() { + return OP_CODE; + } - public void apply(WireBuffer buffer, - int id, - float left, - float top, - float right, - float bottom, - int descriptionId) { - buffer.start(Operations.DRAW_BITMAP); - buffer.writeInt(id); - buffer.writeFloat(left); - buffer.writeFloat(top); - buffer.writeFloat(right); - buffer.writeFloat(bottom); - buffer.writeInt(descriptionId); - } + public static void apply(WireBuffer buffer, + int id, + float left, + float top, + float right, + float bottom, + int descriptionId) { + buffer.start(Operations.DRAW_BITMAP); + buffer.writeInt(id); + buffer.writeFloat(left); + buffer.writeFloat(top); + buffer.writeFloat(right); + buffer.writeFloat(bottom); + buffer.writeInt(descriptionId); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + OP_CODE, + CLASS_NAME) + .description("Draw a bitmap") + .field(INT, "id", "id of float") + .field(FLOAT, "left", + "The left side of the image") + .field(FLOAT, "top", + "The top of the image") + .field(FLOAT, "right", + "The right side of the image") + .field(FLOAT, "bottom", + "The bottom of the image") + .field(INT, "descriptionId", "id of string"); } - @Override public void paint(PaintContext context) { context.drawBitmap(mId, mOutputLeft, mOutputTop, diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java index c2a56e7256d6..561d52720a67 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawBitmapInt.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -28,6 +30,8 @@ import java.util.List; * Operation to draw a given cached bitmap */ public class DrawBitmapInt extends PaintOperation { + private static final int OP_CODE = Operations.DRAW_BITMAP_INT; + private static final String CLASS_NAME = "DrawBitmapInt"; int mImageId; int mSrcLeft; int mSrcTop; @@ -38,7 +42,6 @@ public class DrawBitmapInt extends PaintOperation { int mDstRight; int mDstBottom; int mContentDescId = 0; - public static final Companion COMPANION = new Companion(); public DrawBitmapInt(int imageId, int srcLeft, @@ -64,7 +67,7 @@ public class DrawBitmapInt extends PaintOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mImageId, mSrcLeft, mSrcTop, mSrcRight, mSrcBottom, + apply(buffer, mImageId, mSrcLeft, mSrcTop, mSrcRight, mSrcBottom, mDstLeft, mDstTop, mDstRight, mDstBottom, mContentDescId); } @@ -75,54 +78,73 @@ public class DrawBitmapInt extends PaintOperation { + "- " + mDstLeft + " " + mDstTop + " " + mDstRight + " " + mDstBottom + ";"; } - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "DrawBitmapInt"; - } - - @Override - public int id() { - return Operations.DRAW_BITMAP; - } - - public void apply(WireBuffer buffer, int imageId, - int srcLeft, int srcTop, int srcRight, int srcBottom, - int dstLeft, int dstTop, int dstRight, int dstBottom, - int cdId) { - buffer.start(Operations.DRAW_BITMAP_INT); - buffer.writeInt(imageId); - buffer.writeInt(srcLeft); - buffer.writeInt(srcTop); - buffer.writeInt(srcRight); - buffer.writeInt(srcBottom); - buffer.writeInt(dstLeft); - buffer.writeInt(dstTop); - buffer.writeInt(dstRight); - buffer.writeInt(dstBottom); - buffer.writeInt(cdId); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int imageId = buffer.readInt(); - int sLeft = buffer.readInt(); - int srcTop = buffer.readInt(); - int srcRight = buffer.readInt(); - int srcBottom = buffer.readInt(); - int dstLeft = buffer.readInt(); - int dstTop = buffer.readInt(); - int dstRight = buffer.readInt(); - int dstBottom = buffer.readInt(); - int cdId = buffer.readInt(); - DrawBitmapInt op = new DrawBitmapInt(imageId, sLeft, srcTop, srcRight, srcBottom, - dstLeft, dstTop, dstRight, dstBottom, cdId); - - operations.add(op); - } + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int imageId, + int srcLeft, int srcTop, int srcRight, int srcBottom, + int dstLeft, int dstTop, int dstRight, int dstBottom, + int cdId) { + buffer.start(Operations.DRAW_BITMAP_INT); + buffer.writeInt(imageId); + buffer.writeInt(srcLeft); + buffer.writeInt(srcTop); + buffer.writeInt(srcRight); + buffer.writeInt(srcBottom); + buffer.writeInt(dstLeft); + buffer.writeInt(dstTop); + buffer.writeInt(dstRight); + buffer.writeInt(dstBottom); + buffer.writeInt(cdId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int imageId = buffer.readInt(); + int sLeft = buffer.readInt(); + int srcTop = buffer.readInt(); + int srcRight = buffer.readInt(); + int srcBottom = buffer.readInt(); + int dstLeft = buffer.readInt(); + int dstTop = buffer.readInt(); + int dstRight = buffer.readInt(); + int dstBottom = buffer.readInt(); + int cdId = buffer.readInt(); + DrawBitmapInt op = new DrawBitmapInt(imageId, sLeft, srcTop, srcRight, srcBottom, + dstLeft, dstTop, dstRight, dstBottom, cdId); + + operations.add(op); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + OP_CODE, + CLASS_NAME) + .description("Draw a bitmap using integer coordinates") + .field(INT, "id", "id of bitmap") + .field(INT, "srcLeft", + "The left side of the image") + .field(INT, "srcTop", + "The top of the image") + .field(INT, "srcRight", + "The right side of the image") + .field(INT, "srcBottom", + "The bottom of the image") + .field(INT, "dstLeft", + "The left side of the image") + .field(INT, "dstTop", + "The top of the image") + .field(INT, "dstRight", + "The right side of the image") + .field(INT, "dstBottom", + "The bottom of the image") + .field(INT, "cdId", "id of string"); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java index 3a22e4f72720..e39a19171cf0 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawCircle.java @@ -1,31 +1,80 @@ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; public class DrawCircle extends DrawBase3 { - public static final Companion COMPANION = - new Companion(Operations.DRAW_CIRCLE) { - @Override - public Operation construct(float x1, - float y1, - float x2 - ) { - return new DrawCircle(x1, y1, x2); - } - }; + private static final int OP_CODE = Operations.DRAW_CIRCLE; + private static final String CLASS_NAME = "DrawCircle"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = DrawCircle::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw a Circle") + .field(FLOAT, "centerX", + "The x-coordinate of the center of the circle to be drawn") + .field(FLOAT, "centerY", + "The y-coordinate of the center of the circle to be drawn") + .field(FLOAT, "radius", + "The radius of the circle to be drawn"); + } + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3) { + apply(buffer, v1, v2, v3); + } public DrawCircle( float left, float top, float right) { super(left, top, right); - mName = "DrawCircle"; + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { context.drawCircle(mV1, mV2, mV3); } + + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param x1 + * @param y1 + * @param x2 + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2) { + buffer.start(OP_CODE); + buffer.writeFloat(x1); + buffer.writeFloat(y1); + buffer.writeFloat(x2); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java index c70c6eaa449d..a7276b56049f 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawLine.java @@ -15,20 +15,58 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.SerializableToString; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +public class DrawLine extends DrawBase4 implements SerializableToString { + private static final int OP_CODE = Operations.DRAW_LINE; + private static final String CLASS_NAME = "DrawLine"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = DrawLine::new; + read(m, buffer, operations); + } -public class DrawLine extends DrawBase4 { - public static final Companion COMPANION = new Companion(Operations.DRAW_LINE) { - @Override - public Operation construct(float x1, - float y1, - float x2, - float y2) { - return new DrawLine(x1, y1, x2, y2); - } - }; + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw a line segment") + .field(FLOAT, "startX", + "The x-coordinate of the start point of the line") + .field(FLOAT, "startY", + "The y-coordinate of the start point of the line") + .field(FLOAT, "endX", + "The x-coordinate of the end point of the line") + .field(FLOAT, "endY", + "The y-coordinate of the end point of the line"); + } + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4) { + apply(buffer, v1, v2, v3, v4); + } public DrawLine( float left, @@ -41,10 +79,45 @@ public class DrawLine extends DrawBase4 { @Override public void paint(PaintContext context) { - context.drawLine(mX1, - mY1, - mX2, - mY2); + context.drawLine(mX1, mY1, mX2, mY2); + } + + /** + * Writes out the DrawLine to the buffer + * + * @param buffer buffer to write to + * @param x1 start x of line + * @param y1 start y of the line + * @param x2 end x of the line + * @param y2 end y of the line + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2, + float y2) { + write(buffer, OP_CODE, x1, y1, x2, y2); } + public void serializeToString(int indent, StringSerializer serializer) { + String x1 = "" + mX1; + if (Float.isNaN(mX1Value)) { + x1 = "[" + Utils.idFromNan(mX1Value) + " = " + mX1 + "]"; + } + String y1 = "" + mY1; + if (Float.isNaN(mY1Value)) { + y1 = "[" + Utils.idFromNan(mY1Value) + " = " + mY1 + "]"; + } + String x2 = "" + mX2; + if (Float.isNaN(mX2Value)) { + x2 = "[" + Utils.idFromNan(mX2Value) + " = " + mX2 + "]"; + } + String y2 = "" + mY2; + if (Float.isNaN(mY2Value)) { + y2 = "[" + Utils.idFromNan(mY2Value) + " = " + mY2 + "]"; + } + serializer.append(indent, CLASS_NAME + + "(" + x1 + ", " + y1 + ", " + x2 + ", " + y2 + ")" + ); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java index ba1799422e80..01761efbb9ed 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawOval.java @@ -15,21 +15,60 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; public class DrawOval extends DrawBase4 { - public static final Companion COMPANION = - new Companion(Operations.DRAW_OVAL) { - @Override - public Operation construct(float x1, - float y1, - float x2, - float y2) { - return new DrawOval(x1, y1, x2, y2); - } - }; + private static final int OP_CODE = Operations.DRAW_OVAL; + private static final String CLASS_NAME = "DrawOval"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = DrawOval::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw the specified oval") + .field(FLOAT, "left", + "The left side of the oval") + .field(FLOAT, "top", + "The top of the oval") + .field(FLOAT, "right", + "The right side of the oval") + .field(FLOAT, "bottom", + "The bottom of the oval"); + } + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4) { + apply(buffer, v1, v2, v3, v4); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mX1, mY1, mX2, mY2); + } public DrawOval( float left, @@ -37,11 +76,27 @@ public class DrawOval extends DrawBase4 { float right, float bottom) { super(left, top, right, bottom); - mName = "DrawOval"; + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { context.drawOval(mX1, mY1, mX2, mY2); } + /** + * Writes out the DrawOval to the buffer + * + * @param buffer buffer to write to + * @param x1 start x of DrawOval + * @param y1 start y of the DrawOval + * @param x2 end x of the DrawOval + * @param y2 end y of the DrawOval + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2, + float y2) { + write(buffer, OP_CODE, x1, y1, x2, y2); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java index 6dbc5a628c98..bc2c53a9a5ba 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawPath.java @@ -15,17 +15,21 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; public class DrawPath extends PaintOperation { - public static final Companion COMPANION = new Companion(); + private static final int OP_CODE = Operations.DRAW_PATH; + private static final String CLASS_NAME = "DrawPath"; + int mId; float mStart = 0; float mEnd = 1; @@ -36,7 +40,7 @@ public class DrawPath extends PaintOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId); + apply(buffer, mId); } @Override @@ -44,33 +48,36 @@ public class DrawPath extends PaintOperation { return "DrawPath " + "[" + mId + "]" + ", " + mStart + ", " + mEnd; } - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - DrawPath op = new DrawPath(id); - operations.add(op); - } - - @Override - public String name() { - return "DrawPath"; - } - - @Override - public int id() { - return Operations.DRAW_PATH; - } - - public void apply(WireBuffer buffer, int id) { - buffer.start(Operations.DRAW_PATH); - buffer.writeInt(id); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + DrawPath op = new DrawPath(id); + operations.add(op); } + + public static String name() { + return CLASS_NAME; + } + + + public static int id() { + return Operations.DRAW_PATH; + } + + public static void apply(WireBuffer buffer, int id) { + buffer.start(Operations.DRAW_PATH); + buffer.writeInt(id); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + OP_CODE, + CLASS_NAME) + .description("Draw a bitmap using integer coordinates") + .field(INT, "id", "id of path"); + } + + @Override public void paint(PaintContext context) { context.drawPath(mId, mStart, mEnd); diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java index 633aed4a4dbe..ad17fe743b76 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRect.java @@ -15,24 +15,60 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; /** * Draw a Rectangle */ public class DrawRect extends DrawBase4 { - public static final Companion COMPANION = - new Companion(Operations.DRAW_RECT) { - @Override - public Operation construct(float x1, - float y1, - float x2, - float y2) { - return new DrawRect(x1, y1, x2, y2); - } - }; + private static final int OP_CODE = Operations.DRAW_RECT; + private static final String CLASS_NAME = "DrawRect"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = DrawRect::new; + read(m, buffer, operations); + } + + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw the specified rectangle") + .field(FLOAT, "left", + "The left side of the rectangle") + .field(FLOAT, "top", + "The top of the rectangle") + .field(FLOAT, "right", + "The right side of the rectangle") + .field(FLOAT, "bottom", + "The bottom of the rectangle"); + } + + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4) { + apply(buffer, v1, v2, v3, v4); + } public DrawRect( float left, @@ -40,7 +76,7 @@ public class DrawRect extends DrawBase4 { float right, float bottom) { super(left, top, right, bottom); - mName = "DrawRect"; + mName = CLASS_NAME; } @Override @@ -48,4 +84,20 @@ public class DrawRect extends DrawBase4 { context.drawRect(mX1, mY1, mX2, mY2); } + /** + * Writes out the DrawRect to the buffer + * + * @param buffer buffer to write to + * @param x1 left x of rect + * @param y1 top y of the rect + * @param x2 right x of the rect + * @param y2 bottom y of the rect + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2, + float y2) { + write(buffer, OP_CODE, x1, y1, x2, y2); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java index b9d0a6728b95..908e03a5191c 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawRoundRect.java @@ -15,26 +15,89 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; /** * Draw a rounded rectangle */ public class DrawRoundRect extends DrawBase6 { - public static final Companion COMPANION = - new Companion(Operations.DRAW_ROUND_RECT) { - @Override - public Operation construct(float v1, - float v2, - float v3, - float v4, - float v5, - float v6) { - return new DrawRoundRect(v1, v2, v3, v4, v5, v6); - } - }; + private static final int OP_CODE = Operations.DRAW_ROUND_RECT; + private static final String CLASS_NAME = "DrawRoundRect"; + + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = DrawRoundRect::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer The buffer to write to + * @param v1 The left side of the rect + * @param v2 The top of the rect + * @param v3 The right side of the rect + * @param v4 The bottom of the rect + * @param v5 The x-radius of the oval used to round the corners + * @param v6 The y-radius of the oval used to round the corners + */ + public static void apply(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4, + float v5, + float v6) { + buffer.start(OP_CODE); + buffer.writeFloat(v1); + buffer.writeFloat(v2); + buffer.writeFloat(v3); + buffer.writeFloat(v4); + buffer.writeFloat(v5); + buffer.writeFloat(v6); + } + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4, + float v5, + float v6) { + apply(buffer, v1, v2, v3, v4, v5, v6); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw the specified round-rect") + .field(FLOAT, "left", + "The left side of the rect") + .field(FLOAT, "top", + "The top of the rect") + .field(FLOAT, "right", + "The right side of the rect") + .field(FLOAT, "bottom", + "The bottom of the rect") + .field(FLOAT, "rx", + "The x-radius of the oval used to round the corners") + .field(FLOAT, "sweepAngle", + "The y-radius of the oval used to round the corners"); + } + public DrawRoundRect(float v1, float v2, @@ -43,7 +106,7 @@ public class DrawRoundRect extends DrawBase6 { float v5, float v6) { super(v1, v2, v3, v4, v5, v6); - mName = "ClipRect"; + mName = CLASS_NAME; } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java index f8f8afdf68cd..60dddc2d610e 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawText.java @@ -15,20 +15,28 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.BOOLEAN; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; /** * Draw Text */ -public class DrawText extends PaintOperation { - public static final Companion COMPANION = new Companion(); +public class DrawText extends PaintOperation implements VariableSupport { + private static final int OP_CODE = Operations.DRAW_TEXT_RUN; + private static final String CLASS_NAME = "DrawText"; int mTextID; int mStart = 0; int mEnd = 0; @@ -36,6 +44,8 @@ public class DrawText extends PaintOperation { int mContextEnd = 0; float mX = 0f; float mY = 0f; + float mOutX = 0f; + float mOutY = 0f; boolean mRtl = false; public DrawText(int textID, @@ -51,86 +61,124 @@ public class DrawText extends PaintOperation { mEnd = end; mContextStart = contextStart; mContextEnd = contextEnd; - mX = x; - mY = y; + mOutX = mX = x; + mOutY = mY = y; mRtl = rtl; } @Override + public void updateVariables(RemoteContext context) { + mOutX = (Float.isNaN(mX)) + ? context.getFloat(Utils.idFromNan(mX)) : mX; + mOutY = (Float.isNaN(mY)) + ? context.getFloat(Utils.idFromNan(mY)) : mY; + } + + @Override + public void registerListening(RemoteContext context) { + if (Float.isNaN(mX)) { + context.listensTo(Utils.idFromNan(mX), this); + } + if (Float.isNaN(mY)) { + context.listensTo(Utils.idFromNan(mY), this); + } + } + + @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl); + apply(buffer, mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl); } @Override public String toString() { - return "DrawTextRun [" + mTextID + "] " + mStart + ", " + mEnd + ", " + mX + ", " + mY; + return "DrawTextRun [" + mTextID + "] " + mStart + ", " + mEnd + ", " + + floatToString(mX, mOutX) + ", " + floatToString(mY, mOutY); } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int text = buffer.readInt(); + int start = buffer.readInt(); + int end = buffer.readInt(); + int contextStart = buffer.readInt(); + int contextEnd = buffer.readInt(); + float x = buffer.readFloat(); + float y = buffer.readFloat(); + boolean rtl = buffer.readBoolean(); + DrawText op = new DrawText(text, start, end, contextStart, contextEnd, x, y, rtl); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int text = buffer.readInt(); - int start = buffer.readInt(); - int end = buffer.readInt(); - int contextStart = buffer.readInt(); - int contextEnd = buffer.readInt(); - float x = buffer.readFloat(); - float y = buffer.readFloat(); - boolean rtl = buffer.readBoolean(); - DrawText op = new DrawText(text, start, end, contextStart, contextEnd, x, y, rtl); - - operations.add(op); - } + operations.add(op); + } - @Override - public String name() { - return ""; - } + public static String name() { + return CLASS_NAME; + } - @Override - public int id() { - return 0; - } - /** - * Writes out the operation to the buffer - * @param buffer - * @param textID - * @param start - * @param end - * @param contextStart - * @param contextEnd - * @param x - * @param y - * @param rtl - */ - public void apply(WireBuffer buffer, - int textID, - int start, - int end, - int contextStart, - int contextEnd, - float x, - float y, - boolean rtl) { - buffer.start(Operations.DRAW_TEXT_RUN); - buffer.writeInt(textID); - buffer.writeInt(start); - buffer.writeInt(end); - buffer.writeInt(contextStart); - buffer.writeInt(contextEnd); - buffer.writeFloat(x); - buffer.writeFloat(y); - buffer.writeBoolean(rtl); - } + public static int id() { + return OP_CODE; } + /** + * Writes out the operation to the buffer + * + * @param buffer write the command to the buffer + * @param textID id of the text + * @param start Start position + * @param end end position + * @param contextStart start of the context + * @param contextEnd end of the context + * @param x position of where to draw + * @param y position of where to draw + * @param rtl is it Right to Left text + */ + public static void apply(WireBuffer buffer, + int textID, + int start, + int end, + int contextStart, + int contextEnd, + float x, + float y, + boolean rtl) { + buffer.start(Operations.DRAW_TEXT_RUN); + buffer.writeInt(textID); + buffer.writeInt(start); + buffer.writeInt(end); + buffer.writeInt(contextStart); + buffer.writeInt(contextEnd); + buffer.writeFloat(x); + buffer.writeFloat(y); + buffer.writeBoolean(rtl); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + id(), + CLASS_NAME) + .description("Draw a run of text, all in a single direction") + .field(INT, "textId", "id of bitmap") + .field(INT, "start", + "The start of the text to render. -1=end of string") + .field(INT, "end", + "The end of the text to render") + .field(INT, "contextStart", + "the index of the start of the shaping context") + .field(INT, "contextEnd", + "the index of the end of the shaping context") + .field(FLOAT, "x", + "The x position at which to draw the text") + .field(FLOAT, "y", + "The y position at which to draw the text") + .field(BOOLEAN, "RTL", + "Whether the run is in RTL direction"); + } + + @Override public void paint(PaintContext context) { - context.drawTextRun(mTextID, mStart, mEnd, mContextStart, mContextEnd, mX, mY, mRtl); + context.drawTextRun(mTextID, mStart, mEnd, mContextStart, + mContextEnd, mOutX, mOutY, mRtl); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java index 4f0641f34d84..242bc2575cee 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextAnchored.java @@ -15,7 +15,9 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; @@ -23,6 +25,7 @@ import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -30,7 +33,8 @@ import java.util.List; * Draw Text in Anchored to a point */ public class DrawTextAnchored extends PaintOperation implements VariableSupport { - public static final Companion COMPANION = new Companion(); + private static final int OP_CODE = Operations.DRAW_TEXT_ANCHOR; + private static final String CLASS_NAME = "DrawTextAnchored"; int mTextID; float mX; float mY; @@ -91,7 +95,7 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextID, mX, + apply(buffer, mTextID, mX, mY, mPanX, mPanY, @@ -113,64 +117,77 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport return Float.toString(v); } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int textID = buffer.readInt(); + float x = buffer.readFloat(); + float y = buffer.readFloat(); + float panX = buffer.readFloat(); + float panY = buffer.readFloat(); + int flags = buffer.readInt(); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int textID = buffer.readInt(); - float x = buffer.readFloat(); - float y = buffer.readFloat(); - float panX = buffer.readFloat(); - float panY = buffer.readFloat(); - int flags = buffer.readInt(); - - DrawTextAnchored op = new DrawTextAnchored(textID, - x, y, - panX, panY, - flags); - - operations.add(op); - } + DrawTextAnchored op = new DrawTextAnchored(textID, + x, y, + panX, panY, + flags); - @Override - public String name() { - return ""; - } + operations.add(op); + } - @Override - public int id() { - return 0; - } + public static String name() { + return CLASS_NAME; + } - /** - * Writes out the operation to the buffer - * @param buffer - * @param textID - * @param x - * @param y - * @param panX - * @param panY - * @param flags - */ - public void apply(WireBuffer buffer, - int textID, - float x, - float y, - float panX, - float panY, - int flags) { - buffer.start(Operations.DRAW_TEXT_ANCHOR); - buffer.writeInt(textID); - buffer.writeFloat(x); - buffer.writeFloat(y); - buffer.writeFloat(panX); - buffer.writeFloat(panY); - buffer.writeInt(flags); - } + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer The buffer to write to + * @param textID The id of the text data + * @param x The x-position of the anchor point + * @param y The y-position of the anchor point + * @param panX The pan from left(-1) to right(1) 0 being centered + * @param panY The pan from top(-1) to bottom(1) 0 being centered + * @param flags Change the behaviour + */ + public static void apply(WireBuffer buffer, + int textID, + float x, + float y, + float panX, + float panY, + int flags) { + buffer.start(OP_CODE); + buffer.writeInt(textID); + buffer.writeFloat(x); + buffer.writeFloat(y); + buffer.writeFloat(panX); + buffer.writeFloat(panY); + buffer.writeInt(flags); } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + OP_CODE, + CLASS_NAME) + .description("Draw text centered about an anchor point") + .field(INT, "textId", "id of bitmap") + .field(FLOAT, "x", + "The x-position of the anchor point") + .field(FLOAT, "y", + "The y-position of the anchor point") + .field(FLOAT, "panX", + "The pan from left(-1) to right(1) 0 being centered") + .field(FLOAT, "panY", + "The pan from top(-1) to bottom(1) 0 being centered") + .field(INT, "flags", + "Change the behaviour"); + + } + + float[] mBounds = new float[4]; private float getHorizontalOffset() { @@ -194,8 +211,9 @@ public class DrawTextAnchored extends PaintOperation implements VariableSupport @Override public void paint(PaintContext context) { - context.getTextBounds(mTextID, 0, -1, - (mFlags & ANCHOR_MONOSPACE_MEASURE) != 0, mBounds); + int flags = ((mFlags & ANCHOR_MONOSPACE_MEASURE) != 0) + ? PaintContext.TEXT_MEASURE_MONOSPACE_WIDTH : 0; + context.getTextBounds(mTextID, 0, -1, flags, mBounds); float x = mOutX + getHorizontalOffset(); float y = (Float.isNaN(mOutPanY)) ? mOutY : mOutY + getVerticalOffset(); context.drawTextRun(mTextID, 0, -1, 0, 1, x, y, diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java index b1a01724c315..d69362bd7a7d 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTextOnPath.java @@ -15,78 +15,117 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; /** * Draw text along a path. */ -public class DrawTextOnPath extends PaintOperation { - public static final Companion COMPANION = new Companion(); +public class DrawTextOnPath extends PaintOperation implements VariableSupport { + private static final int OP_CODE = Operations.DRAW_TEXT_ON_PATH; + private static final String CLASS_NAME = "DrawTextOnPath"; int mPathId; public int mTextId; float mVOffset; float mHOffset; + float mOutVOffset; + float mOutHOffset; public DrawTextOnPath(int textId, int pathId, float hOffset, float vOffset) { mPathId = pathId; mTextId = textId; - mHOffset = vOffset; - mVOffset = hOffset; + mOutHOffset = mHOffset = vOffset; + mOutVOffset = mVOffset = hOffset; + } + + + @Override + public void updateVariables(RemoteContext context) { + mOutHOffset = (Float.isNaN(mHOffset)) + ? context.getFloat(Utils.idFromNan(mHOffset)) : mHOffset; + mOutVOffset = (Float.isNaN(mVOffset)) + ? context.getFloat(Utils.idFromNan(mVOffset)) : mVOffset; + + } + + @Override + public void registerListening(RemoteContext context) { + if (Float.isNaN(mHOffset)) { + context.listensTo(Utils.idFromNan(mHOffset), this); + } + if (Float.isNaN(mVOffset)) { + context.listensTo(Utils.idFromNan(mVOffset), this); + } } @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextId, mPathId, mHOffset, mVOffset); + apply(buffer, mTextId, mPathId, mHOffset, mVOffset); } @Override public String toString() { return "DrawTextOnPath [" + mTextId + "] [" + mPathId + "] " - + mHOffset + ", " + mVOffset; + + floatToString(mHOffset, mOutHOffset) + ", " + + floatToString(mVOffset, mOutVOffset); } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int textId = buffer.readInt(); + int pathId = buffer.readInt(); + float hOffset = buffer.readFloat(); + float vOffset = buffer.readFloat(); + DrawTextOnPath op = new DrawTextOnPath(textId, pathId, hOffset, vOffset); + operations.add(op); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int textId = buffer.readInt(); - int pathId = buffer.readInt(); - float hOffset = buffer.readFloat(); - float vOffset = buffer.readFloat(); - DrawTextOnPath op = new DrawTextOnPath(textId, pathId, hOffset, vOffset); - operations.add(op); - } + public static String name() { + return "DrawTextOnPath"; + } - @Override - public String name() { - return "DrawTextOnPath"; - } - @Override - public int id() { - return Operations.DRAW_TEXT_ON_PATH; - } + public static int id() { + return Operations.DRAW_TEXT_ON_PATH; + } - public void apply(WireBuffer buffer, int textId, int pathId, float hOffset, float vOffset) { - buffer.start(Operations.DRAW_TEXT_ON_PATH); - buffer.writeInt(textId); - buffer.writeInt(pathId); - buffer.writeFloat(hOffset); - buffer.writeFloat(vOffset); - } + public static void apply(WireBuffer buffer, int textId, int pathId, + float hOffset, float vOffset) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + buffer.writeInt(pathId); + buffer.writeFloat(hOffset); + buffer.writeFloat(vOffset); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + OP_CODE, + CLASS_NAME) + .description("Draw text along path object") + .field(INT, "textId", + "id of the text") + .field(INT, "pathId", + "id of the path") + .field(FLOAT, "xOffset", + "x Shift of the text") + .field(FLOAT, "yOffset", + "y Shift of the text"); } @Override public void paint(PaintContext context) { - context.drawTextOnPath(mTextId, mPathId, mHOffset, mVOffset); + context.drawTextOnPath(mTextId, mPathId, mOutHOffset, mOutVOffset); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java index 48fc94ee5f27..354726319c45 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/DrawTweenPath.java @@ -15,20 +15,30 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.operations.Utils.floatToString; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; -public class DrawTweenPath extends PaintOperation { - public static final Companion COMPANION = new Companion(); +public class DrawTweenPath extends PaintOperation implements VariableSupport { + private static final int OP_CODE = Operations.DRAW_TWEEN_PATH; + private static final String CLASS_NAME = "DrawTweenPath"; float mTween; float mStart; float mStop; + float mOutTween; + float mOutStart; + float mOutStop; int mPath1Id; int mPath2Id; @@ -38,16 +48,39 @@ public class DrawTweenPath extends PaintOperation { float tween, float start, float stop) { - mTween = tween; - mStart = start; - mStop = stop; + mOutTween = mTween = tween; + mOutStart = mStart = start; + mOutStop = mStop = stop; mPath1Id = path1Id; mPath2Id = path2Id; } @Override + public void updateVariables(RemoteContext context) { + mOutTween = (Float.isNaN(mTween)) + ? context.getFloat(Utils.idFromNan(mTween)) : mTween; + mOutStart = (Float.isNaN(mStart)) + ? context.getFloat(Utils.idFromNan(mStart)) : mStart; + mOutStop = (Float.isNaN(mStop)) + ? context.getFloat(Utils.idFromNan(mStop)) : mStop; + } + + @Override + public void registerListening(RemoteContext context) { + if (Float.isNaN(mTween)) { + context.listensTo(Utils.idFromNan(mTween), this); + } + if (Float.isNaN(mStart)) { + context.listensTo(Utils.idFromNan(mStart), this); + } + if (Float.isNaN(mStop)) { + context.listensTo(Utils.idFromNan(mStop), this); + } + } + + @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mPath1Id, + apply(buffer, mPath1Id, mPath2Id, mTween, mStart, @@ -57,58 +90,74 @@ public class DrawTweenPath extends PaintOperation { @Override public String toString() { return "DrawTweenPath " + mPath1Id + " " + mPath2Id - + " " + mTween + " " + mStart + " " - + "- " + mStop; + + " " + floatToString(mTween, mOutTween) + " " + + floatToString(mStart, mOutStart) + " " + + "- " + floatToString(mStop, mOutStop); } - public static class Companion implements CompanionOperation { - private Companion() { - } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int path1Id = buffer.readInt(); - int path2Id = buffer.readInt(); - float tween = buffer.readFloat(); - float start = buffer.readFloat(); - float stop = buffer.readFloat(); - DrawTweenPath op = new DrawTweenPath(path1Id, path2Id, - tween, start, stop); - operations.add(op); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int path1Id = buffer.readInt(); + int path2Id = buffer.readInt(); + float tween = buffer.readFloat(); + float start = buffer.readFloat(); + float stop = buffer.readFloat(); + DrawTweenPath op = new DrawTweenPath(path1Id, path2Id, + tween, start, stop); + operations.add(op); + } - @Override - public String name() { - return "DrawTweenPath"; - } - @Override - public int id() { - return Operations.DRAW_TWEEN_PATH; - } + public static String name() { + return "DrawTweenPath"; + } + + + public static int id() { + return Operations.DRAW_TWEEN_PATH; + } + + public static void apply(WireBuffer buffer, + int path1Id, + int path2Id, + float tween, + float start, + float stop) { + buffer.start(OP_CODE); + buffer.writeInt(path1Id); + buffer.writeInt(path2Id); + buffer.writeFloat(tween); + buffer.writeFloat(start); + buffer.writeFloat(stop); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Draw Operations", + OP_CODE, + CLASS_NAME) + .description("Draw text along path object") + .field(INT, "pathId1", + "id of path 1") + .field(INT, "pathId2", + "id of path 2") + .field(FLOAT, "tween", + "interpolate between the two paths") + .field(FLOAT, "start", + "trim the start of the path") + .field(FLOAT, "yOffset", + "trim the end of the path"); - public void apply(WireBuffer buffer, - int path1Id, - int path2Id, - float tween, - float start, - float stop) { - buffer.start(Operations.DRAW_TWEEN_PATH); - buffer.writeInt(path1Id); - buffer.writeInt(path2Id); - buffer.writeFloat(tween); - buffer.writeFloat(start); - buffer.writeFloat(stop); - } } + @Override public void paint(PaintContext context) { context.drawTweenPath(mPath1Id, mPath2Id, - mTween, - mStart, - mStop); + mOutTween, + mOutStart, + mOutStop); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java index 576b53f9fc6c..31b8ff6db58b 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatConstant.java @@ -15,11 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -27,10 +30,10 @@ import java.util.List; * Operation to deal with Text data */ public class FloatConstant implements Operation { + private static final int OP_CODE = Operations.DATA_FLOAT; + private static final String CLASS_NAME = "FloatConstant"; public int mTextId; public float mValue; - public static final Companion COMPANION = new Companion(); - public static final int MAX_STRING_SIZE = 4000; public FloatConstant(int textId, float value) { this.mTextId = textId; @@ -39,46 +42,52 @@ public class FloatConstant implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextId, mValue); + apply(buffer, mTextId, mValue); } @Override public String toString() { - return "FloatConstant[" + mTextId + "] = " + mValue + ""; + return "FloatConstant[" + mTextId + "] = " + mValue; + } + + public static String name() { + return CLASS_NAME; + } + + + public static int id() { + return OP_CODE; } - public static class Companion implements CompanionOperation { - private Companion() {} - - @Override - public String name() { - return "FloatExpression"; - } - - @Override - public int id() { - return Operations.DATA_FLOAT; - } - - /** - * Writes out the operation to the buffer - * @param buffer - * @param textId - * @param value - */ - public void apply(WireBuffer buffer, int textId, float value) { - buffer.start(Operations.DATA_FLOAT); - buffer.writeInt(textId); - buffer.writeFloat(value); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int textId = buffer.readInt(); - - float value = buffer.readFloat(); - operations.add(new FloatConstant(textId, value)); - } + /** + * Writes out the operation to the buffer + * + * @param buffer write command to this buffer + * @param id the id + * @param value the value of the float + */ + public static void apply(WireBuffer buffer, int id, float value) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeFloat(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int textId = buffer.readInt(); + + float value = buffer.readFloat(); + operations.add(new FloatConstant(textId, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("A float and its associated id") + .field(INT, "id", "id of float") + .field(FLOAT, "value", + "32-bit float value"); + } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java index 354f41b813e0..e3df1eb0da26 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java @@ -15,13 +15,19 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.SHORT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.utilities.AnimatedFloatExpression; +import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap; import com.android.internal.widget.remotecompose.core.operations.utilities.easing.FloatAnimation; import java.util.Arrays; @@ -35,6 +41,8 @@ import java.util.List; * The floats represent a RPN style calculator */ public class FloatExpression implements Operation, VariableSupport { + private static final int OP_CODE = Operations.ANIMATED_FLOAT; + private static final String CLASS_NAME = "FloatExpression"; public int mId; public float[] mSrcValue; public float[] mSrcAnimation; @@ -42,8 +50,7 @@ public class FloatExpression implements Operation, VariableSupport { public float[] mPreCalcValue; private float mLastChange = Float.NaN; AnimatedFloatExpression mExp = new AnimatedFloatExpression(); - public static final Companion COMPANION = new Companion(); - public static final int MAX_STRING_SIZE = 4000; + public static final int MAX_EXPRESSION_SIZE = 32; public FloatExpression(int id, float[] value, float[] animation) { this.mId = id; @@ -59,11 +66,12 @@ public class FloatExpression implements Operation, VariableSupport { if (mPreCalcValue == null || mPreCalcValue.length != mSrcValue.length) { mPreCalcValue = new float[mSrcValue.length]; } - //Utils.log("updateVariables "); + boolean value_changed = false; for (int i = 0; i < mSrcValue.length; i++) { float v = mSrcValue[i]; - if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v)) { + if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v) + && !NanMap.isDataVariable(v)) { float newValue = context.getFloat(Utils.idFromNan(v)); if (mFloatAnimation != null) { if (mPreCalcValue[i] != newValue) { @@ -91,9 +99,9 @@ public class FloatExpression implements Operation, VariableSupport { @Override public void registerListening(RemoteContext context) { - for (int i = 0; i < mSrcValue.length; i++) { - float v = mSrcValue[i]; - if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v)) { + for (float v : mSrcValue) { + if (Float.isNaN(v) && !AnimatedFloatExpression.isMathOperator(v) + && !NanMap.isDataVariable(v)) { context.listensTo(Utils.idFromNan(v), this); } } @@ -110,13 +118,14 @@ public class FloatExpression implements Operation, VariableSupport { float f = mFloatAnimation.get(t - mLastChange); context.loadFloat(mId, f); } else { - context.loadFloat(mId, mExp.eval(Arrays.copyOf(mPreCalcValue, mPreCalcValue.length))); + context.loadFloat(mId, mExp.eval(context.getCollectionsAccess(), + Arrays.copyOf(mPreCalcValue, mPreCalcValue.length))); } } @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId, mSrcValue, mSrcAnimation); + apply(buffer, mId, mSrcValue, mSrcAnimation); } @Override @@ -124,78 +133,96 @@ public class FloatExpression implements Operation, VariableSupport { String[] labels = new String[mSrcValue.length]; for (int i = 0; i < mSrcValue.length; i++) { if (Float.isNaN(mSrcValue[i])) { - labels[i] = "[" + Utils.idFromNan(mSrcValue[i]) + "]"; + labels[i] = "[" + Utils.idStringFromNan(mSrcValue[i]) + "]"; } - + } + if (mPreCalcValue == null) { + return "FloatExpression[" + mId + "] = (" + + AnimatedFloatExpression.toString(mSrcValue, labels) + ")"; } return "FloatExpression[" + mId + "] = (" + AnimatedFloatExpression.toString(mPreCalcValue, labels) + ")"; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "FloatExpression"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.ANIMATED_FLOAT; + /** + * Writes out the operation to the buffer + * + * @param buffer The buffer to write to + * @param id the id of the resulting float + * @param value the float expression array + * @param animation the animation expression array + */ + public static void apply(WireBuffer buffer, int id, float[] value, float[] animation) { + buffer.start(OP_CODE); + buffer.writeInt(id); + + int len = value.length; + if (animation != null) { + len |= (animation.length << 16); } + buffer.writeInt(len); - /** - * Writes out the operation to the buffer - * @param buffer - * @param id - * @param value - * @param animation - */ - public void apply(WireBuffer buffer, int id, float[] value, float[] animation) { - buffer.start(Operations.ANIMATED_FLOAT); - buffer.writeInt(id); - - int len = value.length; - if (animation != null) { - len |= (animation.length << 16); + for (float v : value) { + buffer.writeFloat(v); + } + if (animation != null) { + for (float v : animation) { + buffer.writeFloat(v); } - buffer.writeInt(len); + } - for (int i = 0; i < value.length; i++) { - buffer.writeFloat(value[i]); - } - if (animation != null) { - for (int i = 0; i < animation.length; i++) { - buffer.writeFloat(animation[i]); - } - } + } + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int len = buffer.readInt(); + int valueLen = len & 0xFFFF; + if (valueLen > MAX_EXPRESSION_SIZE) { + throw new RuntimeException("Float expression to long"); + } + int animLen = (len >> 16) & 0xFFFF; + float[] values = new float[valueLen]; + for (int i = 0; i < values.length; i++) { + values[i] = buffer.readFloat(); } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - int len = buffer.readInt(); - int valueLen = len & 0xFFFF; - int animLen = (len >> 16) & 0xFFFF; - float[] values = new float[valueLen]; - for (int i = 0; i < values.length; i++) { - values[i] = buffer.readFloat(); - } - - float[] animation; - if (animLen != 0) { - animation = new float[animLen]; - for (int i = 0; i < animation.length; i++) { - animation[i] = buffer.readFloat(); - } - } else { - animation = null; + float[] animation; + if (animLen != 0) { + animation = new float[animLen]; + for (int i = 0; i < animation.length; i++) { + animation[i] = buffer.readFloat(); } - operations.add(new FloatExpression(id, values, animation)); + } else { + animation = null; } + operations.add(new FloatExpression(id, values, animation)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("A Float expression") + .field(INT, "id", "The id of the Color") + .field(SHORT, "expression_length", "expression length") + .field(SHORT, "animation_length", "animation description length") + .field(FLOAT_ARRAY, "expression", "expression_length", + "Sequence of Floats representing and expression") + .field(FLOAT_ARRAY, "AnimationSpec", "animation_length", + "Sequence of Floats representing animation curve") + .field(FLOAT, "duration", "> time in sec") + .field(INT, "bits", "> WRAP|INITALVALUE | TYPE ") + .field(FLOAT_ARRAY, "spec", "> [SPEC PARAMETERS] ") + .field(FLOAT, "initialValue", "> [Initial value] ") + .field(FLOAT, "wrapValue", "> [Wrap value] "); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java b/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java index 9a1f37b22de5..099bce886b22 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/Header.java @@ -24,7 +24,6 @@ import com.android.internal.widget.remotecompose.core.RemoteComposeOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import java.util.List; @@ -35,6 +34,8 @@ import java.util.List; * as the dimensions of the document in pixels. */ public class Header implements RemoteComposeOperation { + private static final int OP_CODE = Operations.HEADER; + private static final String CLASS_NAME = "Header"; public static final int MAJOR_VERSION = 0; public static final int MINOR_VERSION = 1; public static final int PATCH_VERSION = 0; @@ -49,7 +50,6 @@ public class Header implements RemoteComposeOperation { float mDensity; long mCapabilities; - public static final Companion COMPANION = new Companion(); /** * It encodes the version of the document (following semantic versioning) as well @@ -76,7 +76,7 @@ public class Header implements RemoteComposeOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mWidth, mHeight, mDensity, mCapabilities); + apply(buffer, mWidth, mHeight, mDensity, mCapabilities); } @Override @@ -96,59 +96,51 @@ public class Header implements RemoteComposeOperation { return toString(); } - public static class Companion implements DocumentedCompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "Header"; - } - - @Override - public int id() { - return Operations.HEADER; - } - - public void apply(WireBuffer buffer, int width, int height, - float density, long capabilities) { - buffer.start(Operations.HEADER); - buffer.writeInt(MAJOR_VERSION); // major version number of the protocol - buffer.writeInt(MINOR_VERSION); // minor version number of the protocol - buffer.writeInt(PATCH_VERSION); // patch version number of the protocol - buffer.writeInt(width); - buffer.writeInt(height); - // buffer.writeFloat(density); - buffer.writeLong(capabilities); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int majorVersion = buffer.readInt(); - int minorVersion = buffer.readInt(); - int patchVersion = buffer.readInt(); - int width = buffer.readInt(); - int height = buffer.readInt(); - // float density = buffer.readFloat(); - float density = 1f; - long capabilities = buffer.readLong(); - Header header = new Header(majorVersion, minorVersion, patchVersion, - width, height, density, capabilities); - operations.add(header); - } - - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Protocol Operations", id(), name()) - .description("Document metadata, containing the version," - + " original size & density, capabilities mask") - .field(INT, "MAJOR_VERSION", "Major version") - .field(INT, "MINOR_VERSION", "Minor version") - .field(INT, "PATCH_VERSION", "Patch version") - .field(INT, "WIDTH", "Major version") - .field(INT, "HEIGHT", "Major version") - // .field(FLOAT, "DENSITY", "Major version") - .field(LONG, "CAPABILITIES", "Major version"); - } + public static String name() { + return CLASS_NAME; } + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int width, int height, + float density, long capabilities) { + buffer.start(OP_CODE); + buffer.writeInt(MAJOR_VERSION); // major version number of the protocol + buffer.writeInt(MINOR_VERSION); // minor version number of the protocol + buffer.writeInt(PATCH_VERSION); // patch version number of the protocol + buffer.writeInt(width); + buffer.writeInt(height); + // buffer.writeFloat(density); TODO fix or remove + buffer.writeLong(capabilities); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int majorVersion = buffer.readInt(); + int minorVersion = buffer.readInt(); + int patchVersion = buffer.readInt(); + int width = buffer.readInt(); + int height = buffer.readInt(); + // float density = buffer.readFloat(); + float density = 1f; + long capabilities = buffer.readLong(); + Header header = new Header(majorVersion, minorVersion, patchVersion, + width, height, density, capabilities); + operations.add(header); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Protocol Operations", OP_CODE, CLASS_NAME) + .description("Document metadata, containing the version," + + " original size & density, capabilities mask") + .field(INT, "MAJOR_VERSION", "Major version") + .field(INT, "MINOR_VERSION", "Minor version") + .field(INT, "PATCH_VERSION", "Patch version") + .field(INT, "WIDTH", "Major version") + .field(INT, "HEIGHT", "Major version") + // .field(FLOAT, "DENSITY", "Major version") + .field(LONG, "CAPABILITIES", "Major version"); + } + } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java index d52df5d2bcea..11730f358eaf 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/IntegerExpression.java @@ -15,12 +15,15 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.utilities.IntegerExpressionEvaluator; import java.util.Arrays; @@ -34,13 +37,14 @@ import java.util.List; * The floats represent a RPN style calculator */ public class IntegerExpression implements Operation, VariableSupport { + private static final int OP_CODE = Operations.INTEGER_EXPRESSION; + private static final String CLASS_NAME = "IntegerExpression"; public int mId; private int mMask; private int mPreMask; public int[] mSrcValue; public int[] mPreCalcValue; private float mLastChange = Float.NaN; - public static final Companion COMPANION = new Companion(); public static final int MAX_STRING_SIZE = 4000; IntegerExpressionEvaluator mExp = new IntegerExpressionEvaluator(); @@ -89,7 +93,7 @@ public class IntegerExpression implements Operation, VariableSupport { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId, mMask, mSrcValue); + apply(buffer, mId, mMask, mSrcValue); } @Override @@ -112,51 +116,57 @@ public class IntegerExpression implements Operation, VariableSupport { return "IntegerExpression[" + mId + "] = (" + s + ")"; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "FloatExpression"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.INTEGER_EXPRESSION; + /** + * Writes out the operation to the buffer + * + * @param buffer buffer to write to + * @param id the id of the integer + * @param mask the mask bits of ints & operators or variables + * @param value array of integers to be evaluated + */ + public static void apply(WireBuffer buffer, int id, int mask, int[] value) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeInt(mask); + buffer.writeInt(value.length); + for (int opMask : value) { + buffer.writeInt(opMask); } + } - /** - * Writes out the operation to the buffer - * - * @param buffer - * @param id - * @param mask - * @param value - */ - public void apply(WireBuffer buffer, int id, int mask, int[] value) { - buffer.start(Operations.INTEGER_EXPRESSION); - buffer.writeInt(id); - buffer.writeInt(mask); - buffer.writeInt(value.length); - for (int i = 0; i < value.length; i++) { - buffer.writeInt(value[i]); - } - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + int mask = buffer.readInt(); + int len = buffer.readInt(); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - int mask = buffer.readInt(); - int len = buffer.readInt(); + int[] values = new int[len]; + for (int i = 0; i < values.length; i++) { + values[i] = buffer.readInt(); + } - int[] values = new int[len]; - for (int i = 0; i < values.length; i++) { - values[i] = buffer.readInt(); - } + operations.add(new IntegerExpression(id, mask, values)); + } - operations.add(new IntegerExpression(id, mask, values)); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Expression that computes an integer") + .field(INT, "id", "id of integer") + .field(INT, "mask", + "bits representing operators or other id's") + .field(INT, "length", + "length of array") + .field(INT_ARRAY, "values", "length", + "Array of ints"); } @Override @@ -166,8 +176,9 @@ public class IntegerExpression implements Operation, VariableSupport { /** * given the "i" position in the mask is this an ID - * @param mask 32 bit mask used for defining numbers vs other - * @param i the bit in question + * + * @param mask 32 bit mask used for defining numbers vs other + * @param i the bit in question * @param value the value * @return true if this is an ID */ diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java index 0dad45ce356b..f3f9a5142a24 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRestore.java @@ -15,24 +15,30 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; public class MatrixRestore extends PaintOperation { - public static final Companion COMPANION = new Companion(); - + private static final int OP_CODE = Operations.MATRIX_RESTORE; + private static final String CLASS_NAME = "MatrixRestore"; public MatrixRestore() { } @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer); + apply(buffer); + } + + + public static void read(WireBuffer buffer, List<Operation> operations) { + MatrixRestore op = new MatrixRestore(); + operations.add(op); } @Override @@ -40,32 +46,28 @@ public class MatrixRestore extends PaintOperation { return "MatrixRestore"; } - public static class Companion implements CompanionOperation { - private Companion() { - } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { + public static String name() { + return CLASS_NAME; + } - MatrixRestore op = new MatrixRestore(); - operations.add(op); - } - @Override - public String name() { - return "MatrixRestore"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.MATRIX_RESTORE; - } + public static void apply(WireBuffer buffer) { + buffer.start(OP_CODE); + } - public void apply(WireBuffer buffer) { - buffer.start(Operations.MATRIX_RESTORE); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Restore the matrix and clip"); } + @Override public void paint(PaintContext context) { context.matrixRestore(); diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java index bbf41351a1c5..9cc82fc05e69 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixRotate.java @@ -15,29 +15,81 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; public class MatrixRotate extends DrawBase3 { - public static final Companion COMPANION = - new Companion(Operations.MATRIX_ROTATE) { - @Override - public Operation construct(float rotate, - float pivotX, - float pivotY - ) { - return new MatrixRotate(rotate, pivotX, pivotY); - } - }; + public static final int OP_CODE = Operations.MATRIX_ROTATE; + private static final String CLASS_NAME = "MatrixRotate"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = new Maker() { + @Override + public DrawBase3 create(float v1, float v2, float v3) { + return new MatrixRotate(v1, v2, v3); + } + }; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("apply rotation to matrix") + .field(FLOAT, "rotate", "Angle to rotate") + .field(FLOAT, "pivotX", "X Pivot point") + .field(FLOAT, "pivotY", "Y Pivot point"); + } + + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3) { + apply(buffer, v1, v2, v3); + } public MatrixRotate(float rotate, float pivotX, float pivotY) { super(rotate, pivotX, pivotY); - mName = "MatrixRotate"; + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { context.matrixRotate(mV1, mV2, mV3); } + + /** + * Writes out the operation to the buffer + * + * @param buffer The buffer to write into + * @param x1 Angle to rotate + * @param y1 X Pivot point + * @param x2 Y Pivot point + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2) { + buffer.start(OP_CODE); + buffer.writeFloat(x1); + buffer.writeFloat(y1); + buffer.writeFloat(x2); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java index d3d5bfba8992..a47ed6b9f99a 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSave.java @@ -15,25 +15,22 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; public class MatrixSave extends PaintOperation { - public static final Companion COMPANION = new Companion(); - - public MatrixSave() { - - } + private static final int OP_CODE = Operations.MATRIX_SAVE; + private static final String CLASS_NAME = "MatrixSave"; @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer); + apply(buffer); } @Override @@ -41,30 +38,29 @@ public class MatrixSave extends PaintOperation { return "MatrixSave;"; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static void read(WireBuffer buffer, List<Operation> operations) { + MatrixSave op = new MatrixSave(); + operations.add(op); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { + public static String name() { + return CLASS_NAME; + } - MatrixSave op = new MatrixSave(); - operations.add(op); - } - @Override - public String name() { - return "Matrix"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.MATRIX_SAVE; - } + public static void apply(WireBuffer buffer) { + buffer.start(Operations.MATRIX_SAVE); + } - public void apply(WireBuffer buffer) { - buffer.start(Operations.MATRIX_SAVE); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Save the matrix and clip to a stack"); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java index 04b940ba16c8..769e798eb6b2 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixScale.java @@ -15,30 +15,81 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; public class MatrixScale extends DrawBase4 { - public static final Companion COMPANION = - new Companion(Operations.MATRIX_SCALE) { - @Override - public Operation construct(float scaleX, - float scaleY, - float centerX, - float centerY - ) { - return new MatrixScale(scaleX, scaleY, centerX, centerY); - } - }; + public static final int OP_CODE = Operations.MATRIX_SCALE; + public static final String CLASS_NAME = "MatrixScale"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = MatrixScale::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4) { + apply(buffer, v1, v2, v3, v4); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw the specified Oval") + .field(FLOAT, "scaleX", + "The amount to scale in X") + .field(FLOAT, "scaleY", + "The amount to scale in Y") + .field(FLOAT, "pivotX", + "The x-coordinate for the pivot point") + .field(FLOAT, "pivotY", + "The y-coordinate for the pivot point"); + } public MatrixScale(float scaleX, float scaleY, float centerX, float centerY) { super(scaleX, scaleY, centerX, centerY); - mName = "MatrixScale"; + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { context.matrixScale(mX1, mY1, mX2, mY2); } + + /** + * Writes out the DrawOval to the buffer + * + * @param buffer buffer to write to + * @param x1 start x of DrawOval + * @param y1 start y of the DrawOval + * @param x2 end x of the DrawOval + * @param y2 end y of the DrawOval + */ + public static void apply(WireBuffer buffer, + float x1, + float y1, + float x2, + float y2) { + write(buffer, OP_CODE, x1, y1, x2, y2); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java index a3888997c758..34f71b4d1a91 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixSkew.java @@ -15,65 +15,74 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; -import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; -public class MatrixSkew extends PaintOperation { - public static final Companion COMPANION = new Companion(); - float mSkewX, mSkewY; +public class MatrixSkew extends DrawBase2 { + public static final int OP_CODE = Operations.MATRIX_SKEW; + public static final String CLASS_NAME = "MatrixSkew"; - public MatrixSkew(float skewX, float skewY) { - mSkewX = skewX; - mSkewY = skewY; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = MatrixSkew::new; + read(m, buffer, operations); } - @Override - public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mSkewX, mSkewY); + public static int id() { + return OP_CODE; } - @Override - public String toString() { - return "DrawArc " + mSkewY + ", " + mSkewY + ";"; + public static String name() { + return CLASS_NAME; } - public static class Companion implements CompanionOperation { - private Companion() { - } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float skewX = buffer.readFloat(); - float skewY = buffer.readFloat(); - MatrixSkew op = new MatrixSkew(skewX, skewY); - operations.add(op); - } + protected void write(WireBuffer buffer, + float v1, + float v2) { + apply(buffer, v1, v2); + } - @Override - public String name() { - return "Matrix"; - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Current matrix with the specified skew.") + .field(FLOAT, "skewX", + "The amount to skew in X") + .field(FLOAT, "skewY", + "The amount to skew in Y"); + } - @Override - public int id() { - return Operations.MATRIX_SKEW; - } - public void apply(WireBuffer buffer, float skewX, float skewY) { - buffer.start(Operations.MATRIX_SKEW); - buffer.writeFloat(skewX); - buffer.writeFloat(skewY); - } + public MatrixSkew(float skewX, float skewY) { + super(skewX, skewY); + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { - context.matrixSkew(mSkewX, mSkewY); + context.matrixSkew(mV1, mV2); + } + + /** + * Writes out the DrawOval to the buffer + * + * @param buffer buffer to write to + * @param x1 start x of DrawOval + * @param y1 start y of the DrawOval + */ + public static void apply(WireBuffer buffer, + float x1, + float y1 + ) { + write(buffer, OP_CODE, x1, y1); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java index 4f34e987e064..8561343c0015 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/MatrixTranslate.java @@ -15,28 +15,71 @@ */ package com.android.internal.widget.remotecompose.core.operations; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; public class MatrixTranslate extends DrawBase2 { - public static final Companion COMPANION = - new Companion(Operations.MATRIX_TRANSLATE) { - @Override - public Operation construct(float x1, - float y1 - ) { - return new MatrixTranslate(x1, y1); - } - }; + public static final int OP_CODE = Operations.MATRIX_TRANSLATE; + public static final String CLASS_NAME = "MatrixTranslate"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = MatrixTranslate::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + protected void write(WireBuffer buffer, + float v1, + float v2) { + apply(buffer, v1, v2); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + "MatrixTranslate") + .description("Preconcat the current matrix with the specified translation") + .field(FLOAT, "dx", + "The distance to translate in X") + .field(FLOAT, "dy", + "The distance to translate in Y"); + + } public MatrixTranslate(float translateX, float translateY) { super(translateX, translateY); - mName = "MatrixTranslate"; + mName = CLASS_NAME; } @Override public void paint(PaintContext context) { context.matrixTranslate(mV1, mV2); } + + /** + * Writes out the DrawOval to the buffer + * + * @param buffer buffer to write to + * @param x1 start x of DrawOval + * @param y1 start y of the DrawOval + */ + public static void apply(WireBuffer buffer, + float x1, + float y1) { + write(buffer, OP_CODE, x1, y1); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java b/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java index ae27f5ff450b..2cf83cd6caec 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/NamedVariable.java @@ -15,11 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -27,14 +30,16 @@ import java.util.List; * Operation to deal with Text data */ public class NamedVariable implements Operation { + private static final int OP_CODE = Operations.NAMED_VARIABLE; + private static final String CLASS_NAME = "NamedVariable"; public int mVarId; public String mVarName; public int mVarType; - public static final Companion COMPANION = new Companion(); public static final int MAX_STRING_SIZE = 4000; public static final int COLOR_TYPE = 2; public static final int FLOAT_TYPE = 1; public static final int STRING_TYPE = 0; + public NamedVariable(int varId, int varType, String name) { this.mVarId = varId; this.mVarType = varType; @@ -43,7 +48,7 @@ public class NamedVariable implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mVarId, mVarType, mVarName); + apply(buffer, mVarId, mVarType, mVarName); } @Override @@ -52,41 +57,44 @@ public class NamedVariable implements Operation { + Utils.trimString(mVarName, 10) + "\" type=" + mVarType; } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "TextData"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.DATA_TEXT; - } + /** + * Writes out the operation to the buffer + * + * @param buffer The buffer to write into + * @param varId id to label + * @param varType The type of variable + * @param text String + */ + public static void apply(WireBuffer buffer, int varId, int varType, String text) { + buffer.start(Operations.NAMED_VARIABLE); + buffer.writeInt(varId); + buffer.writeInt(varType); + buffer.writeUTF8(text); + } - /** - * Writes out the operation to the buffer - * @param buffer - * @param varId - * @param varType - * @param text - */ - public void apply(WireBuffer buffer, int varId, int varType, String text) { - buffer.start(Operations.NAMED_VARIABLE); - buffer.writeInt(varId); - buffer.writeInt(varType); - buffer.writeUTF8(text); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int varId = buffer.readInt(); + int varType = buffer.readInt(); + String text = buffer.readUTF8(MAX_STRING_SIZE); + operations.add(new NamedVariable(varId, varType, text)); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int varId = buffer.readInt(); - int varType = buffer.readInt(); - String text = buffer.readUTF8(MAX_STRING_SIZE); - operations.add(new NamedVariable(varId, varType, text)); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Add a string name for an ID") + .field(INT, "varId", "id to label") + .field(INT, "varType", "The type of variable") + .field(UTF8, "name", "String"); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java index 0807bcdcfebb..ae7a89279320 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/PaintData.java @@ -15,7 +15,9 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; @@ -23,13 +25,15 @@ import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; import java.util.List; public class PaintData extends PaintOperation implements VariableSupport { + private static final int OP_CODE = Operations.PAINT_VALUES; + private static final String CLASS_NAME = "PaintData"; public PaintBundle mPaintData = new PaintBundle(); - public static final Companion COMPANION = new Companion(); public static final int MAX_STRING_SIZE = 4000; public PaintData() { @@ -47,7 +51,7 @@ public class PaintData extends PaintOperation implements VariableSupport { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mPaintData); + apply(buffer, mPaintData); } @Override @@ -55,31 +59,34 @@ public class PaintData extends PaintOperation implements VariableSupport { return "PaintData " + "\"" + mPaintData + "\""; } - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "TextData"; - } - - @Override - public int id() { - return Operations.PAINT_VALUES; - } - - public void apply(WireBuffer buffer, PaintBundle paintBundle) { - buffer.start(Operations.PAINT_VALUES); - paintBundle.writeBundle(buffer); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - PaintData data = new PaintData(); - data.mPaintData.readBundle(buffer); - operations.add(data); - } + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, PaintBundle paintBundle) { + buffer.start(Operations.PAINT_VALUES); + paintBundle.writeBundle(buffer); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + PaintData data = new PaintData(); + data.mPaintData.readBundle(buffer); + operations.add(data); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Encode a Paint ") + .field(INT, "length", "id string") + .field(INT_ARRAY, "paint", "length", + "path encoded as floats"); } @Override @@ -91,5 +98,4 @@ public class PaintData extends PaintOperation implements VariableSupport { public void paint(PaintContext context) { context.applyPaint(mPaintData); } - } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java index e467e7b7f31e..91352d914a99 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/PathData.java @@ -15,18 +15,22 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.Arrays; import java.util.List; public class PathData implements Operation, VariableSupport { - public static final Companion COMPANION = new Companion(); + private static final int OP_CODE = Operations.DATA_PATH; + private static final String CLASS_NAME = "PathData"; int mInstanceId; float[] mFloatPath; float[] mOutputPath; @@ -52,16 +56,16 @@ public class PathData implements Operation, VariableSupport { @Override public void registerListening(RemoteContext context) { - for (int i = 0; i < mFloatPath.length; i++) { - if (Float.isNaN(mFloatPath[i])) { - context.listensTo(Utils.idFromNan(mFloatPath[i]), this); + for (float v : mFloatPath) { + if (Float.isNaN(v)) { + context.listensTo(Utils.idFromNan(v), this); } } } @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mInstanceId, mOutputPath); + apply(buffer, mInstanceId, mOutputPath); } @Override @@ -113,42 +117,45 @@ public class PathData implements Operation, VariableSupport { public static final float CLOSE_NAN = Utils.asNan(CLOSE); public static final float DONE_NAN = Utils.asNan(DONE); - public static class Companion implements CompanionOperation { - - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "BitmapData"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.DATA_PATH; + public static void apply(WireBuffer buffer, int id, float[] data) { + buffer.start(Operations.DATA_PATH); + buffer.writeInt(id); + buffer.writeInt(data.length); + for (float datum : data) { + buffer.writeFloat(datum); } + } - public void apply(WireBuffer buffer, int id, float[] data) { - buffer.start(Operations.DATA_PATH); - buffer.writeInt(id); - buffer.writeInt(data.length); - for (int i = 0; i < data.length; i++) { - buffer.writeFloat(data[i]); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int imageId = buffer.readInt(); + int len = buffer.readInt(); + float[] data = new float[len]; + for (int i = 0; i < data.length; i++) { + data[i] = buffer.readFloat(); } + operations.add(new PathData(imageId, data)); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int imageId = buffer.readInt(); - int len = buffer.readInt(); - float[] data = new float[len]; - for (int i = 0; i < data.length; i++) { - data[i] = buffer.readFloat(); - } - operations.add(new PathData(imageId, data)); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Encode a Path ") + .field(INT, "id", "id string") + .field(INT, "length", "id string") + .field(FLOAT_ARRAY, "pathData", "length", + "path encoded as floats"); } + public static String pathString(float[] path) { if (path == null) { return "null"; diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java index 997e8dc791ed..33f997fc7266 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentBehavior.java @@ -15,14 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import android.util.Log; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; -import com.android.internal.widget.remotecompose.core.CompanionOperation; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteComposeOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -33,7 +33,8 @@ import java.util.List; * as the dimensions of the document in pixels. */ public class RootContentBehavior implements RemoteComposeOperation { - + private static final int OP_CODE = Operations.ROOT_CONTENT_BEHAVIOR; + private static final String CLASS_NAME = "RootContentBehavior"; int mScroll = NONE; int mSizing = NONE; @@ -94,8 +95,6 @@ public class RootContentBehavior implements RemoteComposeOperation { public static final int SCALE_CROP = 5; public static final int SCALE_FILL_BOUNDS = 6; - public static final Companion COMPANION = new Companion(); - /** * Sets the way the player handles the content * @@ -123,7 +122,7 @@ public class RootContentBehavior implements RemoteComposeOperation { mScroll = scroll; break; default: { - Log.e(TAG, "incorrect scroll value " + scroll); + System.out.println(TAG + "incorrect scroll value " + scroll); } } if (alignment == ALIGNMENT_CENTER) { @@ -140,14 +139,14 @@ public class RootContentBehavior implements RemoteComposeOperation { if (validHorizontalAlignment && validVerticalAlignment) { mAlignment = alignment; } else { - Log.e(TAG, "incorrect alignment " + System.out.println(TAG + "incorrect alignment " + " h: " + horizontalContentAlignment + " v: " + verticalContentAlignment); } } switch (sizing) { case SIZING_LAYOUT: { - Log.e(TAG, "sizing_layout is not yet supported"); + System.out.println(TAG + "sizing_layout is not yet supported"); } break; case SIZING_SCALE: { @@ -155,12 +154,12 @@ public class RootContentBehavior implements RemoteComposeOperation { } break; default: { - Log.e(TAG, "incorrect sizing value " + sizing); + System.out.println(TAG + "incorrect sizing value " + sizing); } } if (mSizing == SIZING_LAYOUT) { if (mode != NONE) { - Log.e(TAG, "mode for sizing layout is not yet supported"); + System.out.println(TAG + "mode for sizing layout is not yet supported"); } } else if (mSizing == SIZING_SCALE) { switch (mode) { @@ -173,7 +172,7 @@ public class RootContentBehavior implements RemoteComposeOperation { mMode = mode; break; default: { - Log.e(TAG, "incorrect mode for scale sizing, mode: " + mode); + System.out.println(TAG + "incorrect mode for scale sizing, mode: " + mode); } } } @@ -181,7 +180,7 @@ public class RootContentBehavior implements RemoteComposeOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mScroll, mAlignment, mSizing, mMode); + apply(buffer, mScroll, mAlignment, mSizing, mMode); } @Override @@ -200,37 +199,67 @@ public class RootContentBehavior implements RemoteComposeOperation { return toString(); } - public static class Companion implements CompanionOperation { - private Companion() { - } - @Override - public String name() { - return "RootContentBehavior"; - } + public static String name() { + return CLASS_NAME; + } - @Override - public int id() { - return Operations.ROOT_CONTENT_BEHAVIOR; - } - public void apply(WireBuffer buffer, int scroll, int alignment, int sizing, int mode) { - buffer.start(Operations.ROOT_CONTENT_BEHAVIOR); - buffer.writeInt(scroll); - buffer.writeInt(alignment); - buffer.writeInt(sizing); - buffer.writeInt(mode); - } + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int scroll, int alignment, int sizing, int mode) { + buffer.start(OP_CODE); + buffer.writeInt(scroll); + buffer.writeInt(alignment); + buffer.writeInt(sizing); + buffer.writeInt(mode); + } + + + public static void read(WireBuffer buffer, List<Operation> operations) { + int scroll = buffer.readInt(); + int alignment = buffer.readInt(); + int sizing = buffer.readInt(); + int mode = buffer.readInt(); + RootContentBehavior rootContentBehavior = + new RootContentBehavior(scroll, alignment, sizing, mode); + operations.add(rootContentBehavior); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Protocol Operations", + OP_CODE, + CLASS_NAME) + .description("Describes the behaviour of the root") + .field(INT, "scroll", "scroll") + .possibleValues("SCROLL_HORIZONTAL", SCROLL_HORIZONTAL) + .possibleValues("SCROLL_VERTICAL", SCROLL_VERTICAL) + .field(INT, "alignment", "alignment") + .possibleValues("ALIGNMENT_TOP", ALIGNMENT_TOP) + .possibleValues("ALIGNMENT_VERTICAL_CENTER", ALIGNMENT_VERTICAL_CENTER) + .possibleValues("ALIGNMENT_BOTTOM", ALIGNMENT_BOTTOM) + .possibleValues("ALIGNMENT_START", ALIGNMENT_START) + .possibleValues("ALIGNMENT_START", ALIGNMENT_START) + .possibleValues("ALIGNMENT_END", ALIGNMENT_END) + .field(INT, "sizing", "sizing") + .possibleValues("SCALE_INSIDE", SCALE_INSIDE) + .possibleValues("SCALE_FIT", SCALE_FIT) + .possibleValues("SCALE_FILL_WIDTH", SCALE_FILL_WIDTH) + .possibleValues("SCALE_FILL_HEIGHT", SCALE_FILL_HEIGHT) + .possibleValues("SCALE_CROP", SCALE_CROP) + .possibleValues("SCALE_FILL_BOUNDS", SCALE_FILL_BOUNDS) + .field(INT, "mode", "mode") + .possibleValues("LAYOUT_HORIZONTAL_MATCH_PARENT", LAYOUT_HORIZONTAL_MATCH_PARENT) + .possibleValues("LAYOUT_HORIZONTAL_WRAP_CONTENT", LAYOUT_HORIZONTAL_WRAP_CONTENT) + .possibleValues("LAYOUT_HORIZONTAL_FIXED", LAYOUT_HORIZONTAL_FIXED) + .possibleValues("LAYOUT_VERTICAL_MATCH_PARENT", LAYOUT_VERTICAL_MATCH_PARENT) + .possibleValues("LAYOUT_VERTICAL_WRAP_CONTENT", LAYOUT_VERTICAL_WRAP_CONTENT) + .possibleValues("LAYOUT_VERTICAL_FIXED", LAYOUT_VERTICAL_FIXED) + .possibleValues("LAYOUT_MATCH_PARENT", LAYOUT_MATCH_PARENT) + .possibleValues("LAYOUT_WRAP_CONTENT", LAYOUT_WRAP_CONTENT); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int scroll = buffer.readInt(); - int alignment = buffer.readInt(); - int sizing = buffer.readInt(); - int mode = buffer.readInt(); - RootContentBehavior rootContentBehavior = - new RootContentBehavior(scroll, alignment, sizing, mode); - operations.add(rootContentBehavior); - } } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java index 076b28edf981..e1533eefae53 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/RootContentDescription.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteComposeOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -28,10 +30,10 @@ import java.util.List; * Describe a content description for the document */ public class RootContentDescription implements RemoteComposeOperation { + private static final int OP_CODE = Operations.ROOT_CONTENT_DESCRIPTION; + private static final String CLASS_NAME = "RootContentDescription"; int mContentDescription; - public static final Companion COMPANION = new Companion(); - /** * Encodes a content description for the document * @@ -43,7 +45,7 @@ public class RootContentDescription implements RemoteComposeOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mContentDescription); + apply(buffer, mContentDescription); } @Override @@ -61,29 +63,32 @@ public class RootContentDescription implements RemoteComposeOperation { return toString(); } - public static class Companion implements CompanionOperation { - private Companion() {} - - @Override - public String name() { - return "RootContentDescription"; - } - - @Override - public int id() { - return Operations.ROOT_CONTENT_DESCRIPTION; - } - - public void apply(WireBuffer buffer, int contentDescription) { - buffer.start(Operations.ROOT_CONTENT_DESCRIPTION); - buffer.writeInt(contentDescription); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int contentDescription = buffer.readInt(); - RootContentDescription header = new RootContentDescription(contentDescription); - operations.add(header); - } + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int contentDescription) { + buffer.start(Operations.ROOT_CONTENT_DESCRIPTION); + buffer.writeInt(contentDescription); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int contentDescription = buffer.readInt(); + RootContentDescription header = new RootContentDescription(contentDescription); + operations.add(header); + } + + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Protocol Operations", + OP_CODE, + CLASS_NAME) + .description("Content description of root") + .field(INT, "id", "id of Int"); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java index 8463ac576774..c4dde6e0d358 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/ShaderData.java @@ -15,12 +15,19 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.BYTE; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT_ARRAY; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.SHORT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.Arrays; import java.util.HashMap; @@ -32,6 +39,8 @@ import java.util.List; * in playback the image is decompressed */ public class ShaderData implements Operation, VariableSupport { + private static final int OP_CODE = Operations.DATA_SHADER; + private static final String CLASS_NAME = "ShaderData"; int mShaderTextId; // the actual text of a shader int mShaderID; // allows shaders to be referenced by number HashMap<String, float[]> mUniformRawFloatMap = null; @@ -39,10 +48,6 @@ public class ShaderData implements Operation, VariableSupport { HashMap<String, int[]> mUniformIntMap = null; HashMap<String, Integer> mUniformBitmapMap = null; - public static final int MAX_IMAGE_DIMENSION = 8000; - - public static final Companion COMPANION = new Companion(); - public ShaderData(int shaderID, int shaderTextId, HashMap<String, float[]> floatMap, @@ -81,7 +86,8 @@ public class ShaderData implements Operation, VariableSupport { /** * get names of all known floats - * @return + * + * @return Names of all uniform floats or empty array */ public String[] getUniformFloatNames() { if (mUniformFloatMap == null) return new String[0]; @@ -90,8 +96,9 @@ public class ShaderData implements Operation, VariableSupport { /** * Get float values associated with the name - * @param name - * @return + * + * @param name name of uniform + * @return value of uniform */ public float[] getUniformFloats(String name) { return mUniformFloatMap.get(name); @@ -99,7 +106,8 @@ public class ShaderData implements Operation, VariableSupport { /** * get the name of all know uniform integers - * @return + * + * @return Name of all integer uniforms */ public String[] getUniformIntegerNames() { if (mUniformIntMap == null) return new String[0]; @@ -108,8 +116,9 @@ public class ShaderData implements Operation, VariableSupport { /** * Get Int value associated with the name - * @param name - * @return + * + * @param name Name of uniform + * @return value of uniform */ public int[] getUniformInts(String name) { return mUniformIntMap.get(name); @@ -117,7 +126,8 @@ public class ShaderData implements Operation, VariableSupport { /** * get list of uniform Bitmaps - * @return + * + * @return Name of all bitmap uniforms */ public String[] getUniformBitmapNames() { if (mUniformBitmapMap == null) return new String[0]; @@ -126,8 +136,9 @@ public class ShaderData implements Operation, VariableSupport { /** * Get a bitmap stored under that name - * @param name - * @return + * + * @param name Name of bitmap uniform + * @return Bitmap ID */ public int getUniformBitmapId(String name) { return mUniformBitmapMap.get(name); @@ -135,7 +146,7 @@ public class ShaderData implements Operation, VariableSupport { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mShaderID, mShaderTextId, + apply(buffer, mShaderID, mShaderTextId, mUniformFloatMap, mUniformIntMap, mUniformBitmapMap); } @@ -165,136 +176,150 @@ public class ShaderData implements Operation, VariableSupport { public void registerListening(RemoteContext context) { for (String name : mUniformRawFloatMap.keySet()) { float[] value = mUniformRawFloatMap.get(name); - for (int i = 0; i < value.length; i++) { - if (Float.isNaN(value[i])) { - context.listensTo(Utils.idFromNan(value[i]), this); + for (float v : value) { + if (Float.isNaN(v)) { + context.listensTo(Utils.idFromNan(v), this); } } } } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "BitmapData"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.DATA_SHADER; - } + /** + * Writes out the operation to the buffer + * + * @param buffer buffer to write into + * @param shaderID id of shader + * @param shaderTextId id of text of shader + * @param floatMap the map of float uniforms + * @param intMap the map of int uniforms + * @param bitmapMap the map of bitmap uniforms + */ + public static void apply(WireBuffer buffer, int shaderID, int shaderTextId, + HashMap<String, float[]> floatMap, + HashMap<String, int[]> intMap, + HashMap<String, Integer> bitmapMap) { + buffer.start(OP_CODE); + buffer.writeInt(shaderID); + + buffer.writeInt(shaderTextId); + int floatSize = (floatMap == null) ? 0 : floatMap.size(); + int intSize = (intMap == null) ? 0 : intMap.size(); + int bitmapSize = (bitmapMap == null) ? 0 : bitmapMap.size(); + int sizes = floatSize | (intSize << 8) | (bitmapSize << 16); + buffer.writeInt(sizes); + + if (floatSize > 0) { - /** - * Writes out the operation to the buffer - * @param buffer - * @param shaderID - * @param shaderTextId - * @param floatMap - * @param intMap - * @param bitmapMap - */ - public void apply(WireBuffer buffer, int shaderID, int shaderTextId, - HashMap<String, float[]> floatMap, - HashMap<String, int[]> intMap, - HashMap<String, Integer> bitmapMap) { - buffer.start(Operations.DATA_SHADER); - buffer.writeInt(shaderID); - - buffer.writeInt(shaderTextId); - int floatSize = (floatMap == null) ? 0 : floatMap.size(); - int intSize = (intMap == null) ? 0 : intMap.size(); - int bitmapSize = (bitmapMap == null) ? 0 : bitmapMap.size(); - int sizes = floatSize | (intSize << 8) | (bitmapSize << 16); - buffer.writeInt(sizes); - - if (floatSize > 0) { - - for (String name : floatMap.keySet()) { - buffer.writeUTF8(name); - float[] values = floatMap.get(name); - buffer.writeInt(values.length); - - for (int i = 0; i < values.length; i++) { - buffer.writeFloat(values[i]); - } - } - } + for (String name : floatMap.keySet()) { + buffer.writeUTF8(name); + float[] values = floatMap.get(name); + buffer.writeInt(values.length); - if (intSize > 0) { - for (String name : intMap.keySet()) { - buffer.writeUTF8(name); - int[] values = intMap.get(name); - buffer.writeInt(values.length); - for (int i = 0; i < values.length; i++) { - buffer.writeInt(values[i]); - } + for (float value : values) { + buffer.writeFloat(value); } } - if (bitmapSize > 0) { - for (String name : bitmapMap.keySet()) { - buffer.writeUTF8(name); - int value = bitmapMap.get(name); + } + + if (intSize > 0) { + for (String name : intMap.keySet()) { + buffer.writeUTF8(name); + int[] values = intMap.get(name); + buffer.writeInt(values.length); + for (int value : values) { buffer.writeInt(value); } } } + if (bitmapSize > 0) { + for (String name : bitmapMap.keySet()) { + buffer.writeUTF8(name); + int value = bitmapMap.get(name); + buffer.writeInt(value); + } + } + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int shaderID = buffer.readInt(); - int shaderTextId = buffer.readInt(); - HashMap<String, float[]> floatMap = null; - HashMap<String, int[]> intMap = null; - HashMap<String, Integer> bitmapMap = null; - - int sizes = buffer.readInt(); - - int floatMapSize = sizes & 0xFF; - if (floatMapSize > 0) { - floatMap = new HashMap<>(); - for (int i = 0; i < floatMapSize; i++) { - String name = buffer.readUTF8(); - int len = buffer.readInt(); - float[] val = new float[len]; - - for (int j = 0; j < len; j++) { - val[j] = buffer.readFloat(); - } - floatMap.put(name, val); + public static void read(WireBuffer buffer, List<Operation> operations) { + int shaderID = buffer.readInt(); + int shaderTextId = buffer.readInt(); + HashMap<String, float[]> floatMap = null; + HashMap<String, int[]> intMap = null; + HashMap<String, Integer> bitmapMap = null; + + int sizes = buffer.readInt(); + + int floatMapSize = sizes & 0xFF; + if (floatMapSize > 0) { + floatMap = new HashMap<>(); + for (int i = 0; i < floatMapSize; i++) { + String name = buffer.readUTF8(); + int len = buffer.readInt(); + float[] val = new float[len]; + + for (int j = 0; j < len; j++) { + val[j] = buffer.readFloat(); } + + floatMap.put(name, val); } - int intMapSize = (sizes >> 8) & 0xFF; + } + int intMapSize = (sizes >> 8) & 0xFF; - if (intMapSize > 0) { + if (intMapSize > 0) { - intMap = new HashMap<>(); - for (int i = 0; i < intMapSize; i++) { - String name = buffer.readUTF8(); - int len = buffer.readInt(); - int[] val = new int[len]; - for (int j = 0; j < len; j++) { - val[j] = buffer.readInt(); - } - intMap.put(name, val); + intMap = new HashMap<>(); + for (int i = 0; i < intMapSize; i++) { + String name = buffer.readUTF8(); + int len = buffer.readInt(); + int[] val = new int[len]; + for (int j = 0; j < len; j++) { + val[j] = buffer.readInt(); } + intMap.put(name, val); } - int bitmapMapSize = (sizes >> 16) & 0xFF; - - if (bitmapMapSize > 0) { - bitmapMap = new HashMap<>(); - for (int i = 0; i < bitmapMapSize; i++) { - String name = buffer.readUTF8(); - int val = buffer.readInt(); - bitmapMap.put(name, val); - } + } + int bitmapMapSize = (sizes >> 16) & 0xFF; + + if (bitmapMapSize > 0) { + bitmapMap = new HashMap<>(); + for (int i = 0; i < bitmapMapSize; i++) { + String name = buffer.readUTF8(); + int val = buffer.readInt(); + bitmapMap.put(name, val); } - operations.add(new ShaderData(shaderID, shaderTextId, - floatMap, intMap, bitmapMap)); } + operations.add(new ShaderData(shaderID, shaderTextId, + floatMap, intMap, bitmapMap)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Shader") + .field(INT, "shaderID", "id of shader") + .field(BYTE, " floatSize", "number of float uniforms") + .field(BYTE, " intSize", "number of int uniform") + .field(SHORT, " intSize", "number of int uniform") + .field(UTF8, "floatName", "name of float uniform") + .field(INT, "length", "length") + .field(FLOAT_ARRAY, "VALUE", "float uniform (max 4)") + .field(UTF8, "IntName", "id of shader text") + .field(INT, "length", "length of uniform") + .field(INT_ARRAY, "VALUE", "int uniform (max 4)") + .field(UTF8, "bitmapName", "name of bitmap") + .field(INT, "VALUE", "id of bitmap"); + } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java index ed1344975256..b49cb7664495 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextData.java @@ -15,21 +15,27 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.UTF8; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.SerializableToString; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; /** * Operation to deal with Text data */ -public class TextData implements Operation { +public class TextData implements Operation, SerializableToString { + private static final int OP_CODE = Operations.DATA_TEXT; + private static final String CLASS_NAME = "TextData"; public int mTextId; public String mText; - public static final Companion COMPANION = new Companion(); public static final int MAX_STRING_SIZE = 4000; public TextData(int textId, String text) { @@ -39,7 +45,7 @@ public class TextData implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextId, mText); + apply(buffer, mTextId, mText); } @Override @@ -48,35 +54,41 @@ public class TextData implements Operation { + Utils.trimString(mText, 10) + "\""; } - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "TextData"; - } - - @Override - public int id() { - return Operations.DATA_TEXT; - } - - public void apply(WireBuffer buffer, int textId, String text) { - buffer.start(Operations.DATA_TEXT); - buffer.writeInt(textId); - buffer.writeUTF8(text); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int textId = buffer.readInt(); - - String text = buffer.readUTF8(MAX_STRING_SIZE); - operations.add(new TextData(textId, text)); - } + public static String name() { + return CLASS_NAME; + } + + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int textId, String text) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + buffer.writeUTF8(text); + } + + + public static void read(WireBuffer buffer, List<Operation> operations) { + int textId = buffer.readInt(); + + String text = buffer.readUTF8(MAX_STRING_SIZE); + operations.add(new TextData(textId, text)); } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Encode a string ") + .field(INT, "id", "id string") + .field(UTF8, "text", + "encode text as a string"); + } + + @Override public void apply(RemoteContext context) { context.loadText(mTextId, mText); @@ -86,4 +98,14 @@ public class TextData implements Operation { public String deepToString(String indent) { return indent + toString(); } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, getSerializedName() + "<" + mTextId + + "> = \"" + mText + "\""); + } + + private String getSerializedName() { + return "DATA_TEXT"; + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java index 65a39a1eba04..8f235dcca28c 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextFromFloat.java @@ -15,12 +15,15 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.SHORT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.utilities.StringUtils; import java.util.List; @@ -31,13 +34,14 @@ import java.util.List; * before and after define number of digits before and after the decimal point */ public class TextFromFloat implements Operation, VariableSupport { + private static final int OP_CODE = Operations.TEXT_FROM_FLOAT; + private static final String CLASS_NAME = "TextFromFloat"; public int mTextId; public float mValue; public float mOutValue; public short mDigitsBefore; public short mDigitsAfter; public int mFlags; - public static final Companion COMPANION = new Companion(); public static final int MAX_STRING_SIZE = 4000; char mPre = ' '; char mAfter = ' '; @@ -83,7 +87,7 @@ public class TextFromFloat implements Operation, VariableSupport { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextId, mValue, mDigitsAfter, mDigitsBefore, mFlags); + apply(buffer, mTextId, mValue, mDigitsAfter, mDigitsBefore, mFlags); } @Override @@ -99,10 +103,8 @@ public class TextFromFloat implements Operation, VariableSupport { if (Float.isNaN(mValue)) { mOutValue = context.getFloat(Utils.idFromNan(mValue)); } - } - @Override public void registerListening(RemoteContext context) { if (Float.isNaN(mValue)) { @@ -110,53 +112,63 @@ public class TextFromFloat implements Operation, VariableSupport { } } - public static class Companion implements CompanionOperation { - private Companion() { - } + public static String name() { + return CLASS_NAME; + } - @Override - public String name() { - return "TextData"; - } + public static int id() { + return OP_CODE; + } - @Override - public int id() { - return Operations.TEXT_FROM_FLOAT; - } + /** + * Writes out the operation to the buffer + * + * @param buffer buffer to write to + * @param textId the id of the output text + * @param value the float value to be turned into strings + * @param digitsBefore the digits before the decimal point + * @param digitsAfter the digits after the decimal point + * @param flags flags that control if and how to fill the empty spots + */ + public static void apply(WireBuffer buffer, int textId, + float value, short digitsBefore, + short digitsAfter, int flags) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + buffer.writeFloat(value); + buffer.writeInt((digitsBefore << 16) | digitsAfter); + buffer.writeInt(flags); - /** - * Writes out the operation to the buffer - * @param buffer - * @param textId - * @param value - * @param digitsBefore - * @param digitsAfter - * @param flags - */ - public void apply(WireBuffer buffer, int textId, - float value, short digitsBefore, - short digitsAfter, int flags) { - buffer.start(Operations.TEXT_FROM_FLOAT); - buffer.writeInt(textId); - buffer.writeFloat(value); - buffer.writeInt((digitsBefore << 16) | digitsAfter); - buffer.writeInt(flags); + } - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int textId = buffer.readInt(); + float value = buffer.readFloat(); + int tmp = buffer.readInt(); + short post = (short) (tmp & 0xFFFF); + short pre = (short) ((tmp >> 16) & 0xFFFF); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int textId = buffer.readInt(); - float value = buffer.readFloat(); - int tmp = buffer.readInt(); - short post = (short) (tmp & 0xFFFF); - short pre = (short) ((tmp >> 16) & 0xFFFF); + int flags = buffer.readInt(); + operations.add(new TextFromFloat(textId, value, pre, post, flags)); + } - int flags = buffer.readInt(); - operations.add(new TextFromFloat(textId, value, pre, post, flags)); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + CLASS_NAME) + .description("Draw text along path object") + .field(INT, "textId", + "id of the text generated") + .field(INT, "value", + "Value to add") + .field(SHORT, "prePoint", + "digits before the decimal point") + .field(SHORT, "pstPoint", + "digit after the decimal point") + .field(INT, "flags", "options on padding"); } + @Override public void apply(RemoteContext context) { float v = mOutValue; diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java b/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java index a0fc854f38f4..dd7822308a94 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/TextMerge.java @@ -15,11 +15,13 @@ */ package com.android.internal.widget.remotecompose.core.operations; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -27,11 +29,11 @@ import java.util.List; * Operation to deal with Text data */ public class TextMerge implements Operation { + private static final int OP_CODE = Operations.TEXT_MERGE; + private static final String CLASS_NAME = "TextMerge"; public int mTextId; public int mSrcId1; public int mSrcId2; - public static final Companion COMPANION = new Companion(); - public static final int MAX_STRING_SIZE = 4000; public TextMerge(int textId, int srcId1, int srcId2) { this.mTextId = textId; @@ -41,7 +43,7 @@ public class TextMerge implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTextId, mSrcId1, mSrcId2); + apply(buffer, mTextId, mSrcId1, mSrcId2); } @Override @@ -49,42 +51,49 @@ public class TextMerge implements Operation { return "TextMerge[" + mTextId + "] = [" + mSrcId1 + " ] + [ " + mSrcId2 + "]"; } - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "TextData"; - } - - @Override - public int id() { - return Operations.TEXT_MERGE; - } - - /** - * Writes out the operation to the buffer - * @param buffer - * @param textId - * @param srcId1 - * @param srcId2 - */ - public void apply(WireBuffer buffer, int textId, int srcId1, int srcId2) { - buffer.start(Operations.TEXT_MERGE); - buffer.writeInt(textId); - buffer.writeInt(srcId1); - buffer.writeInt(srcId2); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int textId = buffer.readInt(); - int srcId1 = buffer.readInt(); - int srcId2 = buffer.readInt(); - - operations.add(new TextMerge(textId, srcId1, srcId2)); - } + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer buffer to write to + * @param textId id of the text + * @param srcId1 source text 1 + * @param srcId2 source text 2 + */ + public static void apply(WireBuffer buffer, int textId, int srcId1, int srcId2) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + buffer.writeInt(srcId1); + buffer.writeInt(srcId2); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int textId = buffer.readInt(); + int srcId1 = buffer.readInt(); + int srcId2 = buffer.readInt(); + + operations.add(new TextMerge(textId, srcId1, srcId2)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Data Operations", + OP_CODE, + CLASS_NAME) + .description("Merge two string into one") + .field(INT, "textId", + "id of the text") + .field(INT, "srcTextId1", + "id of the path") + .field(INT, "srcTextId1", + "x Shift of the text"); } @Override diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java b/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java index f98299770570..52ae7fe5ab4b 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/Theme.java @@ -23,7 +23,6 @@ import com.android.internal.widget.remotecompose.core.RemoteComposeOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import java.util.List; @@ -34,13 +33,13 @@ import java.util.List; * */ public class Theme implements RemoteComposeOperation { + private static final int OP_CODE = Operations.THEME; + private static final String CLASS_NAME = "Theme"; int mTheme; public static final int UNSPECIFIED = -1; public static final int DARK = -2; public static final int LIGHT = -3; - public static final Companion COMPANION = new Companion(); - /** * we can then filter operations depending on the chosen theme. * @@ -55,7 +54,7 @@ public class Theme implements RemoteComposeOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mTheme); + apply(buffer, mTheme); } @Override @@ -73,38 +72,32 @@ public class Theme implements RemoteComposeOperation { return indent + toString(); } - public static class Companion implements DocumentedCompanionOperation { - private Companion() {} - - @Override - public String name() { - return "Theme"; - } - - @Override - public int id() { - return Operations.THEME; - } - - public void apply(WireBuffer buffer, int theme) { - buffer.start(Operations.THEME); - buffer.writeInt(theme); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int theme = buffer.readInt(); - operations.add(new Theme(theme)); - } - - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Protocol Operations", id(), name()) - .description("Set a theme") - .field(INT, "THEME", "theme id") - .possibleValues("UNSPECIFIED", Theme.UNSPECIFIED) - .possibleValues("DARK", Theme.DARK) - .possibleValues("LIGHT", Theme.LIGHT); - } + public static String name() { + return CLASS_NAME; + } + + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int theme) { + buffer.start(OP_CODE); + buffer.writeInt(theme); + } + + + public static void read(WireBuffer buffer, List<Operation> operations) { + int theme = buffer.readInt(); + operations.add(new Theme(theme)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Protocol Operations", OP_CODE, CLASS_NAME) + .description("Set a theme") + .field(INT, "THEME", "theme id") + .possibleValues("UNSPECIFIED", Theme.UNSPECIFIED) + .possibleValues("DARK", Theme.DARK) + .possibleValues("LIGHT", Theme.LIGHT); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java b/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java index e9b0c3b11044..6e858c7e0215 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/Utils.java @@ -25,7 +25,12 @@ public class Utils { public static int idFromNan(float value) { int b = Float.floatToRawIntBits(value); - return b & 0xFFFFF; + return b & 0x3FFFFF; + } + + public static String idStringFromNan(float value) { + int b = Float.floatToRawIntBits(value) & 0x3FFFFF; + return (b > 0xFFFFF) ? "A_" + (b & 0xFFFFF) : "" + b; } public static float getActualValue(float lr) { diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java new file mode 100644 index 000000000000..7588c794190d --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ActionOperation.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +/** + * Operations representing actions on the document + */ +public interface ActionOperation extends Operation { + void serializeToString(int indent, StringSerializer serializer); + void runAction(RemoteContext context, CoreDocument document, + Component component, float x, float y); +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java new file mode 100644 index 000000000000..fd3501732e51 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/CanvasContent.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; + +/** + * Represents the content of a CanvasLayout (i.e. contains the canvas commands) + */ +public class CanvasContent extends Component implements ComponentStartOperation { + + public CanvasContent(int componentId, float x, float y, + float width, float height, Component parent, int animationId) { + super(parent, componentId, animationId, x, y, width, height); + } + + public static String name() { + return "CanvasContent"; + } + + public static int id() { + return Operations.LAYOUT_CANVAS_CONTENT; + } + + @Override protected String getSerializedName() { + return "CANVAS_CONTENT"; + } + + public static void apply(WireBuffer buffer, int componentId) { + buffer.start(Operations.LAYOUT_CANVAS_CONTENT); + buffer.writeInt(componentId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + operations.add(new CanvasContent( + componentId, 0, 0, 0, 0, null, -1)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .field(INT, "COMPONENT_ID", "unique id for this component") + .description("Container for canvas commands."); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java new file mode 100644 index 000000000000..f7c6ce24df14 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierEnd.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; + +public class ClickModifierEnd implements Operation { + + @Override + public void write(WireBuffer buffer) { + apply(buffer); + } + + @Override + public String toString() { + return "CLICK_END"; + } + + @Override + public void apply(RemoteContext context) { + // nothing + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + public static String name() { + return "ClickModifierEnd"; + } + + public static int id() { + return Operations.MODIFIER_CLICK_END; + } + + public static void apply(WireBuffer buffer) { + buffer.start(id()); + } + + + public static void read(WireBuffer buffer, List<Operation> operations) { + operations.add(new ClickModifierEnd()); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("End tag for click modifiers. This operation marks the end" + + "of a click modifier"); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java new file mode 100644 index 000000000000..d75f70b674c5 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ClickModifierOperation.java @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.PaintOperation; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.TextData; +import com.android.internal.widget.remotecompose.core.operations.Utils; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ModifierOperation; +import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; +import com.android.internal.widget.remotecompose.core.operations.utilities.ColorUtils; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; +import com.android.internal.widget.remotecompose.core.operations.utilities.easing.Easing; +import com.android.internal.widget.remotecompose.core.operations.utilities.easing.FloatAnimation; + +import java.util.ArrayList; +import java.util.List; + +/** + * Represents a click modifier + actions + */ +public class ClickModifierOperation extends PaintOperation + implements ModifierOperation, DecoratorComponent { + private static final int OP_CODE = Operations.MODIFIER_CLICK; + + + long mAnimateRippleStart = 0; + float mAnimateRippleX = 0f; + float mAnimateRippleY = 0f; + int mAnimateRippleDuration = 1000; + + float mWidth = 0; + float mHeight = 0; + + public float[] locationInWindow = new float[2]; + + PaintBundle mPaint = new PaintBundle(); + + public void animateRipple(float x, float y) { + mAnimateRippleStart = System.currentTimeMillis(); + mAnimateRippleX = x; + mAnimateRippleY = y; + } + public ArrayList<Operation> mList = new ArrayList<>(); + + public ArrayList<Operation> getList() { + return mList; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer); + } + + @Override + public String toString() { + return "ClickModifier"; + } + + @Override + public void apply(RemoteContext context) { + for (Operation op : mList) { + if (op instanceof TextData) { + op.apply(context); + } + } + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + @Override + public void paint(PaintContext context) { + if (mAnimateRippleStart == 0) { + return; + } + context.needsRepaint(); + + float progress = (System.currentTimeMillis() - mAnimateRippleStart); + progress /= (float) mAnimateRippleDuration; + if (progress > 1f) { + mAnimateRippleStart = 0; + } + progress = Math.min(1f, progress); + context.save(); + context.savePaint(); + mPaint.reset(); + + FloatAnimation anim1 = new FloatAnimation(Easing.CUBIC_STANDARD, 1f, + null, Float.NaN, Float.NaN); + anim1.setInitialValue(0f); + anim1.setTargetValue(1f); + float tween = anim1.get(progress); + + FloatAnimation anim2 = new FloatAnimation(Easing.CUBIC_STANDARD, 0.5f, + null, Float.NaN, Float.NaN); + anim2.setInitialValue(0f); + anim2.setTargetValue(1f); + float tweenRadius = anim2.get(progress); + + int startColor = ColorUtils.createColor(250, 250, 250, 180); + int endColor = ColorUtils.createColor(200, 200, 200, 0); + int paintedColor = Utils.interpolateColor(startColor, endColor, tween); + + float radius = Math.max(mWidth, mHeight) * tweenRadius; + mPaint.setColor(paintedColor); + context.applyPaint(mPaint); + context.clipRect(0f, 0f, mWidth, mHeight); + context.drawCircle(mAnimateRippleX, mAnimateRippleY, radius); + context.restorePaint(); + context.restore(); + } + + @Override + public void layout(RemoteContext context, float width, float height) { + mWidth = width; + mHeight = height; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, "CLICK_MODIFIER"); + for (Operation o : mList) { + if (o instanceof ActionOperation) { + ((ActionOperation) o).serializeToString(indent + 1, serializer); + } + } + } + + @Override + public void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y) { + locationInWindow[0] = 0f; + locationInWindow[1] = 0f; + component.getLocationInWindow(locationInWindow); + animateRipple(x - locationInWindow[0], y - locationInWindow[1]); + for (Operation o : mList) { + if (o instanceof ActionOperation) { + ((ActionOperation) o).runAction(context, document, component, x, y); + } + } + } + + public static String name() { + return "ClickModifier"; + } + + public static void apply(WireBuffer buffer) { + buffer.start(OP_CODE); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + operations.add(new ClickModifierOperation()); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, name()) + .description("Click modifier. This operation contains" + + " a list of action executed on click"); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java index ee2e11be6c1e..fca0b1344a10 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/Component.java @@ -15,11 +15,17 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; +import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.SerializableToString; +import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.operations.BitmapData; +import com.android.internal.widget.remotecompose.core.operations.ComponentValue; +import com.android.internal.widget.remotecompose.core.operations.TextData; import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimateMeasure; import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimationSpec; import com.android.internal.widget.remotecompose.core.operations.layout.measure.ComponentMeasure; @@ -30,11 +36,14 @@ import com.android.internal.widget.remotecompose.core.operations.paint.PaintBund import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.ArrayList; +import java.util.HashSet; /** * Generic Component class */ -public class Component extends PaintOperation implements Measurable { +public class Component extends PaintOperation implements Measurable, SerializableToString { + + private static final boolean DEBUG = false; protected int mComponentId = -1; protected float mX; @@ -44,6 +53,7 @@ public class Component extends PaintOperation implements Measurable { protected Component mParent; protected int mAnimationId = -1; public Visibility mVisibility = Visibility.VISIBLE; + public Visibility mScheduledVisibility = Visibility.VISIBLE; public ArrayList<Operation> mList = new ArrayList<>(); public PaintOperation mPreTranslate; public boolean mNeedsMeasure = true; @@ -52,22 +62,29 @@ public class Component extends PaintOperation implements Measurable { public AnimationSpec mAnimationSpec = new AnimationSpec(); public boolean mFirstLayout = true; PaintBundle mPaint = new PaintBundle(); + protected HashSet<ComponentValue> mComponentValues = new HashSet<>(); + public ArrayList<Operation> getList() { return mList; } + public float getX() { return mX; } + public float getY() { return mY; } + public float getWidth() { return mWidth; } + public float getHeight() { return mHeight; } + public int getComponentId() { return mComponentId; } @@ -79,19 +96,55 @@ public class Component extends PaintOperation implements Measurable { public Component getParent() { return mParent; } + public void setX(float value) { mX = value; } + public void setY(float value) { mY = value; } + public void setWidth(float value) { mWidth = value; } + public void setHeight(float value) { mHeight = value; } + /** + * Utility function to update variables referencing this component dimensions + * + * @param context the current context + */ + private void updateComponentValues(RemoteContext context) { + if (DEBUG) { + System.out.println("UPDATE COMPONENT VALUES (" + + mComponentValues.size() + + ") FOR " + mComponentId); + } + for (ComponentValue v : mComponentValues) { + switch (v.getType()) { + case ComponentValue.WIDTH: { + context.loadFloat(v.getValueId(), mWidth); + if (DEBUG) { + System.out.println("Updating WIDTH for " + mComponentId + " to " + mWidth); + } + } + break; + case ComponentValue.HEIGHT: { + context.loadFloat(v.getValueId(), mHeight); + if (DEBUG) { + System.out.println("Updating HEIGHT for " + mComponentId + + " to " + mHeight); + } + } + break; + } + } + } + public void setComponentId(int id) { mComponentId = id; } @@ -145,6 +198,30 @@ public class Component extends PaintOperation implements Measurable { mParent = parent; } + /** + * This traverses the component tree and make sure to + * update variables referencing the component dimensions as needed. + * + * @param context the current context + */ + public void updateVariables(RemoteContext context) { + if (!mComponentValues.isEmpty()) { + updateComponentValues(context); + } + for (Operation o : mList) { + if (o instanceof Component) { + ((Component) o).updateVariables(context); + } + if (o instanceof VariableSupport) { + o.apply(context); + } + } + } + + public void addComponentValue(ComponentValue v) { + mComponentValues.add(v); + } + public enum Visibility { VISIBLE, INVISIBLE, @@ -161,6 +238,13 @@ public class Component extends PaintOperation implements Measurable { return true; } + public void setVisibility(Visibility visibility) { + if (visibility != mVisibility) { + mScheduledVisibility = visibility; + invalidateMeasure(); + } + } + @Override public void measure(PaintContext context, float minWidth, float maxWidth, float minHeight, float maxHeight, MeasurePass measure) { @@ -172,7 +256,8 @@ public class Component extends PaintOperation implements Measurable { @Override public void layout(RemoteContext context, MeasurePass measure) { ComponentMeasure m = measure.get(this); - if (!mFirstLayout && context.isAnimationEnabled()) { + if (!mFirstLayout && context.isAnimationEnabled() + && !(this instanceof LayoutComponentContent)) { if (mAnimateMeasure == null) { ComponentMeasure origin = new ComponentMeasure(mComponentId, mX, mY, mWidth, mHeight, mVisibility); @@ -190,8 +275,8 @@ public class Component extends PaintOperation implements Measurable { } else { mVisibility = m.getVisibility(); } - mWidth = m.getW(); - mHeight = m.getH(); + setWidth(m.getW()); + setHeight(m.getH()); setLayoutPosition(m.getX(), m.getY()); mFirstLayout = false; } @@ -209,16 +294,16 @@ public class Component extends PaintOperation implements Measurable { return x >= lx1 && x < lx2 && y >= ly1 && y < ly2; } - public void onClick(float x, float y) { + public void onClick(RemoteContext context, CoreDocument document, float x, float y) { if (!contains(x, y)) { return; } for (Operation op : mList) { if (op instanceof Component) { - ((Component) op).onClick(x, y); + ((Component) op).onClick(context, document, x, y); } if (op instanceof ComponentModifiers) { - ((ComponentModifiers) op).onClick(x, y); + ((ComponentModifiers) op).onClick(context, document, this, x, y); } } } @@ -226,10 +311,11 @@ public class Component extends PaintOperation implements Measurable { public void getLocationInWindow(float[] value) { value[0] += mX; value[1] += mY; - if (mParent != null && mParent instanceof Component) { + if (mParent != null) { if (mParent instanceof LayoutComponent) { - value[0] += ((LayoutComponent) mParent).getMarginLeft(); - value[1] += ((LayoutComponent) mParent).getMarginTop(); + LayoutComponent parent = (LayoutComponent) mParent; + value[0] += parent.getMarginLeft() + parent.getPaddingLeft(); + value[1] += parent.getMarginTop() + parent.getPaddingTop(); } mParent.getLocationInWindow(value); } @@ -248,10 +334,10 @@ public class Component extends PaintOperation implements Measurable { public void serializeToString(int indent, StringSerializer serializer) { serializer.append(indent, getSerializedName() + " [" + mComponentId - + ":" + mAnimationId + "] = " - + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " - + mVisibility - // + " [" + mNeedsMeasure + ", " + mNeedsRepaint + "]" + + ":" + mAnimationId + "] = " + + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " + + mVisibility + // + " [" + mNeedsMeasure + ", " + mNeedsRepaint + "]" ); } @@ -382,6 +468,9 @@ public class Component extends PaintOperation implements Measurable { debugBox(this, context); } for (Operation op : mList) { + if (op instanceof BitmapData) { + ((BitmapData) op).apply(context.getContext()); + } if (op instanceof PaintOperation) { ((PaintOperation) op).paint(context); } @@ -435,6 +524,14 @@ public class Component extends PaintOperation implements Measurable { } } + public void getData(ArrayList<TextData> data) { + for (Operation op : mList) { + if (op instanceof TextData) { + data.add((TextData) op); + } + } + } + public int getComponentCount() { int count = 0; for (Operation op : mList) { diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java index 8a523a20cab1..71decd74a40b 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentEnd.java @@ -20,17 +20,14 @@ import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import java.util.List; public class ComponentEnd implements Operation { - public static final ComponentEnd.Companion COMPANION = new ComponentEnd.Companion(); - @Override public void write(WireBuffer buffer) { - Companion.apply(buffer); + apply(buffer); } @Override @@ -48,35 +45,30 @@ public class ComponentEnd implements Operation { return (indent != null ? indent : "") + toString(); } - public static class Companion implements DocumentedCompanionOperation { - @Override - public String name() { - return "ComponentEnd"; - } + public static String name() { + return "ComponentEnd"; + } - @Override - public int id() { - return Operations.COMPONENT_END; - } + public static int id() { + return Operations.COMPONENT_END; + } - public static void apply(WireBuffer buffer) { - buffer.start(Operations.COMPONENT_END); - } + public static void apply(WireBuffer buffer) { + buffer.start(Operations.COMPONENT_END); + } + + public static int size() { + return 1 + 4 + 4 + 4; + } - public static int size() { - return 1 + 4 + 4 + 4; - } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - operations.add(new ComponentEnd()); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + operations.add(new ComponentEnd()); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) - .description("End tag for components / layouts. This operation marks the end" - + "of a component"); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("End tag for components / layouts. This operation marks the end" + + "of a component"); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java index 5cfad2521403..32ef5ce8b278 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/ComponentStart.java @@ -23,14 +23,11 @@ import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import java.util.List; public class ComponentStart implements ComponentStartOperation { - public static final ComponentStart.Companion COMPANION = new ComponentStart.Companion(); - int mType = DEFAULT; float mX; float mY; @@ -73,12 +70,12 @@ public class ComponentStart implements ComponentStartOperation { @Override public void write(WireBuffer buffer) { - Companion.apply(buffer, mType, mComponentId, mWidth, mHeight); + apply(buffer, mType, mComponentId, mWidth, mHeight); } @Override public String toString() { - return "COMPONENT_START (type " + mType + " " + Companion.typeDescription(mType) + return "COMPONENT_START (type " + mType + " " + typeDescription(mType) + ") - (" + mX + ", " + mY + " - " + mWidth + " x " + mHeight + ")"; } @@ -111,83 +108,75 @@ public class ComponentStart implements ComponentStartOperation { public static final int LAYOUT_ROW = 15; public static final int LAYOUT_COLUMN = 16; - public static class Companion implements DocumentedCompanionOperation { - - - public static String typeDescription(int type) { - switch (type) { - case DEFAULT: - return "DEFAULT"; - case ROOT_LAYOUT: - return "ROOT_LAYOUT"; - case LAYOUT: - return "LAYOUT"; - case LAYOUT_CONTENT: - return "CONTENT"; - case SCROLL_CONTENT: - return "SCROLL_CONTENT"; - case BUTTON: - return "BUTTON"; - case CHECKBOX: - return "CHECKBOX"; - case TEXT: - return "TEXT"; - case CURVED_TEXT: - return "CURVED_TEXT"; - case STATE_HOST: - return "STATE_HOST"; - case LOTTIE: - return "LOTTIE"; - case CUSTOM: - return "CUSTOM"; - case IMAGE: - return "IMAGE"; - default: - return "UNKNOWN"; - } + public static String typeDescription(int type) { + switch (type) { + case DEFAULT: + return "DEFAULT"; + case ROOT_LAYOUT: + return "ROOT_LAYOUT"; + case LAYOUT: + return "LAYOUT"; + case LAYOUT_CONTENT: + return "CONTENT"; + case SCROLL_CONTENT: + return "SCROLL_CONTENT"; + case BUTTON: + return "BUTTON"; + case CHECKBOX: + return "CHECKBOX"; + case TEXT: + return "TEXT"; + case CURVED_TEXT: + return "CURVED_TEXT"; + case STATE_HOST: + return "STATE_HOST"; + case LOTTIE: + return "LOTTIE"; + case CUSTOM: + return "CUSTOM"; + case IMAGE: + return "IMAGE"; + default: + return "UNKNOWN"; } + } - @Override - public String name() { - return "ComponentStart"; - } + public static String name() { + return "ComponentStart"; + } - @Override - public int id() { - return Operations.COMPONENT_START; - } + public static int id() { + return Operations.COMPONENT_START; + } - public static void apply(WireBuffer buffer, int type, int componentId, - float width, float height) { - buffer.start(Operations.COMPONENT_START); - buffer.writeInt(type); - buffer.writeInt(componentId); - buffer.writeFloat(width); - buffer.writeFloat(height); - } + public static void apply(WireBuffer buffer, int type, int componentId, + float width, float height) { + buffer.start(Operations.COMPONENT_START); + buffer.writeInt(type); + buffer.writeInt(componentId); + buffer.writeFloat(width); + buffer.writeFloat(height); + } - public static int size() { - return 1 + 4 + 4 + 4; - } + public static int size() { + return 1 + 4 + 4 + 4; + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int type = buffer.readInt(); - int componentId = buffer.readInt(); - float width = buffer.readFloat(); - float height = buffer.readFloat(); - operations.add(new ComponentStart(type, componentId, width, height)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int type = buffer.readInt(); + int componentId = buffer.readInt(); + float width = buffer.readFloat(); + float height = buffer.readFloat(); + operations.add(new ComponentStart(type, componentId, width, height)); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) - .description("Basic component encapsulating draw commands." - + "This is not resizable.") - .field(INT, "TYPE", "Type of components") - .field(INT, "COMPONENT_ID", "unique id for this component") - .field(FLOAT, "WIDTH", "width of the component") - .field(FLOAT, "HEIGHT", "height of the component"); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("Basic component encapsulating draw commands." + + "This is not resizable.") + .field(INT, "TYPE", "Type of components") + .field(INT, "COMPONENT_ID", "unique id for this component") + .field(FLOAT, "WIDTH", "width of the component") + .field(FLOAT, "HEIGHT", "height of the component"); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java index 941666aa90d7..71bf83913cfb 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/DecoratorComponent.java @@ -15,6 +15,7 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; +import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.RemoteContext; /** @@ -23,5 +24,6 @@ import com.android.internal.widget.remotecompose.core.RemoteContext; */ public interface DecoratorComponent { void layout(RemoteContext context, float width, float height); - void onClick(float x, float y); + void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java index f198c4a9337b..f4c213159882 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponent.java @@ -17,7 +17,13 @@ package com.android.internal.widget.remotecompose.core.operations.layout; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.operations.BitmapData; +import com.android.internal.widget.remotecompose.core.operations.MatrixRestore; +import com.android.internal.widget.remotecompose.core.operations.MatrixSave; +import com.android.internal.widget.remotecompose.core.operations.MatrixTranslate; +import com.android.internal.widget.remotecompose.core.operations.TextData; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentModifiers; +import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentVisibilityOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.DimensionModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HeightModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ModifierOperation; @@ -56,40 +62,101 @@ public class LayoutComponent extends Component { public float getMarginLeft() { return mMarginLeft; } + public float getMarginRight() { return mMarginRight; } + public float getMarginTop() { return mMarginTop; } + public float getMarginBottom() { return mMarginBottom; } + public float getPaddingLeft() { + return mPaddingLeft; + } + + public float getPaddingTop() { + return mPaddingTop; + } + + public float getPaddingRight() { + return mPaddingRight; + } + + public float getPaddingBottom() { + return mPaddingBottom; + } + + public WidthModifierOperation getWidthModifier() { return mWidthModifier; } + public HeightModifierOperation getHeightModifier() { return mHeightModifier; } + protected LayoutComponentContent mContent = null; + + // Should be removed after ImageLayout is in + private static final boolean USE_IMAGE_TEMP_FIX = true; + public void inflate() { + ArrayList<TextData> data = new ArrayList<>(); for (Operation op : mList) { if (op instanceof LayoutComponentContent) { - ((LayoutComponentContent) op).mParent = this; + mContent = (LayoutComponentContent) op; + mContent.mParent = this; mChildrenComponents.clear(); - ((LayoutComponentContent) op).getComponents(mChildrenComponents); - if (mChildrenComponents.isEmpty()) { - mChildrenComponents.add((Component) op); + LayoutComponentContent content = (LayoutComponentContent) op; + content.getComponents(mChildrenComponents); + if (USE_IMAGE_TEMP_FIX) { + if (mChildrenComponents.isEmpty() && !mContent.mList.isEmpty()) { + CanvasContent canvasContent = + new CanvasContent(-1, 0f, 0f, 0f, 0f, this, -1); + for (Operation opc : mContent.mList) { + if (opc instanceof BitmapData) { + canvasContent.mList.add(opc); + int w = ((BitmapData) opc).getWidth(); + int h = ((BitmapData) opc).getHeight(); + canvasContent.setWidth(w); + canvasContent.setHeight(h); + } else { + if (!((opc instanceof MatrixTranslate) + || (opc instanceof MatrixSave) + || (opc instanceof MatrixRestore))) { + canvasContent.mList.add(opc); + } + } + } + if (!canvasContent.mList.isEmpty()) { + mContent.mList.clear(); + mChildrenComponents.add(canvasContent); + } + } else { + content.getData(data); + } + } else { + content.getData(data); } } else if (op instanceof ModifierOperation) { + if (op instanceof ComponentVisibilityOperation) { + ((ComponentVisibilityOperation) op).setParent(this); + } mComponentModifiers.add((ModifierOperation) op); + } else if (op instanceof TextData) { + data.add((TextData) op); } else { // nothing } } mList.clear(); + mList.addAll(data); mList.add(mComponentModifiers); for (Component c : mChildrenComponents) { c.mParent = this; @@ -146,8 +213,8 @@ public class LayoutComponent extends Component { if (mHeightModifier == null) { mHeightModifier = new HeightModifierOperation(DimensionModifierOperation.Type.WRAP); } - mWidth = computeModifierDefinedWidth(); - mHeight = computeModifierDefinedHeight(); + setWidth(computeModifierDefinedWidth()); + setHeight(computeModifierDefinedHeight()); } @Override @@ -170,6 +237,7 @@ public class LayoutComponent extends Component { context.restore(); } + /** * Traverse the modifiers to compute indicated dimension */ @@ -195,6 +263,27 @@ public class LayoutComponent extends Component { } /** + * Traverse the modifiers to compute padding width + * + * @param padding output start and end padding values + * @return padding width + */ + public float computeModifierDefinedPaddingWidth(float[] padding) { + float s = 0f; + float e = 0f; + for (Operation c : mComponentModifiers.getList()) { + if (c instanceof PaddingModifierOperation) { + PaddingModifierOperation pop = (PaddingModifierOperation) c; + s += pop.getLeft(); + e += pop.getRight(); + } + } + padding[0] = s; + padding[1] = e; + return s + e; + } + + /** * Traverse the modifiers to compute indicated dimension */ public float computeModifierDefinedHeight() { @@ -217,4 +306,26 @@ public class LayoutComponent extends Component { } return t + h + b; } + + /** + * Traverse the modifiers to compute padding height + * + * @param padding output top and bottom padding values + * @return padding height + */ + public float computeModifierDefinedPaddingHeight(float[] padding) { + float t = 0f; + float b = 0f; + for (Operation c : mComponentModifiers.getList()) { + if (c instanceof PaddingModifierOperation) { + PaddingModifierOperation pop = (PaddingModifierOperation) c; + t += pop.getTop(); + b += pop.getBottom(); + } + } + padding[0] = t; + padding[1] = b; + return t + b; + } + } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java index 769ff6ac3e7d..5b3b54d3c423 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/LayoutComponentContent.java @@ -15,11 +15,12 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import java.util.List; @@ -28,41 +29,44 @@ import java.util.List; */ public class LayoutComponentContent extends Component implements ComponentStartOperation { - public static final LayoutComponentContent.Companion COMPANION = - new LayoutComponentContent.Companion(); - public LayoutComponentContent(int componentId, float x, float y, float width, float height, Component parent, int animationId) { super(parent, componentId, animationId, x, y, width, height); } - public static class Companion implements DocumentedCompanionOperation { - @Override - public String name() { - return "LayoutContent"; - } + public static String name() { + return "LayoutContent"; + } + + public static int id() { + return Operations.LAYOUT_CONTENT; + } + + @Override protected String getSerializedName() { + return "CONTENT"; + } - @Override - public int id() { - return Operations.LAYOUT_CONTENT; - } + public static void apply(WireBuffer buffer, int componentId) { + buffer.start(Operations.LAYOUT_CONTENT); + buffer.writeInt(componentId); + } - public void apply(WireBuffer buffer) { - buffer.start(Operations.LAYOUT_CONTENT); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + operations.add(new LayoutComponentContent( + componentId, 0, 0, 0, 0, null, -1)); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - operations.add(new LayoutComponentContent( - -1, 0, 0, 0, 0, null, -1)); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .field(INT, "COMPONENT_ID", "unique id for this component") + .description("Container for components. BoxLayout, RowLayout and ColumnLayout " + + "expects a LayoutComponentContent as a child, encapsulating the " + + "components that needs to be laid out."); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) - .description("Container for components. BoxLayout, RowLayout and ColumnLayout " - + "expects a LayoutComponentContent as a child, encapsulating the " - + "components that needs to be laid out."); - } + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java index dc13768992ce..bf1a4963d4c4 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/RootLayoutComponent.java @@ -15,14 +15,16 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.SerializableToString; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.measure.Measurable; import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentModifiers; @@ -34,10 +36,6 @@ import java.util.List; * Represents the root layout component. Entry point to the component tree layout/paint. */ public class RootLayoutComponent extends Component implements ComponentStartOperation { - - public static final RootLayoutComponent.Companion COMPANION = - new RootLayoutComponent.Companion(); - int mCurrentId = -1; public RootLayoutComponent(int componentId, float x, float y, @@ -52,7 +50,8 @@ public class RootLayoutComponent extends Component implements ComponentStartOper @Override public String toString() { - return "ROOT (" + mX + ", " + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + return "ROOT " + mComponentId + " (" + mX + ", " + mY + " - " + + mWidth + " x " + mHeight + ") " + mVisibility; } @Override @@ -61,18 +60,22 @@ public class RootLayoutComponent extends Component implements ComponentStartOper + "] = [" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " + mVisibility); } - public int getNextId() { - mCurrentId--; - return mCurrentId; - } - - public void assignIds() { + /** + * Traverse the hierarchy and assign generated ids to component without ids. + * Most components would already have ids assigned during the document creation, but this + * allow us to take care of any components added during the inflation. + * + * @param lastId the last known generated id + */ + public void assignIds(int lastId) { + mCurrentId = lastId; assignId(this); } - void assignId(Component component) { + private void assignId(Component component) { if (component.mComponentId == -1) { - component.mComponentId = getNextId(); + mCurrentId--; + component.mComponentId = mCurrentId; } for (Operation op : component.mList) { if (op instanceof Component) { @@ -135,39 +138,42 @@ public class RootLayoutComponent extends Component implements ComponentStartOper for (Operation c : component.mList) { if (c instanceof ComponentModifiers) { ((ComponentModifiers) c).serializeToString(indent + 1, serializer); - } - if (c instanceof Component) { + } else if (c instanceof Component) { displayHierarchy((Component) c, indent + 1, serializer); + } else if (c instanceof SerializableToString) { + ((SerializableToString) c).serializeToString(indent + 1, serializer); } } } - public static class Companion implements DocumentedCompanionOperation { - @Override - public String name() { - return "RootLayout"; - } + public static String name() { + return "RootLayout"; + } - @Override - public int id() { - return Operations.LAYOUT_ROOT; - } + public static int id() { + return Operations.LAYOUT_ROOT; + } - public void apply(WireBuffer buffer) { - buffer.start(Operations.LAYOUT_ROOT); - } + public static void apply(WireBuffer buffer, int componentId) { + buffer.start(Operations.LAYOUT_ROOT); + buffer.writeInt(componentId); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - operations.add(new RootLayoutComponent( - -1, 0, 0, 0, 0, null, -1)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + operations.add(new RootLayoutComponent( + componentId, 0, 0, 0, 0, null, -1)); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) - .description("Root element for a document. Other components / layout managers " - + "are children in the component tree starting from this Root component."); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .field(INT, "COMPONENT_ID", "unique id for this component") + .description("Root element for a document. Other components / layout managers " + + "are children in the component tree starting from this Root component."); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java index 7c6bef425eef..1ada733e2cb2 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimateMeasure.java @@ -75,7 +75,7 @@ public class AnimateMeasure { mP = Math.min(elapsed / (float) mDuration, 1f); //mP = motionEasing.get(mP); mVp = Math.min(elapsed / (float) mDurationVisibilityChange, 1f); - mVp = mVisibilityEasing.get(mVp); + // mVp = mVisibilityEasing.get(mVp); } public PaintBundle paint = new PaintBundle(); @@ -101,7 +101,6 @@ public class AnimateMeasure { } } - mComponent.mVisibility = mTarget.getVisibility(); if (mOriginal.getVisibility() != mTarget.getVisibility()) { if (mTarget.getVisibility() == Component.Visibility.GONE) { switch (mExitAnimation) { @@ -256,7 +255,7 @@ public class AnimateMeasure { } else { mComponent.paintingComponent(context); } - } else { + } else if (mTarget.getVisibility() == Component.Visibility.VISIBLE) { mComponent.paintingComponent(context); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java index 386d365ec033..0f7db36e8e01 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/animation/AnimationSpec.java @@ -15,11 +15,13 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.animation; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.utilities.easing.GeneralEasing; import java.util.List; @@ -28,9 +30,6 @@ import java.util.List; * Basic component animation spec */ public class AnimationSpec implements Operation { - - public static final AnimationSpec.Companion COMPANION = new AnimationSpec.Companion(); - int mAnimationId = -1; int mMotionDuration = 300; int mMotionEasingType = GeneralEasing.CUBIC_STANDARD; @@ -103,7 +102,7 @@ public class AnimationSpec implements Operation { @Override public void write(WireBuffer buffer) { - Companion.apply(buffer, mAnimationId, mMotionDuration, mMotionEasingType, + apply(buffer, mAnimationId, mMotionDuration, mMotionEasingType, mVisibilityDuration, mVisibilityEasingType, mEnterAnimation, mExitAnimation); } @@ -117,70 +116,77 @@ public class AnimationSpec implements Operation { return (indent != null ? indent : "") + toString(); } - public static class Companion implements CompanionOperation { - @Override - public String name() { - return "AnimationSpec"; - } + public static String name() { + return "AnimationSpec"; + } - @Override - public int id() { - return Operations.ANIMATION_SPEC; - } + public static int id() { + return Operations.ANIMATION_SPEC; + } - public static int animationToInt(ANIMATION animation) { - return animation.ordinal(); - } + public static int animationToInt(ANIMATION animation) { + return animation.ordinal(); + } - public static ANIMATION intToAnimation(int value) { - switch (value) { - case 0: - return ANIMATION.FADE_IN; - case 1: - return ANIMATION.FADE_OUT; - case 2: - return ANIMATION.SLIDE_LEFT; - case 3: - return ANIMATION.SLIDE_RIGHT; - case 4: - return ANIMATION.SLIDE_TOP; - case 5: - return ANIMATION.SLIDE_BOTTOM; - case 6: - return ANIMATION.ROTATE; - case 7: - return ANIMATION.PARTICLE; - default: - return ANIMATION.FADE_IN; - } + public static ANIMATION intToAnimation(int value) { + switch (value) { + case 0: + return ANIMATION.FADE_IN; + case 1: + return ANIMATION.FADE_OUT; + case 2: + return ANIMATION.SLIDE_LEFT; + case 3: + return ANIMATION.SLIDE_RIGHT; + case 4: + return ANIMATION.SLIDE_TOP; + case 5: + return ANIMATION.SLIDE_BOTTOM; + case 6: + return ANIMATION.ROTATE; + case 7: + return ANIMATION.PARTICLE; + default: + return ANIMATION.FADE_IN; } + } - public static void apply(WireBuffer buffer, int animationId, int motionDuration, - int motionEasingType, int visibilityDuration, - int visibilityEasingType, ANIMATION enterAnimation, - ANIMATION exitAnimation) { - buffer.start(Operations.ANIMATION_SPEC); - buffer.writeInt(animationId); - buffer.writeInt(motionDuration); - buffer.writeInt(motionEasingType); - buffer.writeInt(visibilityDuration); - buffer.writeInt(visibilityEasingType); - buffer.writeInt(animationToInt(enterAnimation)); - buffer.writeInt(animationToInt(exitAnimation)); - } + public static void apply(WireBuffer buffer, int animationId, int motionDuration, + int motionEasingType, int visibilityDuration, + int visibilityEasingType, ANIMATION enterAnimation, + ANIMATION exitAnimation) { + buffer.start(Operations.ANIMATION_SPEC); + buffer.writeInt(animationId); + buffer.writeInt(motionDuration); + buffer.writeInt(motionEasingType); + buffer.writeInt(visibilityDuration); + buffer.writeInt(visibilityEasingType); + buffer.writeInt(animationToInt(enterAnimation)); + buffer.writeInt(animationToInt(exitAnimation)); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int animationId = buffer.readInt(); + int motionDuration = buffer.readInt(); + int motionEasingType = buffer.readInt(); + int visibilityDuration = buffer.readInt(); + int visibilityEasingType = buffer.readInt(); + ANIMATION enterAnimation = intToAnimation(buffer.readInt()); + ANIMATION exitAnimation = intToAnimation(buffer.readInt()); + AnimationSpec op = new AnimationSpec(animationId, motionDuration, motionEasingType, + visibilityDuration, visibilityEasingType, enterAnimation, exitAnimation); + operations.add(op); + } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", + id(), + name()) + .description("define the animation") + .field(INT, "animationId", "") + .field(INT, "motionDuration", "") + .field(INT, "motionEasingType", "") + .field(INT, "visibilityDuration", "") + .field(INT, "visibilityEasingType", ""); - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int animationId = buffer.readInt(); - int motionDuration = buffer.readInt(); - int motionEasingType = buffer.readInt(); - int visibilityDuration = buffer.readInt(); - int visibilityEasingType = buffer.readInt(); - ANIMATION enterAnimation = intToAnimation(buffer.readInt()); - ANIMATION exitAnimation = intToAnimation(buffer.readInt()); - AnimationSpec op = new AnimationSpec(animationId, motionDuration, motionEasingType, - visibilityDuration, visibilityEasingType, enterAnimation, exitAnimation); - operations.add(op); - } } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java index fea8dd2de209..88a49a666cd7 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/BoxLayout.java @@ -22,7 +22,6 @@ import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation; import com.android.internal.widget.remotecompose.core.operations.layout.measure.ComponentMeasure; @@ -42,7 +41,6 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation public static final int TOP = 4; public static final int BOTTOM = 5; - public static final BoxLayout.Companion COMPANION = new BoxLayout.Companion(); int mHorizontalPositioning; int mVerticalPositioning; @@ -127,63 +125,63 @@ public class BoxLayout extends LayoutManager implements ComponentStartOperation } m.setX(tx); m.setY(ty); - m.setVisibility(child.mVisibility); } } - public static class Companion implements DocumentedCompanionOperation { - @Override - public String name() { - return "BoxLayout"; - } + public static String name() { + return "BoxLayout"; + } - @Override - public int id() { - return Operations.LAYOUT_BOX; - } + public static int id() { + return Operations.LAYOUT_BOX; + } - public void apply(WireBuffer buffer, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning) { - buffer.start(Operations.LAYOUT_BOX); - buffer.writeInt(componentId); - buffer.writeInt(animationId); - buffer.writeInt(horizontalPositioning); - buffer.writeInt(verticalPositioning); - } + public static void apply(WireBuffer buffer, int componentId, int animationId, + int horizontalPositioning, int verticalPositioning) { + buffer.start(Operations.LAYOUT_BOX); + buffer.writeInt(componentId); + buffer.writeInt(animationId); + buffer.writeInt(horizontalPositioning); + buffer.writeInt(verticalPositioning); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int componentId = buffer.readInt(); - int animationId = buffer.readInt(); - int horizontalPositioning = buffer.readInt(); - int verticalPositioning = buffer.readInt(); - operations.add(new BoxLayout(null, componentId, animationId, - horizontalPositioning, verticalPositioning)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + int animationId = buffer.readInt(); + int horizontalPositioning = buffer.readInt(); + int verticalPositioning = buffer.readInt(); + operations.add(new BoxLayout(null, componentId, animationId, + horizontalPositioning, verticalPositioning)); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) .description("Box layout implementation.\n\n" - + "Child components are laid out independently from one another,\n" - + " and painted in their hierarchy order (first children drawn" - + "before the latter). Horizontal and Vertical positioning" - + "are supported.") + + "Child components are laid out independently from one another,\n" + + " and painted in their hierarchy order (first children drawn" + + "before the latter). Horizontal and Vertical positioning" + + "are supported.") .examplesDimension(150, 100) .exampleImage("Top", "layout-BoxLayout-start-top.png") .exampleImage("Center", "layout-BoxLayout-center-center.png") .exampleImage("Bottom", "layout-BoxLayout-end-bottom.png") .field(INT, "COMPONENT_ID", "unique id for this component") .field(INT, "ANIMATION_ID", "id used to match components," - + " for animation purposes") + + " for animation purposes") .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value") - .possibleValues("START", BoxLayout.START) - .possibleValues("CENTER", BoxLayout.CENTER) - .possibleValues("END", BoxLayout.END) + .possibleValues("START", BoxLayout.START) + .possibleValues("CENTER", BoxLayout.CENTER) + .possibleValues("END", BoxLayout.END) .field(INT, "VERTICAL_POSITIONING", "vertical positioning value") - .possibleValues("TOP", BoxLayout.TOP) - .possibleValues("CENTER", BoxLayout.CENTER) - .possibleValues("BOTTOM", BoxLayout.BOTTOM); - } + .possibleValues("TOP", BoxLayout.TOP) + .possibleValues("CENTER", BoxLayout.CENTER) + .possibleValues("BOTTOM", BoxLayout.BOTTOM); + } + + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId, mAnimationId, + mHorizontalPositioning, mVerticalPositioning); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java new file mode 100644 index 000000000000..bce7a77abb36 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/CanvasLayout.java @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.managers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.layout.measure.ComponentMeasure; +import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass; + +import java.util.List; + +public class CanvasLayout extends BoxLayout { + public CanvasLayout(Component parent, int componentId, int animationId, + float x, float y, float width, float height) { + super(parent, componentId, animationId, x, y, width, height, 0, 0); + } + + public CanvasLayout(Component parent, int componentId, int animationId) { + this(parent, componentId, animationId, 0, 0, 0, 0); + } + + @Override + public String toString() { + return "CANVAS [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " + + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + } + + protected String getSerializedName() { + return "CANVAS"; + } + + public static String name() { + return "CanvasLayout"; + } + + public static int id() { + return Operations.LAYOUT_CANVAS; + } + + public static void apply(WireBuffer buffer, int componentId, int animationId) { + buffer.start(Operations.LAYOUT_CANVAS); + buffer.writeInt(componentId); + buffer.writeInt(animationId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + int animationId = buffer.readInt(); + operations.add(new CanvasLayout(null, componentId, animationId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("Canvas implementation. Encapsulate draw operations.\n\n") + .field(INT, "COMPONENT_ID", "unique id for this component") + .field(INT, "ANIMATION_ID", "id used to match components," + + " for animation purposes"); + } + + @Override + public void internalLayoutMeasure(PaintContext context, + MeasurePass measure) { + ComponentMeasure selfMeasure = measure.get(this); + float selfWidth = selfMeasure.getW() - mPaddingLeft - mPaddingRight; + float selfHeight = selfMeasure.getH() - mPaddingTop - mPaddingBottom; + for (Component child : mChildrenComponents) { + ComponentMeasure m = measure.get(child); + m.setX(0f); + m.setY(0f); + m.setW(selfWidth); + m.setH(selfHeight); + } + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId, mAnimationId); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java index a1a2de5302b8..48d966ebe9a7 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/ColumnLayout.java @@ -23,7 +23,6 @@ import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation; import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent; @@ -48,8 +47,6 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati public static final int SPACE_EVENLY = 7; public static final int SPACE_AROUND = 8; - public static final ColumnLayout.Companion COMPANION = new ColumnLayout.Companion(); - int mHorizontalPositioning; int mVerticalPositioning; float mSpacedBy = 0f; @@ -64,7 +61,7 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati } public ColumnLayout(Component parent, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float spacedBy) { + int horizontalPositioning, int verticalPositioning, float spacedBy) { this(parent, componentId, animationId, 0, 0, 0, 0, horizontalPositioning, verticalPositioning, spacedBy); } @@ -214,7 +211,6 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati } childMeasure.setX(tx); childMeasure.setY(ty); - childMeasure.setVisibility(child.mVisibility); ty += childMeasure.getH(); if (mVerticalPositioning == SPACE_BETWEEN || mVerticalPositioning == SPACE_AROUND @@ -226,66 +222,66 @@ public class ColumnLayout extends LayoutManager implements ComponentStartOperati DebugLog.e(); } - public static class Companion implements DocumentedCompanionOperation { - @Override - public String name() { - return "ColumnLayout"; - } + public static String name() { + return "ColumnLayout"; + } - @Override - public int id() { - return Operations.LAYOUT_COLUMN; - } + public static int id() { + return Operations.LAYOUT_COLUMN; + } - public void apply(WireBuffer buffer, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float spacedBy) { - buffer.start(Operations.LAYOUT_COLUMN); - buffer.writeInt(componentId); - buffer.writeInt(animationId); - buffer.writeInt(horizontalPositioning); - buffer.writeInt(verticalPositioning); - buffer.writeFloat(spacedBy); - } + public static void apply(WireBuffer buffer, int componentId, int animationId, + int horizontalPositioning, int verticalPositioning, float spacedBy) { + buffer.start(Operations.LAYOUT_COLUMN); + buffer.writeInt(componentId); + buffer.writeInt(animationId); + buffer.writeInt(horizontalPositioning); + buffer.writeInt(verticalPositioning); + buffer.writeFloat(spacedBy); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int componentId = buffer.readInt(); - int animationId = buffer.readInt(); - int horizontalPositioning = buffer.readInt(); - int verticalPositioning = buffer.readInt(); - float spacedBy = buffer.readFloat(); - operations.add(new ColumnLayout(null, componentId, animationId, - horizontalPositioning, verticalPositioning, spacedBy)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + int animationId = buffer.readInt(); + int horizontalPositioning = buffer.readInt(); + int verticalPositioning = buffer.readInt(); + float spacedBy = buffer.readFloat(); + operations.add(new ColumnLayout(null, componentId, animationId, + horizontalPositioning, verticalPositioning, spacedBy)); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) - .description("Column layout implementation, positioning components one" - + " after the other vertically.\n\n" - + "It supports weight and horizontal/vertical positioning.") - .examplesDimension(100, 400) - .exampleImage("Top", "layout-ColumnLayout-start-top.png") - .exampleImage("Center", "layout-ColumnLayout-start-center.png") - .exampleImage("Bottom", "layout-ColumnLayout-start-bottom.png") - .exampleImage("SpaceEvenly", "layout-ColumnLayout-start-space-evenly.png") - .exampleImage("SpaceAround", "layout-ColumnLayout-start-space-around.png") - .exampleImage("SpaceBetween", "layout-ColumnLayout-start-space-between.png") - .field(INT, "COMPONENT_ID", "unique id for this component") - .field(INT, "ANIMATION_ID", "id used to match components," - + " for animation purposes") - .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value") - .possibleValues("START", ColumnLayout.START) - .possibleValues("CENTER", ColumnLayout.CENTER) - .possibleValues("END", ColumnLayout.END) - .field(INT, "VERTICAL_POSITIONING", "vertical positioning value") - .possibleValues("TOP", ColumnLayout.TOP) - .possibleValues("CENTER", ColumnLayout.CENTER) - .possibleValues("BOTTOM", ColumnLayout.BOTTOM) - .possibleValues("SPACE_BETWEEN", ColumnLayout.SPACE_BETWEEN) - .possibleValues("SPACE_EVENLY", ColumnLayout.SPACE_EVENLY) - .possibleValues("SPACE_AROUND", ColumnLayout.SPACE_AROUND) - .field(FLOAT, "SPACED_BY", "Horizontal spacing between components"); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("Column layout implementation, positioning components one" + + " after the other vertically.\n\n" + + "It supports weight and horizontal/vertical positioning.") + .examplesDimension(100, 400) + .exampleImage("Top", "layout-ColumnLayout-start-top.png") + .exampleImage("Center", "layout-ColumnLayout-start-center.png") + .exampleImage("Bottom", "layout-ColumnLayout-start-bottom.png") + .exampleImage("SpaceEvenly", "layout-ColumnLayout-start-space-evenly.png") + .exampleImage("SpaceAround", "layout-ColumnLayout-start-space-around.png") + .exampleImage("SpaceBetween", "layout-ColumnLayout-start-space-between.png") + .field(INT, "COMPONENT_ID", "unique id for this component") + .field(INT, "ANIMATION_ID", "id used to match components," + + " for animation purposes") + .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value") + .possibleValues("START", ColumnLayout.START) + .possibleValues("CENTER", ColumnLayout.CENTER) + .possibleValues("END", ColumnLayout.END) + .field(INT, "VERTICAL_POSITIONING", "vertical positioning value") + .possibleValues("TOP", ColumnLayout.TOP) + .possibleValues("CENTER", ColumnLayout.CENTER) + .possibleValues("BOTTOM", ColumnLayout.BOTTOM) + .possibleValues("SPACE_BETWEEN", ColumnLayout.SPACE_BETWEEN) + .possibleValues("SPACE_EVENLY", ColumnLayout.SPACE_EVENLY) + .possibleValues("SPACE_AROUND", ColumnLayout.SPACE_AROUND) + .field(FLOAT, "SPACED_BY", "Horizontal spacing between components"); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId, mAnimationId, + mHorizontalPositioning, mVerticalPositioning, mSpacedBy); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java index 48906837ef94..3a366172a51f 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/LayoutManager.java @@ -109,12 +109,22 @@ public abstract class LayoutManager extends LayoutComponent implements Measurabl if (!hasWrap) { computeSize(context, 0f, measuredWidth, 0f, measuredHeight, measure); } + + if (mContent != null) { + ComponentMeasure cm = measure.get(mContent); + cm.setX(0f); + cm.setY(0f); + cm.setW(measuredWidth); + cm.setH(measuredHeight); + } + measuredWidth += mMarginLeft + mMarginRight; measuredHeight += mMarginTop + mMarginBottom; ComponentMeasure m = measure.get(this); m.setW(measuredWidth); m.setH(measuredHeight); + m.setVisibility(mScheduledVisibility); internalLayoutMeasure(context, measure); } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java index 07e2ea186ca5..5e452f363c06 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/RowLayout.java @@ -23,7 +23,6 @@ import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; -import com.android.internal.widget.remotecompose.core.documentation.DocumentedCompanionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation; import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent; @@ -48,8 +47,6 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation public static final int SPACE_EVENLY = 7; public static final int SPACE_AROUND = 8; - public static final RowLayout.Companion COMPANION = new RowLayout.Companion(); - int mHorizontalPositioning; int mVerticalPositioning; float mSpacedBy = 0f; @@ -68,6 +65,7 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation this(parent, componentId, animationId, 0, 0, 0, 0, horizontalPositioning, verticalPositioning, spacedBy); } + @Override public String toString() { return "ROW [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " @@ -217,7 +215,6 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation } childMeasure.setX(tx); childMeasure.setY(ty); - childMeasure.setVisibility(child.mVisibility); tx += childMeasure.getW(); if (mHorizontalPositioning == SPACE_BETWEEN || mHorizontalPositioning == SPACE_AROUND @@ -229,66 +226,66 @@ public class RowLayout extends LayoutManager implements ComponentStartOperation DebugLog.e(); } - public static class Companion implements DocumentedCompanionOperation { - @Override - public String name() { - return "RowLayout"; - } + public static String name() { + return "RowLayout"; + } - @Override - public int id() { - return Operations.LAYOUT_ROW; - } + public static int id() { + return Operations.LAYOUT_ROW; + } - public void apply(WireBuffer buffer, int componentId, int animationId, - int horizontalPositioning, int verticalPositioning, float spacedBy) { - buffer.start(Operations.LAYOUT_ROW); - buffer.writeInt(componentId); - buffer.writeInt(animationId); - buffer.writeInt(horizontalPositioning); - buffer.writeInt(verticalPositioning); - buffer.writeFloat(spacedBy); - } + public static void apply(WireBuffer buffer, int componentId, int animationId, + int horizontalPositioning, int verticalPositioning, float spacedBy) { + buffer.start(Operations.LAYOUT_ROW); + buffer.writeInt(componentId); + buffer.writeInt(animationId); + buffer.writeInt(horizontalPositioning); + buffer.writeInt(verticalPositioning); + buffer.writeFloat(spacedBy); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int componentId = buffer.readInt(); - int animationId = buffer.readInt(); - int horizontalPositioning = buffer.readInt(); - int verticalPositioning = buffer.readInt(); - float spacedBy = buffer.readFloat(); - operations.add(new RowLayout(null, componentId, animationId, - horizontalPositioning, verticalPositioning, spacedBy)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + int animationId = buffer.readInt(); + int horizontalPositioning = buffer.readInt(); + int verticalPositioning = buffer.readInt(); + float spacedBy = buffer.readFloat(); + operations.add(new RowLayout(null, componentId, animationId, + horizontalPositioning, verticalPositioning, spacedBy)); + } - @Override - public void documentation(DocumentationBuilder doc) { - doc.operation("Layout Operations", id(), name()) - .description("Row layout implementation, positioning components one" - + " after the other horizontally.\n\n" - + "It supports weight and horizontal/vertical positioning.") - .examplesDimension(400, 100) - .exampleImage("Start", "layout-RowLayout-start-top.png") - .exampleImage("Center", "layout-RowLayout-center-top.png") - .exampleImage("End", "layout-RowLayout-end-top.png") - .exampleImage("SpaceEvenly", "layout-RowLayout-space-evenly-top.png") - .exampleImage("SpaceAround", "layout-RowLayout-space-around-top.png") - .exampleImage("SpaceBetween", "layout-RowLayout-space-between-top.png") - .field(INT, "COMPONENT_ID", "unique id for this component") - .field(INT, "ANIMATION_ID", "id used to match components," - + " for animation purposes") - .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value") - .possibleValues("START", RowLayout.START) - .possibleValues("CENTER", RowLayout.CENTER) - .possibleValues("END", RowLayout.END) - .possibleValues("SPACE_BETWEEN", RowLayout.SPACE_BETWEEN) - .possibleValues("SPACE_EVENLY", RowLayout.SPACE_EVENLY) - .possibleValues("SPACE_AROUND", RowLayout.SPACE_AROUND) - .field(INT, "VERTICAL_POSITIONING", "vertical positioning value") - .possibleValues("TOP", RowLayout.TOP) - .possibleValues("CENTER", RowLayout.CENTER) - .possibleValues("BOTTOM", RowLayout.BOTTOM) - .field(FLOAT, "SPACED_BY", "Horizontal spacing between components"); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("Row layout implementation, positioning components one" + + " after the other horizontally.\n\n" + + "It supports weight and horizontal/vertical positioning.") + .examplesDimension(400, 100) + .exampleImage("Start", "layout-RowLayout-start-top.png") + .exampleImage("Center", "layout-RowLayout-center-top.png") + .exampleImage("End", "layout-RowLayout-end-top.png") + .exampleImage("SpaceEvenly", "layout-RowLayout-space-evenly-top.png") + .exampleImage("SpaceAround", "layout-RowLayout-space-around-top.png") + .exampleImage("SpaceBetween", "layout-RowLayout-space-between-top.png") + .field(INT, "COMPONENT_ID", "unique id for this component") + .field(INT, "ANIMATION_ID", "id used to match components," + + " for animation purposes") + .field(INT, "HORIZONTAL_POSITIONING", "horizontal positioning value") + .possibleValues("START", RowLayout.START) + .possibleValues("CENTER", RowLayout.CENTER) + .possibleValues("END", RowLayout.END) + .possibleValues("SPACE_BETWEEN", RowLayout.SPACE_BETWEEN) + .possibleValues("SPACE_EVENLY", RowLayout.SPACE_EVENLY) + .possibleValues("SPACE_AROUND", RowLayout.SPACE_AROUND) + .field(INT, "VERTICAL_POSITIONING", "vertical positioning value") + .possibleValues("TOP", RowLayout.TOP) + .possibleValues("CENTER", RowLayout.CENTER) + .possibleValues("BOTTOM", RowLayout.BOTTOM) + .field(FLOAT, "SPACED_BY", "Horizontal spacing between components"); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId, mAnimationId, + mHorizontalPositioning, mVerticalPositioning, mSpacedBy); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java new file mode 100644 index 000000000000..23705003179c --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/managers/TextLayout.java @@ -0,0 +1,245 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.managers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.PaintContext; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStartOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.measure.MeasurePass; +import com.android.internal.widget.remotecompose.core.operations.layout.measure.Size; +import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +/** + * Text component, referencing a text id + */ +public class TextLayout extends LayoutManager implements ComponentStartOperation, VariableSupport { + + private static final boolean DEBUG = false; + private int mTextId = -1; + private int mColor = 0; + private float mFontSize = 16f; + private int mFontStyle = 0; + private float mFontWeight = 400f; + private int mFontFamilyId = -1; + + private int mType = -1; + private float mTextX; + private float mTextY; + + private String mCachedString = ""; + + @Override + public void registerListening(RemoteContext context) { + if (mTextId != -1) { + context.listensTo(mTextId, this); + } + } + + @Override + public void updateVariables(RemoteContext context) { + mCachedString = context.getText(mTextId); + if (mType == -1) { + if (mFontFamilyId != -1) { + String fontFamily = context.getText(mFontFamilyId); + if (fontFamily != null) { + mType = 0; // default + if (fontFamily.equalsIgnoreCase("default")) { + mType = 0; + } else if (fontFamily.equalsIgnoreCase("sans-serif")) { + mType = 1; + } else if (fontFamily.equalsIgnoreCase("serif")) { + mType = 2; + } else if (fontFamily.equalsIgnoreCase("monospace")) { + mType = 3; + } + } + } else { + mType = 0; + } + } + mNeedsMeasure = true; + needsRepaint(); + } + + public TextLayout(Component parent, int componentId, int animationId, + float x, float y, float width, float height, + int textId, int color, float fontSize, + int fontStyle, float fontWeight, int fontFamilyId) { + super(parent, componentId, animationId, x, y, width, height); + mTextId = textId; + mColor = color; + mFontSize = fontSize; + mFontStyle = fontStyle; + mFontWeight = fontWeight; + mFontFamilyId = fontFamilyId; + } + + public TextLayout(Component parent, int componentId, int animationId, + int textId, int color, float fontSize, + int fontStyle, float fontWeight, int fontFamilyId) { + this(parent, componentId, animationId, 0, 0, 0, 0, + textId, color, fontSize, fontStyle, fontWeight, fontFamilyId); + } + + public PaintBundle mPaint = new PaintBundle(); + + @Override + public void paintingComponent(PaintContext context) { + context.save(); + context.translate(mX, mY); + mComponentModifiers.paint(context); + float tx = mPaddingLeft; + float ty = mPaddingTop; + context.translate(tx, ty); + + ////////////////////////////////////////////////////////// + // Text content + ////////////////////////////////////////////////////////// + context.savePaint(); + mPaint.reset(); + mPaint.setStyle(PaintBundle.STYLE_FILL); + mPaint.setColor(mColor); + mPaint.setTextSize(mFontSize); + mPaint.setTextStyle(mType, (int) mFontWeight, mFontStyle == 1); + context.applyPaint(mPaint); + int length = mCachedString.length(); + context.drawTextRun(mTextId, 0, length, 0, 0, mTextX, mTextY, false); + if (DEBUG) { + mPaint.setStyle(PaintBundle.STYLE_FILL_AND_STROKE); + mPaint.setColor(1f, 1F, 1F, 1F); + mPaint.setStrokeWidth(3f); + context.applyPaint(mPaint); + context.drawLine(0f, 0f, mWidth, mHeight); + context.drawLine(0f, mHeight, mWidth, 0f); + mPaint.setColor(1f, 0F, 0F, 1F); + mPaint.setStrokeWidth(1f); + context.applyPaint(mPaint); + context.drawLine(0f, 0f, mWidth, mHeight); + context.drawLine(0f, mHeight, mWidth, 0f); + } + context.restorePaint(); + ////////////////////////////////////////////////////////// + + context.translate(-tx, -ty); + context.restore(); + } + + @Override + public String toString() { + return "TEXT_LAYOUT [" + mComponentId + ":" + mAnimationId + "] (" + mX + ", " + + mY + " - " + mWidth + " x " + mHeight + ") " + mVisibility; + } + + protected String getSerializedName() { + return "TEXT_LAYOUT"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, getSerializedName() + " [" + mComponentId + + ":" + mAnimationId + "] = " + + "[" + mX + ", " + mY + ", " + mWidth + ", " + mHeight + "] " + + mVisibility + " (" + mTextId + ":\"" + mCachedString + "\")" + ); + } + + @Override + public void computeWrapSize(PaintContext context, float maxWidth, float maxHeight, + MeasurePass measure, Size size) { + context.savePaint(); + mPaint.reset(); + mPaint.setTextSize(mFontSize); + mPaint.setTextStyle(mType, (int) mFontWeight, mFontStyle == 1); + context.applyPaint(mPaint); + float[] bounds = new float[4]; + int flags = PaintContext.TEXT_MEASURE_FONT_HEIGHT; + context.getTextBounds(mTextId, 0, mCachedString.length(), flags, bounds); + context.restorePaint(); + float w = bounds[2] - bounds[0]; + float h = bounds[3] - bounds[1]; + size.setWidth(w); + mTextX = -bounds[0]; + size.setHeight(h); + mTextY = -bounds[1]; + } + + public static String name() { + return "TextLayout"; + } + + public static int id() { + return Operations.LAYOUT_TEXT; + } + + public static void apply(WireBuffer buffer, int componentId, int animationId, + int textId, int color, float fontSize, int fontStyle, + float fontWeight, int fontFamilyId) { + buffer.start(id()); + buffer.writeInt(componentId); + buffer.writeInt(animationId); + buffer.writeInt(textId); + buffer.writeInt(color); + buffer.writeFloat(fontSize); + buffer.writeInt(fontStyle); + buffer.writeFloat(fontWeight); + buffer.writeInt(fontFamilyId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int componentId = buffer.readInt(); + int animationId = buffer.readInt(); + int textId = buffer.readInt(); + int color = buffer.readInt(); + float fontSize = buffer.readFloat(); + int fontStyle = buffer.readInt(); + float fontWeight = buffer.readFloat(); + int fontFamilyId = buffer.readInt(); + operations.add(new TextLayout(null, componentId, animationId, textId, color, fontSize, + fontStyle, fontWeight, fontFamilyId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", id(), name()) + .description("Text layout implementation.\n\n") + .field(INT, "COMPONENT_ID", "unique id for this component") + .field(INT, "ANIMATION_ID", "id used to match components," + + " for animation purposes") + .field(INT, "COLOR", "text color") + .field(FLOAT, "FONT_SIZE", "font size") + .field(INT, "FONT_STYLE", "font style (0 = normal, 1 = italic)") + .field(FLOAT, "FONT_WEIGHT", "font weight (1-1000, normal = 400)") + .field(INT, "FONT_FAMILY_ID", "font family id"); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mComponentId, mAnimationId, + mTextId, mColor, mFontSize, mFontStyle, + mFontWeight, mFontFamilyId); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java index 6f48aee845c6..f3e6a8e0aa22 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BackgroundModifierOperation.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; @@ -30,10 +32,8 @@ import java.util.List; * Component size-aware background draw */ public class BackgroundModifierOperation extends DecoratorModifierOperation { - - public static final BackgroundModifierOperation.Companion COMPANION = - new BackgroundModifierOperation.Companion(); - + private static final int OP_CODE = Operations.MODIFIER_BACKGROUND; + private static final String CLASS_NAME = "BackgroundModifierOperation"; float mX; float mY; float mWidth; @@ -62,7 +62,7 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mX, mY, mWidth, mHeight, mR, mG, mB, mA, mShapeType); + apply(buffer, mX, mY, mWidth, mHeight, mR, mG, mB, mA, mShapeType); } @Override @@ -84,55 +84,50 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { return "BackgroundModifierOperation(" + mWidth + " x " + mHeight + ")"; } - public static class Companion implements CompanionOperation { - - - @Override - public String name() { - return "OrigamiBackground"; - } + public static String name() { + return CLASS_NAME; + } - @Override - public int id() { - return Operations.MODIFIER_BACKGROUND; - } + public static int id() { + return OP_CODE; + } - public void apply(WireBuffer buffer, float x, float y, float width, float height, - float r, float g, float b, float a, int shapeType) { - buffer.start(Operations.MODIFIER_BACKGROUND); - buffer.writeFloat(x); - buffer.writeFloat(y); - buffer.writeFloat(width); - buffer.writeFloat(height); - buffer.writeFloat(r); - buffer.writeFloat(g); - buffer.writeFloat(b); - buffer.writeFloat(a); - // shape type - buffer.writeInt(shapeType); - } + public static void apply(WireBuffer buffer, float x, float y, float width, float height, + float r, float g, float b, float a, int shapeType) { + buffer.start(OP_CODE); + buffer.writeFloat(x); + buffer.writeFloat(y); + buffer.writeFloat(width); + buffer.writeFloat(height); + buffer.writeFloat(r); + buffer.writeFloat(g); + buffer.writeFloat(b); + buffer.writeFloat(a); + // shape type + buffer.writeInt(shapeType); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float x = buffer.readFloat(); - float y = buffer.readFloat(); - float width = buffer.readFloat(); - float height = buffer.readFloat(); - float r = buffer.readFloat(); - float g = buffer.readFloat(); - float b = buffer.readFloat(); - float a = buffer.readFloat(); - // shape type - int shapeType = buffer.readInt(); - operations.add(new BackgroundModifierOperation(x, y, width, height, - r, g, b, a, shapeType)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + float x = buffer.readFloat(); + float y = buffer.readFloat(); + float width = buffer.readFloat(); + float height = buffer.readFloat(); + float r = buffer.readFloat(); + float g = buffer.readFloat(); + float b = buffer.readFloat(); + float a = buffer.readFloat(); + // shape type + int shapeType = buffer.readInt(); + operations.add(new BackgroundModifierOperation(x, y, width, height, + r, g, b, a, shapeType)); } + @Override public void paint(PaintContext context) { context.savePaint(); mPaint.reset(); + mPaint.setStyle(PaintBundle.STYLE_FILL); mPaint.setColor(mR, mG, mB, mA); context.applyPaint(mPaint); if (mShapeType == ShapeType.RECTANGLE) { @@ -143,4 +138,20 @@ public class BackgroundModifierOperation extends DecoratorModifierOperation { } context.restorePaint(); } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Modifier Operations", + OP_CODE, + CLASS_NAME) + .description("define the Background Modifier") + .field(FLOAT, "x", "") + .field(FLOAT, "y", "") + .field(FLOAT, "width", "") + .field(FLOAT, "height", "") + .field(FLOAT, "r", "") + .field(FLOAT, "g", "") + .field(FLOAT, "b", "") + .field(FLOAT, "a", "") + .field(FLOAT, "shapeType", ""); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java index 0b9c01b93896..4c83ec4e627e 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/BorderModifierOperation.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; @@ -30,9 +32,8 @@ import java.util.List; * Component size-aware border draw */ public class BorderModifierOperation extends DecoratorModifierOperation { - - public static final BorderModifierOperation.Companion COMPANION = - new BorderModifierOperation.Companion(); + private static final int OP_CODE = Operations.MODIFIER_BORDER; + public static final String CLASS_NAME = "BorderModifierOperation"; float mX; float mY; @@ -75,7 +76,7 @@ public class BorderModifierOperation extends DecoratorModifierOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mX, mY, mWidth, mHeight, mBorderWidth, mRoundedCorner, + apply(buffer, mX, mY, mWidth, mHeight, mBorderWidth, mRoundedCorner, mR, mG, mB, mA, mShapeType); } @@ -92,56 +93,52 @@ public class BorderModifierOperation extends DecoratorModifierOperation { + "color(" + mR + "," + mG + "," + mB + "," + mA + ")"; } - public static class Companion implements CompanionOperation { - @Override - public String name() { - return "BorderModifier"; - } + public static String name() { + return CLASS_NAME; + } - @Override - public int id() { - return Operations.MODIFIER_BORDER; - } + public static int id() { + return OP_CODE; + } - public void apply(WireBuffer buffer, float x, float y, float width, float height, - float borderWidth, float roundedCorner, - float r, float g, float b, float a, - int shapeType) { - buffer.start(Operations.MODIFIER_BORDER); - buffer.writeFloat(x); - buffer.writeFloat(y); - buffer.writeFloat(width); - buffer.writeFloat(height); - buffer.writeFloat(borderWidth); - buffer.writeFloat(roundedCorner); - buffer.writeFloat(r); - buffer.writeFloat(g); - buffer.writeFloat(b); - buffer.writeFloat(a); - // shape type - buffer.writeInt(shapeType); - } + public static void apply(WireBuffer buffer, float x, float y, float width, float height, + float borderWidth, float roundedCorner, + float r, float g, float b, float a, + int shapeType) { + buffer.start(OP_CODE); + buffer.writeFloat(x); + buffer.writeFloat(y); + buffer.writeFloat(width); + buffer.writeFloat(height); + buffer.writeFloat(borderWidth); + buffer.writeFloat(roundedCorner); + buffer.writeFloat(r); + buffer.writeFloat(g); + buffer.writeFloat(b); + buffer.writeFloat(a); + // shape type + buffer.writeInt(shapeType); + } - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float x = buffer.readFloat(); - float y = buffer.readFloat(); - float width = buffer.readFloat(); - float height = buffer.readFloat(); - float bw = buffer.readFloat(); - float rc = buffer.readFloat(); - float r = buffer.readFloat(); - float g = buffer.readFloat(); - float b = buffer.readFloat(); - float a = buffer.readFloat(); - // shape type - int shapeType = buffer.readInt(); - operations.add(new BorderModifierOperation(x, y, width, height, bw, - rc, r, g, b, a, shapeType)); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + float x = buffer.readFloat(); + float y = buffer.readFloat(); + float width = buffer.readFloat(); + float height = buffer.readFloat(); + float bw = buffer.readFloat(); + float rc = buffer.readFloat(); + float r = buffer.readFloat(); + float g = buffer.readFloat(); + float b = buffer.readFloat(); + float a = buffer.readFloat(); + // shape type + int shapeType = buffer.readInt(); + operations.add(new BorderModifierOperation(x, y, width, height, bw, + rc, r, g, b, a, shapeType)); } + @Override public void paint(PaintContext context) { context.savePaint(); @@ -161,4 +158,22 @@ public class BorderModifierOperation extends DecoratorModifierOperation { } context.restorePaint(); } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Modifier Operations", + OP_CODE, + CLASS_NAME) + .description("define the Border Modifier") + .field(FLOAT, "x", "") + .field(FLOAT, "y", "") + .field(FLOAT, "width", "") + .field(FLOAT, "height", "") + .field(FLOAT, "borderWidth", "") + .field(FLOAT, "roundedCorner", "") + .field(FLOAT, "r", "") + .field(FLOAT, "g", "") + .field(FLOAT, "b", "") + .field(FLOAT, "a", "") + .field(FLOAT, "shapeType", ""); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java index 30357af6275e..7cb7925692ab 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ClipRectModifierOperation.java @@ -15,12 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; @@ -29,14 +31,11 @@ import java.util.List; * Support modifier clip with a rectangle */ public class ClipRectModifierOperation extends DecoratorModifierOperation { - - public static final ClipRectModifierOperation.Companion COMPANION = - new ClipRectModifierOperation.Companion(); - + public static final String CLASS_NAME = "ClipRectModifierOperation"; + private static final int OP_CODE = Operations.MODIFIER_CLIP_RECT; float mWidth; float mHeight; - @Override public void paint(PaintContext context) { context.clipRect(0f, 0f, mWidth, mHeight); @@ -49,7 +48,8 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation { } @Override - public void onClick(float x, float y) { + public void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y) { // nothing } @@ -61,28 +61,32 @@ public class ClipRectModifierOperation extends DecoratorModifierOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer); + apply(buffer); + } + + public static String name() { + return CLASS_NAME; } - public static class Companion implements CompanionOperation { - @Override - public String name() { - return "ClipRectModifier"; - } + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer) { + buffer.start(OP_CODE); + } - @Override - public int id() { - return Operations.MODIFIER_CLIP_RECT; - } - public void apply(WireBuffer buffer) { - buffer.start(Operations.MODIFIER_CLIP_RECT); - } + public static void read(WireBuffer buffer, List<Operation> operations) { + operations.add(new ClipRectModifierOperation()); + } + - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - operations.add(new ClipRectModifierOperation()); - } + public static void documentation(DocumentationBuilder doc) { + doc.operation("Canvas Operations", + OP_CODE, + CLASS_NAME) + .description("Draw the specified round-rect"); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java index 2ef0b9d7a56f..f55c94126001 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentModifiers.java @@ -15,12 +15,15 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; +import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; import com.android.internal.widget.remotecompose.core.operations.MatrixRestore; import com.android.internal.widget.remotecompose.core.operations.MatrixSave; +import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; @@ -37,6 +40,23 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo } @Override + public void apply(RemoteContext context) { + super.apply(context); + for (ModifierOperation op : mList) { + op.apply(context); + } + } + + @Override + public String toString() { + String str = "ComponentModifiers \n"; + for (ModifierOperation modifierOperation : mList) { + str += " " + modifierOperation.toString() + "\n"; + } + return str; + } + + @Override public void write(WireBuffer buffer) { // nothing } @@ -70,7 +90,11 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo if (op instanceof MatrixSave || op instanceof MatrixRestore) { continue; } - if (op instanceof PaintOperation) { + if (op instanceof ClickModifierOperation) { + context.translate(-tx, -ty); + ((ClickModifierOperation) op).paint(context); + context.translate(tx, ty); + } else if (op instanceof PaintOperation) { ((PaintOperation) op).paint(context); } } @@ -89,7 +113,9 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo w -= pop.getLeft() + pop.getRight(); h -= pop.getTop() + pop.getBottom(); } - if (op instanceof DecoratorComponent) { + if (op instanceof ClickModifierOperation) { + ((DecoratorComponent) op).layout(context, width, height); + } else if (op instanceof DecoratorComponent) { ((DecoratorComponent) op).layout(context, w, h); } } @@ -99,10 +125,11 @@ public class ComponentModifiers extends PaintOperation implements DecoratorCompo mList.addAll(operations); } - public void onClick(float x, float y) { + public void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y) { for (ModifierOperation op : mList) { if (op instanceof DecoratorComponent) { - ((DecoratorComponent) op).onClick(x, y); + ((DecoratorComponent) op).onClick(context, document, component, x, y); } } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java new file mode 100644 index 000000000000..9c190730706a --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ComponentVisibilityOperation.java @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.VariableSupport; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent; +import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponent; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +/** + * Allows setting visibility on a component + */ +public class ComponentVisibilityOperation implements ModifierOperation, + VariableSupport, DecoratorComponent { + private static final int OP_CODE = Operations.MODIFIER_VISIBILITY; + + int mVisibilityId; + Component.Visibility mVisibility = Component.Visibility.VISIBLE; + private LayoutComponent mParent; + + public ComponentVisibilityOperation(int id) { + mVisibilityId = id; + } + + @Override + public String toString() { + return "ComponentVisibilityOperation(" + mVisibilityId + ")"; + } + + public String serializedName() { + return "COMPONENT_VISIBILITY"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, serializedName() + " = " + mVisibilityId); + } + + @Override + public void apply(RemoteContext context) { + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + + @Override + public void write(WireBuffer buffer) { + + } + + public static void apply(WireBuffer buffer, int valueId) { + buffer.start(OP_CODE); + buffer.writeInt(valueId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int valueId = buffer.readInt(); + operations.add(new ComponentVisibilityOperation(valueId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, "ComponentVisibility") + .description("This operation allows setting a component" + + "visibility from a provided value") + .field(INT, "VALUE_ID", "Value ID representing the visibility"); + } + + @Override + public void registerListening(RemoteContext context) { + context.listensTo(mVisibilityId, this); + } + + @Override + public void updateVariables(RemoteContext context) { + int visibility = context.getInteger(mVisibilityId); + if (visibility == Component.Visibility.VISIBLE.ordinal()) { + mVisibility = Component.Visibility.VISIBLE; + } else if (visibility == Component.Visibility.GONE.ordinal()) { + mVisibility = Component.Visibility.GONE; + } else if (visibility == Component.Visibility.INVISIBLE.ordinal()) { + mVisibility = Component.Visibility.INVISIBLE; + } else { + mVisibility = Component.Visibility.GONE; + } + if (mParent != null) { + mParent.setVisibility(mVisibility); + } + } + + public void setParent(LayoutComponent parent) { + mParent = parent; + } + + @Override + public void layout(RemoteContext context, float width, float height) { + + } + + @Override + public void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y) { + + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java index bf9b27b647db..70a572845c23 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DecoratorModifierOperation.java @@ -15,7 +15,10 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; +import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.PaintOperation; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent; /** @@ -26,7 +29,8 @@ public abstract class DecoratorModifierOperation extends PaintOperation implements ModifierOperation, DecoratorComponent { @Override - public void onClick(float x, float y) { + public void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y) { // nothing } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java index 04e943105ef0..f085ffb6c73b 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/DimensionModifierOperation.java @@ -15,33 +15,33 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import com.android.internal.widget.remotecompose.core.CompanionOperation; -import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.RemoteContext; -import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.VariableSupport; +import com.android.internal.widget.remotecompose.core.operations.Utils; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; -import java.util.List; - /** * Base class for dimension modifiers */ -public class DimensionModifierOperation implements ModifierOperation { - - public static final DimensionModifierOperation.Companion COMPANION = - new DimensionModifierOperation.Companion(0, "DIMENSION"); +public abstract class DimensionModifierOperation implements ModifierOperation, VariableSupport { public enum Type { EXACT, FILL, WRAP, WEIGHT, INTRINSIC_MIN, INTRINSIC_MAX; static Type fromInt(int value) { switch (value) { - case 0: return EXACT; - case 1: return FILL; - case 2: return WRAP; - case 3: return WEIGHT; - case 4: return INTRINSIC_MIN; - case 5: return INTRINSIC_MAX; + case 0: + return EXACT; + case 1: + return FILL; + case 2: + return WRAP; + case 3: + return WEIGHT; + case 4: + return INTRINSIC_MIN; + case 5: + return INTRINSIC_MAX; } return EXACT; } @@ -49,10 +49,11 @@ public class DimensionModifierOperation implements ModifierOperation { Type mType = Type.EXACT; float mValue = Float.NaN; + float mOutValue = Float.NaN; public DimensionModifierOperation(Type type, float value) { mType = type; - mValue = value; + mOutValue = mValue = value; } public DimensionModifierOperation(Type type) { @@ -63,6 +64,25 @@ public class DimensionModifierOperation implements ModifierOperation { this(Type.EXACT, value); } + @Override + public void updateVariables(RemoteContext context) { + if (mType == Type.EXACT) { + mOutValue = (Float.isNaN(mValue)) + ? context.getFloat(Utils.idFromNan(mValue)) : mValue; + } + + } + + @Override + public void registerListening(RemoteContext context) { + if (mType == Type.EXACT) { + if (Float.isNaN(mValue)) { + context.listensTo(Utils.idFromNan(mValue), this); + } + } + + } + public boolean hasWeight() { return mType == Type.WEIGHT; @@ -81,17 +101,13 @@ public class DimensionModifierOperation implements ModifierOperation { } public float getValue() { - return mValue; + return mOutValue; } public void setValue(float value) { - this.mValue = value; + mOutValue = mValue = value; } - @Override - public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mType.ordinal(), mValue); - } public String serializedName() { return "DIMENSION"; @@ -117,43 +133,4 @@ public class DimensionModifierOperation implements ModifierOperation { public String toString() { return "DimensionModifierOperation(" + mValue + ")"; } - - public static class Companion implements CompanionOperation { - - int mOperation; - String mName; - - public Companion(int operation, String name) { - mOperation = operation; - mName = name; - } - - @Override - public String name() { - return mName; - } - - @Override - public int id() { - return mOperation; - } - - public void apply(WireBuffer buffer, int type, float value) { - buffer.start(mOperation); - buffer.writeInt(type); - buffer.writeFloat(value); - } - - public Operation construct(Type type, float value) { - return null; - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - Type type = Type.fromInt(buffer.readInt()); - float value = buffer.readFloat(); - Operation op = construct(type, value); - operations.add(op); - } - } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java index 81173c3e4343..a0f576a412f8 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HeightModifierOperation.java @@ -15,21 +15,48 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; /** * Set the height dimension on a component */ public class HeightModifierOperation extends DimensionModifierOperation { + private static final int OP_CODE = Operations.MODIFIER_HEIGHT; + public static final String CLASS_NAME = "HeightModifierOperation"; + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } + + public static void apply(WireBuffer buffer, int type, float value) { + buffer.start(OP_CODE); + buffer.writeInt(type); + buffer.writeFloat(value); + } - public static final DimensionModifierOperation.Companion COMPANION = - new DimensionModifierOperation.Companion(Operations.MODIFIER_HEIGHT, "WIDTH") { - @Override - public Operation construct(DimensionModifierOperation.Type type, float value) { - return new HeightModifierOperation(type, value); - } - }; + public static void read(WireBuffer buffer, List<Operation> operations) { + Type type = Type.fromInt(buffer.readInt()); + float value = buffer.readFloat(); + Operation op = new HeightModifierOperation(type, value); + operations.add(op); + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mType.ordinal(), mValue); + } public HeightModifierOperation(Type type, float value) { super(type, value); @@ -52,4 +79,13 @@ public class HeightModifierOperation extends DimensionModifierOperation { public String serializedName() { return "HEIGHT"; } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Modifier Operations", + OP_CODE, + CLASS_NAME) + .description("define the animation") + .field(INT, "type", "") + .field(FLOAT, "value", ""); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java new file mode 100644 index 000000000000..d405b2b2a6a7 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostActionOperation.java @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +/** + * Capture a host action information. This can be triggered on eg. a click. + */ +public class HostActionOperation implements ActionOperation { + private static final int OP_CODE = Operations.HOST_ACTION; + + int mActionId = -1; + + public HostActionOperation(int id) { + mActionId = id; + } + + @Override + public String toString() { + return "HostActionOperation(" + mActionId + ")"; + } + + public int getActionId() { + return mActionId; + } + + public String serializedName() { + return "HOST_ACTION"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, serializedName() + " = " + mActionId); + } + + @Override + public void apply(RemoteContext context) { + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + + @Override + public void write(WireBuffer buffer) { + + } + + @Override + public void runAction(RemoteContext context, CoreDocument document, + Component component, float x, float y) { + context.runAction(mActionId, ""); + } + + public static void apply(WireBuffer buffer, int actionId) { + buffer.start(OP_CODE); + buffer.writeInt(actionId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int actionId = buffer.readInt(); + operations.add(new HostActionOperation(actionId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, "HostAction") + .description("Host action. This operation represents a host action") + .field(INT, "ACTION_ID", "Host Action ID"); + } + +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java new file mode 100644 index 000000000000..35f202bd6ed3 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/HostNamedActionOperation.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +/** + * Capture a host action information. This can be triggered on eg. a click. + */ +public class HostNamedActionOperation implements ActionOperation { + private static final int OP_CODE = Operations.HOST_NAMED_ACTION; + + int mTextId = -1; + + public HostNamedActionOperation(int id) { + mTextId = id; + } + + @Override + public String toString() { + return "HostNamedActionOperation(" + mTextId + ")"; + } + + public String serializedName() { + return "HOST_NAMED_ACTION"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, serializedName() + " = " + mTextId); + } + + @Override + public void apply(RemoteContext context) { + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + + @Override + public void write(WireBuffer buffer) { + + } + + @Override + public void runAction(RemoteContext context, CoreDocument document, + Component component, float x, float y) { + context.runNamedAction(mTextId); + } + + public static void apply(WireBuffer buffer, int textId) { + buffer.start(OP_CODE); + buffer.writeInt(textId); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int textId = buffer.readInt(); + operations.add(new HostNamedActionOperation(textId)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, "HostNamedAction") + .description("Host Named action. This operation represents a host action") + .field(INT, "TEXT_ID", "Named Host Action Text ID"); + } + +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java index 5ea6a97dd127..668db3b71027 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/PaddingModifierOperation.java @@ -15,11 +15,13 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; import java.util.List; @@ -29,10 +31,8 @@ import java.util.List; * Padding modifiers can be chained and will impact following modifiers. */ public class PaddingModifierOperation implements ModifierOperation { - - public static final PaddingModifierOperation.Companion COMPANION = - new PaddingModifierOperation.Companion(); - + private static final int OP_CODE = Operations.MODIFIER_PADDING; + public static final String CLASS_NAME = "PaddingModifierOperation"; float mLeft; float mTop; float mRight; @@ -79,7 +79,7 @@ public class PaddingModifierOperation implements ModifierOperation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mLeft, mTop, mRight, mBottom); + apply(buffer, mLeft, mTop, mRight, mBottom); } @Override @@ -103,33 +103,39 @@ public class PaddingModifierOperation implements ModifierOperation { + ", " + mRight + ", " + mBottom + ")"; } - public static class Companion implements CompanionOperation { - @Override - public String name() { - return "PaddingModifierOperation"; - } - - @Override - public int id() { - return Operations.MODIFIER_PADDING; - } - - public void apply(WireBuffer buffer, - float left, float top, float right, float bottom) { - buffer.start(Operations.MODIFIER_PADDING); - buffer.writeFloat(left); - buffer.writeFloat(top); - buffer.writeFloat(right); - buffer.writeFloat(bottom); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - float left = buffer.readFloat(); - float top = buffer.readFloat(); - float right = buffer.readFloat(); - float bottom = buffer.readFloat(); - operations.add(new PaddingModifierOperation(left, top, right, bottom)); - } + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return Operations.MODIFIER_PADDING; + } + + public static void apply(WireBuffer buffer, + float left, float top, float right, float bottom) { + buffer.start(Operations.MODIFIER_PADDING); + buffer.writeFloat(left); + buffer.writeFloat(top); + buffer.writeFloat(right); + buffer.writeFloat(bottom); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + float left = buffer.readFloat(); + float top = buffer.readFloat(); + float right = buffer.readFloat(); + float bottom = buffer.readFloat(); + operations.add(new PaddingModifierOperation(left, top, right, bottom)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Modifier Operations", + OP_CODE, + CLASS_NAME) + .description("define the Padding Modifier") + .field(FLOAT, "left", "") + .field(FLOAT, "top", "") + .field(FLOAT, "right", "") + .field(FLOAT, "bottom", ""); } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java index 9c57c6ab4e89..9b662bf5eca7 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/RoundedClipRectModifierOperation.java @@ -15,30 +15,72 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; + +import com.android.internal.widget.remotecompose.core.CoreDocument; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import com.android.internal.widget.remotecompose.core.operations.DrawBase4; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.DecoratorComponent; import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; +import java.util.List; + /** - * Support clip with a rectangle + * Support clip with a rounded rectangle */ public class RoundedClipRectModifierOperation extends DrawBase4 implements ModifierOperation, DecoratorComponent { + public static final int OP_CODE = Operations.MODIFIER_ROUNDED_CLIP_RECT; + public static final String CLASS_NAME = "RoundedClipRectModifierOperation"; + + public static void read(WireBuffer buffer, List<Operation> operations) { + Maker m = RoundedClipRectModifierOperation::new; + read(m, buffer, operations); + } + + public static int id() { + return OP_CODE; + } + + public static String name() { + return CLASS_NAME; + } + + + protected void write(WireBuffer buffer, + float v1, + float v2, + float v3, + float v4) { + apply(buffer, v1, v2, v3, v4); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Modifier Operations", + id(), + "RoundedClipRectModifierOperation") + .description("clip with rectangle") + .field(FLOAT, "topStart", + "The topStart radius of the rectangle to " + + "intersect with the current clip") + .field(FLOAT, "topEnd", + "The topEnd radius of the rectangle to " + + "intersect with the current clip") + .field(FLOAT, "bottomStart", + "The bottomStart radius of the rectangle to " + + "intersect with the current clip") + .field(FLOAT, "bottomEnd", + "The bottomEnd radius of the rectangle to " + + "intersect with the current clip"); + } + - public static final Companion COMPANION = - new Companion(Operations.MODIFIER_ROUNDED_CLIP_RECT) { - @Override - public Operation construct(float x1, - float y1, - float x2, - float y2) { - return new RoundedClipRectModifierOperation(x1, y1, x2, y2); - } - }; float mWidth; float mHeight; @@ -49,7 +91,7 @@ public class RoundedClipRectModifierOperation extends DrawBase4 float bottomStart, float bottomEnd) { super(topStart, topEnd, bottomStart, bottomEnd); - mName = "ModifierRoundedClipRect"; + mName = CLASS_NAME; } @Override @@ -64,15 +106,33 @@ public class RoundedClipRectModifierOperation extends DrawBase4 } @Override - public void onClick(float x, float y) { + public void onClick(RemoteContext context, CoreDocument document, + Component component, float x, float y) { // nothing } @Override public void serializeToString(int indent, StringSerializer serializer) { serializer.append( - indent, "ROUND_CLIP = [" + mWidth + ", " + mHeight + indent, "ROUNDED_CLIP_RECT = [" + mWidth + ", " + mHeight + ", " + mX1 + ", " + mY1 + ", " + mX2 + ", " + mY2 + "]"); } + + /** + * Writes out the rounded rect clip to the buffer + * + * @param buffer buffer to write to + * @param topStart topStart radius + * @param topEnd topEnd radius + * @param bottomStart bottomStart radius + * @param bottomEnd bottomEnd radius + */ + public static void apply(WireBuffer buffer, + float topStart, + float topEnd, + float bottomStart, + float bottomEnd) { + write(buffer, OP_CODE, topStart, topEnd, bottomStart, bottomEnd); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java new file mode 100644 index 000000000000..3f19c9b1bc4b --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueIntegerChangeActionOperation.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +/** + * Apply a value change on an integer variable. + */ +public class ValueIntegerChangeActionOperation implements ActionOperation { + private static final int OP_CODE = Operations.VALUE_INTEGER_CHANGE_ACTION; + + int mTargetValueId = -1; + int mValue = -1; + + public ValueIntegerChangeActionOperation(int id, int value) { + mTargetValueId = id; + mValue = value; + } + + @Override + public String toString() { + return "ValueChangeActionOperation(" + mTargetValueId + ")"; + } + + public String serializedName() { + return "VALUE_INTEGER_CHANGE"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, serializedName() + + " = " + mTargetValueId + " -> " + mValue); + } + + @Override + public void apply(RemoteContext context) { + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + + @Override + public void write(WireBuffer buffer) { + + } + + @Override + public void runAction(RemoteContext context, CoreDocument document, + Component component, float x, float y) { + context.overrideInteger(mTargetValueId, mValue); + } + + public static void apply(WireBuffer buffer, int valueId, int value) { + buffer.start(OP_CODE); + buffer.writeInt(valueId); + buffer.writeInt(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int valueId = buffer.readInt(); + int value = buffer.readInt(); + operations.add(new ValueIntegerChangeActionOperation(valueId, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, "ValueIntegerChangeActionOperation") + .description("ValueIntegerChange action. " + + " This operation represents a value change for the given id") + .field(INT, "TARGET_VALUE_ID", "Value ID") + .field(INT, "VALUE", "integer value to be assigned to the target") + ; + } + +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java new file mode 100644 index 000000000000..e2542e529383 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/ValueStringChangeActionOperation.java @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + +import com.android.internal.widget.remotecompose.core.CoreDocument; +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; +import com.android.internal.widget.remotecompose.core.operations.layout.ActionOperation; +import com.android.internal.widget.remotecompose.core.operations.layout.Component; +import com.android.internal.widget.remotecompose.core.operations.utilities.StringSerializer; + +import java.util.List; + +/** + * Apply a value change on a string variable. + */ +public class ValueStringChangeActionOperation implements ActionOperation { + private static final int OP_CODE = Operations.VALUE_STRING_CHANGE_ACTION; + + int mTargetValueId = -1; + int mValueId = -1; + + public ValueStringChangeActionOperation(int id, int value) { + mTargetValueId = id; + mValueId = value; + } + + @Override + public String toString() { + return "ValueChangeActionOperation(" + mTargetValueId + ")"; + } + + public int getActionId() { + return mTargetValueId; + } + + public String serializedName() { + return "VALUE_CHANGE"; + } + + @Override + public void serializeToString(int indent, StringSerializer serializer) { + serializer.append(indent, serializedName() + " = " + mTargetValueId + " -> " + mValueId); + } + + @Override + public void apply(RemoteContext context) { + } + + @Override + public String deepToString(String indent) { + return (indent != null ? indent : "") + toString(); + } + + @Override + public void write(WireBuffer buffer) { + + } + + @Override + public void runAction(RemoteContext context, CoreDocument document, + Component component, float x, float y) { + context.overrideText(mTargetValueId, mValueId); + } + + public static void apply(WireBuffer buffer, int valueId, int value) { + buffer.start(OP_CODE); + buffer.writeInt(valueId); + buffer.writeInt(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int valueId = buffer.readInt(); + int value = buffer.readInt(); + operations.add(new ValueStringChangeActionOperation(valueId, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Layout Operations", OP_CODE, "ValueStringChangeActionOperation") + .description("ValueStrin gChange action. " + + " This operation represents a String change (referenced by id) " + + "for the given string id") + .field(INT, "TARGET_ID", "Target Value ID") + .field(INT, "VALUE_ID", "Value ID to be assigned to the target " + + "value as a string") + ; + } + +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java index c46c8d70c0b1..7fd5e51add18 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/layout/modifiers/WidthModifierOperation.java @@ -15,26 +15,54 @@ */ package com.android.internal.widget.remotecompose.core.operations.layout.modifiers; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.FLOAT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; /** * Set the width dimension on a component */ public class WidthModifierOperation extends DimensionModifierOperation { + private static final int OP_CODE = Operations.MODIFIER_WIDTH; + public static final String CLASS_NAME = "WidthModifierOperation"; + + + public static String name() { + return CLASS_NAME; + } + + public static int id() { + return OP_CODE; + } - public static final DimensionModifierOperation.Companion COMPANION = - new DimensionModifierOperation.Companion(Operations.MODIFIER_WIDTH, "WIDTH") { - @Override - public Operation construct(DimensionModifierOperation.Type type, float value) { - return new WidthModifierOperation(type, value); - } - }; + public static void apply(WireBuffer buffer, int type, float value) { + buffer.start(OP_CODE); + buffer.writeInt(type); + buffer.writeFloat(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + Type type = Type.fromInt(buffer.readInt()); + float value = buffer.readFloat(); + Operation op = new WidthModifierOperation(type, value); + operations.add(op); + } public WidthModifierOperation(Type type, float value) { super(type, value); } + @Override + public void write(WireBuffer buffer) { + apply(buffer, mType.ordinal(), mValue); + } + public WidthModifierOperation(Type type) { super(type); } @@ -52,4 +80,13 @@ public class WidthModifierOperation extends DimensionModifierOperation { public String serializedName() { return "WIDTH"; } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Modifier Operations", + OP_CODE, + CLASS_NAME) + .description("define the animation") + .field(INT, "type", "") + .field(FLOAT, "value", ""); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java index 818619223fb3..6c8049a97f1e 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/paint/PaintBundle.java @@ -714,7 +714,7 @@ public class PaintBundle { * @param a alpha (0.0 to 1.0) */ public void setColor(float r, float g, float b, float a) { - setColor((int) r * 255, (int) g * 255, (int) b * 255, (int) a * 255); + setColor((int) (r * 255), (int) (g * 255), (int) (b * 255), (int) (a * 255)); } /** diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java index 616048d424ec..5b295eb700ec 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/AnimatedFloatExpression.java @@ -15,12 +15,15 @@ */ package com.android.internal.widget.remotecompose.core.operations.utilities; +import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.ID_REGION_ARRAY; +import static com.android.internal.widget.remotecompose.core.operations.utilities.NanMap.ID_REGION_MASK; + /** * high performance floating point expression evaluator used in animation */ public class AnimatedFloatExpression { static IntMap<String> sNames = new IntMap<>(); - public static final int OFFSET = 0x100; + public static final int OFFSET = 0x310_000; public static final float ADD = asNan(OFFSET + 1); public static final float SUB = asNan(OFFSET + 2); public static final float MUL = asNan(OFFSET + 3); @@ -57,11 +60,18 @@ public class AnimatedFloatExpression { public static final float CEIL = asNan(OFFSET + 31); - public static final float LAST_OP = 31; + // Array ops + public static final float A_DEREF = asNan(OFFSET + 32); + public static final float A_MAX = asNan(OFFSET + 33); + public static final float A_MIN = asNan(OFFSET + 34); + public static final float A_SUM = asNan(OFFSET + 35); + public static final float A_AVG = asNan(OFFSET + 36); + public static final float A_LEN = asNan(OFFSET + 37); + public static final int LAST_OP = OFFSET + 37; - public static final float VAR1 = asNan(OFFSET + 27); - public static final float VAR2 = asNan(OFFSET + 28); + public static final float VAR1 = asNan(OFFSET + 38); + public static final float VAR2 = asNan(OFFSET + 39); // TODO CLAMP, CBRT, DEG, RAD, EXPM1, CEIL, FLOOR private static final float FP_PI = (float) Math.PI; @@ -71,16 +81,23 @@ public class AnimatedFloatExpression { float[] mStack; float[] mLocalStack = new float[128]; float[] mVar; + CollectionsAccess mCollectionsAccess; /** * is float a math operator + * * @param v * @return */ public static boolean isMathOperator(float v) { if (Float.isNaN(v)) { int pos = fromNaN(v); - return pos > OFFSET && pos <= OFFSET + LAST_OP; + // a data variable is a type of math operator for expressions + // it dereference to a value + if (NanMap.isDataVariable(v)) { + return false; + } + return pos > OFFSET && pos <= LAST_OP; } return false; } @@ -89,8 +106,21 @@ public class AnimatedFloatExpression { int eval(int sp); } + /** * Evaluate a float expression + * This system works by processing an Array of float (float[]) + * in reverse polish notation (rpn) + * Within that array some floats are commands + * they are encoded within an NaN. + * After processing the array the last item on the array is returned. + * The system supports variables allowing expressions like. + * sin(sqrt(x*x+y*y))/sqrt(x*x+y*y) + * Where x & y are passe as parameters + * Examples: + * (1+2) (1, 2, ADD) adds two numbers returns 3 + * eval(new float[]{ Var1, Var * } + * * @param exp * @param var * @return @@ -110,8 +140,46 @@ public class AnimatedFloatExpression { return mStack[sp]; } + + /** + * Evaluate a float expression + * + * @param ca + * @param exp + * @param var + * @return + */ + public float eval(CollectionsAccess ca, float[] exp, float... var) { + mStack = exp; + mVar = var; + mCollectionsAccess = ca; + int sp = -1; + + for (int i = 0; i < mStack.length; i++) { + float v = mStack[i]; + if (Float.isNaN(v)) { + int id = fromNaN(v); + if ((id & ID_REGION_MASK) != ID_REGION_ARRAY) { + sp = mOps[id - OFFSET].eval(sp); + } else { + mStack[++sp] = v; + } + } else { + mStack[++sp] = v; + } + } + return mStack[sp]; + } + + + private int dereference(CollectionsAccess ca, int id, int sp) { + mStack[sp] = ca.getFloatValue(id, (int) (mStack[sp])); + return sp; + } + /** * Evaluate a float expression + * * @param exp * @param len * @param var @@ -135,6 +203,7 @@ public class AnimatedFloatExpression { /** * Evaluate a float expression + * * @param exp * @param var * @return @@ -283,6 +352,58 @@ public class AnimatedFloatExpression { mStack[sp] = (float) Math.ceil(mStack[sp]); return sp; }, + (sp) -> { // A_DEREF + int id = fromNaN(mStack[sp]); + mStack[sp] = mCollectionsAccess.getFloatValue(id, (int) (mStack[sp - 1])); + return sp - 1; + }, + (sp) -> { // A_MAX + int id = fromNaN(mStack[sp]); + float[] array = mCollectionsAccess.getFloats(id); + float max = array[0]; + for (int i = 1; i < array.length; i++) { + max = Math.max(max, array[i]); + } + mStack[sp] = max; + return sp; + }, + (sp) -> { // A_MIN + int id = fromNaN(mStack[sp]); + float[] array = mCollectionsAccess.getFloats(id); + float max = array[0]; + for (int i = 1; i < array.length; i++) { + max = Math.max(max, array[i]); + } + mStack[sp] = max; + return sp; + }, + (sp) -> { // A_SUM + int id = fromNaN(mStack[sp]); + float[] array = mCollectionsAccess.getFloats(id); + float sum = 0; + for (int i = 0; i < array.length; i++) { + sum += array[i]; + } + mStack[sp] = sum; + return sp; + }, + (sp) -> { // A_AVG + int id = fromNaN(mStack[sp]); + float[] array = mCollectionsAccess.getFloats(id); + float sum = 0; + for (int i = 0; i < array.length; i++) { + sum += array[i]; + } + mStack[sp] = sum / array.length; + return sp; + }, + (sp) -> { // A_LEN + int id = fromNaN(mStack[sp]); + mStack[sp] = mCollectionsAccess.getFloatsLength(id); + return sp; + }, + + (sp) -> { // first var = mStack[sp] = mVar[0]; return sp; @@ -331,6 +452,14 @@ public class AnimatedFloatExpression { sNames.put(k++, "deg"); sNames.put(k++, "rad"); sNames.put(k++, "ceil"); + + sNames.put(k++, "A_DEREF"); + sNames.put(k++, "A_MAX"); + sNames.put(k++, "A_MIN"); + sNames.put(k++, "A_SUM"); + sNames.put(k++, "A_AVG"); + sNames.put(k++, "A_LEN"); + sNames.put(k++, "a[0]"); sNames.put(k++, "a[1]"); sNames.put(k++, "a[2]"); @@ -338,6 +467,7 @@ public class AnimatedFloatExpression { /** * given a float command return its math name (e.g sin, cos etc.) + * * @param f * @return */ @@ -348,6 +478,7 @@ public class AnimatedFloatExpression { /** * Convert an expression encoded as an array of floats int ot a string + * * @param exp * @param labels * @return @@ -360,15 +491,21 @@ public class AnimatedFloatExpression { if (isMathOperator(v)) { s.append(toMathName(v)); } else { + int id = fromNaN(v); + String idString = (id > ID_REGION_ARRAY) ? ("A_" + (id & 0xFFFFF)) : "" + id; s.append("["); - s.append(fromNaN(v)); + s.append(idString); s.append("]"); } } else { - if (labels[i] != null) { + if (labels != null && labels[i] != null) { s.append(labels[i]); + if (!labels[i].contains("_")) { + s.append(v); + } + } else { + s.append(v); } - s.append(v); } s.append(" "); } @@ -423,6 +560,7 @@ public class AnimatedFloatExpression { /** * to be used by parser to determine if command is infix + * * @param n * @return */ @@ -432,6 +570,7 @@ public class AnimatedFloatExpression { /** * Convert an id into a NaN object + * * @param v * @return */ @@ -441,12 +580,12 @@ public class AnimatedFloatExpression { /** * Get ID from a NaN float + * * @param v * @return */ public static int fromNaN(float v) { int b = Float.floatToRawIntBits(v); - return b & 0xFFFFF; + return b & 0x7FFFFF; } - } diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepStaticInitializer.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java index eeebee985e4a..4c7cc3889bcb 100644 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepStaticInitializer.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ArrayAccess.java @@ -13,21 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.ravenwood.annotation; +package com.android.internal.widget.remotecompose.core.operations.utilities; -import static java.lang.annotation.ElementType.TYPE; +public interface ArrayAccess { + float getFloatValue(int index); + float[] getFloats(); + int getFloatsLength(); -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * @hide - */ -@Target(TYPE) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodKeepStaticInitializer { + default int getIntValue(int index) { + return (int) getFloatValue(index); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java new file mode 100644 index 000000000000..9e5312676aa4 --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/CollectionsAccess.java @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.operations.utilities; + +public interface CollectionsAccess { + float getFloatValue(int id, int index); + float[] getFloats(int id); + int getFloatsLength(int id); + + default int getIntValue(int id, int index) { + return (int) getFloatValue(id, index); + } +} diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java index 0ea28a8bb900..fb96ceffa58a 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/ColorUtils.java @@ -65,4 +65,17 @@ public class ColorUtils { } return 0; } + + /** + * Utility function to create a color as an int + * + * @param r red + * @param g green + * @param b blue + * @param a alpha + * @return int packed color + */ + public static int createColor(int r, int g, int b, int a) { + return (a << 24) | (r << 16) | (g << 8) | b; + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java index a4fce80cf843..ae61ec1e5eec 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/IntegerExpressionEvaluator.java @@ -17,6 +17,9 @@ package com.android.internal.widget.remotecompose.core.operations.utilities; /** * High performance Integer expression evaluator + * + * The evaluation is based on int opMask, int[]exp + * exp[i] is an operator if (opMask*(1 << i) != 0) */ public class IntegerExpressionEvaluator { static IntMap<String> sNames = new IntMap<>(); @@ -64,11 +67,11 @@ public class IntegerExpressionEvaluator { } /** - * Evaluate a float expression - * - * @param exp - * @param var - * @return + * Evaluate an integer expression + * @param mask bits that are operators + * @param exp rpn sequence of values and operators + * @param var variables if the expression is a function + * @return return the results of evaluating the expression */ public int eval(int mask, int[] exp, int... var) { mStack = exp; @@ -86,12 +89,12 @@ public class IntegerExpressionEvaluator { } /** - * Evaluate a int expression - * - * @param exp - * @param len - * @param var - * @return + * Evaluate a integer expression + * @param mask bits that are operators + * @param exp rpn sequence of values and operators + * @param len the number of values in the expression + * @param var variables if the expression is a function + * @return return the results of evaluating the expression */ public int eval(int mask, int[] exp, int len, int... var) { System.arraycopy(exp, 0, mLocalStack, 0, len); @@ -111,18 +114,18 @@ public class IntegerExpressionEvaluator { /** * Evaluate a int expression - * - * @param exp - * @param var - * @return + * @param opMask bits that are operators + * @param exp rpn sequence of values and operators + * @param var variables if the expression is a function + * @return return the results of evaluating the expression */ - public int evalDB(int mask, int[] exp, int... var) { + public int evalDB(int opMask, int[] exp, int... var) { mStack = exp; mVar = var; int sp = -1; for (int i = 0; i < exp.length; i++) { int v = mStack[i]; - if (((1 << i) & mask) != 0) { + if (((1 << i) & opMask) != 0) { System.out.print(" " + sNames.get((v - OFFSET))); sp = mOps[v - OFFSET].eval(sp); } else { @@ -281,8 +284,8 @@ public class IntegerExpressionEvaluator { /** * given a int command return its math name (e.g sin, cos etc.) * - * @param f - * @return + * @param f the numerical value of the function + offset + * @return the math name of the function */ public static String toMathName(int f) { int id = f - OFFSET; @@ -290,18 +293,19 @@ public class IntegerExpressionEvaluator { } /** - * Convert an expression encoded as an array of ints int ot a string + * Convert an expression encoded as an array of ints int to a string * - * @param exp - * @param labels + * @param opMask bits that are operators + * @param exp rpn sequence of values and operators + * @param labels String that represent the variable names * @return */ - public static String toString(int mask, int[] exp, String[] labels) { + public static String toString(int opMask, int[] exp, String[] labels) { StringBuilder s = new StringBuilder(); for (int i = 0; i < exp.length; i++) { int v = exp[i]; - if (((1 << i) & mask) != 0) { + if (((1 << i) & opMask) != 0) { if (v < OFFSET) { s.append(toMathName(v)); } else { @@ -323,18 +327,18 @@ public class IntegerExpressionEvaluator { /** * Convert an expression encoded as an array of ints int ot a string * - * @param mask bit mask of operators vs commands - * @param exp - * @return + * @param opMask bit mask of operators vs commands + * @param exp rpn sequence of values and operators + * @return string representation of the expression */ - public static String toString(int mask, int[] exp) { + public static String toString(int opMask, int[] exp) { StringBuilder s = new StringBuilder(); - s.append(Integer.toBinaryString(mask)); + s.append(Integer.toBinaryString(opMask)); s.append(" : "); for (int i = 0; i < exp.length; i++) { int v = exp[i]; - if (((1 << i) & mask) != 0) { + if (((1 << i) & opMask) != 0) { if (v > OFFSET) { s.append(" "); s.append(toMathName(v)); @@ -353,16 +357,15 @@ public class IntegerExpressionEvaluator { /** * This creates an infix string expression - * @param mask The bits that are operators + * @param opMask The bits that are operators * @param exp the array of expressions * @return infix string */ - public static String toStringInfix(int mask, int[] exp) { - return toString(mask, exp, exp.length - 1); + public static String toStringInfix(int opMask, int[] exp) { + return toString(opMask, exp, exp.length - 1); } static String toString(int mask, int[] exp, int sp) { - String[] str = new String[exp.length]; if (((1 << sp) & mask) != 0) { int id = exp[sp] - OFFSET; switch (NO_OF_OPS[id]) { @@ -418,11 +421,11 @@ public class IntegerExpressionEvaluator { /** * is it an id or operation - * @param mask the bits that mark elements as an operation + * @param opMask the bits that mark elements as an operation * @param i the bit to check * @return true if the bit is 1 */ - public static boolean isOperation(int mask, int i) { - return ((1 << i) & mask) != 0; + public static boolean isOperation(int opMask, int i) { + return ((1 << i) & opMask) != 0; } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java index f4cd504d650f..1e669c6b2e35 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/NanMap.java @@ -19,20 +19,25 @@ import com.android.internal.widget.remotecompose.core.operations.Utils; /** * This defines the major id maps and ranges used by remote compose - * Generally ids ranging from 0 ... FFF (4095) are for ids + * Generally ids ranging from 1 ... 7FFFFF (4095) are for ids + * The data range is divided int to bits + * 0xxxxx are allocated for Predefined Global System Variables + * 1xxxxx are allocated to normal variables + * 2xxxxx are allocated to List&MAPS (Arrays of stuff) + * 3xxxxx are allocated to path & float operations + * 4xxxxx,5xxxxx,7xxxxx are reserved for future use * 0x1000-0x1100 are used for path operations in PathData * 0x1100-0x1200 are used for math operations in Animated float * 0x */ public class NanMap { - - public static final int MOVE = 0x1000; - public static final int LINE = 0x1001; - public static final int QUADRATIC = 0x1002; - public static final int CONIC = 0x1003; - public static final int CUBIC = 0x1004; - public static final int CLOSE = 0x1005; - public static final int DONE = 0x1006; + public static final int MOVE = 0x300_000; + public static final int LINE = 0x300_001; + public static final int QUADRATIC = 0x300_002; + public static final int CONIC = 0x300_003; + public static final int CUBIC = 0x300_004; + public static final int CLOSE = 0x300_005; + public static final int DONE = 0x300_006; public static final float MOVE_NAN = Utils.asNan(MOVE); public static final float LINE_NAN = Utils.asNan(LINE); public static final float QUADRATIC_NAN = Utils.asNan(QUADRATIC); @@ -41,31 +46,46 @@ public class NanMap { public static final float CLOSE_NAN = Utils.asNan(CLOSE); public static final float DONE_NAN = Utils.asNan(DONE); - /** - * - */ - public static final float ADD = asNan(0x1100); - public static final float SUB = asNan(0x1101); - public static final float MUL = asNan(0x1102); - public static final float DIV = asNan(0x1103); - public static final float MOD = asNan(0x1104); - public static final float MIN = asNan(0x1105); - public static final float MAX = asNan(0x1106); - public static final float POW = asNan(0x1107); + public static boolean isSystemVariable(float value) { + return (fromNaN(value) >> 20) == 0; + } + + public static boolean isNormalVariable(float value) { + return (fromNaN(value) >> 20) == 1; + } + + public static boolean isDataVariable(float value) { + return (fromNaN(value) >> 20) == 2; + } + + public static boolean isOperationVariable(float value) { + return (fromNaN(value) >> 20) == 3; + } + + public static final int START_VAR = (1 << 20) + 42; + public static final int START_ARRAY = (2 << 20) + 42; + public static final int TYPE_SYSTEM = 0; + public static final int TYPE_VARIABLE = 1; + public static final int TYPE_ARRAY = 2; + public static final int TYPE_OPERATION = 3; + public static final int ID_REGION_MASK = 0x700000; + public static final int ID_REGION_ARRAY = 0x200000; /** * Get ID from Nan float + * * @param v * @return */ public static int fromNaN(float v) { int b = Float.floatToRawIntBits(v); - return b & 0xFFFFF; + return b & 0x7FFFFF; } /** * Given id return as a Nan float + * * @param v * @return */ diff --git a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java index 4f484de1045e..98dbf0048abd 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java +++ b/core/java/com/android/internal/widget/remotecompose/core/operations/utilities/easing/FloatAnimation.java @@ -51,6 +51,7 @@ public class FloatAnimation extends Easing { } public FloatAnimation() { + mEasingCurve = new CubicEasing(mType); } public FloatAnimation(float... description) { @@ -86,21 +87,26 @@ public class FloatAnimation extends Easing { count++; } if (spec != null) { + count++; } if (spec != null || type != CUBIC_STANDARD) { count++; count += (spec == null) ? 0 : spec.length; } - if (duration != 1 || count > 0) { - count++; - } + if (!Float.isNaN(initialValue)) { count++; } if (!Float.isNaN(wrap)) { count++; } + if (duration != 1 || count > 0) { + count++; + } + if (!Float.isNaN(wrap) || !Float.isNaN(initialValue)) { + count++; + } float[] ret = new float[count]; int pos = 0; int specLen = (spec == null) ? 0 : spec.length; diff --git a/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java b/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java index 1051192441dd..9045bcbd2e06 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java +++ b/core/java/com/android/internal/widget/remotecompose/core/types/BooleanConstant.java @@ -15,11 +15,14 @@ */ package com.android.internal.widget.remotecompose.core.types; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.BYTE; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -27,6 +30,7 @@ import java.util.List; * Used to represent a boolean */ public class BooleanConstant implements Operation { + private static final int OP_CODE = Operations.DATA_BOOLEAN; boolean mValue = false; private int mId; @@ -37,7 +41,7 @@ public class BooleanConstant implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId, mValue); + apply(buffer, mId, mValue); } @Override @@ -55,42 +59,43 @@ public class BooleanConstant implements Operation { return "BooleanConstant[" + mId + "] = " + mValue + ""; } - public static final Companion COMPANION = new Companion(); - - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "OrigamiBoolean"; - } - - @Override - public int id() { - return Operations.DATA_BOOLEAN; - } - - /** - * Writes out the operation to the buffer - * - * @param buffer - * @param id - * @param value - */ - public void apply(WireBuffer buffer, int id, boolean value) { - buffer.start(Operations.DATA_BOOLEAN); - buffer.writeInt(id); - buffer.writeBoolean(value); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - - boolean value = buffer.readBoolean(); - operations.add(new BooleanConstant(id, value)); - } + public static String name() { + return "OrigamiBoolean"; + } + + public static int id() { + return Operations.DATA_BOOLEAN; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param id + * @param value + */ + public static void apply(WireBuffer buffer, int id, boolean value) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeBoolean(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + + boolean value = buffer.readBoolean(); + operations.add(new BooleanConstant(id, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + "BooleanConstant") + .description("A boolean and its associated id") + .field(INT, "id", "id of Int") + .field(BYTE, "value", + "8-bit 0 or 1"); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java b/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java index ceb323629e98..90faf52f2362 100644 --- a/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java +++ b/core/java/com/android/internal/widget/remotecompose/core/types/IntegerConstant.java @@ -15,11 +15,13 @@ */ package com.android.internal.widget.remotecompose.core.types; -import com.android.internal.widget.remotecompose.core.CompanionOperation; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; + import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; import java.util.List; @@ -38,7 +40,7 @@ public class IntegerConstant implements Operation { @Override public void write(WireBuffer buffer) { - COMPANION.apply(buffer, mId, mValue); + apply(buffer, mId, mValue); } @Override @@ -56,41 +58,42 @@ public class IntegerConstant implements Operation { return "IntegerConstant[" + mId + "] = " + mValue + ""; } - public static final Companion COMPANION = new Companion(); - - public static class Companion implements CompanionOperation { - private Companion() { - } - - @Override - public String name() { - return "IntegerConstant"; - } - - @Override - public int id() { - return Operations.DATA_INT; - } - - /** - * Writes out the operation to the buffer - * - * @param buffer - * @param textId - * @param value - */ - public void apply(WireBuffer buffer, int textId, int value) { - buffer.start(Operations.DATA_INT); - buffer.writeInt(textId); - buffer.writeInt(value); - } - - @Override - public void read(WireBuffer buffer, List<Operation> operations) { - int id = buffer.readInt(); - - int value = buffer.readInt(); - operations.add(new IntegerConstant(id, value)); - } + public static String name() { + return "IntegerConstant"; + } + + public static int id() { + return Operations.DATA_INT; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param textId + * @param value + */ + public static void apply(WireBuffer buffer, int textId, int value) { + buffer.start(Operations.DATA_INT); + buffer.writeInt(textId); + buffer.writeInt(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + + int value = buffer.readInt(); + operations.add(new IntegerConstant(id, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + id(), + "IntegerConstant") + .description("A integer and its associated id") + .field(INT, "id", "id of Int") + .field(INT, "value", + "32-bit int value"); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java b/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java new file mode 100644 index 000000000000..70402cf45eae --- /dev/null +++ b/core/java/com/android/internal/widget/remotecompose/core/types/LongConstant.java @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.internal.widget.remotecompose.core.types; + +import static com.android.internal.widget.remotecompose.core.documentation.Operation.INT; +import static com.android.internal.widget.remotecompose.core.documentation.Operation.LONG; + +import com.android.internal.widget.remotecompose.core.Operation; +import com.android.internal.widget.remotecompose.core.Operations; +import com.android.internal.widget.remotecompose.core.RemoteContext; +import com.android.internal.widget.remotecompose.core.WireBuffer; +import com.android.internal.widget.remotecompose.core.documentation.DocumentationBuilder; + +import java.util.List; + +/** + * Used to represent a long + */ +public class LongConstant implements Operation { + private static final int OP_CODE = Operations.DATA_LONG; + long mValue; + private int mId; + + public LongConstant(int id, long value) { + mId = id; + mValue = value; + } + + @Override + public void write(WireBuffer buffer) { + apply(buffer, mId, mValue); + } + + @Override + public void apply(RemoteContext context) { + } + + @Override + public String deepToString(String indent) { + return toString(); + } + + @Override + public String toString() { + return "LongConstant[" + mId + "] = " + mValue + ""; + } + + /** + * Writes out the operation to the buffer + * + * @param buffer + * @param id + * @param value + */ + public static void apply(WireBuffer buffer, int id, long value) { + buffer.start(OP_CODE); + buffer.writeInt(id); + buffer.writeLong(value); + } + + public static void read(WireBuffer buffer, List<Operation> operations) { + int id = buffer.readInt(); + + long value = buffer.readLong(); + operations.add(new LongConstant(id, value)); + } + + public static void documentation(DocumentationBuilder doc) { + doc.operation("Expressions Operations", + OP_CODE, + "LongConstant") + .description("A boolean and its associated id") + .field(INT, "id", "id of Int") + .field(LONG, "value", + "The long Value"); + + } + +} diff --git a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java index 65a337e672b8..e32f8239d7ef 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java +++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposeDocument.java @@ -35,6 +35,10 @@ public class RemoteComposeDocument { mDocument.initFromBuffer(buffer); } + public RemoteComposeDocument(CoreDocument document) { + mDocument = document; + } + public CoreDocument getDocument() { return mDocument; } @@ -122,5 +126,16 @@ public class RemoteComposeDocument { public Component getComponent(int id) { return mDocument.getComponent(id); } + + public void invalidate() { + mDocument.invalidateMeasure(); + } + + public String[] getStats() { + if (mDocument == null) { + return new String[0]; + } + return mDocument.getStats(); + } } diff --git a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java index b2406bf69ec8..3d78680bff0a 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java +++ b/core/java/com/android/internal/widget/remotecompose/player/RemoteComposePlayer.java @@ -66,6 +66,10 @@ public class RemoteComposePlayer extends FrameLayout { } } + public RemoteComposeDocument getDocument() { + return mInner.getDocument(); + } + public void setDocument(RemoteComposeDocument value) { if (value != null) { if (value.canBeDisplayed( @@ -151,6 +155,84 @@ public class RemoteComposePlayer extends FrameLayout { addView(mInner, layoutParams); } + /** + * Set an override for a string resource + * + * @param domain domain (SYSTEM or USER) + * @param name name of the string + * @param content content of the string + */ + public void setLocalString(String domain, String name, String content) { + mInner.setLocalString(domain + ":" + name, content); + } + + /** + * Clear the override of the given string + * + * @param domain domain (SYSTEM or USER) + * @param name name of the string + */ + public void clearLocalString(String domain, String name) { + mInner.clearLocalString(domain + ":" + name); + } + + /** + * Set an override for a user domain string resource + * + * @param name name of the string + * @param content content of the string + */ + public void setUserLocalString(String name, String content) { + mInner.setLocalString("USER:" + name, content); + } + + /** + * Set an override for a user domain int resource + * + * @param name name of the int + * @param value value of the int + */ + public void setUserLocalInt(String name, int value) { + mInner.setLocalInt("USER:" + name, value); + } + + /** + * Clear the override of the given user string + * + * @param name name of the string + */ + public void clearUserLocalString(String name) { + mInner.clearLocalString("USER:" + name); + } + + /** + * Clear the override of the given user int + * + * @param name name of the int + */ + public void clearUserLocalInt(String name) { + mInner.clearLocalInt("USER:" + name); + } + + /** + * Set an override for a system domain string resource + * + * @param name name of the string + * @param content content of the string + */ + public void setSystemLocalString(String name, String content) { + mInner.setLocalString("SYSTEM:" + name, content); + } + + /** + * Clear the override of the given system string + * + * @param name name of the string + */ + public void clearSystemLocalString(String name) { + mInner.clearLocalString("SYSTEM:" + name); + } + public interface ClickCallbacks { void click(int id, String metadata); } @@ -409,4 +491,7 @@ public class RemoteComposePlayer extends FrameLayout { return color; } } + + } + diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java index e01dd17ae0ea..4416cf76295c 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidPaintContext.java @@ -210,19 +210,30 @@ public class AndroidPaintContext extends PaintContext { } @Override - public void getTextBounds(int textId, int start, int end, boolean monospace, float[] bounds) { + public void getTextBounds(int textId, int start, int end, int flags, float[] bounds) { String str = getText(textId); if (end == -1) { end = str.length(); } + Paint.FontMetrics metrics = mPaint.getFontMetrics(); mPaint.getTextBounds(str, start, end, mTmpRect); bounds[0] = mTmpRect.left; - bounds[1] = mTmpRect.top; - bounds[2] = monospace ? (mPaint.measureText(str, start, end) - mTmpRect.left) - : mTmpRect.right; - bounds[3] = mTmpRect.bottom; + + if ((flags & PaintContext.TEXT_MEASURE_MONOSPACE_WIDTH) != 0) { + bounds[2] = mPaint.measureText(str, start, end) - mTmpRect.left; + } else { + bounds[2] = mTmpRect.right; + } + + if ((flags & PaintContext.TEXT_MEASURE_FONT_HEIGHT) != 0) { + bounds[1] = Math.round(metrics.ascent); + bounds[3] = Math.round(metrics.bottom); + } else { + bounds[1] = mTmpRect.top; + bounds[3] = mTmpRect.bottom; + } } @Override @@ -236,6 +247,9 @@ public class AndroidPaintContext extends PaintContext { boolean rtl) { String textToPaint = getText(textID); + if (textToPaint == null) { + return; + } if (end == -1) { if (start != 0) { textToPaint = textToPaint.substring(start); diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java index 5a87c7083c9d..c98937530897 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/AndroidRemoteContext.java @@ -23,6 +23,7 @@ import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.operations.FloatExpression; import com.android.internal.widget.remotecompose.core.operations.ShaderData; +import com.android.internal.widget.remotecompose.core.operations.utilities.ArrayAccess; import java.util.HashMap; @@ -52,7 +53,7 @@ class AndroidRemoteContext extends RemoteContext { @Override public void loadPathData(int instanceId, float[] floatPath) { if (!mRemoteComposeState.containsId(instanceId)) { - mRemoteComposeState.cache(instanceId, floatPath); + mRemoteComposeState.cacheData(instanceId, floatPath); } } @@ -75,6 +76,40 @@ class AndroidRemoteContext extends RemoteContext { mVarNameHashMap.put(varName, new VarName(varName, varId, varType)); } + @Override + public void setNamedStringOverride(String stringName, String value) { + if (mVarNameHashMap.get(stringName) != null) { + int id = mVarNameHashMap.get(stringName).mId; + overrideText(id, value); + } + } + + @Override + public void clearNamedStringOverride(String stringName) { + if (mVarNameHashMap.get(stringName) != null) { + int id = mVarNameHashMap.get(stringName).mId; + clearDataOverride(id); + } + mVarNameHashMap.put(stringName, null); + } + + @Override + public void setNamedIntegerOverride(String stringName, int value) { + if (mVarNameHashMap.get(stringName) != null) { + int id = mVarNameHashMap.get(stringName).mId; + overrideInt(id, value); + } + } + + @Override + public void clearNamedIntegerOverride(String integerName) { + if (mVarNameHashMap.get(integerName) != null) { + int id = mVarNameHashMap.get(integerName).mId; + clearIntegerOverride(id); + } + mVarNameHashMap.put(integerName, null); + } + /** * Override a color to force it to be the color provided * @@ -85,6 +120,23 @@ class AndroidRemoteContext extends RemoteContext { int id = mVarNameHashMap.get(colorName).mId; mRemoteComposeState.overrideColor(id, color); } + + @Override + public void addCollection(int id, ArrayAccess collection) { + mRemoteComposeState.addCollection(id, collection); + } + + @Override + public void runAction(int id, String metadata) { + mDocument.performClick(id); + } + + @Override + public void runNamedAction(int id) { + String text = getText(id); + mDocument.runNamedAction(text); + } + /** * Decode a byte array into an image and cache it using the given imageId * @@ -97,19 +149,35 @@ class AndroidRemoteContext extends RemoteContext { public void loadBitmap(int imageId, int width, int height, byte[] bitmap) { if (!mRemoteComposeState.containsId(imageId)) { Bitmap image = BitmapFactory.decodeByteArray(bitmap, 0, bitmap.length); - mRemoteComposeState.cache(imageId, image); + mRemoteComposeState.cacheData(imageId, image); } } @Override public void loadText(int id, String text) { if (!mRemoteComposeState.containsId(id)) { - mRemoteComposeState.cache(id, text); + mRemoteComposeState.cacheData(id, text); } else { - mRemoteComposeState.update(id, text); + mRemoteComposeState.updateData(id, text); } } + public void overrideText(int id, String text) { + mRemoteComposeState.overrideData(id, text); + } + + public void overrideInt(int id, int value) { + mRemoteComposeState.overrideInteger(id, value); + } + + public void clearDataOverride(int id) { + mRemoteComposeState.clearDataOverride(id); + } + + public void clearIntegerOverride(int id) { + mRemoteComposeState.clearIntegerOverride(id); + } + @Override public String getText(int id) { return (String) mRemoteComposeState.getFromId(id); @@ -125,6 +193,14 @@ class AndroidRemoteContext extends RemoteContext { mRemoteComposeState.updateInteger(id, value); } + public void overrideInteger(int id, int value) { + mRemoteComposeState.overrideInteger(id, value); + } + + public void overrideText(int id, int valueId) { + String text = getText(valueId); + overrideText(id, text); + } @Override public void loadColor(int id, int color) { @@ -133,12 +209,12 @@ class AndroidRemoteContext extends RemoteContext { @Override public void loadAnimatedFloat(int id, FloatExpression animatedFloat) { - mRemoteComposeState.cache(id, animatedFloat); + mRemoteComposeState.cacheData(id, animatedFloat); } @Override public void loadShader(int id, ShaderData value) { - mRemoteComposeState.cache(id, value); + mRemoteComposeState.cacheData(id, value); } @Override @@ -187,5 +263,6 @@ class AndroidRemoteContext extends RemoteContext { String metadata = (String) mRemoteComposeState.getFromId(metadataId); mDocument.addClickArea(id, contentDescription, left, top, right, bottom, metadata); } + } diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java b/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java index 7a8542712cbf..d75232a6557e 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/FloatsToPath.java @@ -19,7 +19,6 @@ import static com.android.internal.widget.remotecompose.core.operations.Utils.id import android.graphics.Path; import android.graphics.PathMeasure; -import android.os.Build; import com.android.internal.widget.remotecompose.core.operations.PathData; @@ -58,13 +57,11 @@ public class FloatsToPath { break; case PathData.CONIC: { i += 3; - if (Build.VERSION.SDK_INT >= 34) { // REMOVE IN PLATFORM - path.conicTo( - floatPath[i + 0], floatPath[i + 1], - floatPath[i + 2], floatPath[i + 3], - floatPath[i + 4] - ); - } + path.conicTo( + floatPath[i + 0], floatPath[i + 1], + floatPath[i + 2], floatPath[i + 3], + floatPath[i + 4] + ); i += 5; } break; diff --git a/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java b/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java index 0d7f97ac37c9..f91e15818471 100644 --- a/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java +++ b/core/java/com/android/internal/widget/remotecompose/player/platform/RemoteComposeCanvas.java @@ -41,6 +41,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta int mTheme = Theme.LIGHT; boolean mInActionDown = false; boolean mDebug = false; + boolean mHasClickAreas = false; Point mActionDownPoint = new Point(0, 0); AndroidRemoteContext mARContext = new AndroidRemoteContext(); @@ -85,6 +86,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta mDocument = value; mDocument.initializeContext(mARContext); setContentDescription(mDocument.getDocument().getContentDescription()); + updateClickAreas(); requestLayout(); invalidate(); } @@ -94,23 +96,33 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta if (mDocument == null) { return; } - Set<CoreDocument.ClickAreaRepresentation> clickAreas = mDocument - .getDocument().getClickAreas(); - removeAllViews(); - for (CoreDocument.ClickAreaRepresentation area : clickAreas) { - ClickAreaView viewArea = new ClickAreaView(getContext(), mDebug, - area.getId(), area.getContentDescription(), - area.getMetadata()); - int w = (int) area.width(); - int h = (int) area.height(); - FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(w, h); - param.width = w; - param.height = h; - param.leftMargin = (int) area.getLeft(); - param.topMargin = (int) area.getTop(); - viewArea.setOnClickListener(view1 - -> mDocument.getDocument().performClick(area.getId())); - addView(viewArea, param); + updateClickAreas(); + } + + private void updateClickAreas() { + if (USE_VIEW_AREA_CLICK && mDocument != null) { + mHasClickAreas = false; + Set<CoreDocument.ClickAreaRepresentation> clickAreas = mDocument + .getDocument().getClickAreas(); + removeAllViews(); + for (CoreDocument.ClickAreaRepresentation area : clickAreas) { + ClickAreaView viewArea = new ClickAreaView(getContext(), mDebug, + area.getId(), area.getContentDescription(), + area.getMetadata()); + int w = (int) area.width(); + int h = (int) area.height(); + FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(w, h); + param.width = w; + param.height = h; + param.leftMargin = (int) area.getLeft(); + param.topMargin = (int) area.getTop(); + viewArea.setOnClickListener(view1 + -> mDocument.getDocument().performClick(area.getId())); + addView(viewArea, param); + } + if (!clickAreas.isEmpty()) { + mHasClickAreas = true; + } } } @@ -133,6 +145,38 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta mARContext.setNamedColorOverride(colorName, colorValue); } + public RemoteComposeDocument getDocument() { + return mDocument; + } + + public void setLocalString(String name, String content) { + mARContext.setNamedStringOverride(name, content); + if (mDocument != null) { + mDocument.invalidate(); + } + } + + public void clearLocalString(String name) { + mARContext.clearNamedStringOverride(name); + if (mDocument != null) { + mDocument.invalidate(); + } + } + + public void setLocalInt(String name, int content) { + mARContext.setNamedIntegerOverride(name, content); + if (mDocument != null) { + mDocument.invalidate(); + } + } + + public void clearLocalInt(String name) { + mARContext.clearNamedIntegerOverride(name); + if (mDocument != null) { + mDocument.invalidate(); + } + } + public interface ClickCallbacks { void click(int id, String metadata); } @@ -153,7 +197,7 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta } public boolean onTouchEvent(MotionEvent event) { - if (USE_VIEW_AREA_CLICK) { + if (USE_VIEW_AREA_CLICK && mHasClickAreas) { return super.onTouchEvent(event); } switch (event.getActionMasked()) { @@ -180,11 +224,13 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta @Override public boolean performClick() { - if (USE_VIEW_AREA_CLICK) { + if (USE_VIEW_AREA_CLICK && mHasClickAreas) { return super.performClick(); } - mDocument.getDocument().onClick((float) mActionDownPoint.x, (float) mActionDownPoint.y); + mDocument.getDocument().onClick(mARContext, + (float) mActionDownPoint.x, (float) mActionDownPoint.y); super.performClick(); + invalidate(); return true; } @@ -213,9 +259,10 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta if (mDocument == null) { return; } + int preWidth = getWidth(); + int preHeight = getHeight(); int w = measureDimension(widthMeasureSpec, mDocument.getWidth()); int h = measureDimension(heightMeasureSpec, mDocument.getHeight()); - mDocument.getDocument().invalidateMeasure(); if (!USE_VIEW_AREA_CLICK) { if (mDocument.getDocument().getContentSizing() == RootContentBehavior.SIZING_SCALE) { @@ -225,6 +272,9 @@ public class RemoteComposeCanvas extends FrameLayout implements View.OnAttachSta } } setMeasuredDimension(w, h); + if (preWidth != w || preHeight != h) { + mDocument.getDocument().invalidateMeasure(); + } } private int mCount; diff --git a/core/jni/android_database_SQLiteConnection.cpp b/core/jni/android_database_SQLiteConnection.cpp index 3370f386f4d2..ba7e70564143 100644 --- a/core/jni/android_database_SQLiteConnection.cpp +++ b/core/jni/android_database_SQLiteConnection.cpp @@ -16,27 +16,22 @@ #define LOG_TAG "SQLiteConnection" -#include <jni.h> -#include <nativehelper/JNIHelp.h> +#include <android-base/mapped_file.h> #include <android_runtime/AndroidRuntime.h> #include <android_runtime/Log.h> - -#include <utils/Log.h> -#include <utils/String8.h> -#include <utils/String16.h> -#include <cutils/ashmem.h> -#include <sys/mman.h> - -#include <string.h> -#include <unistd.h> - #include <androidfw/CursorWindow.h> - +#include <cutils/ashmem.h> +#include <jni.h> +#include <nativehelper/JNIHelp.h> #include <sqlite3.h> #include <sqlite3_android.h> +#include <string.h> +#include <unistd.h> +#include <utils/Log.h> +#include <utils/String16.h> +#include <utils/String8.h> #include "android_database_SQLiteCommon.h" - #include "core_jni_helpers.h" // Set to 1 to use UTF16 storage for localized indexes. @@ -669,13 +664,14 @@ static int createAshmemRegionWithData(JNIEnv* env, const void* data, size_t leng ALOGE("ashmem_create_region failed: %s", strerror(error)); } else { if (length > 0) { - void* ptr = mmap(NULL, length, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - if (ptr == MAP_FAILED) { + std::unique_ptr<base::MappedFile> mappedFile = + base::MappedFile::FromFd(fd, 0, length, PROT_READ | PROT_WRITE); + if (mappedFile == nullptr) { error = errno; ALOGE("mmap failed: %s", strerror(error)); } else { - memcpy(ptr, data, length); - munmap(ptr, length); + memcpy(mappedFile->data(), data, length); + mappedFile.reset(); } } diff --git a/core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java b/core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java new file mode 100644 index 000000000000..f2391eed6156 --- /dev/null +++ b/core/tests/coretests/src/android/view/InputEventCompatProcessorTest.java @@ -0,0 +1,121 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package android.view; + +import static android.view.MotionEvent.ACTION_DOWN; +import static android.view.MotionEvent.ACTION_UP; + +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeTrue; + +import android.content.Context; +import android.graphics.Rect; +import android.os.Build; +import android.os.Handler; +import android.os.Looper; +import android.platform.test.annotations.DisableFlags; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.annotations.Presubmit; +import android.platform.test.flag.junit.SetFlagsRule; + +import androidx.test.filters.SmallTest; +import androidx.test.platform.app.InstrumentationRegistry; + +import com.android.window.flags.Flags; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +/** + * Tests for {@link InputEventCompatProcessor} + * + * Build/Install/Run: + * atest FrameworksCoreTests:InputEventCompatProcessorTest + */ +@SmallTest +@Presubmit +public class InputEventCompatProcessorTest { + + private InputEventCompatProcessor mInputEventCompatProcessor; + + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + + @Before + public void setUp() { + Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assumeTrue("Is at least targeting Android M", + context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.M); + + // Set app bounds as if it was letterboxed. + context.getResources().getConfiguration().windowConfiguration + .setBounds(new Rect(200, 200, 600, 1000)); + + Handler handler = new Handler(Looper.getMainLooper()); + + mInputEventCompatProcessor = new InputEventCompatProcessor(context, handler); + } + + @DisableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX) + @Test + public void testTapGestureOutsideBoundsHasNoAdjustmentsWhenScrollingFromLetterboxDisabled() { + // Tap-like gesture in bounds (non-scroll). + List<MotionEvent> tapGestureEvents = createTapGestureEvents(-100f, -100f); + + for (MotionEvent motionEvent : tapGestureEvents) { + List<InputEvent> compatProcessedEvents = + mInputEventCompatProcessor.processInputEventForCompatibility(motionEvent); + // Expect null to be returned, because no adjustments should be made to these events + // when Letterbox Scroll Processor is disabled. + assertNull(compatProcessedEvents); + } + } + + @EnableFlags(Flags.FLAG_SCROLLING_FROM_LETTERBOX) + @Test + public void testTapGestureOutsideBoundsIsIgnoredWhenScrollingFromLetterboxEnabled() { + // Tap-like gesture in bounds (non-scroll). + List<MotionEvent> tapGestureEvents = createTapGestureEvents(-100f, -100f); + + for (MotionEvent motionEvent : tapGestureEvents) { + List<InputEvent> compatProcessedEvents = + mInputEventCompatProcessor.processInputEventForCompatibility(motionEvent); + // Expect no events returned because Letterbox Scroll Processor is enabled and therefore + // should cause the out of bound events to be ignored. + assertTrue(compatProcessedEvents.isEmpty()); + } + } + + private List<MotionEvent> createTapGestureEvents(float startX, float startY) { + // Events for tap-like gesture (non-scroll) + List<MotionEvent> motionEvents = new ArrayList<>(); + motionEvents.add(createBasicMotionEvent(0, ACTION_DOWN, startX, startY)); + motionEvents.add(createBasicMotionEvent(10, ACTION_UP, startX , startY)); + return motionEvents; + } + + private MotionEvent createBasicMotionEvent(int downTime, int action, float x, float y) { + return MotionEvent.obtain(0, downTime, action, x, y, 0); + } +} diff --git a/core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java b/core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java new file mode 100644 index 000000000000..f8ec9f4fb51b --- /dev/null +++ b/core/tests/coretests/src/android/view/LetterboxScrollProcessorTest.java @@ -0,0 +1,253 @@ +/* + * Copyright 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package android.view; + +import static android.view.MotionEvent.ACTION_DOWN; +import static android.view.MotionEvent.ACTION_MOVE; +import static android.view.MotionEvent.ACTION_UP; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import android.content.Context; +import android.graphics.Rect; +import android.os.Handler; +import android.os.Looper; +import android.platform.test.annotations.Presubmit; + +import androidx.test.filters.SmallTest; +import androidx.test.platform.app.InstrumentationRegistry; + +import org.junit.Before; +import org.junit.Test; + + +import java.util.ArrayList; +import java.util.List; + +/** + * Tests for {@link LetterboxScrollProcessor} + * + * Build/Install/Run: + * atest FrameworksCoreTests:LetterboxScrollProcessorTest + */ +@SmallTest +@Presubmit +public class LetterboxScrollProcessorTest { + + private LetterboxScrollProcessor mLetterboxScrollProcessor; + private Context mContext; + + // Constant delta used when comparing coordinates (floats) + private static final float EPSILON = 0.1f; + + @Before + public void setUp() { + mContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + // Set app bounds as if it was letterboxed. + mContext.getResources().getConfiguration().windowConfiguration + .setBounds(new Rect(200, 200, 600, 1000)); + + Handler handler = new Handler(Looper.getMainLooper()); + + // Recreate to reset LetterboxScrollProcessor state. + mLetterboxScrollProcessor = new LetterboxScrollProcessor(mContext, handler); + } + + @Test + public void testGestureInBoundsHasNoAdjustments() { + // Tap-like gesture in bounds (non-scroll). + List<MotionEvent> tapGestureEvents = createTapGestureEvents(0f, 0f); + + // Get processed events from Letterbox Scroll Processor. + List<MotionEvent> processedEvents = processMotionEvents(tapGestureEvents); + + // Ensure no changes are made to events after processing - event locations should not be + // adjusted because the gesture started in the app's bounds (for all gestures). + assertEventLocationsAreNotAdjusted(tapGestureEvents, processedEvents); + // Ensure all of these events should be finished (expect no generated events). + assertMotionEventsShouldBeFinished(processedEvents); + } + + @Test + public void testGestureOutsideBoundsIsIgnored() { + // Tap-like gesture outside bounds (non-scroll). + List<MotionEvent> tapGestureEvents = createTapGestureEvents(-100f, -100f); + + // Get processed events from Letterbox Scroll Processor. + List<MotionEvent> processedEvents = processMotionEvents(tapGestureEvents); + + // All events should be ignored since it was a non-scroll gesture and out of bounds. + assertEquals(0, processedEvents.size()); + } + + @Test + public void testScrollGestureInBoundsHasNoAdjustments() { + // Scroll gesture in bounds (non-scroll). + List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(0f, 0f); + + // Get processed events from Letterbox Scroll Processor. + List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents); + + // Ensure no changes are made to events after processing - event locations should not be + // adjusted because the gesture started in the app's bounds (for all gestures). + assertEventLocationsAreNotAdjusted(scrollGestureEvents, processedEvents); + // Ensure all of these events should be finished (expect no generated events). + assertMotionEventsShouldBeFinished(processedEvents); + } + + @Test + public void testScrollGestureInBoundsThenLeavesBoundsHasNoAdjustments() { + // Scroll gesture in bounds (non-scroll) that moves out of bounds. + List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(390f, 790f); + + // Get processed events from Letterbox Scroll Processor. + List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents); + + // Ensure no changes are made to events after processing - event locations should not be + // adjusted because the gesture started in the app's bounds (for all gestures), even if it + // leaves the apps bounds. + assertEventLocationsAreNotAdjusted(scrollGestureEvents, processedEvents); + // Ensure all of these events should be finished (expect no generated events). + assertMotionEventsShouldBeFinished(processedEvents); + } + + @Test + public void testScrollGestureOutsideBoundsIsStartedInBounds() { + // Scroll gesture outside bounds. + List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(-100f, 0f); + + // Get processed events from Letterbox Scroll Processor. + List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents); + + // When a scroll occurs outside bounds: once detected as a scroll, the ACTION_DOWN is + // expected to be received again but with an offset so it is over the app's bounds. + + // Ensure offset ACTION_DOWN is first event received. + MotionEvent firstProcessedEvent = processedEvents.getFirst(); + assertEquals(firstProcessedEvent.getAction(), ACTION_DOWN); + assertEquals(firstProcessedEvent.getX(), 0, EPSILON); + assertEquals(firstProcessedEvent.getY(), 0, EPSILON); + // Ensure this event is not finished (because it was generated by LetterboxScrollProcessor). + assertNull(mLetterboxScrollProcessor.processMotionEventBeforeFinish(firstProcessedEvent)); + } + + @Test + public void testScrollGestureOutsideBoundsIsMovedInBounds() { + // Scroll gesture outside bounds. + List<MotionEvent> scrollGestureEvents = createScrollGestureEvents(-100f, 0f); + + // Get processed events from Letterbox Scroll Processor. + List<MotionEvent> processedEvents = processMotionEvents(scrollGestureEvents); + + // When a scroll occurs outside bounds: once detected as a scroll, an offset ACTION_DOWN is + // placed and then the rest of the gesture is offset also. Some ACTION_MOVE events may be + // ignored until the gesture is 'detected as a scroll'. + // For this test, we expect the first ACTION_MOVE event to be ignored: + scrollGestureEvents.remove(1); + + // Ensure all processed events (that are not ignored) are offset over the app. + assertXCoordinatesAdjustedToZero(scrollGestureEvents, processedEvents); + // Except the first generated ACTION_DOWN event, ensure the following events should be + // finished (these events should not be generated). + assertMotionEventsShouldBeFinished(processedEvents.subList(1, processedEvents.size())); + } + + private List<MotionEvent> processMotionEvents(List<MotionEvent> motionEvents) { + List<MotionEvent> processedEvents = new ArrayList<>(); + for (MotionEvent motionEvent : motionEvents) { + MotionEvent clonedEvent = MotionEvent.obtain(motionEvent); + List<MotionEvent> letterboxScrollCompatEvents = + mLetterboxScrollProcessor.processMotionEvent(clonedEvent); + if (letterboxScrollCompatEvents == null) { + // Use original event if null returned (no adjustments made). + processedEvents.add(clonedEvent); + } else { + // Otherwise, use adjusted events. + processedEvents.addAll(letterboxScrollCompatEvents); + } + } + return processedEvents; + } + + private List<MotionEvent> createTapGestureEvents(float startX, float startY) { + // Events for tap-like gesture (non-scroll) + List<MotionEvent> motionEvents = new ArrayList<>(); + motionEvents.add(createBasicMotionEvent(0, ACTION_DOWN, startX, startY)); + motionEvents.add(createBasicMotionEvent(10, ACTION_UP, startX , startY)); + return motionEvents; + } + + private List<MotionEvent> createScrollGestureEvents(float startX, float startY) { + float touchSlop = (float) ViewConfiguration.get(mContext).getScaledTouchSlop(); + + // Events for scroll gesture (starts at (startX, startY) then moves down-right + List<MotionEvent> motionEvents = new ArrayList<>(); + motionEvents.add(createBasicMotionEvent(0, ACTION_DOWN, startX, startY)); + motionEvents.add(createBasicMotionEvent(10, ACTION_MOVE, + startX + touchSlop / 2, startY + touchSlop / 2)); + // Below event is first event in the scroll gesture where distance > touchSlop + motionEvents.add(createBasicMotionEvent(20, ACTION_MOVE, + startX + touchSlop * 2, startY + touchSlop * 2)); + motionEvents.add(createBasicMotionEvent(30, ACTION_MOVE, + startX + touchSlop * 3, startY + touchSlop * 3)); + motionEvents.add(createBasicMotionEvent(40, ACTION_UP, + startX + touchSlop * 3, startY + touchSlop * 3)); + return motionEvents; + } + + private MotionEvent createBasicMotionEvent(int downTime, int action, float x, float y) { + return MotionEvent.obtain(0, downTime, action, x, y, 0); + } + + private void assertEventLocationsAreNotAdjusted( + List<MotionEvent> originalEvents, + List<MotionEvent> processedEvents) { + assertEquals("MotionEvent arrays are not the same size", + originalEvents.size(), processedEvents.size()); + + for (int i = 0; i < originalEvents.size(); i++) { + assertEquals("X coordinates was unexpectedly adjusted at index " + i, + originalEvents.get(i).getX(), processedEvents.get(i).getX(), EPSILON); + assertEquals("Y coordinates was unexpectedly adjusted at index " + i, + originalEvents.get(i).getY(), processedEvents.get(i).getY(), EPSILON); + } + } + + private void assertXCoordinatesAdjustedToZero( + List<MotionEvent> originalEvents, + List<MotionEvent> processedEvents) { + assertEquals("MotionEvent arrays are not the same size", + originalEvents.size(), processedEvents.size()); + + for (int i = 0; i < originalEvents.size(); i++) { + assertEquals("X coordinate was not adjusted to 0 at index " + i, + 0, processedEvents.get(i).getX(), EPSILON); + assertEquals("Y coordinate was unexpectedly adjusted at index " + i, + originalEvents.get(i).getY(), processedEvents.get(i).getY(), EPSILON); + } + } + + private void assertMotionEventsShouldBeFinished(List<MotionEvent> processedEvents) { + for (MotionEvent processedEvent : processedEvents) { + assertNotNull(mLetterboxScrollProcessor.processMotionEventBeforeFinish(processedEvent)); + } + } +} diff --git a/core/tests/coretests/src/android/view/ViewFrameRateTest.java b/core/tests/coretests/src/android/view/ViewFrameRateTest.java index c631c6f46e37..c98142357d69 100644 --- a/core/tests/coretests/src/android/view/ViewFrameRateTest.java +++ b/core/tests/coretests/src/android/view/ViewFrameRateTest.java @@ -22,6 +22,7 @@ import static android.view.Surface.FRAME_RATE_CATEGORY_LOW; import static android.view.Surface.FRAME_RATE_CATEGORY_NORMAL; import static android.view.Surface.FRAME_RATE_CATEGORY_NO_PREFERENCE; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; +import static android.view.flags.Flags.FLAG_TOOLKIT_FRAME_RATE_ANIMATION_BUGFIX_25Q1; import static android.view.flags.Flags.FLAG_TOOLKIT_FRAME_RATE_VELOCITY_MAPPING_READ_ONLY; import static android.view.flags.Flags.FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY; import static android.view.flags.Flags.FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY; @@ -46,6 +47,8 @@ import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.sysprop.ViewProperties; import android.util.DisplayMetrics; +import android.view.animation.Animation; +import android.view.animation.TranslateAnimation; import android.widget.FrameLayout; import android.widget.ProgressBar; @@ -1023,6 +1026,30 @@ public class ViewFrameRateTest { }); } + @Test + @RequiresFlagsEnabled(FLAG_TOOLKIT_FRAME_RATE_ANIMATION_BUGFIX_25Q1) + public void boostWhenApplyLegacyAnimation() throws Throwable { + if (!ViewProperties.vrr_enabled().orElse(true)) { + return; + } + waitForFrameRateCategoryToSettle(); + mActivityRule.runOnUiThread(() -> { + TranslateAnimation translateAnimation = new TranslateAnimation( + Animation.RELATIVE_TO_PARENT, 0f, // fromXDelta + Animation.RELATIVE_TO_PARENT, 0f, // toXDelta + Animation.RELATIVE_TO_PARENT, 1f, // fromYDelta (100%p) + Animation.RELATIVE_TO_PARENT, 0f // toYDelta + ); + translateAnimation.setDuration(600); + + mMovingView.startAnimation(translateAnimation); + + runAfterDraw(() -> assertEquals(FRAME_RATE_CATEGORY_HIGH_HINT, + mViewRoot.getLastPreferredFrameRateCategory())); + }); + waitForAfterDraw(); + } + private void runAfterDraw(@NonNull Runnable runnable) { Handler handler = new Handler(Looper.getMainLooper()); mAfterDrawLatch = new CountDownLatch(1); diff --git a/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java b/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java index 25f458e60852..0bda0fff6819 100644 --- a/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java +++ b/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java @@ -561,10 +561,12 @@ public class WindowOnBackInvokedDispatcherTest { waitForIdle(); onBackCancelledCalled.await(1000, TimeUnit.MILLISECONDS); + verify(mWindowSession, timeout(1000)).setOnBackInvokedCallbackInfo(Mockito.eq(mWindow), + isNull()); + waitForIdle(); // verify that onBackCancelled is called exactly once in this case assertEquals(0, onBackCancelledCalled.getCount()); assertEquals(0, onBackInvokedCalled.get()); - verify(mWindowSession).setOnBackInvokedCallbackInfo(Mockito.eq(mWindow), isNull()); assertFalse(mDispatcher.mProgressAnimator.isBackAnimationInProgress()); } diff --git a/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java b/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java index d9e90fa001c5..a37000a40508 100644 --- a/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java +++ b/core/tests/resourceflaggingtests/src/com/android/resourceflaggingtests/ResourceFlaggingTest.java @@ -24,6 +24,7 @@ import android.content.res.ApkAssets; import android.content.res.AssetManager; import android.content.res.Configuration; import android.content.res.Resources; +import android.content.res.TypedArray; import android.os.FileUtils; import android.util.DisplayMetrics; import android.view.LayoutInflater; @@ -151,6 +152,27 @@ public class ResourceFlaggingTest { mResources.getDrawable(R.drawable.removedpng); } + @Test + public void testDisabledStyleDoesntOverride() { + TypedArray ta = mResources.newTheme().obtainStyledAttributes( + R.style.style1, new int[] { android.R.attr.windowIsTranslucent}); + assertThat(ta.getBoolean(0, false)).isTrue(); + } + + @Test + public void testEnabledStyleDoesOverride() { + TypedArray ta = mResources.newTheme().obtainStyledAttributes( + R.style.style2, new int[] { android.R.attr.windowIsTranslucent}); + assertThat(ta.getBoolean(0, false)).isTrue(); + } + + @Test + public void testEnabledStyleItemDoesOverride() { + TypedArray ta = mResources.newTheme().obtainStyledAttributes( + R.style.style3, new int[] { android.R.attr.windowIsTranslucent}); + assertThat(ta.getBoolean(0, false)).isTrue(); + } + private LayoutInflater getLayoutInflater() { ContextWrapper c = new ContextWrapper(mContext) { private LayoutInflater mInflater; diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index b866382e4061..68d8ebbbdabf 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -41,6 +41,7 @@ import android.text.SpannedString; import android.text.TextUtils; import com.android.internal.annotations.GuardedBy; +import com.android.text.flags.Flags; import dalvik.annotation.optimization.CriticalNative; import dalvik.annotation.optimization.FastNative; @@ -2000,6 +2001,14 @@ public class Paint { } /** + * A change ID for new font variation settings management. + * @hide + */ + @ChangeId + @EnabledSince(targetSdkVersion = 36) + public static final long NEW_FONT_VARIATION_MANAGEMENT = 361260253L; + + /** * Sets TrueType or OpenType font variation settings. The settings string is constructed from * multiple pairs of axis tag and style values. The axis tag must contain four ASCII characters * and must be wrapped with single quotes (U+0027) or double quotes (U+0022). Axis strings that @@ -2028,12 +2037,16 @@ public class Paint { * </li> * </ul> * + * <p>Note: If the application that targets API 35 or before, this function mutates the + * underlying typeface instance. + * * @param fontVariationSettings font variation settings. You can pass null or empty string as * no variation settings. * - * @return true if the given settings is effective to at least one font file underlying this - * typeface. This function also returns true for empty settings string. Otherwise - * returns false + * @return If the application that targets API 36 or later and is running on devices API 36 or + * later, this function always returns true. Otherwise, this function returns true if + * the given settings is effective to at least one font file underlying this typeface. + * This function also returns true for empty settings string. Otherwise returns false. * * @throws IllegalArgumentException If given string is not a valid font variation settings * format @@ -2042,6 +2055,26 @@ public class Paint { * @see FontVariationAxis */ public boolean setFontVariationSettings(String fontVariationSettings) { + final boolean useFontVariationStore = Flags.typefaceRedesign() + && CompatChanges.isChangeEnabled(NEW_FONT_VARIATION_MANAGEMENT); + if (useFontVariationStore) { + FontVariationAxis[] axes = + FontVariationAxis.fromFontVariationSettings(fontVariationSettings); + if (axes == null) { + nSetFontVariationOverride(mNativePaint, 0); + mFontVariationSettings = null; + return true; + } + + long builderPtr = nCreateFontVariationBuilder(axes.length); + for (int i = 0; i < axes.length; ++i) { + nAddFontVariationToBuilder(builderPtr, axes[i].getOpenTypeTagValue(), + axes[i].getStyleValue()); + } + nSetFontVariationOverride(mNativePaint, builderPtr); + mFontVariationSettings = fontVariationSettings; + return true; + } final String settings = TextUtils.nullIfEmpty(fontVariationSettings); if (settings == mFontVariationSettings || (settings != null && settings.equals(mFontVariationSettings))) { @@ -3829,7 +3862,12 @@ public class Paint { private static native void nSetTextSize(long paintPtr, float textSize); @CriticalNative private static native boolean nEqualsForTextMeasurement(long leftPaintPtr, long rightPaintPtr); - + @CriticalNative + private static native long nCreateFontVariationBuilder(int size); + @CriticalNative + private static native void nAddFontVariationToBuilder(long builderPtr, int tag, float value); + @CriticalNative + private static native void nSetFontVariationOverride(long paintPtr, long builderPtr); // Following Native methods are kept for old Robolectric JNI signature used by // SystemUIGoogleRoboRNGTests diff --git a/libs/WindowManager/Shell/Android.bp b/libs/WindowManager/Shell/Android.bp index f8574294a3a2..a796eccd53ba 100644 --- a/libs/WindowManager/Shell/Android.bp +++ b/libs/WindowManager/Shell/Android.bp @@ -220,6 +220,7 @@ android_library { "//frameworks/libs/systemui:com_android_systemui_shared_flags_lib", "//frameworks/libs/systemui:iconloader_base", "com_android_wm_shell_flags_lib", + "PlatformAnimationLib", "WindowManager-Shell-proto", "WindowManager-Shell-lite-proto", "WindowManager-Shell-shared", diff --git a/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml new file mode 100644 index 000000000000..f3800e05148e --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_button_dark.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2024 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:height="24dp" + android:width="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="#000000" + android:pathData="M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z"/> +</vector> diff --git a/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml new file mode 100644 index 000000000000..5260450e8a13 --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/decor_desktop_mode_immersive_exit_button_dark.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2024 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="960" + android:viewportHeight="960" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M240,840L240,720L120,720L120,640L320,640L320,840L240,840ZM640,840L640,640L840,640L840,720L720,720L720,840L640,840ZM120,320L120,240L240,240L240,120L320,120L320,320L120,320ZM640,320L640,120L720,120L720,240L840,240L840,320L640,320Z"/> +</vector> diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml index 766852d4b1f0..d5b97037496a 100644 --- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml +++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml @@ -97,6 +97,12 @@ <string name="camera_compat_treatment_suggested_button_description" msgid="8103916969024076767">"Camera issues?\nTap to refit"</string> <string name="camera_compat_treatment_applied_button_description" msgid="2944157113330703897">"Didn’t fix it?\nTap to revert"</string> <string name="camera_compat_dismiss_button_description" msgid="2795364433503817511">"No camera issues? Tap to dismiss."</string> + <!-- no translation found for windowing_app_handle_education_tooltip (6398482412956375783) --> + <skip /> + <!-- no translation found for windowing_desktop_mode_image_button_education_tooltip (6285279585554484957) --> + <skip /> + <!-- no translation found for windowing_desktop_mode_exit_education_tooltip (6685429075790085337) --> + <skip /> <string name="letterbox_education_dialog_title" msgid="7739895354143295358">"See and do more"</string> <string name="letterbox_education_split_screen_text" msgid="449233070804658627">"Drag in another app for split screen"</string> <string name="letterbox_education_reposition_text" msgid="4589957299813220661">"Double-tap outside an app to reposition it"</string> @@ -129,7 +135,8 @@ <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Open menu"</string> <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Maximise screen"</string> <string name="desktop_mode_maximize_menu_snap_text" msgid="2065251022783880154">"Snap screen"</string> - <string name="desktop_mode_non_resizable_snap_text" msgid="1049800446363800707">"This app can\'t be resized"</string> + <!-- no translation found for desktop_mode_non_resizable_snap_text (3771776422751387878) --> + <skip /> <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Maximise"</string> <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Snap left"</string> <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Snap right"</string> diff --git a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml index 75c445c6f35c..18048ff045b5 100644 --- a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml +++ b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml @@ -97,6 +97,12 @@ <string name="camera_compat_treatment_suggested_button_description" msgid="8103916969024076767">"Problemas com a câmera?\nToque para ajustar o enquadramento"</string> <string name="camera_compat_treatment_applied_button_description" msgid="2944157113330703897">"O problema não foi corrigido?\nToque para reverter"</string> <string name="camera_compat_dismiss_button_description" msgid="2795364433503817511">"Não tem problemas com a câmera? Toque para dispensar."</string> + <!-- no translation found for windowing_app_handle_education_tooltip (6398482412956375783) --> + <skip /> + <!-- no translation found for windowing_desktop_mode_image_button_education_tooltip (6285279585554484957) --> + <skip /> + <!-- no translation found for windowing_desktop_mode_exit_education_tooltip (6685429075790085337) --> + <skip /> <string name="letterbox_education_dialog_title" msgid="7739895354143295358">"Veja e faça mais"</string> <string name="letterbox_education_split_screen_text" msgid="449233070804658627">"Arraste outro app para dividir a tela"</string> <string name="letterbox_education_reposition_text" msgid="4589957299813220661">"Toque duas vezes fora de um app para reposicionar"</string> @@ -126,15 +132,12 @@ <string name="manage_windows_text" msgid="5567366688493093920">"Gerenciar janelas"</string> <string name="close_text" msgid="4986518933445178928">"Fechar"</string> <string name="collapse_menu_text" msgid="7515008122450342029">"Fechar menu"</string> - <!-- no translation found for desktop_mode_app_header_chip_text (6366422614991687237) --> - <skip /> + <string name="desktop_mode_app_header_chip_text" msgid="6366422614991687237">"Abrir o menu"</string> <string name="desktop_mode_maximize_menu_maximize_text" msgid="3275717276171114411">"Ampliar tela"</string> <string name="desktop_mode_maximize_menu_snap_text" msgid="2065251022783880154">"Ajustar tela"</string> - <string name="desktop_mode_non_resizable_snap_text" msgid="1049800446363800707">"Não é possÃvel redimensionar o app"</string> - <!-- no translation found for desktop_mode_maximize_menu_maximize_button_text (3090199175564175845) --> - <skip /> - <!-- no translation found for desktop_mode_maximize_menu_snap_left_button_text (8077452201179893424) --> - <skip /> - <!-- no translation found for desktop_mode_maximize_menu_snap_right_button_text (7117751068945657304) --> + <!-- no translation found for desktop_mode_non_resizable_snap_text (3771776422751387878) --> <skip /> + <string name="desktop_mode_maximize_menu_maximize_button_text" msgid="3090199175564175845">"Maximizar"</string> + <string name="desktop_mode_maximize_menu_snap_left_button_text" msgid="8077452201179893424">"Ajustar à esquerda"</string> + <string name="desktop_mode_maximize_menu_snap_right_button_text" msgid="7117751068945657304">"Ajustar à direita"</string> </resources> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt index 05ce36120c4f..71bcb590ae23 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/AppToWebUtils.kt @@ -20,10 +20,11 @@ package com.android.wm.shell.apptoweb import android.content.Context import android.content.Intent +import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import android.content.pm.PackageManager import android.net.Uri -private val browserIntent = Intent() +private val GenericBrowserIntent = Intent() .setAction(Intent.ACTION_VIEW) .addCategory(Intent.CATEGORY_BROWSABLE) .setData(Uri.parse("http:")) @@ -32,9 +33,9 @@ private val browserIntent = Intent() * Returns a boolean indicating whether a given package is a browser app. */ fun isBrowserApp(context: Context, packageName: String, userId: Int): Boolean { - browserIntent.setPackage(packageName) + GenericBrowserIntent.setPackage(packageName) val list = context.packageManager.queryIntentActivitiesAsUser( - browserIntent, PackageManager.MATCH_ALL, userId + GenericBrowserIntent, PackageManager.MATCH_ALL, userId ) list.forEach { @@ -44,3 +45,17 @@ fun isBrowserApp(context: Context, packageName: String, userId: Int): Boolean { } return false } + +/** + * Returns intent if there is a browser application available to handle the uri. Otherwise, returns + * null. + */ +fun getBrowserIntent(uri: Uri, packageManager: PackageManager): Intent? { + val intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER) + .setData(uri) + .addFlags(FLAG_ACTIVITY_NEW_TASK) + // If there is no browser application available to handle intent, return null + val component = intent.resolveActivity(packageManager) ?: return null + intent.setComponent(component) + return intent +}
\ No newline at end of file diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java index 3e5adf395cdd..5836085e0ddc 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java @@ -1501,10 +1501,6 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont int rootIdx = -1; for (int i = info.getChanges().size() - 1; i >= 0; --i) { final TransitionInfo.Change c = info.getChanges().get(i); - if (c.hasFlags(FLAG_IS_WALLPAPER)) { - st.setAlpha(c.getLeash(), 1.0f); - continue; - } if (TransitionUtil.isOpeningMode(c.getMode())) { final Point offset = c.getEndRelOffset(); st.setPosition(c.getLeash(), offset.x, offset.y); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java index c4082d9f649c..0047ec503504 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayImeController.java @@ -403,6 +403,8 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged // activity A is focussed), we will not get a call of #insetsControlChanged, and // therefore have to start the show animation from here startAnimation(mImeRequestedVisible /* show */, false /* forceRestart */); + + setVisibleDirectly(mImeRequestedVisible || mAnimation != null); } } @@ -540,6 +542,10 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged show ? ANIMATION_DURATION_SHOW_MS : ANIMATION_DURATION_HIDE_MS); if (seek) { mAnimation.setCurrentFraction((seekValue - startY) / (endY - startY)); + } else { + // In some cases the value in onAnimationStart is zero, therefore setting it + // explicitly to startY + mAnimation.setCurrentFraction(0); } mAnimation.addUpdateListener(animation -> { @@ -621,6 +627,9 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged ImeTracker.PHASE_WM_ANIMATION_RUNNING); t.hide(animatingLeash); removeImeSurface(mDisplayId); + if (android.view.inputmethod.Flags.refactorInsetsController()) { + setVisibleDirectly(false /* visible */); + } ImeTracker.forLogging().onHidden(mStatsToken); } else if (mAnimationDirection == DIRECTION_SHOW && !mCancelled) { ImeTracker.forLogging().onShown(mStatsToken); @@ -645,13 +654,13 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged animatingControl.release(SurfaceControl::release); } }); - if (!show) { + if (!android.view.inputmethod.Flags.refactorInsetsController() && !show) { // When going away, queue up insets change first, otherwise any bounds changes // can have a "flicker" of ime-provided insets. setVisibleDirectly(false /* visible */); } mAnimation.start(); - if (show) { + if (!android.view.inputmethod.Flags.refactorInsetsController() && show) { // When showing away, queue up insets change last, otherwise any bounds changes // can have a "flicker" of ime-provided insets. setVisibleDirectly(true /* visible */); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt index 7070ce99b24c..b3491baa629d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt @@ -22,6 +22,7 @@ import android.app.WindowConfiguration import android.content.ComponentName import android.content.Context import android.content.pm.PackageManager +import android.graphics.PointF import android.graphics.Rect import android.os.RemoteException import android.util.DisplayMetrics @@ -29,10 +30,13 @@ import android.util.Log import android.util.Pair import android.util.TypedValue import android.window.TaskSnapshot +import android.window.TransitionInfo import com.android.internal.protolog.ProtoLog import com.android.wm.shell.Flags import com.android.wm.shell.protolog.ShellProtoLogGroup import kotlin.math.abs +import kotlin.math.ceil +import kotlin.math.floor import kotlin.math.roundToInt /** A class that includes convenience methods. */ @@ -163,6 +167,84 @@ object PipUtils { return Rect(left, top, left + width, top + height) } + /** + * Temporary rounding "outward" (ie. -1.2 -> -2) used for crop since it is an int. We lean + * outward since, usually, child surfaces are, themselves, cropped, so we'd prefer to avoid + * inadvertently cutting out content that would otherwise be visible. + */ + private fun roundOut(`val`: Float): Int { + return (if (`val` >= 0f) ceil(`val`) else floor(`val`)).toInt() + } + + /** + * Calculates the transform and crop to apply on a Task surface in order for the config-at-end + * activity inside it (original-size activity transformed to match it's hint rect to the final + * Task bounds) to occupy the same world-space position/dimensions as it had before the + * transition. + * + * Usage example: + * calcStartTransform(pipChange, scale, pos, crop); + * t.setScale(pipChange.getLeash(), scale.x, scale.y); + * t.setPosition(pipChange.getLeash(), pos.x, pos.y); + * t.setCrop(pipChange.getLeash(), crop); + */ + @JvmStatic + fun calcStartTransform(pipChange: TransitionInfo.Change, outScale: PointF, + outPos: PointF, outCrop: Rect) { + val startBounds = pipChange.startAbsBounds + val taskEndBounds = pipChange.endAbsBounds + // For now, pip activity bounds always matches task bounds. If this ever changes, we'll + // need to get the activity offset. + val endBounds = taskEndBounds + var hintRect = pipChange.taskInfo?.pictureInPictureParams?.sourceRectHint + if (hintRect == null) { + hintRect = Rect(startBounds) + hintRect.offsetTo(0, 0) + } + + // FA = final activity bounds (absolute) + // FT = final task bounds (absolute) + // SA = start activity bounds (absolute) + // H = source hint (relative to start activity bounds) + // We want to transform the activity so that when the task is at FT, H overlaps with FA + + // The scaling which takes the hint rect (H) in SA and matches it to FA + val hintToEndScaleX = (endBounds.width().toFloat()) / (hintRect.width().toFloat()) + val hintToEndScaleY = (endBounds.height().toFloat()) / (hintRect.height().toFloat()) + + // We want to set the transform on the END TASK surface to put the start activity + // back to where it was. + // First do backwards scale (which takes FA back to H) + val endToHintScaleX = 1f / hintToEndScaleX + val endToHintScaleY = 1f / hintToEndScaleY + // Then top-left needs to place FA (relative to the FT) at H (relative to SA): + // so -(FA.tl - FT.tl) + SA.tl + H.tl + // but we have scaled up the task, so anything that was "within" the task needs to + // be scaled: + // so -(FA.tl - FT.tl)*endToHint + SA.tl + H.tl + val endTaskPosForStartX = (-(endBounds.left - taskEndBounds.left) * endToHintScaleX + + startBounds.left + hintRect.left) + val endTaskPosForStartY = (-(endBounds.top - taskEndBounds.top) * endToHintScaleY + + startBounds.top + hintRect.top) + outScale[endToHintScaleX] = endToHintScaleY + outPos[endTaskPosForStartX] = endTaskPosForStartY + + // now need to set crop to reveal the non-hint stuff. Again, hintrect is relative, so + // we must apply outsets to reveal the *activity* content which is *inside* the task + // and thus is scaled (ie. if activity is scaled down, each task-level pixel exposes + // >1 activity-level pixels) + // For example, the topleft crop would be: + // (FA.tl - FT.tl) - H.tl * hintToEnd + // ^ activity within task + // bottomright can just use scaled activity size + // tl + scale(SA.size, hintToEnd) + outCrop.left = roundOut((endBounds.left - taskEndBounds.left) + - hintRect.left * hintToEndScaleX) + outCrop.top = roundOut((endBounds.top - taskEndBounds.top) - hintRect.top * hintToEndScaleY) + outCrop.right = roundOut(outCrop.left + startBounds.width() * hintToEndScaleX) + outCrop.bottom = roundOut(outCrop.top + startBounds.height() * hintToEndScaleY) + } + private var isPip2ExperimentEnabled: Boolean? = null /** @@ -181,4 +263,4 @@ object PipUtils { } return isPip2ExperimentEnabled as Boolean } -}
\ No newline at end of file +} diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java index 96a07755fea9..8ce3884d7477 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java @@ -16,6 +16,7 @@ package com.android.wm.shell.dagger; +import static android.window.flags.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_EXIT_TRANSITIONS; import static android.window.flags.DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_TASK_LIMIT; import android.annotation.Nullable; @@ -28,6 +29,8 @@ import android.view.Choreographer; import android.view.IWindowManager; import android.view.WindowManager; +import androidx.annotation.OptIn; + import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.logging.UiEventLogger; import com.android.internal.statusbar.IStatusBarService; @@ -59,8 +62,10 @@ import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.common.TaskStackListenerImpl; import com.android.wm.shell.dagger.back.ShellBackAnimationModule; import com.android.wm.shell.dagger.pip.PipModule; +import com.android.wm.shell.desktopmode.CloseDesktopTaskTransitionHandler; import com.android.wm.shell.desktopmode.DefaultDragToDesktopTransitionHandler; import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler; +import com.android.wm.shell.desktopmode.DesktopMixedTransitionHandler; import com.android.wm.shell.desktopmode.DesktopModeDragAndDropTransitionHandler; import com.android.wm.shell.desktopmode.DesktopModeEventLogger; import com.android.wm.shell.desktopmode.DesktopModeLoggerTransitionObserver; @@ -85,6 +90,8 @@ import com.android.wm.shell.freeform.FreeformComponents; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.freeform.FreeformTaskTransitionHandler; import com.android.wm.shell.freeform.FreeformTaskTransitionObserver; +import com.android.wm.shell.freeform.FreeformTaskTransitionStarter; +import com.android.wm.shell.freeform.FreeformTaskTransitionStarterInitializer; import com.android.wm.shell.keyguard.KeyguardTransitionHandler; import com.android.wm.shell.onehanded.OneHandedController; import com.android.wm.shell.pip.PipTransitionController; @@ -116,6 +123,8 @@ import com.android.wm.shell.unfold.qualifier.UnfoldTransition; import com.android.wm.shell.windowdecor.CaptionWindowDecorViewModel; import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModel; import com.android.wm.shell.windowdecor.WindowDecorViewModel; +import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalSystemViewContainer; +import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController; import dagger.Binds; import dagger.Lazy; @@ -123,6 +132,8 @@ import dagger.Module; import dagger.Provides; import kotlinx.coroutines.CoroutineScope; +import kotlinx.coroutines.ExperimentalCoroutinesApi; +import kotlinx.coroutines.MainCoroutineDispatcher; import java.util.ArrayList; import java.util.List; @@ -234,6 +245,7 @@ public abstract class WMShellModule { IWindowManager windowManager, ShellCommandHandler shellCommandHandler, ShellTaskOrganizer taskOrganizer, + @DynamicOverride DesktopModeTaskRepository desktopRepository, DisplayController displayController, ShellController shellController, DisplayInsetsController displayInsetsController, @@ -246,6 +258,7 @@ public abstract class WMShellModule { AssistContentRequester assistContentRequester, MultiInstanceHelper multiInstanceHelper, Optional<DesktopTasksLimiter> desktopTasksLimiter, + AppHandleEducationController appHandleEducationController, WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository, Optional<DesktopActivityOrientationChangeHandler> desktopActivityOrientationHandler) { if (DesktopModeStatus.canEnterDesktopMode(context)) { @@ -259,6 +272,7 @@ public abstract class WMShellModule { shellCommandHandler, windowManager, taskOrganizer, + desktopRepository, displayController, shellController, displayInsetsController, @@ -271,6 +285,7 @@ public abstract class WMShellModule { assistContentRequester, multiInstanceHelper, desktopTasksLimiter, + appHandleEducationController, windowDecorCaptionHandleRepository, desktopActivityOrientationHandler); } @@ -307,6 +322,11 @@ public abstract class WMShellModule { return new AssistContentRequester(context, shellExecutor, bgExecutor); } + @Provides + static AdditionalSystemViewContainer.Factory provideAdditionalSystemViewContainerFactory() { + return new AdditionalSystemViewContainer.Factory(); + } + // // Freeform // @@ -317,9 +337,13 @@ public abstract class WMShellModule { static FreeformComponents provideFreeformComponents( FreeformTaskListener taskListener, FreeformTaskTransitionHandler transitionHandler, - FreeformTaskTransitionObserver transitionObserver) { + FreeformTaskTransitionObserver transitionObserver, + FreeformTaskTransitionStarterInitializer transitionStarterInitializer) { return new FreeformComponents( - taskListener, Optional.of(transitionHandler), Optional.of(transitionObserver)); + taskListener, + Optional.of(transitionHandler), + Optional.of(transitionObserver), + Optional.of(transitionStarterInitializer)); } @WMSingleton @@ -343,27 +367,15 @@ public abstract class WMShellModule { @WMSingleton @Provides static FreeformTaskTransitionHandler provideFreeformTaskTransitionHandler( - ShellInit shellInit, Transitions transitions, - Context context, - WindowDecorViewModel windowDecorViewModel, DisplayController displayController, @ShellMainThread ShellExecutor mainExecutor, - @ShellAnimationThread ShellExecutor animExecutor, - @DynamicOverride DesktopModeTaskRepository desktopModeTaskRepository, - InteractionJankMonitor interactionJankMonitor, - @ShellMainThread Handler handler) { + @ShellAnimationThread ShellExecutor animExecutor) { return new FreeformTaskTransitionHandler( - shellInit, transitions, - context, - windowDecorViewModel, displayController, mainExecutor, - animExecutor, - desktopModeTaskRepository, - interactionJankMonitor, - handler); + animExecutor); } @WMSingleton @@ -377,6 +389,23 @@ public abstract class WMShellModule { context, shellInit, transitions, windowDecorViewModel); } + @WMSingleton + @Provides + static FreeformTaskTransitionStarterInitializer provideFreeformTaskTransitionStarterInitializer( + ShellInit shellInit, + WindowDecorViewModel windowDecorViewModel, + FreeformTaskTransitionHandler freeformTaskTransitionHandler, + Optional<DesktopMixedTransitionHandler> desktopMixedTransitionHandler) { + FreeformTaskTransitionStarter transitionStarter; + if (desktopMixedTransitionHandler.isPresent()) { + transitionStarter = desktopMixedTransitionHandler.get(); + } else { + transitionStarter = freeformTaskTransitionHandler; + } + return new FreeformTaskTransitionStarterInitializer(shellInit, windowDecorViewModel, + transitionStarter); + } + // // One handed mode // @@ -686,7 +715,17 @@ public abstract class WMShellModule { InteractionJankMonitor interactionJankMonitor, @ShellMainThread Handler handler) { return new ExitDesktopTaskTransitionHandler( - transitions, context, interactionJankMonitor, handler); + transitions, context, interactionJankMonitor, handler); + } + + @WMSingleton + @Provides + static CloseDesktopTaskTransitionHandler provideCloseDesktopTaskTransitionHandler( + Context context, + @ShellMainThread ShellExecutor mainExecutor, + @ShellAnimationThread ShellExecutor animExecutor + ) { + return new CloseDesktopTaskTransitionHandler(context, mainExecutor, animExecutor); } @WMSingleton @@ -745,6 +784,32 @@ public abstract class WMShellModule { @WMSingleton @Provides + static Optional<DesktopMixedTransitionHandler> provideDesktopMixedTransitionHandler( + Context context, + Transitions transitions, + @DynamicOverride DesktopModeTaskRepository desktopModeTaskRepository, + FreeformTaskTransitionHandler freeformTaskTransitionHandler, + CloseDesktopTaskTransitionHandler closeDesktopTaskTransitionHandler, + InteractionJankMonitor interactionJankMonitor, + @ShellMainThread Handler handler + ) { + if (!DesktopModeStatus.canEnterDesktopMode(context) + || !ENABLE_DESKTOP_WINDOWING_EXIT_TRANSITIONS.isTrue()) { + return Optional.empty(); + } + return Optional.of( + new DesktopMixedTransitionHandler( + context, + transitions, + desktopModeTaskRepository, + freeformTaskTransitionHandler, + closeDesktopTaskTransitionHandler, + interactionJankMonitor, + handler)); + } + + @WMSingleton + @Provides static DesktopModeLoggerTransitionObserver provideDesktopModeLoggerTransitionObserver( Context context, ShellInit shellInit, @@ -783,13 +848,30 @@ public abstract class WMShellModule { @WMSingleton @Provides + static DesktopWindowingEducationTooltipController + provideDesktopWindowingEducationTooltipController( + Context context, + AdditionalSystemViewContainer.Factory additionalSystemViewContainerFactory + ) { + return new DesktopWindowingEducationTooltipController(context, + additionalSystemViewContainerFactory); + } + + @OptIn(markerClass = ExperimentalCoroutinesApi.class) + @WMSingleton + @Provides static AppHandleEducationController provideAppHandleEducationController( + Context context, AppHandleEducationFilter appHandleEducationFilter, - ShellTaskOrganizer shellTaskOrganizer, AppHandleEducationDatastoreRepository appHandleEducationDatastoreRepository, - @ShellMainThread CoroutineScope applicationScope) { - return new AppHandleEducationController(appHandleEducationFilter, - shellTaskOrganizer, appHandleEducationDatastoreRepository, applicationScope); + WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository, + DesktopWindowingEducationTooltipController desktopWindowingEducationTooltipController, + @ShellMainThread CoroutineScope applicationScope, @ShellBackgroundThread + MainCoroutineDispatcher backgroundDispatcher) { + return new AppHandleEducationController(context, appHandleEducationFilter, + appHandleEducationDatastoreRepository, windowDecorCaptionHandleRepository, + desktopWindowingEducationTooltipController, applicationScope, + backgroundDispatcher); } @WMSingleton @@ -841,8 +923,7 @@ public abstract class WMShellModule { @Provides static Object provideIndependentShellComponentsToCreate( DragAndDropController dragAndDropController, - Optional<DesktopTasksTransitionObserver> desktopTasksTransitionObserverOptional, - AppHandleEducationController appHandleEducationController + Optional<DesktopTasksTransitionObserver> desktopTasksTransitionObserverOptional ) { return new Object(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt new file mode 100644 index 000000000000..a16c15dfdf1a --- /dev/null +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandler.kt @@ -0,0 +1,153 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.wm.shell.desktopmode + +import android.animation.Animator +import android.animation.AnimatorSet +import android.animation.RectEvaluator +import android.animation.ValueAnimator +import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM +import android.content.Context +import android.graphics.Rect +import android.os.IBinder +import android.util.TypedValue +import android.view.SurfaceControl.Transaction +import android.view.WindowManager +import android.window.TransitionInfo +import android.window.TransitionRequestInfo +import android.window.WindowContainerTransaction +import androidx.core.animation.addListener +import com.android.app.animation.Interpolators +import com.android.wm.shell.common.ShellExecutor +import com.android.wm.shell.transition.Transitions +import java.util.function.Supplier + +/** The [Transitions.TransitionHandler] that handles transitions for closing desktop mode tasks. */ +class CloseDesktopTaskTransitionHandler +@JvmOverloads +constructor( + private val context: Context, + private val mainExecutor: ShellExecutor, + private val animExecutor: ShellExecutor, + private val transactionSupplier: Supplier<Transaction> = Supplier { Transaction() }, +) : Transitions.TransitionHandler { + + private val runningAnimations = mutableMapOf<IBinder, List<Animator>>() + + /** Returns null, as it only handles transitions started from Shell. */ + override fun handleRequest( + transition: IBinder, + request: TransitionRequestInfo, + ): WindowContainerTransaction? = null + + override fun startAnimation( + transition: IBinder, + info: TransitionInfo, + startTransaction: Transaction, + finishTransaction: Transaction, + finishCallback: Transitions.TransitionFinishCallback, + ): Boolean { + if (info.type != WindowManager.TRANSIT_CLOSE) return false + val animations = mutableListOf<Animator>() + val onAnimFinish: (Animator) -> Unit = { animator -> + mainExecutor.execute { + // Animation completed + animations.remove(animator) + if (animations.isEmpty()) { + // All animations completed, finish the transition + runningAnimations.remove(transition) + finishCallback.onTransitionFinished(/* wct= */ null) + } + } + } + animations += + info.changes + .filter { + it.mode == WindowManager.TRANSIT_CLOSE && + it.taskInfo?.windowingMode == WINDOWING_MODE_FREEFORM + } + .map { createCloseAnimation(it, finishTransaction, onAnimFinish) } + if (animations.isEmpty()) return false + runningAnimations[transition] = animations + animExecutor.execute { animations.forEach(Animator::start) } + return true + } + + private fun createCloseAnimation( + change: TransitionInfo.Change, + finishTransaction: Transaction, + onAnimFinish: (Animator) -> Unit, + ): Animator { + finishTransaction.hide(change.leash) + return AnimatorSet().apply { + playTogether(createBoundsCloseAnimation(change), createAlphaCloseAnimation(change)) + addListener(onEnd = onAnimFinish) + } + } + + private fun createBoundsCloseAnimation(change: TransitionInfo.Change): Animator { + val startBounds = change.startAbsBounds + val endBounds = + Rect(startBounds).apply { + // Scale the end bounds of the window down with an anchor in the center + inset( + (startBounds.width().toFloat() * (1 - CLOSE_ANIM_SCALE) / 2).toInt(), + (startBounds.height().toFloat() * (1 - CLOSE_ANIM_SCALE) / 2).toInt() + ) + val offsetY = + TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + CLOSE_ANIM_OFFSET_Y, + context.resources.displayMetrics + ) + .toInt() + offset(/* dx= */ 0, offsetY) + } + return ValueAnimator.ofObject(RectEvaluator(), startBounds, endBounds).apply { + duration = CLOSE_ANIM_DURATION_BOUNDS + interpolator = Interpolators.STANDARD_ACCELERATE + addUpdateListener { animation -> + val animBounds = animation.animatedValue as Rect + val animScale = 1 - (1 - CLOSE_ANIM_SCALE) * animation.animatedFraction + transactionSupplier + .get() + .setPosition(change.leash, animBounds.left.toFloat(), animBounds.top.toFloat()) + .setScale(change.leash, animScale, animScale) + .apply() + } + } + } + + private fun createAlphaCloseAnimation(change: TransitionInfo.Change): Animator = + ValueAnimator.ofFloat(1f, 0f).apply { + duration = CLOSE_ANIM_DURATION_ALPHA + interpolator = Interpolators.LINEAR + addUpdateListener { animation -> + transactionSupplier + .get() + .setAlpha(change.leash, animation.animatedValue as Float) + .apply() + } + } + + private companion object { + const val CLOSE_ANIM_DURATION_BOUNDS = 200L + const val CLOSE_ANIM_DURATION_ALPHA = 100L + const val CLOSE_ANIM_SCALE = 0.95f + const val CLOSE_ANIM_OFFSET_Y = 36.0f + } +} diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt new file mode 100644 index 000000000000..ec3f8c5fc2f8 --- /dev/null +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandler.kt @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.wm.shell.desktopmode + +import android.app.ActivityTaskManager.INVALID_TASK_ID +import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM +import android.content.Context +import android.os.Handler +import android.os.IBinder +import android.view.SurfaceControl +import android.view.WindowManager +import android.window.TransitionInfo +import android.window.TransitionRequestInfo +import android.window.WindowContainerTransaction +import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE +import com.android.internal.jank.InteractionJankMonitor +import com.android.internal.protolog.ProtoLog +import com.android.wm.shell.freeform.FreeformTaskTransitionHandler +import com.android.wm.shell.freeform.FreeformTaskTransitionStarter +import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE +import com.android.wm.shell.shared.annotations.ShellMainThread +import com.android.wm.shell.transition.MixedTransitionHandler +import com.android.wm.shell.transition.Transitions + +/** The [Transitions.TransitionHandler] coordinates transition handlers in desktop windowing. */ +class DesktopMixedTransitionHandler( + private val context: Context, + private val transitions: Transitions, + private val desktopTaskRepository: DesktopModeTaskRepository, + private val freeformTaskTransitionHandler: FreeformTaskTransitionHandler, + private val closeDesktopTaskTransitionHandler: CloseDesktopTaskTransitionHandler, + private val interactionJankMonitor: InteractionJankMonitor, + @ShellMainThread private val handler: Handler, +) : MixedTransitionHandler, FreeformTaskTransitionStarter { + + /** Delegates starting transition to [FreeformTaskTransitionHandler]. */ + override fun startWindowingModeTransition( + targetWindowingMode: Int, + wct: WindowContainerTransaction?, + ) = freeformTaskTransitionHandler.startWindowingModeTransition(targetWindowingMode, wct) + + /** Delegates starting minimized mode transition to [FreeformTaskTransitionHandler]. */ + override fun startMinimizedModeTransition(wct: WindowContainerTransaction?): IBinder = + freeformTaskTransitionHandler.startMinimizedModeTransition(wct) + + /** Starts close transition and handles or delegates desktop task close animation. */ + override fun startRemoveTransition(wct: WindowContainerTransaction?) { + requireNotNull(wct) + transitions.startTransition(WindowManager.TRANSIT_CLOSE, wct, /* handler= */ this) + } + + /** Returns null, as it only handles transitions started from Shell. */ + override fun handleRequest( + transition: IBinder, + request: TransitionRequestInfo, + ): WindowContainerTransaction? = null + + override fun startAnimation( + transition: IBinder, + info: TransitionInfo, + startTransaction: SurfaceControl.Transaction, + finishTransaction: SurfaceControl.Transaction, + finishCallback: Transitions.TransitionFinishCallback, + ): Boolean { + val closeChange = findCloseDesktopTaskChange(info) + if (closeChange == null) { + ProtoLog.w(WM_SHELL_DESKTOP_MODE, "%s: Should have closing desktop task", TAG) + return false + } + if (isLastDesktopTask(closeChange)) { + // Dispatch close desktop task animation to the default transition handlers. + return dispatchCloseLastDesktopTaskAnimation( + transition, + info, + closeChange, + startTransaction, + finishTransaction, + finishCallback, + ) + } + // Animate close desktop task transition with [CloseDesktopTaskTransitionHandler]. + return closeDesktopTaskTransitionHandler.startAnimation( + transition, + info, + startTransaction, + finishTransaction, + finishCallback, + ) + } + + /** + * Dispatch close desktop task animation to the default transition handlers. Allows delegating + * it to Launcher to animate in sync with show Home transition. + */ + private fun dispatchCloseLastDesktopTaskAnimation( + transition: IBinder, + info: TransitionInfo, + change: TransitionInfo.Change, + startTransaction: SurfaceControl.Transaction, + finishTransaction: SurfaceControl.Transaction, + finishCallback: Transitions.TransitionFinishCallback, + ): Boolean { + // Starting the jank trace if closing the last window in desktop mode. + interactionJankMonitor.begin( + change.leash, + context, + handler, + CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE, + ) + // Dispatch the last desktop task closing animation. + return transitions.dispatchTransition( + transition, + info, + startTransaction, + finishTransaction, + { wct -> + // Finish the jank trace when closing the last window in desktop mode. + interactionJankMonitor.end(CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE) + finishCallback.onTransitionFinished(wct) + }, + /* skip= */ this + ) != null + } + + private fun isLastDesktopTask(change: TransitionInfo.Change): Boolean = + change.taskInfo?.let { + desktopTaskRepository.getActiveNonMinimizedTaskCount(it.displayId) == 1 + } ?: false + + private fun findCloseDesktopTaskChange(info: TransitionInfo): TransitionInfo.Change? { + if (info.type != WindowManager.TRANSIT_CLOSE) return null + return info.changes.firstOrNull { change -> + change.mode == WindowManager.TRANSIT_CLOSE && + !change.hasFlags(TransitionInfo.FLAG_IS_WALLPAPER) && + change.taskInfo?.taskId != INVALID_TASK_ID && + change.taskInfo?.windowingMode == WINDOWING_MODE_FREEFORM + } + } + + companion object { + private const val TAG = "DesktopMixedTransitionHandler" + } +} diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt index 0e8c4e70e05d..955fe83d34ee 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt @@ -60,6 +60,7 @@ class DesktopModeTaskRepository ( * @property minimizedTasks task ids for active freeform tasks that are currently minimized. * @property closingTasks task ids for tasks that are going to close, but are currently visible. * @property freeformTasksInZOrder list of current freeform task ids ordered from top to bottom + * @property fullImmersiveTaskId the task id of the desktop task that is in full-immersive mode. * (top is at index 0). */ private data class DesktopTaskData( @@ -69,13 +70,15 @@ class DesktopModeTaskRepository ( // TODO(b/332682201): Remove when the repository state is updated via TransitionObserver val closingTasks: ArraySet<Int> = ArraySet(), val freeformTasksInZOrder: ArrayList<Int> = ArrayList(), + var fullImmersiveTaskId: Int? = null, ) { fun deepCopy(): DesktopTaskData = DesktopTaskData( activeTasks = ArraySet(activeTasks), visibleTasks = ArraySet(visibleTasks), minimizedTasks = ArraySet(minimizedTasks), closingTasks = ArraySet(closingTasks), - freeformTasksInZOrder = ArrayList(freeformTasksInZOrder) + freeformTasksInZOrder = ArrayList(freeformTasksInZOrder), + fullImmersiveTaskId = fullImmersiveTaskId ) } @@ -300,6 +303,23 @@ class DesktopModeTaskRepository ( } } + /** Set whether the given task is the full-immersive task in this display. */ + fun setTaskInFullImmersiveState(displayId: Int, taskId: Int, immersive: Boolean) { + val desktopData = desktopTaskDataByDisplayId.getOrCreate(displayId) + if (immersive) { + desktopData.fullImmersiveTaskId = taskId + } else { + if (desktopData.fullImmersiveTaskId == taskId) { + desktopData.fullImmersiveTaskId = null + } + } + } + + /* Whether the task is in full-immersive state. */ + fun isTaskInFullImmersiveState(taskId: Int): Boolean { + return desktopTaskDataSequence().any { taskId == it.fullImmersiveTaskId } + } + private fun notifyVisibleTaskListeners(displayId: Int, visibleTasksCount: Int) { visibleTasksListeners.forEach { (listener, executor) -> executor.execute { listener.onTasksVisibilityChanged(displayId, visibleTasksCount) } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index afa27f9f1309..125805c14321 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -17,6 +17,7 @@ package com.android.wm.shell.desktopmode import android.app.ActivityManager.RunningTaskInfo +import android.app.ActivityManager import android.app.ActivityOptions import android.app.KeyguardManager import android.app.PendingIntent @@ -101,6 +102,7 @@ import com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTO import com.android.wm.shell.sysui.ShellCommandHandler import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellInit +import com.android.wm.shell.sysui.UserChangeListener import com.android.wm.shell.transition.OneShotRemoteHandler import com.android.wm.shell.transition.Transitions import com.android.wm.shell.windowdecor.DragPositioningCallbackUtility @@ -146,10 +148,12 @@ class DesktopTasksController( ) : RemoteCallable<DesktopTasksController>, Transitions.TransitionHandler, - DragAndDropController.DragAndDropListener { + DragAndDropController.DragAndDropListener, + UserChangeListener { private val desktopMode: DesktopModeImpl private var visualIndicator: DesktopModeVisualIndicator? = null + private var userId: Int private val desktopModeShellCommandHandler: DesktopModeShellCommandHandler = DesktopModeShellCommandHandler(this) private val mOnAnimationFinishedCallback = @@ -193,6 +197,7 @@ class DesktopTasksController( if (DesktopModeStatus.canEnterDesktopMode(context)) { shellInit.addInitCallback({ onInit() }, this) } + userId = ActivityManager.getCurrentUser() } private fun onInit() { @@ -204,6 +209,7 @@ class DesktopTasksController( { createExternalInterface() }, this ) + shellController.addUserChangeListener(this) transitions.addHandler(this) dragToDesktopTransitionHandler.dragToDesktopStateListener = dragToDesktopStateListener recentsTransitionHandler.addTransitionStateListener( @@ -1779,6 +1785,11 @@ class DesktopTasksController( return true } + // TODO(b/366397912): Support full multi-user mode in Windowing. + override fun onUserChanged(newUserId: Int, userContext: Context) { + userId = newUserId + } + private fun dump(pw: PrintWriter, prefix: String) { val innerPrefix = "$prefix " pw.println("${prefix}DesktopTasksController") diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt index 6013e97977d8..68a250d02958 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationController.kt @@ -16,98 +16,301 @@ package com.android.wm.shell.desktopmode.education -import android.app.ActivityManager.RunningTaskInfo -import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM +import android.annotation.DimenRes +import android.annotation.StringRes +import android.content.Context +import android.content.res.Resources +import android.graphics.Point import android.os.SystemProperties +import android.util.Slog import com.android.window.flags.Flags -import com.android.wm.shell.ShellTaskOrganizer +import com.android.wm.shell.R +import com.android.wm.shell.desktopmode.CaptionState +import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository +import com.android.wm.shell.shared.annotations.ShellBackgroundThread import com.android.wm.shell.shared.annotations.ShellMainThread +import com.android.wm.shell.shared.desktopmode.DesktopModeStatus.canEnterDesktopMode +import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource +import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController +import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController.EducationViewConfig +import kotlin.time.Duration.Companion.milliseconds import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.MainCoroutineDispatcher +import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.take +import kotlinx.coroutines.flow.timeout import kotlinx.coroutines.launch /** * Controls app handle education end to end. * * Listen to the user trigger for app handle education, calls an api to check if the education - * should be shown and calls an api to show education. + * should be shown and controls education UI. */ @OptIn(kotlinx.coroutines.FlowPreview::class) @kotlinx.coroutines.ExperimentalCoroutinesApi class AppHandleEducationController( + private val context: Context, private val appHandleEducationFilter: AppHandleEducationFilter, - shellTaskOrganizer: ShellTaskOrganizer, private val appHandleEducationDatastoreRepository: AppHandleEducationDatastoreRepository, - @ShellMainThread private val applicationCoroutineScope: CoroutineScope + private val windowDecorCaptionHandleRepository: WindowDecorCaptionHandleRepository, + private val windowingEducationViewController: DesktopWindowingEducationTooltipController, + @ShellMainThread private val applicationCoroutineScope: CoroutineScope, + @ShellBackgroundThread private val backgroundDispatcher: MainCoroutineDispatcher, ) { + private lateinit var openHandleMenuCallback: (Int) -> Unit + private lateinit var toDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit + init { runIfEducationFeatureEnabled { - // TODO: b/361038716 - Use app handle state flow instead of focus task change flow - val focusTaskChangeFlow = focusTaskChangeFlow(shellTaskOrganizer) applicationCoroutineScope.launch { - // Central block handling the app's educational flow end-to-end. - // This flow listens to the changes to the result of - // [WindowingEducationProto#hasEducationViewedTimestampMillis()] in datastore proto object + // Central block handling the app handle's educational flow end-to-end. isEducationViewedFlow() .flatMapLatest { isEducationViewed -> if (isEducationViewed) { // If the education is viewed then return emptyFlow() that completes immediately. - // This will help us to not listen to focus task changes after the education has - // been viewed already. + // This will help us to not listen to [captionHandleStateFlow] after the education + // has been viewed already. emptyFlow() } else { - // This flow listens for focus task changes, which trigger the app handle education. - focusTaskChangeFlow - .filter { runningTaskInfo -> - runningTaskInfo.topActivityInfo?.packageName?.let { - appHandleEducationFilter.shouldShowAppHandleEducation(it) - } ?: false && runningTaskInfo.windowingMode != WINDOWING_MODE_FREEFORM + // Listen for changes to window decor's caption handle. + windowDecorCaptionHandleRepository.captionStateFlow + // Wait for few seconds before emitting the latest state. + .debounce(APP_HANDLE_EDUCATION_DELAY_MILLIS) + .filter { captionState -> + captionState is CaptionState.AppHandle && + appHandleEducationFilter.shouldShowAppHandleEducation(captionState) } - .distinctUntilChanged() } } - .debounce( - APP_HANDLE_EDUCATION_DELAY) // Wait for few seconds, if the focus task changes. - // During the delay then current emission will be cancelled. - .flowOn(Dispatchers.IO) - .collectLatest { - // Fire and forget show education suspend function, manage entire lifecycle of - // tooltip in UI class. + .flowOn(backgroundDispatcher) + .collectLatest { captionState -> + showEducation(captionState) + // After showing first tooltip, mark education as viewed + appHandleEducationDatastoreRepository.updateEducationViewedTimestampMillis(true) + } + } + + applicationCoroutineScope.launch { + if (isFeatureUsed()) return@launch + windowDecorCaptionHandleRepository.captionStateFlow + .filter { captionState -> + captionState is CaptionState.AppHandle && captionState.isHandleMenuExpanded + } + .take(1) + .flowOn(backgroundDispatcher) + .collect { + // If user expands app handle, mark user has used the feature + appHandleEducationDatastoreRepository.updateFeatureUsedTimestampMillis(true) } } } } private inline fun runIfEducationFeatureEnabled(block: () -> Unit) { - if (Flags.enableDesktopWindowingAppHandleEducation()) block() + if (canEnterDesktopMode(context) && Flags.enableDesktopWindowingAppHandleEducation()) block() + } + + private fun showEducation(captionState: CaptionState) { + val appHandleBounds = (captionState as CaptionState.AppHandle).globalAppHandleBounds + val tooltipGlobalCoordinates = + Point(appHandleBounds.left + appHandleBounds.width() / 2, appHandleBounds.bottom) + // TODO: b/370546801 - Differentiate between user dismissing the tooltip vs following the cue. + // Populate information important to inflate app handle education tooltip. + val appHandleTooltipConfig = + EducationViewConfig( + tooltipViewLayout = R.layout.desktop_windowing_education_top_arrow_tooltip, + tooltipViewGlobalCoordinates = tooltipGlobalCoordinates, + tooltipText = getString(R.string.windowing_app_handle_education_tooltip), + arrowDirection = DesktopWindowingEducationTooltipController.TooltipArrowDirection.UP, + onEducationClickAction = { + launchWithExceptionHandling { showWindowingImageButtonTooltip() } + openHandleMenuCallback(captionState.runningTaskInfo.taskId) + }, + onDismissAction = { launchWithExceptionHandling { showWindowingImageButtonTooltip() } }, + ) + + windowingEducationViewController.showEducationTooltip( + tooltipViewConfig = appHandleTooltipConfig, taskId = captionState.runningTaskInfo.taskId) } + /** Show tooltip that points to windowing image button in app handle menu */ + private suspend fun showWindowingImageButtonTooltip() { + val appInfoPillHeight = getSize(R.dimen.desktop_mode_handle_menu_app_info_pill_height) + val windowingOptionPillHeight = getSize(R.dimen.desktop_mode_handle_menu_windowing_pill_height) + val appHandleMenuWidth = + getSize(R.dimen.desktop_mode_handle_menu_width) + + getSize(R.dimen.desktop_mode_handle_menu_pill_spacing_margin) + val appHandleMenuMargins = + getSize(R.dimen.desktop_mode_handle_menu_margin_top) + + getSize(R.dimen.desktop_mode_handle_menu_pill_spacing_margin) + + windowDecorCaptionHandleRepository.captionStateFlow + // After the first tooltip was dismissed, wait for 400 ms and see if the app handle menu + // has been expanded. + .timeout(APP_HANDLE_EDUCATION_TIMEOUT_MILLIS.milliseconds) + .catchTimeoutAndLog { + // TODO: b/341320146 - Log previous tooltip was dismissed + } + // Wait for few milliseconds before emitting the latest state. + .debounce(APP_HANDLE_EDUCATION_DELAY_MILLIS) + .filter { captionState -> + // Filter out states when app handle is not visible or not expanded. + captionState is CaptionState.AppHandle && captionState.isHandleMenuExpanded + } + // Before showing this tooltip, stop listening to further emissions to avoid accidentally + // showing the same tooltip on future emissions. + .take(1) + .flowOn(backgroundDispatcher) + .collectLatest { captionState -> + captionState as CaptionState.AppHandle + val appHandleBounds = captionState.globalAppHandleBounds + val tooltipGlobalCoordinates = + Point( + appHandleBounds.left + appHandleBounds.width() / 2 + appHandleMenuWidth / 2, + appHandleBounds.top + + appHandleMenuMargins + + appInfoPillHeight + + windowingOptionPillHeight / 2) + // Populate information important to inflate windowing image button education tooltip. + val windowingImageButtonTooltipConfig = + EducationViewConfig( + tooltipViewLayout = R.layout.desktop_windowing_education_left_arrow_tooltip, + tooltipViewGlobalCoordinates = tooltipGlobalCoordinates, + tooltipText = + getString(R.string.windowing_desktop_mode_image_button_education_tooltip), + arrowDirection = + DesktopWindowingEducationTooltipController.TooltipArrowDirection.LEFT, + onEducationClickAction = { + launchWithExceptionHandling { showExitWindowingTooltip() } + toDesktopModeCallback( + captionState.runningTaskInfo.taskId, + DesktopModeTransitionSource.APP_HANDLE_MENU_BUTTON) + }, + onDismissAction = { launchWithExceptionHandling { showExitWindowingTooltip() } }, + ) + + windowingEducationViewController.showEducationTooltip( + taskId = captionState.runningTaskInfo.taskId, + tooltipViewConfig = windowingImageButtonTooltipConfig) + } + } + + /** Show tooltip that points to app chip button and educates user on how to exit desktop mode */ + private suspend fun showExitWindowingTooltip() { + windowDecorCaptionHandleRepository.captionStateFlow + // After the previous tooltip was dismissed, wait for 400 ms and see if the user entered + // desktop mode. + .timeout(APP_HANDLE_EDUCATION_TIMEOUT_MILLIS.milliseconds) + .catchTimeoutAndLog { + // TODO: b/341320146 - Log previous tooltip was dismissed + } + // Wait for few milliseconds before emitting the latest state. + .debounce(APP_HANDLE_EDUCATION_DELAY_MILLIS) + .filter { captionState -> + // Filter out states when app header is not visible or expanded. + captionState is CaptionState.AppHeader && !captionState.isHeaderMenuExpanded + } + // Before showing this tooltip, stop listening to further emissions to avoid accidentally + // showing the same tooltip on future emissions. + .take(1) + .flowOn(backgroundDispatcher) + .collectLatest { captionState -> + captionState as CaptionState.AppHeader + val globalAppChipBounds = captionState.globalAppChipBounds + val tooltipGlobalCoordinates = + Point( + globalAppChipBounds.right, + globalAppChipBounds.top + globalAppChipBounds.height() / 2) + // Populate information important to inflate exit desktop mode education tooltip. + val exitWindowingTooltipConfig = + EducationViewConfig( + tooltipViewLayout = R.layout.desktop_windowing_education_left_arrow_tooltip, + tooltipViewGlobalCoordinates = tooltipGlobalCoordinates, + tooltipText = getString(R.string.windowing_desktop_mode_exit_education_tooltip), + arrowDirection = + DesktopWindowingEducationTooltipController.TooltipArrowDirection.LEFT, + onDismissAction = {}, + onEducationClickAction = { + openHandleMenuCallback(captionState.runningTaskInfo.taskId) + }, + ) + windowingEducationViewController.showEducationTooltip( + taskId = captionState.runningTaskInfo.taskId, + tooltipViewConfig = exitWindowingTooltipConfig, + ) + } + } + + /** + * Setup callbacks for app handle education tooltips. + * + * @param openHandleMenuCallback callback invoked to open app handle menu or app chip menu. + * @param toDesktopModeCallback callback invoked to move task into desktop mode. + */ + fun setAppHandleEducationTooltipCallbacks( + openHandleMenuCallback: (taskId: Int) -> Unit, + toDesktopModeCallback: (taskId: Int, DesktopModeTransitionSource) -> Unit + ) { + this.openHandleMenuCallback = openHandleMenuCallback + this.toDesktopModeCallback = toDesktopModeCallback + } + + private inline fun <T> Flow<T>.catchTimeoutAndLog(crossinline block: () -> Unit) = + catch { exception -> + if (exception is TimeoutCancellationException) block() else throw exception + } + + private fun launchWithExceptionHandling(block: suspend () -> Unit) = + applicationCoroutineScope.launch { + try { + block() + } catch (e: Throwable) { + Slog.e(TAG, "Error: ", e) + } + } + + /** + * Listens to the changes to [WindowingEducationProto#hasEducationViewedTimestampMillis()] in + * datastore proto object. + */ private fun isEducationViewedFlow(): Flow<Boolean> = appHandleEducationDatastoreRepository.dataStoreFlow .map { preferences -> preferences.hasEducationViewedTimestampMillis() } .distinctUntilChanged() - private fun focusTaskChangeFlow(shellTaskOrganizer: ShellTaskOrganizer): Flow<RunningTaskInfo> = - callbackFlow { - val focusTaskChange = ShellTaskOrganizer.FocusListener { taskInfo -> trySend(taskInfo) } - shellTaskOrganizer.addFocusListener(focusTaskChange) - awaitClose { shellTaskOrganizer.removeFocusListener(focusTaskChange) } - } + /** + * Listens to the changes to [WindowingEducationProto#hasFeatureUsedTimestampMillis()] in + * datastore proto object. + */ + private suspend fun isFeatureUsed(): Boolean = + appHandleEducationDatastoreRepository.dataStoreFlow.first().hasFeatureUsedTimestampMillis() + + private fun getSize(@DimenRes resourceId: Int): Int { + if (resourceId == Resources.ID_NULL) return 0 + return context.resources.getDimensionPixelSize(resourceId) + } + + private fun getString(@StringRes resId: Int): String = context.resources.getString(resId) - private companion object { - val APP_HANDLE_EDUCATION_DELAY: Long + companion object { + const val TAG = "AppHandleEducationController" + val APP_HANDLE_EDUCATION_DELAY_MILLIS: Long get() = SystemProperties.getLong("persist.windowing_app_handle_education_delay", 3000L) + + val APP_HANDLE_EDUCATION_TIMEOUT_MILLIS: Long + get() = SystemProperties.getLong("persist.windowing_app_handle_education_timeout", 400L) } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt index 51bdb40e12e6..15f4c249cf22 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilter.kt @@ -22,6 +22,7 @@ import android.content.Context import android.os.SystemClock import android.provider.Settings.Secure import com.android.wm.shell.R +import com.android.wm.shell.desktopmode.CaptionState import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository import com.android.wm.shell.desktopmode.education.data.WindowingEducationProto import java.time.Duration @@ -35,8 +36,12 @@ class AppHandleEducationFilter( context.getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager /** Returns true if conditions to show app handle education are met, returns false otherwise. */ - suspend fun shouldShowAppHandleEducation(focusAppPackageName: String): Boolean { + suspend fun shouldShowAppHandleEducation(captionState: CaptionState): Boolean { + if ((captionState as CaptionState.AppHandle).isHandleMenuExpanded) return false + val focusAppPackageName = + captionState.runningTaskInfo.topActivityInfo?.packageName ?: return false val windowingEducationProto = appHandleEducationDatastoreRepository.windowingEducationProto() + return isFocusAppInAllowlist(focusAppPackageName) && !isOtherEducationShowing() && hasSufficientTimeSinceSetup() && diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt index f420c5be456f..d21b208df482 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/education/data/AppHandleEducationDatastoreRepository.kt @@ -71,6 +71,37 @@ constructor(private val dataStore: DataStore<WindowingEducationProto>) { suspend fun windowingEducationProto(): WindowingEducationProto = dataStoreFlow.first() /** + * Updates [WindowingEducationProto.educationViewedTimestampMillis_] field in datastore with + * current timestamp if [isViewed] is true, if not then clears the field. + */ + suspend fun updateEducationViewedTimestampMillis(isViewed: Boolean) { + dataStore.updateData { preferences -> + if (isViewed) { + preferences + .toBuilder() + .setEducationViewedTimestampMillis(System.currentTimeMillis()) + .build() + } else { + preferences.toBuilder().clearEducationViewedTimestampMillis().build() + } + } + } + + /** + * Updates [WindowingEducationProto.featureUsedTimestampMillis_] field in datastore with current + * timestamp if [isViewed] is true, if not then clears the field. + */ + suspend fun updateFeatureUsedTimestampMillis(isViewed: Boolean) { + dataStore.updateData { preferences -> + if (isViewed) { + preferences.toBuilder().setFeatureUsedTimestampMillis(System.currentTimeMillis()).build() + } else { + preferences.toBuilder().clearFeatureUsedTimestampMillis().build() + } + } + } + + /** * Updates [AppHandleEducation.appUsageStats] and * [AppHandleEducation.appUsageStatsLastUpdateTimestampMillis] fields in datastore with * [appUsageStats] and [appUsageStatsLastUpdateTimestamp]. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java index eee5aaee3ec3..3379ff2a8c30 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformComponents.java @@ -35,6 +35,7 @@ public class FreeformComponents { public final ShellTaskOrganizer.TaskListener mTaskListener; public final Optional<Transitions.TransitionHandler> mTransitionHandler; public final Optional<Transitions.TransitionObserver> mTransitionObserver; + public final Optional<FreeformTaskTransitionStarterInitializer> mTransitionStarterInitializer; /** * Creates an instance with the given components. @@ -42,10 +43,12 @@ public class FreeformComponents { public FreeformComponents( ShellTaskOrganizer.TaskListener taskListener, Optional<Transitions.TransitionHandler> transitionHandler, - Optional<Transitions.TransitionObserver> transitionObserver) { + Optional<Transitions.TransitionObserver> transitionObserver, + Optional<FreeformTaskTransitionStarterInitializer> transitionStarterInitializer) { mTaskListener = taskListener; mTransitionHandler = transitionHandler; mTransitionObserver = transitionObserver; + mTransitionStarterInitializer = transitionStarterInitializer; } /** diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java index 517e20910f6d..6aaf001d46f3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java @@ -19,16 +19,12 @@ package com.android.wm.shell.freeform; import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; -import static com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE; - import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.app.ActivityManager; import android.app.WindowConfiguration; -import android.content.Context; import android.graphics.Rect; -import android.os.Handler; import android.os.IBinder; import android.util.ArrayMap; import android.view.SurfaceControl; @@ -40,14 +36,9 @@ import android.window.WindowContainerTransaction; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.android.internal.jank.InteractionJankMonitor; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.ShellExecutor; -import com.android.wm.shell.desktopmode.DesktopModeTaskRepository; -import com.android.wm.shell.shared.annotations.ShellMainThread; -import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; -import com.android.wm.shell.windowdecor.WindowDecorViewModel; import java.util.ArrayList; import java.util.List; @@ -59,48 +50,24 @@ import java.util.List; public class FreeformTaskTransitionHandler implements Transitions.TransitionHandler, FreeformTaskTransitionStarter { private static final int CLOSE_ANIM_DURATION = 400; - private final Context mContext; private final Transitions mTransitions; - private final WindowDecorViewModel mWindowDecorViewModel; - private final DesktopModeTaskRepository mDesktopModeTaskRepository; private final DisplayController mDisplayController; - private final InteractionJankMonitor mInteractionJankMonitor; private final ShellExecutor mMainExecutor; private final ShellExecutor mAnimExecutor; - @ShellMainThread - private final Handler mHandler; private final List<IBinder> mPendingTransitionTokens = new ArrayList<>(); private final ArrayMap<IBinder, ArrayList<Animator>> mAnimations = new ArrayMap<>(); public FreeformTaskTransitionHandler( - ShellInit shellInit, Transitions transitions, - Context context, - WindowDecorViewModel windowDecorViewModel, DisplayController displayController, ShellExecutor mainExecutor, - ShellExecutor animExecutor, - DesktopModeTaskRepository desktopModeTaskRepository, - InteractionJankMonitor interactionJankMonitor, - @ShellMainThread Handler handler) { + ShellExecutor animExecutor) { mTransitions = transitions; - mContext = context; - mWindowDecorViewModel = windowDecorViewModel; - mDesktopModeTaskRepository = desktopModeTaskRepository; mDisplayController = displayController; - mInteractionJankMonitor = interactionJankMonitor; mMainExecutor = mainExecutor; mAnimExecutor = animExecutor; - mHandler = handler; - if (Transitions.ENABLE_SHELL_TRANSITIONS) { - shellInit.addInitCallback(this::onInit, this); - } - } - - private void onInit() { - mWindowDecorViewModel.setFreeformTaskTransitionStarter(this); } @Override @@ -269,20 +236,12 @@ public class FreeformTaskTransitionHandler startBounds.top + (animation.getAnimatedFraction() * screenHeight)); t.apply(); }); - if (mDesktopModeTaskRepository.getActiveNonMinimizedTaskCount( - change.getTaskInfo().displayId) == 1) { - // Starting the jank trace if closing the last window in desktop mode. - mInteractionJankMonitor.begin( - sc, mContext, mHandler, CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE); - } animator.addListener( new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { animations.remove(animator); onAnimFinish.run(); - mInteractionJankMonitor.end( - CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE); } }); animations.add(animator); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt new file mode 100644 index 000000000000..98bdf059e738 --- /dev/null +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionStarterInitializer.kt @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.wm.shell.freeform + +import com.android.wm.shell.sysui.ShellInit +import com.android.wm.shell.windowdecor.WindowDecorViewModel + +/** + * Sets up [FreeformTaskTransitionStarter] for [WindowDecorViewModel] when shell finishes + * initializing. + * + * Used to extract the setup logic from the starter implementation. + */ +class FreeformTaskTransitionStarterInitializer( + shellInit: ShellInit, + private val windowDecorViewModel: WindowDecorViewModel, + private val freeformTaskTransitionStarter: FreeformTaskTransitionStarter +) { + init { + shellInit.addInitCallback(::onShellInit, this) + } + + /** Sets up [WindowDecorViewModel] transition starter with [FreeformTaskTransitionStarter] */ + private fun onShellInit() { + windowDecorViewModel.setFreeformTaskTransitionStarter(freeformTaskTransitionStarter) + } +} diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java index f93233ec7461..1b9bf2acbb96 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java @@ -54,6 +54,7 @@ import com.android.wm.shell.common.pip.PipUtils; import com.android.wm.shell.pip.PipTransitionController; import com.android.wm.shell.pip2.animation.PipAlphaAnimator; import com.android.wm.shell.pip2.animation.PipEnterExitAnimator; +import com.android.wm.shell.shared.TransitionUtil; import com.android.wm.shell.shared.pip.PipContentOverlay; import com.android.wm.shell.sysui.ShellInit; import com.android.wm.shell.transition.Transitions; @@ -405,6 +406,18 @@ public class PipTransition extends PipTransitionController implements sourceRectHint = pipChange.getTaskInfo().pictureInPictureParams.getSourceRectHint(); } + // For opening type transitions, if there is a non-pip change of mode TO_FRONT/OPEN, + // make sure that change has alpha of 1f, since it's init state might be set to alpha=0f + // by the Transitions framework to simplify Task opening transitions. + if (TransitionUtil.isOpeningType(info.getType())) { + for (TransitionInfo.Change change : info.getChanges()) { + if (change.getLeash() == null || change == pipChange) continue; + if (change.getMode() == TRANSIT_OPEN || change.getMode() == TRANSIT_TO_FRONT) { + startTransaction.setAlpha(change.getLeash(), 1f); + } + } + } + PipEnterExitAnimator animator = new PipEnterExitAnimator(mContext, pipLeash, startTransaction, finishTransaction, startBounds, startBounds, endBounds, sourceRectHint, PipEnterExitAnimator.BOUNDS_ENTER, Surface.ROTATION_0); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java index 6e084d6e05a4..27472493a8bc 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/TaskSnapshotWindow.java @@ -146,6 +146,11 @@ public class TaskSnapshotWindow { Slog.w(TAG, "Failed to relayout snapshot starting window"); return null; } + if (!surfaceControl.isValid()) { + snapshotSurface.clearWindowSynced(); + Slog.w(TAG, "Unable to draw snapshot, no valid surface"); + return null; + } SnapshotDrawerUtils.drawSnapshotOnSurface(info, layoutParams, surfaceControl, snapshot, info.taskBounds, topWindowInsetsState, true /* releaseAfterDraw */); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java index 2f5059f3161c..399e39a920fc 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/FocusTransitionObserver.java @@ -17,13 +17,13 @@ package com.android.wm.shell.transition; import static android.view.Display.INVALID_DISPLAY; +import static android.window.TransitionInfo.FLAG_IS_DISPLAY; import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP; import static com.android.window.flags.Flags.enableDisplayFocusInShellTransitions; import static com.android.wm.shell.transition.Transitions.TransitionObserver; import android.annotation.NonNull; -import android.app.ActivityManager.RunningTaskInfo; import android.os.IBinder; import android.os.RemoteException; import android.util.Slog; @@ -62,10 +62,9 @@ public class FocusTransitionObserver implements TransitionObserver { final List<TransitionInfo.Change> changes = info.getChanges(); for (int i = changes.size() - 1; i >= 0; i--) { final TransitionInfo.Change change = changes.get(i); - final RunningTaskInfo task = change.getTaskInfo(); - if (task != null && task.isFocused && change.hasFlags(FLAG_MOVED_TO_TOP)) { - if (mFocusedDisplayId != task.displayId) { - mFocusedDisplayId = task.displayId; + if (change.hasFlags(FLAG_IS_DISPLAY) && change.hasFlags(FLAG_MOVED_TO_TOP)) { + if (mFocusedDisplayId != change.getEndDisplayId()) { + mFocusedDisplayId = change.getEndDisplayId(); notifyFocusedDisplayChanged(); } return; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java index d280dcd252b4..d5e92e6a0e62 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java @@ -1036,9 +1036,14 @@ public class Transitions implements RemoteCallable<Transitions>, * Gives every handler (in order) a chance to animate until one consumes the transition. * @return the handler which consumed the transition. */ - TransitionHandler dispatchTransition(@NonNull IBinder transition, @NonNull TransitionInfo info, - @NonNull SurfaceControl.Transaction startT, @NonNull SurfaceControl.Transaction finishT, - @NonNull TransitionFinishCallback finishCB, @Nullable TransitionHandler skip) { + public TransitionHandler dispatchTransition( + @NonNull IBinder transition, + @NonNull TransitionInfo info, + @NonNull SurfaceControl.Transaction startT, + @NonNull SurfaceControl.Transaction finishT, + @NonNull TransitionFinishCallback finishCB, + @Nullable TransitionHandler skip + ) { for (int i = mHandlers.size() - 1; i >= 0; --i) { if (mHandlers.get(i) == skip) continue; ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, " try handler %s", diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java index 05065be7171c..839973fcbdd5 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java @@ -194,6 +194,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL ActivityManager.RunningTaskInfo taskInfo, boolean applyStartTransactionOnDraw, boolean setTaskCropAndPosition, + boolean isStatusBarVisible, + boolean isKeyguardVisibleAndOccluded, InsetsState displayInsetsState) { relayoutParams.reset(); relayoutParams.mRunningTaskInfo = taskInfo; @@ -204,6 +206,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL : R.dimen.freeform_decor_shadow_unfocused_thickness; relayoutParams.mApplyStartTransactionOnDraw = applyStartTransactionOnDraw; relayoutParams.mSetTaskPositionAndCrop = setTaskCropAndPosition; + relayoutParams.mIsCaptionVisible = taskInfo.isFreeform() + || (isStatusBarVisible && !isKeyguardVisibleAndOccluded); if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) { // If the app is requesting to customize the caption bar, allow input to fall @@ -240,7 +244,8 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL final WindowContainerTransaction wct = new WindowContainerTransaction(); updateRelayoutParams(mRelayoutParams, taskInfo, applyStartTransactionOnDraw, - setTaskCropAndPosition, mDisplayController.getInsetsState(taskInfo.displayId)); + setTaskCropAndPosition, mIsStatusBarVisible, mIsKeyguardVisibleAndOccluded, + mDisplayController.getInsetsState(taskInfo.displayId)); relayout(mRelayoutParams, startT, finishT, wct, oldRootView, mResult); // After this line, mTaskInfo is up-to-date and should be used instead of taskInfo diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java index 272508f46d33..3330f968332c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java @@ -22,9 +22,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; -import static android.content.Intent.ACTION_MAIN; -import static android.content.Intent.CATEGORY_APP_BROWSER; -import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.view.InputDevice.SOURCE_TOUCHSCREEN; import static android.view.MotionEvent.ACTION_CANCEL; import static android.view.MotionEvent.ACTION_HOVER_ENTER; @@ -58,7 +55,6 @@ import android.graphics.PointF; import android.graphics.Rect; import android.graphics.Region; import android.hardware.input.InputManager; -import android.net.Uri; import android.os.Handler; import android.os.IBinder; import android.os.Looper; @@ -87,6 +83,7 @@ import android.window.WindowContainerTransaction; import android.window.flags.DesktopModeFlags; import androidx.annotation.Nullable; +import androidx.annotation.OptIn; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.jank.Cuj; @@ -106,12 +103,14 @@ import com.android.wm.shell.common.MultiInstanceHelper; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler; +import com.android.wm.shell.desktopmode.DesktopModeTaskRepository; import com.android.wm.shell.desktopmode.DesktopModeVisualIndicator; import com.android.wm.shell.desktopmode.DesktopTasksController; import com.android.wm.shell.desktopmode.DesktopTasksController.SnapPosition; import com.android.wm.shell.desktopmode.DesktopTasksLimiter; import com.android.wm.shell.desktopmode.DesktopWallpaperActivity; import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository; +import com.android.wm.shell.desktopmode.education.AppHandleEducationController; import com.android.wm.shell.freeform.FreeformTaskTransitionStarter; import com.android.wm.shell.shared.annotations.ShellBackgroundThread; import com.android.wm.shell.shared.annotations.ShellMainThread; @@ -134,6 +133,8 @@ import com.android.wm.shell.windowdecor.viewholder.AppHeaderViewHolder; import kotlin.Pair; import kotlin.Unit; +import kotlinx.coroutines.ExperimentalCoroutinesApi; + import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; @@ -154,6 +155,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { private final ActivityTaskManager mActivityTaskManager; private final ShellCommandHandler mShellCommandHandler; private final ShellTaskOrganizer mTaskOrganizer; + private final DesktopModeTaskRepository mDesktopRepository; private final ShellController mShellController; private final Context mContext; private final @ShellMainThread Handler mMainHandler; @@ -167,6 +169,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { private final MultiInstanceHelper mMultiInstanceHelper; private final WindowDecorCaptionHandleRepository mWindowDecorCaptionHandleRepository; private final Optional<DesktopTasksLimiter> mDesktopTasksLimiter; + private final AppHandleEducationController mAppHandleEducationController; private final AppHeaderViewHolder.Factory mAppHeaderViewHolderFactory; private boolean mTransitionDragActive; @@ -224,6 +227,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { ShellCommandHandler shellCommandHandler, IWindowManager windowManager, ShellTaskOrganizer taskOrganizer, + DesktopModeTaskRepository desktopRepository, DisplayController displayController, ShellController shellController, DisplayInsetsController displayInsetsController, @@ -236,6 +240,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { AssistContentRequester assistContentRequester, MultiInstanceHelper multiInstanceHelper, Optional<DesktopTasksLimiter> desktopTasksLimiter, + AppHandleEducationController appHandleEducationController, WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository, Optional<DesktopActivityOrientationChangeHandler> activityOrientationChangeHandler) { this( @@ -248,6 +253,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { shellCommandHandler, windowManager, taskOrganizer, + desktopRepository, displayController, shellController, displayInsetsController, @@ -265,6 +271,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { new SparseArray<>(), interactionJankMonitor, desktopTasksLimiter, + appHandleEducationController, windowDecorCaptionHandleRepository, activityOrientationChangeHandler, new TaskPositionerFactory()); @@ -281,6 +288,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { ShellCommandHandler shellCommandHandler, IWindowManager windowManager, ShellTaskOrganizer taskOrganizer, + DesktopModeTaskRepository desktopRepository, DisplayController displayController, ShellController shellController, DisplayInsetsController displayInsetsController, @@ -298,6 +306,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { SparseArray<DesktopModeWindowDecoration> windowDecorByTaskId, InteractionJankMonitor interactionJankMonitor, Optional<DesktopTasksLimiter> desktopTasksLimiter, + AppHandleEducationController appHandleEducationController, WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository, Optional<DesktopActivityOrientationChangeHandler> activityOrientationChangeHandler, TaskPositionerFactory taskPositionerFactory) { @@ -308,6 +317,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mBgExecutor = bgExecutor; mActivityTaskManager = mContext.getSystemService(ActivityTaskManager.class); mTaskOrganizer = taskOrganizer; + mDesktopRepository = desktopRepository; mShellController = shellController; mDisplayController = displayController; mDisplayInsetsController = displayInsetsController; @@ -329,6 +339,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { com.android.internal.R.string.config_systemUi); mInteractionJankMonitor = interactionJankMonitor; mDesktopTasksLimiter = desktopTasksLimiter; + mAppHandleEducationController = appHandleEducationController; mWindowDecorCaptionHandleRepository = windowDecorCaptionHandleRepository; mActivityOrientationChangeHandler = activityOrientationChangeHandler; mAssistContentRequester = assistContentRequester; @@ -362,6 +373,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { shellInit.addInitCallback(this::onInit, this); } + @OptIn(markerClass = ExperimentalCoroutinesApi.class) private void onInit() { mShellController.addKeyguardChangeListener(mDesktopModeKeyguardChangeListener); mShellCommandHandler.addDumpCallback(this::dump, this); @@ -378,6 +390,18 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { } catch (RemoteException e) { Log.e(TAG, "Failed to register window manager callbacks", e); } + if (DesktopModeStatus.canEnterDesktopMode(mContext) + && Flags.enableDesktopWindowingAppHandleEducation()) { + mAppHandleEducationController.setAppHandleEducationTooltipCallbacks( + /* appHandleTooltipClickCallback= */(taskId) -> { + openHandleMenu(taskId); + return Unit.INSTANCE; + }, + /* onToDesktopClickCallback= */(taskId, desktopModeTransitionSource) -> { + onToDesktop(taskId, desktopModeTransitionSource); + return Unit.INSTANCE; + }); + } } @Override @@ -495,6 +519,12 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mWindowDecorByTaskId.remove(taskInfo.taskId); } + private void openHandleMenu(int taskId) { + final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId); + decoration.createHandleMenu(checkNumberOfOtherInstances(decoration.mTaskInfo) + >= MANAGE_WINDOWS_MINIMUM_INSTANCES); + } + private void onMaximizeOrRestore(int taskId, String source) { final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId); if (decoration == null) { @@ -532,20 +562,17 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { decoration.closeMaximizeMenu(); } - private void onOpenInBrowser(int taskId, @NonNull Uri uri) { + private void onOpenInBrowser(int taskId, @NonNull Intent intent) { final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(taskId); if (decoration == null) { return; } - openInBrowser(uri, decoration.getUser()); + openInBrowser(intent, decoration.getUser()); decoration.closeHandleMenu(); decoration.closeMaximizeMenu(); } - private void openInBrowser(Uri uri, @NonNull UserHandle userHandle) { - final Intent intent = Intent.makeMainSelectorActivity(ACTION_MAIN, CATEGORY_APP_BROWSER) - .setData(uri) - .addFlags(FLAG_ACTIVITY_NEW_TASK); + private void openInBrowser(@NonNull Intent intent, @NonNull UserHandle userHandle) { mContext.startActivityAsUser(intent, userHandle); } @@ -720,8 +747,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { } else if (id == R.id.caption_handle || id == R.id.open_menu_button) { if (!decoration.isHandleMenuActive()) { moveTaskToFront(decoration.mTaskInfo); - decoration.createHandleMenu(checkNumberOfOtherInstances(decoration.mTaskInfo) - >= MANAGE_WINDOWS_MINIMUM_INSTANCES); + openHandleMenu(mTaskId); } } else if (id == R.id.maximize_window) { // TODO(b/346441962): move click detection logic into the decor's @@ -1394,6 +1420,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { mContext.createContextAsUser(UserHandle.of(taskInfo.userId), 0 /* flags */), mDisplayController, mSplitScreenController, + mDesktopRepository, mTaskOrganizer, taskInfo, taskSurface, @@ -1445,8 +1472,8 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel { onToSplitScreen(taskInfo.taskId); return Unit.INSTANCE; }); - windowDecoration.setOpenInBrowserClickListener((uri) -> { - onOpenInBrowser(taskInfo.taskId, uri); + windowDecoration.setOpenInBrowserClickListener((intent) -> { + onOpenInBrowser(taskInfo.taskId, intent); }); windowDecoration.setOnNewWindowClickListener(() -> { onNewWindow(taskInfo.taskId); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index 8a53f5ba4a51..5daa3eee340b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -44,12 +44,14 @@ import android.app.WindowConfiguration.WindowingMode; import android.app.assist.AssistContent; import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Bitmap; +import android.graphics.Insets; import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; @@ -62,10 +64,12 @@ import android.os.UserHandle; import android.util.Size; import android.util.Slog; import android.view.Choreographer; +import android.view.InsetsState; import android.view.MotionEvent; import android.view.SurfaceControl; import android.view.View; import android.view.ViewConfiguration; +import android.view.WindowInsets; import android.view.WindowManager; import android.widget.ImageButton; import android.window.TaskSnapshot; @@ -89,6 +93,7 @@ import com.android.wm.shell.common.MultiInstanceHelper; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.desktopmode.CaptionState; +import com.android.wm.shell.desktopmode.DesktopModeTaskRepository; import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository; import com.android.wm.shell.shared.annotations.ShellBackgroundThread; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; @@ -166,7 +171,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private CapturedLink mCapturedLink; private Uri mGenericLink; private Uri mWebUri; - private Consumer<Uri> mOpenInBrowserClickListener; + private Consumer<Intent> mOpenInBrowserClickListener; private ExclusionRegionListener mExclusionRegionListener; @@ -188,12 +193,14 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private final Runnable mCapturedLinkExpiredRunnable = this::onCapturedLinkExpired; private final MultiInstanceHelper mMultiInstanceHelper; private final WindowDecorCaptionHandleRepository mWindowDecorCaptionHandleRepository; + private final DesktopModeTaskRepository mDesktopRepository; DesktopModeWindowDecoration( Context context, @NonNull Context userContext, DisplayController displayController, SplitScreenController splitScreenController, + DesktopModeTaskRepository desktopRepository, ShellTaskOrganizer taskOrganizer, ActivityManager.RunningTaskInfo taskInfo, SurfaceControl taskSurface, @@ -207,8 +214,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin AssistContentRequester assistContentRequester, MultiInstanceHelper multiInstanceHelper, WindowDecorCaptionHandleRepository windowDecorCaptionHandleRepository) { - this (context, userContext, displayController, splitScreenController, taskOrganizer, - taskInfo, taskSurface, handler, bgExecutor, choreographer, syncQueue, + this (context, userContext, displayController, splitScreenController, desktopRepository, + taskOrganizer, taskInfo, taskSurface, handler, bgExecutor, choreographer, syncQueue, appHeaderViewHolderFactory, rootTaskDisplayAreaOrganizer, genericLinksParser, assistContentRequester, SurfaceControl.Builder::new, SurfaceControl.Transaction::new, @@ -225,6 +232,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin @NonNull Context userContext, DisplayController displayController, SplitScreenController splitScreenController, + DesktopModeTaskRepository desktopRepository, ShellTaskOrganizer taskOrganizer, ActivityManager.RunningTaskInfo taskInfo, SurfaceControl taskSurface, @@ -264,6 +272,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mMultiInstanceHelper = multiInstanceHelper; mWindowManagerWrapper = windowManagerWrapper; mWindowDecorCaptionHandleRepository = windowDecorCaptionHandleRepository; + mDesktopRepository = desktopRepository; } /** @@ -335,7 +344,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mDragPositioningCallback = dragPositioningCallback; } - void setOpenInBrowserClickListener(Consumer<Uri> listener) { + void setOpenInBrowserClickListener(Consumer<Intent> listener) { mOpenInBrowserClickListener = listener; } @@ -439,8 +448,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mHandleMenu.relayout(startT, mResult.mCaptionX); } + final boolean inFullImmersive = mDesktopRepository + .isTaskInFullImmersiveState(taskInfo.taskId); updateRelayoutParams(mRelayoutParams, mContext, taskInfo, applyStartTransactionOnDraw, - shouldSetTaskPositionAndCrop); + shouldSetTaskPositionAndCrop, mIsStatusBarVisible, mIsKeyguardVisibleAndOccluded, + inFullImmersive, mDisplayController.getInsetsState(taskInfo.displayId)); final WindowDecorLinearLayout oldRootView = mResult.mRootView; final SurfaceControl oldDecorationSurface = mDecorationContainerSurface; @@ -461,6 +473,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin if (canEnterDesktopMode(mContext) && Flags.enableDesktopWindowingAppHandleEducation()) { notifyNoCaptionHandle(); } + mExclusionRegionListener.onExclusionRegionDismissed(mTaskInfo.taskId); disposeStatusBarInputLayer(); Trace.endSection(); // DesktopModeWindowDecoration#updateRelayoutParamsAndSurfaces return; @@ -479,11 +492,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin if (canEnterDesktopMode(mContext) && Flags.enableDesktopWindowingAppHandleEducation()) { notifyCaptionStateChanged(); } - mWindowDecorViewHolder.bindData(mTaskInfo, - position, - mResult.mCaptionWidth, - mResult.mCaptionHeight, - isCaptionVisible()); + + if (isAppHandle(mWindowDecorViewHolder)) { + mWindowDecorViewHolder.bindData(new AppHandleViewHolder.HandleData( + mTaskInfo, position, mResult.mCaptionWidth, mResult.mCaptionHeight, + isCaptionVisible() + )); + } else { + mWindowDecorViewHolder.bindData(new AppHeaderViewHolder.HeaderData( + mTaskInfo, TaskInfoKt.getRequestingImmersive(mTaskInfo), inFullImmersive + )); + } Trace.endSection(); if (!mTaskInfo.isFocused) { @@ -517,21 +536,28 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin } @Nullable - private Uri getBrowserLink() { + private Intent getBrowserLink() { // Do not show browser link in browser applications final ComponentName baseActivity = mTaskInfo.baseActivity; if (baseActivity != null && AppToWebUtils.isBrowserApp(mContext, baseActivity.getPackageName(), mUserContext.getUserId())) { return null; } + + final Uri browserLink; // If the captured link is available and has not expired, return the captured link. // Otherwise, return the generic link which is set to null if a generic link is unavailable. if (mCapturedLink != null && !mCapturedLink.mExpired) { - return mCapturedLink.mUri; + browserLink = mCapturedLink.mUri; } else if (mWebUri != null) { - return mWebUri; + browserLink = mWebUri; + } else { + browserLink = mGenericLink; } - return mGenericLink; + + if (browserLink == null) return null; + return AppToWebUtils.getBrowserIntent(browserLink, mContext.getPackageManager()); + } UserHandle getUser() { @@ -737,7 +763,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin Context context, ActivityManager.RunningTaskInfo taskInfo, boolean applyStartTransactionOnDraw, - boolean shouldSetTaskPositionAndCrop) { + boolean shouldSetTaskPositionAndCrop, + boolean isStatusBarVisible, + boolean isKeyguardVisibleAndOccluded, + boolean inFullImmersiveMode, + @NonNull InsetsState displayInsetsState) { final int captionLayoutId = getDesktopModeWindowDecorLayoutId(taskInfo.getWindowingMode()); final boolean isAppHeader = captionLayoutId == R.layout.desktop_mode_app_header; @@ -748,6 +778,28 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin relayoutParams.mCaptionHeightId = getCaptionHeightIdStatic(taskInfo.getWindowingMode()); relayoutParams.mCaptionWidthId = getCaptionWidthId(relayoutParams.mLayoutResId); + final boolean showCaption; + if (Flags.enableFullyImmersiveInDesktop()) { + if (inFullImmersiveMode) { + showCaption = isStatusBarVisible && !isKeyguardVisibleAndOccluded; + } else { + showCaption = taskInfo.isFreeform() + || (isStatusBarVisible && !isKeyguardVisibleAndOccluded); + } + } else { + // Caption should always be visible in freeform mode. When not in freeform, + // align with the status bar except when showing over keyguard (where it should not + // shown). + // TODO(b/356405803): Investigate how it's possible for the status bar visibility to + // be false while a freeform window is open if the status bar is always + // forcibly-shown. It may be that the InsetsState (from which |mIsStatusBarVisible| + // is set) still contains an invisible insets source in immersive cases even if the + // status bar is shown? + showCaption = taskInfo.isFreeform() + || (isStatusBarVisible && !isKeyguardVisibleAndOccluded); + } + relayoutParams.mIsCaptionVisible = showCaption; + if (isAppHeader) { if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) { // If the app is requesting to customize the caption bar, allow input to fall @@ -766,6 +818,13 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin // including non-immersive apps that just don't handle caption insets properly. relayoutParams.mInsetSourceFlags |= FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR; } + if (Flags.enableFullyImmersiveInDesktop() && inFullImmersiveMode) { + final Insets systemBarInsets = displayInsetsState.calculateInsets( + taskInfo.getConfiguration().windowConfiguration.getBounds(), + WindowInsets.Type.systemBars() & ~WindowInsets.Type.captionBar(), + false /* ignoreVisibility */); + relayoutParams.mCaptionTopPadding = systemBarInsets.top; + } // Report occluding elements as bounding rects to the insets system so that apps can // draw in the empty space in the center: // First, the "app chip" section of the caption bar (+ some extra margins). @@ -1048,7 +1107,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin } /** - * Determine the highest y coordinate of a freeform task. Used for restricting drag inputs. + * Determine the highest y coordinate of a freeform task. Used for restricting drag inputs.fmdra */ private int determineMaxY(int requiredEmptySpace, Rect stableBounds) { return stableBounds.bottom - requiredEmptySpace; @@ -1171,8 +1230,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin /* onToSplitScreenClickListener= */ mOnToSplitscreenClickListener, /* onNewWindowClickListener= */ mOnNewWindowClickListener, /* onManageWindowsClickListener= */ mOnManageWindowsClickListener, - /* openInBrowserClickListener= */ (uri) -> { - mOpenInBrowserClickListener.accept(uri); + /* openInBrowserClickListener= */ (intent) -> { + mOpenInBrowserClickListener.accept(intent); onCapturedLinkExpired(); return Unit.INSTANCE; }, @@ -1531,6 +1590,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin @NonNull Context userContext, DisplayController displayController, SplitScreenController splitScreenController, + DesktopModeTaskRepository desktopRepository, ShellTaskOrganizer taskOrganizer, ActivityManager.RunningTaskInfo taskInfo, SurfaceControl taskSurface, @@ -1549,6 +1609,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin userContext, displayController, splitScreenController, + desktopRepository, taskOrganizer, taskInfo, taskSurface, diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt index 9a5b4f54dd36..98fef4722d1c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt @@ -20,13 +20,13 @@ import android.annotation.DimenRes import android.annotation.SuppressLint import android.app.ActivityManager.RunningTaskInfo import android.content.Context +import android.content.Intent import android.content.res.ColorStateList import android.content.res.Resources import android.graphics.Bitmap import android.graphics.Point import android.graphics.PointF import android.graphics.Rect -import android.net.Uri import android.view.LayoutInflater import android.view.MotionEvent import android.view.MotionEvent.ACTION_OUTSIDE @@ -70,7 +70,7 @@ class HandleMenu( private val shouldShowWindowingPill: Boolean, private val shouldShowNewWindowButton: Boolean, private val shouldShowManageWindowsButton: Boolean, - private val openInBrowserLink: Uri?, + private val openInBrowserIntent: Intent?, private val captionWidth: Int, private val captionHeight: Int, captionX: Int @@ -107,7 +107,7 @@ class HandleMenu( private val globalMenuPosition: Point = Point() private val shouldShowBrowserPill: Boolean - get() = openInBrowserLink != null + get() = openInBrowserIntent != null init { updateHandleMenuPillPositions(captionX) @@ -119,7 +119,7 @@ class HandleMenu( onToSplitScreenClickListener: () -> Unit, onNewWindowClickListener: () -> Unit, onManageWindowsClickListener: () -> Unit, - openInBrowserClickListener: (Uri) -> Unit, + openInBrowserClickListener: (Intent) -> Unit, onCloseMenuClickListener: () -> Unit, onOutsideTouchListener: () -> Unit, ) { @@ -152,7 +152,7 @@ class HandleMenu( onToSplitScreenClickListener: () -> Unit, onNewWindowClickListener: () -> Unit, onManageWindowsClickListener: () -> Unit, - openInBrowserClickListener: (Uri) -> Unit, + openInBrowserClickListener: (Intent) -> Unit, onCloseMenuClickListener: () -> Unit, onOutsideTouchListener: () -> Unit ) { @@ -172,7 +172,7 @@ class HandleMenu( this.onNewWindowClickListener = onNewWindowClickListener this.onManageWindowsClickListener = onManageWindowsClickListener this.onOpenInBrowserClickListener = { - openInBrowserClickListener.invoke(openInBrowserLink!!) + openInBrowserClickListener.invoke(openInBrowserIntent!!) } this.onCloseMenuClickListener = onCloseMenuClickListener this.onOutsideTouchListener = onOutsideTouchListener @@ -661,7 +661,7 @@ interface HandleMenuFactory { shouldShowWindowingPill: Boolean, shouldShowNewWindowButton: Boolean, shouldShowManageWindowsButton: Boolean, - openInBrowserLink: Uri?, + openInBrowserIntent: Intent?, captionWidth: Int, captionHeight: Int, captionX: Int @@ -680,7 +680,7 @@ object DefaultHandleMenuFactory : HandleMenuFactory { shouldShowWindowingPill: Boolean, shouldShowNewWindowButton: Boolean, shouldShowManageWindowsButton: Boolean, - openInBrowserLink: Uri?, + openInBrowserIntent: Intent?, captionWidth: Int, captionHeight: Int, captionX: Int @@ -695,7 +695,7 @@ object DefaultHandleMenuFactory : HandleMenuFactory { shouldShowWindowingPill, shouldShowNewWindowButton, shouldShowManageWindowsButton, - openInBrowserLink, + openInBrowserIntent, captionWidth, captionHeight, captionX diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt index 2d97dc06cf89..68a58ee0a370 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/MaximizeButtonView.kt @@ -18,6 +18,7 @@ package com.android.wm.shell.windowdecor import android.animation.AnimatorSet import android.animation.ObjectAnimator import android.animation.ValueAnimator +import android.annotation.DrawableRes import android.content.Context import android.content.res.ColorStateList import android.graphics.Color @@ -132,6 +133,11 @@ class MaximizeButtonView( } } + /** Set the drawable resource to use for the maximize button. */ + fun setIcon(@DrawableRes icon: Int) { + maximizeWindow.setImageResource(icon) + } + companion object { private const val OPACITY_15 = 38 } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java index c1a55b48a02a..000beba125b0 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java @@ -144,8 +144,8 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> TaskDragResizer mTaskDragResizer; boolean mIsCaptionVisible; - private boolean mIsStatusBarVisible; - private boolean mIsKeyguardVisibleAndOccluded; + boolean mIsStatusBarVisible; + boolean mIsKeyguardVisibleAndOccluded; /** The most recent set of insets applied to this window decoration. */ private WindowDecorationInsets mWindowDecorationInsets; @@ -241,7 +241,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> } rootView = null; // Clear it just in case we use it accidentally - updateCaptionVisibility(outResult.mRootView); + updateCaptionVisibility(outResult.mRootView, params); final Rect taskBounds = mTaskInfo.getConfiguration().windowConfiguration.getBounds(); outResult.mWidth = taskBounds.width(); @@ -527,17 +527,10 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> } /** - * Checks if task has entered/exited immersive mode and requires a change in caption visibility. + * Update caption visibility state and views. */ - private void updateCaptionVisibility(View rootView) { - // Caption should always be visible in freeform mode. When not in freeform, align with the - // status bar except when showing over keyguard (where it should not shown). - // TODO(b/356405803): Investigate how it's possible for the status bar visibility to be - // false while a freeform window is open if the status bar is always forcibly-shown. It - // may be that the InsetsState (from which |mIsStatusBarVisible| is set) still contains - // an invisible insets source in immersive cases even if the status bar is shown? - mIsCaptionVisible = mTaskInfo.isFreeform() - || (mIsStatusBarVisible && !mIsKeyguardVisibleAndOccluded); + private void updateCaptionVisibility(View rootView, @NonNull RelayoutParams params) { + mIsCaptionVisible = params.mIsCaptionVisible; setCaptionVisibility(rootView, mIsCaptionVisible); } @@ -737,6 +730,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> int mCornerRadius; int mCaptionTopPadding; + boolean mIsCaptionVisible; Configuration mWindowDecorConfig; @@ -755,6 +749,7 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> mCornerRadius = 0; mCaptionTopPadding = 0; + mIsCaptionVisible = false; mApplyStartTransactionOnDraw = false; mSetTaskPositionAndCrop = false; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt index 6f8e00143848..052cfaf2ccec 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/extension/TaskInfo.kt @@ -20,6 +20,7 @@ import android.app.TaskInfo import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN import android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW import android.app.WindowConfiguration.WINDOWING_MODE_PINNED +import android.view.WindowInsets import android.view.WindowInsetsController.APPEARANCE_LIGHT_CAPTION_BARS import android.view.WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND @@ -46,3 +47,10 @@ val TaskInfo.isPinned: Boolean /** Whether the task is in multi-window windowing mode. */ val TaskInfo.isMultiWindow: Boolean get() = windowingMode == WINDOWING_MODE_MULTI_WINDOW + +/** Whether the task is requesting immersive mode. */ +val TaskInfo.requestingImmersive: Boolean + get() { + // Considered to be requesting immersive when requesting to hide the status bar. + return (requestedVisibleTypes and WindowInsets.Type.statusBars()) == 0 + } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt index 8c102ebfb590..b5700ffb046b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt @@ -42,6 +42,7 @@ import com.android.wm.shell.R import com.android.wm.shell.shared.animation.Interpolators import com.android.wm.shell.windowdecor.WindowManagerWrapper import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalSystemViewContainer +import com.android.wm.shell.windowdecor.viewholder.WindowDecorationViewHolder.Data /** * A desktop mode window decoration used when the window is in full "focus" (i.e. fullscreen/split). @@ -53,11 +54,20 @@ internal class AppHandleViewHolder( onCaptionButtonClickListener: OnClickListener, private val windowManagerWrapper: WindowManagerWrapper, private val handler: Handler -) : WindowDecorationViewHolder(rootView) { +) : WindowDecorationViewHolder<AppHandleViewHolder.HandleData>(rootView) { companion object { private const val CAPTION_HANDLE_ANIMATION_DURATION: Long = 100 } + + data class HandleData( + val taskInfo: RunningTaskInfo, + val position: Point, + val width: Int, + val height: Int, + val isCaptionVisible: Boolean + ) : Data() + private lateinit var taskInfo: RunningTaskInfo private val captionView: View = rootView.requireViewById(R.id.desktop_mode_caption) private val captionHandle: ImageButton = rootView.requireViewById(R.id.caption_handle) @@ -89,7 +99,11 @@ internal class AppHandleViewHolder( } } - override fun bindData( + override fun bindData(data: HandleData) { + bindData(data.taskInfo, data.position, data.width, data.height, data.isCaptionVisible) + } + + private fun bindData( taskInfo: RunningTaskInfo, position: Point, width: Int, diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt index e9961655d979..52bf40062cdb 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt @@ -16,12 +16,12 @@ package com.android.wm.shell.windowdecor.viewholder import android.annotation.ColorInt +import android.annotation.DrawableRes import android.app.ActivityManager.RunningTaskInfo import android.content.res.ColorStateList import android.content.res.Configuration import android.graphics.Bitmap import android.graphics.Color -import android.graphics.Point import android.graphics.Rect import android.graphics.drawable.LayerDrawable import android.graphics.drawable.RippleDrawable @@ -46,6 +46,7 @@ import com.android.internal.R.attr.materialColorSecondaryContainer import com.android.internal.R.attr.materialColorSurfaceContainerHigh import com.android.internal.R.attr.materialColorSurfaceContainerLow import com.android.internal.R.attr.materialColorSurfaceDim +import com.android.window.flags.Flags import com.android.window.flags.Flags.enableMinimizeButton import com.android.wm.shell.R import android.window.flags.DesktopModeFlags @@ -74,7 +75,13 @@ class AppHeaderViewHolder( appName: CharSequence, appIconBitmap: Bitmap, onMaximizeHoverAnimationFinishedListener: () -> Unit -) : WindowDecorationViewHolder(rootView) { +) : WindowDecorationViewHolder<AppHeaderViewHolder.HeaderData>(rootView) { + + data class HeaderData( + val taskInfo: RunningTaskInfo, + val isRequestingImmersive: Boolean, + val inFullImmersiveState: Boolean, + ) : Data() private val decorThemeUtil = DecorThemeUtil(context) private val lightColors = dynamicLightColorScheme(context) @@ -151,15 +158,17 @@ class AppHeaderViewHolder( onMaximizeHoverAnimationFinishedListener } - override fun bindData( + override fun bindData(data: HeaderData) { + bindData(data.taskInfo, data.isRequestingImmersive, data.inFullImmersiveState) + } + + private fun bindData( taskInfo: RunningTaskInfo, - position: Point, - width: Int, - height: Int, - isCaptionVisible: Boolean + isRequestingImmersive: Boolean, + inFullImmersiveState: Boolean, ) { if (DesktopModeFlags.ENABLE_THEMED_APP_HEADERS.isTrue()) { - bindDataWithThemedHeaders(taskInfo) + bindDataWithThemedHeaders(taskInfo, isRequestingImmersive, inFullImmersiveState) } else { bindDataLegacy(taskInfo) } @@ -198,7 +207,11 @@ class AppHeaderViewHolder( minimizeWindowButton.isGone = !enableMinimizeButton() } - private fun bindDataWithThemedHeaders(taskInfo: RunningTaskInfo) { + private fun bindDataWithThemedHeaders( + taskInfo: RunningTaskInfo, + requestingImmersive: Boolean, + inFullImmersiveState: Boolean + ) { val header = fillHeaderInfo(taskInfo) val headerStyle = getHeaderStyle(header) @@ -241,16 +254,19 @@ class AppHeaderViewHolder( } minimizeWindowButton.isGone = !enableMinimizeButton() // Maximize button. - maximizeButtonView.setAnimationTints( - darkMode = header.appTheme == Theme.DARK, - iconForegroundColor = colorStateList, - baseForegroundColor = foregroundColor, - rippleDrawable = createRippleDrawable( - color = foregroundColor, - cornerRadius = headerButtonsRippleRadius, - drawableInsets = maximizeDrawableInsets + maximizeButtonView.apply { + setAnimationTints( + darkMode = header.appTheme == Theme.DARK, + iconForegroundColor = colorStateList, + baseForegroundColor = foregroundColor, + rippleDrawable = createRippleDrawable( + color = foregroundColor, + cornerRadius = headerButtonsRippleRadius, + drawableInsets = maximizeDrawableInsets + ) ) - ) + setIcon(getMaximizeButtonIcon(requestingImmersive, inFullImmersiveState)) + } // Close button. closeWindowButton.apply { imageTintList = colorStateList @@ -320,6 +336,32 @@ class AppHeaderViewHolder( } } + @DrawableRes + private fun getMaximizeButtonIcon( + requestingImmersive: Boolean, + inFullImmersiveState: Boolean + ): Int = when { + shouldShowEnterFullImmersiveIcon(requestingImmersive, inFullImmersiveState) -> { + R.drawable.decor_desktop_mode_immersive_button_dark + } + shouldShowExitFullImmersiveIcon(requestingImmersive, inFullImmersiveState) -> { + R.drawable.decor_desktop_mode_immersive_exit_button_dark + } + else -> R.drawable.decor_desktop_mode_maximize_button_dark + } + + private fun shouldShowEnterFullImmersiveIcon( + requestingImmersive: Boolean, + inFullImmersiveState: Boolean + ): Boolean = Flags.enableFullyImmersiveInDesktop() + && requestingImmersive && !inFullImmersiveState + + private fun shouldShowExitFullImmersiveIcon( + requestingImmersive: Boolean, + inFullImmersiveState: Boolean + ): Boolean = Flags.enableFullyImmersiveInDesktop() + && requestingImmersive && inFullImmersiveState + private fun getHeaderStyle(header: Header): HeaderStyle { return HeaderStyle( background = getHeaderBackground(header), diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt index 5ea55b367703..1fe743da966a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt @@ -17,31 +17,28 @@ package com.android.wm.shell.windowdecor.viewholder import android.app.ActivityManager.RunningTaskInfo import android.content.Context -import android.graphics.Point import android.view.View +import com.android.wm.shell.windowdecor.viewholder.WindowDecorationViewHolder.Data /** * Encapsulates the root [View] of a window decoration and its children to facilitate looking up * children (via findViewById) and updating to the latest data from [RunningTaskInfo]. */ -abstract class WindowDecorationViewHolder(rootView: View) { +abstract class WindowDecorationViewHolder<T : Data>(rootView: View) { val context: Context = rootView.context /** * A signal to the view holder that new data is available and that the views should be updated to * reflect it. */ - abstract fun bindData( - taskInfo: RunningTaskInfo, - position: Point, - width: Int, - height: Int, - isCaptionVisible: Boolean - ) + abstract fun bindData(data: T) /** Callback when the handle menu is opened. */ abstract fun onHandleMenuOpened() /** Callback when the handle menu is closed. */ abstract fun onHandleMenuClosed() + + /** Data clas that contains the information needed to update the view holder. */ + abstract class Data } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt new file mode 100644 index 000000000000..9b4cc17e19d9 --- /dev/null +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/CloseDesktopTaskTransitionHandlerTest.kt @@ -0,0 +1,160 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.wm.shell.desktopmode + +import android.app.ActivityManager.RunningTaskInfo +import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD +import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM +import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN +import android.app.WindowConfiguration.WindowingMode +import android.testing.AndroidTestingRunner +import android.testing.TestableLooper.RunWithLooper +import android.view.SurfaceControl +import android.view.WindowManager +import android.window.TransitionInfo +import androidx.test.filters.SmallTest +import com.android.wm.shell.ShellTestCase +import com.android.wm.shell.TestRunningTaskInfoBuilder +import com.android.wm.shell.common.ShellExecutor +import java.util.function.Supplier +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.kotlin.mock + +/** + * Test class for [CloseDesktopTaskTransitionHandler] + * + * Usage: atest WMShellUnitTests:CloseDesktopTaskTransitionHandlerTest + */ +@SmallTest +@RunWithLooper +@RunWith(AndroidTestingRunner::class) +class CloseDesktopTaskTransitionHandlerTest : ShellTestCase() { + + @Mock lateinit var testExecutor: ShellExecutor + @Mock lateinit var closingTaskLeash: SurfaceControl + + private val transactionSupplier = Supplier { mock<SurfaceControl.Transaction>() } + + private lateinit var handler: CloseDesktopTaskTransitionHandler + + @Before + fun setUp() { + handler = + CloseDesktopTaskTransitionHandler( + context, + testExecutor, + testExecutor, + transactionSupplier + ) + } + + @Test + fun handleRequest_returnsNull() { + assertNull(handler.handleRequest(mock(), mock())) + } + + @Test + fun startAnimation_openTransition_returnsFalse() { + val animates = + handler.startAnimation( + transition = mock(), + info = + createTransitionInfo( + type = WindowManager.TRANSIT_OPEN, + task = createTask(WINDOWING_MODE_FREEFORM) + ), + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + assertFalse("Should not animate open transition", animates) + } + + @Test + fun startAnimation_closeTransitionFullscreenTask_returnsFalse() { + val animates = + handler.startAnimation( + transition = mock(), + info = createTransitionInfo(task = createTask(WINDOWING_MODE_FULLSCREEN)), + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + assertFalse("Should not animate fullscreen task close transition", animates) + } + + @Test + fun startAnimation_closeTransitionOpeningFreeformTask_returnsFalse() { + val animates = + handler.startAnimation( + transition = mock(), + info = + createTransitionInfo( + changeMode = WindowManager.TRANSIT_OPEN, + task = createTask(WINDOWING_MODE_FREEFORM) + ), + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + assertFalse("Should not animate opening freeform task close transition", animates) + } + + @Test + fun startAnimation_closeTransitionClosingFreeformTask_returnsTrue() { + val animates = + handler.startAnimation( + transition = mock(), + info = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)), + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + assertTrue("Should animate closing freeform task close transition", animates) + } + + private fun createTransitionInfo( + type: Int = WindowManager.TRANSIT_CLOSE, + changeMode: Int = WindowManager.TRANSIT_CLOSE, + task: RunningTaskInfo + ): TransitionInfo = + TransitionInfo(type, 0 /* flags */).apply { + addChange( + TransitionInfo.Change(mock(), closingTaskLeash).apply { + mode = changeMode + parent = null + taskInfo = task + } + ) + } + + private fun createTask(@WindowingMode windowingMode: Int): RunningTaskInfo = + TestRunningTaskInfoBuilder() + .setActivityType(ACTIVITY_TYPE_STANDARD) + .setWindowingMode(windowingMode) + .build() +} diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt new file mode 100644 index 000000000000..2b60200f06ad --- /dev/null +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopMixedTransitionHandlerTest.kt @@ -0,0 +1,220 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.wm.shell.desktopmode + +import android.app.ActivityManager.RunningTaskInfo +import android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD +import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM +import android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN +import android.app.WindowConfiguration.WindowingMode +import android.os.Handler +import android.os.IBinder +import android.testing.AndroidTestingRunner +import android.testing.TestableLooper.RunWithLooper +import android.view.SurfaceControl +import android.view.WindowManager +import android.window.TransitionInfo +import android.window.WindowContainerTransaction +import androidx.test.filters.SmallTest +import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE +import com.android.internal.jank.InteractionJankMonitor +import com.android.wm.shell.ShellTestCase +import com.android.wm.shell.TestRunningTaskInfoBuilder +import com.android.wm.shell.freeform.FreeformTaskTransitionHandler +import com.android.wm.shell.transition.Transitions +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.verify +import org.mockito.kotlin.any +import org.mockito.kotlin.eq +import org.mockito.kotlin.mock +import org.mockito.kotlin.whenever + +/** + * Test class for [DesktopMixedTransitionHandler] + * + * Usage: atest WMShellUnitTests:DesktopMixedTransitionHandlerTest + */ +@SmallTest +@RunWithLooper +@RunWith(AndroidTestingRunner::class) +class DesktopMixedTransitionHandlerTest : ShellTestCase() { + + @Mock lateinit var transitions: Transitions + @Mock lateinit var desktopTaskRepository: DesktopModeTaskRepository + @Mock lateinit var freeformTaskTransitionHandler: FreeformTaskTransitionHandler + @Mock lateinit var closeDesktopTaskTransitionHandler: CloseDesktopTaskTransitionHandler + @Mock lateinit var interactionJankMonitor: InteractionJankMonitor + @Mock lateinit var mockHandler: Handler + @Mock lateinit var closingTaskLeash: SurfaceControl + + private lateinit var mixedHandler: DesktopMixedTransitionHandler + + @Before + fun setUp() { + mixedHandler = + DesktopMixedTransitionHandler( + context, + transitions, + desktopTaskRepository, + freeformTaskTransitionHandler, + closeDesktopTaskTransitionHandler, + interactionJankMonitor, + mockHandler + ) + } + + @Test + fun startWindowingModeTransition_callsFreeformTaskTransitionHandler() { + val windowingMode = WINDOWING_MODE_FULLSCREEN + val wct = WindowContainerTransaction() + + mixedHandler.startWindowingModeTransition(windowingMode, wct) + + verify(freeformTaskTransitionHandler).startWindowingModeTransition(windowingMode, wct) + } + + @Test + fun startMinimizedModeTransition_callsFreeformTaskTransitionHandler() { + val wct = WindowContainerTransaction() + whenever(freeformTaskTransitionHandler.startMinimizedModeTransition(any())) + .thenReturn(mock()) + + mixedHandler.startMinimizedModeTransition(wct) + + verify(freeformTaskTransitionHandler).startMinimizedModeTransition(wct) + } + + @Test + fun startRemoveTransition_startsCloseTransition() { + val wct = WindowContainerTransaction() + + mixedHandler.startRemoveTransition(wct) + + verify(transitions).startTransition(WindowManager.TRANSIT_CLOSE, wct, mixedHandler) + } + + @Test + fun handleRequest_returnsNull() { + assertNull(mixedHandler.handleRequest(mock(), mock())) + } + + @Test + fun startAnimation_withoutClosingDesktopTask_returnsFalse() { + val transition = mock<IBinder>() + val transitionInfo = + createTransitionInfo( + changeMode = WindowManager.TRANSIT_OPEN, + task = createTask(WINDOWING_MODE_FREEFORM) + ) + whenever(freeformTaskTransitionHandler.startAnimation(any(), any(), any(), any(), any())) + .thenReturn(true) + + val started = mixedHandler.startAnimation( + transition = transition, + info = transitionInfo, + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + assertFalse("Should not start animation without closing desktop task", started) + } + + @Test + fun startAnimation_withClosingDesktopTask_callsCloseTaskHandler() { + val transition = mock<IBinder>() + val transitionInfo = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)) + whenever(desktopTaskRepository.getActiveNonMinimizedTaskCount(any())).thenReturn(2) + whenever( + closeDesktopTaskTransitionHandler.startAnimation(any(), any(), any(), any(), any()) + ) + .thenReturn(true) + + val started = mixedHandler.startAnimation( + transition = transition, + info = transitionInfo, + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + assertTrue("Should delegate animation to close transition handler", started) + verify(closeDesktopTaskTransitionHandler) + .startAnimation(eq(transition), eq(transitionInfo), any(), any(), any()) + } + + @Test + fun startAnimation_withClosingLastDesktopTask_dispatchesTransition() { + val transition = mock<IBinder>() + val transitionInfo = createTransitionInfo(task = createTask(WINDOWING_MODE_FREEFORM)) + whenever(desktopTaskRepository.getActiveNonMinimizedTaskCount(any())).thenReturn(1) + whenever(transitions.dispatchTransition(any(), any(), any(), any(), any(), any())) + .thenReturn(mock()) + + mixedHandler.startAnimation( + transition = transition, + info = transitionInfo, + startTransaction = mock(), + finishTransaction = mock(), + finishCallback = {} + ) + + verify(transitions) + .dispatchTransition( + eq(transition), + eq(transitionInfo), + any(), + any(), + any(), + eq(mixedHandler) + ) + verify(interactionJankMonitor) + .begin( + closingTaskLeash, + context, + mockHandler, + CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE + ) + } + + private fun createTransitionInfo( + type: Int = WindowManager.TRANSIT_CLOSE, + changeMode: Int = WindowManager.TRANSIT_CLOSE, + task: RunningTaskInfo + ): TransitionInfo = + TransitionInfo(type, 0 /* flags */).apply { + addChange( + TransitionInfo.Change(mock(), closingTaskLeash).apply { + mode = changeMode + parent = null + taskInfo = task + } + ) + } + + private fun createTask(@WindowingMode windowingMode: Int): RunningTaskInfo = + TestRunningTaskInfoBuilder() + .setActivityType(ACTIVITY_TYPE_STANDARD) + .setWindowingMode(windowingMode) + .build() +} diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt index bc40d89009bc..794f9d819f4b 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepositoryTest.kt @@ -882,6 +882,51 @@ class DesktopModeTaskRepositoryTest : ShellTestCase() { assertThat(tasks).containsExactly(1, 3).inOrder() } + @Test + fun setTaskInFullImmersiveState_savedAsInImmersiveState() { + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isFalse() + + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true) + + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue() + } + + @Test + fun removeTaskInFullImmersiveState_removedAsInImmersiveState() { + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true) + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue() + + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = false) + + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isFalse() + } + + @Test + fun removeTaskInFullImmersiveState_otherWasImmersive_otherRemainsImmersive() { + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true) + + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 2, immersive = false) + + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue() + } + + @Test + fun setTaskInFullImmersiveState_sameDisplay_overridesExistingFullImmersiveTask() { + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true) + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 2, immersive = true) + + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isFalse() + assertThat(repo.isTaskInFullImmersiveState(taskId = 2)).isTrue() + } + + @Test + fun setTaskInFullImmersiveState_differentDisplay_bothAreImmersive() { + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID, taskId = 1, immersive = true) + repo.setTaskInFullImmersiveState(DEFAULT_DESKTOP_ID + 1, taskId = 2, immersive = true) + + assertThat(repo.isTaskInFullImmersiveState(taskId = 1)).isTrue() + assertThat(repo.isTaskInFullImmersiveState(taskId = 2)).isTrue() + } class TestListener : DesktopModeTaskRepository.ActiveTasksListener { var activeChangesOnDefaultDisplay = 0 diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index 94e361659090..8870846efed4 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -144,6 +144,7 @@ import org.mockito.Mockito.clearInvocations import org.mockito.Mockito.mock import org.mockito.Mockito.spy import org.mockito.Mockito.verify +import org.mockito.Mockito.times import org.mockito.kotlin.any import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.atLeastOnce @@ -3201,6 +3202,11 @@ class DesktopTasksControllerTest : ShellTestCase() { Rect()) } + @Test + fun shellController_registersUserChangeListener() { + verify(shellController, times(1)).addUserChangeListener(any()) + } + /** * Assert that an unhandled drag event launches a PendingIntent with the * windowing mode and bounds we are expecting. diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt new file mode 100644 index 000000000000..5596ad7726f1 --- /dev/null +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationControllerTest.kt @@ -0,0 +1,463 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.wm.shell.desktopmode.education + +import android.platform.test.annotations.DisableFlags +import android.platform.test.annotations.EnableFlags +import android.platform.test.flag.junit.SetFlagsRule +import android.testing.AndroidTestingRunner +import android.testing.TestableContext +import androidx.test.filters.SmallTest +import com.android.modules.utils.testing.ExtendedMockitoRule +import com.android.window.flags.Flags +import com.android.wm.shell.ShellTestCase +import com.android.wm.shell.desktopmode.CaptionState +import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository +import com.android.wm.shell.desktopmode.education.AppHandleEducationController.Companion.APP_HANDLE_EDUCATION_DELAY_MILLIS +import com.android.wm.shell.desktopmode.education.AppHandleEducationController.Companion.APP_HANDLE_EDUCATION_TIMEOUT_MILLIS +import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository +import com.android.wm.shell.shared.desktopmode.DesktopModeStatus +import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource +import com.android.wm.shell.util.createAppHandleState +import com.android.wm.shell.util.createAppHeaderState +import com.android.wm.shell.util.createWindowingEducationProto +import com.android.wm.shell.windowdecor.education.DesktopWindowingEducationTooltipController +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.test.StandardTestDispatcher +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.advanceTimeBy +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.test.setMain +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.MockitoAnnotations +import org.mockito.kotlin.any +import org.mockito.kotlin.argumentCaptor +import org.mockito.kotlin.atLeastOnce +import org.mockito.kotlin.eq +import org.mockito.kotlin.mock +import org.mockito.kotlin.never +import org.mockito.kotlin.times +import org.mockito.kotlin.verify +import org.mockito.kotlin.whenever + +/** + * Tests of [AppHandleEducationController] + * Usage: atest AppHandleEducationControllerTest + */ +@SmallTest +@RunWith(AndroidTestingRunner::class) +@OptIn(ExperimentalCoroutinesApi::class) +class AppHandleEducationControllerTest : ShellTestCase() { + @JvmField + @Rule + val extendedMockitoRule = + ExtendedMockitoRule.Builder(this).mockStatic(DesktopModeStatus::class.java).build()!! + @JvmField @Rule val setFlagsRule = SetFlagsRule() + + private lateinit var educationController: AppHandleEducationController + private lateinit var testableContext: TestableContext + private val testScope = TestScope() + private val testDataStoreFlow = MutableStateFlow(createWindowingEducationProto()) + private val testCaptionStateFlow = MutableStateFlow<CaptionState>(CaptionState.NoCaption) + private val educationConfigCaptor = + argumentCaptor<DesktopWindowingEducationTooltipController.EducationViewConfig>() + @Mock private lateinit var mockEducationFilter: AppHandleEducationFilter + @Mock private lateinit var mockDataStoreRepository: AppHandleEducationDatastoreRepository + @Mock private lateinit var mockCaptionHandleRepository: WindowDecorCaptionHandleRepository + @Mock private lateinit var mockTooltipController: DesktopWindowingEducationTooltipController + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + Dispatchers.setMain(StandardTestDispatcher(testScope.testScheduler)) + testableContext = TestableContext(mContext) + whenever(mockDataStoreRepository.dataStoreFlow).thenReturn(testDataStoreFlow) + whenever(mockCaptionHandleRepository.captionStateFlow).thenReturn(testCaptionStateFlow) + whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true) + + educationController = + AppHandleEducationController( + testableContext, + mockEducationFilter, + mockDataStoreRepository, + mockCaptionHandleRepository, + mockTooltipController, + testScope.backgroundScope, + Dispatchers.Main) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_appHandleVisible_shouldCallShowEducationTooltip() = + testScope.runTest { + // App handle is visible. Should show education tooltip. + setShouldShowAppHandleEducation(true) + + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState() + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, times(1)).showEducationTooltip(any(), any()) + } + + @Test + @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_flagDisabled_shouldNotCallShowEducationTooltip() = + testScope.runTest { + // App handle visible but education aconfig flag disabled, should not show education + // tooltip. + whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(false) + setShouldShowAppHandleEducation(true) + + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState() + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, never()).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_shouldShowAppHandleEducationReturnsFalse_shouldNotCallShowEducationTooltip() = + testScope.runTest { + // App handle is visible but [shouldShowAppHandleEducation] api returns false, should not + // show education tooltip. + setShouldShowAppHandleEducation(false) + + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState() + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, never()).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_appHandleNotVisible_shouldNotCallShowEducationTooltip() = + testScope.runTest { + // App handle is not visible, should not show education tooltip. + setShouldShowAppHandleEducation(true) + + // Simulate app handle is not visible. + testCaptionStateFlow.value = CaptionState.NoCaption + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, never()).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_educationViewedAlready_shouldNotCallShowEducationTooltip() = + testScope.runTest { + // App handle is visible but education has been viewed before. Should not show education + // tooltip. + // Mark education viewed. + testDataStoreFlow.value = + createWindowingEducationProto(educationViewedTimestampMillis = 123L) + setShouldShowAppHandleEducation(true) + + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = false) + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, never()).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_appHandleExpanded_shouldMarkFeatureViewed() = + testScope.runTest { + setShouldShowAppHandleEducation(false) + + // Simulate app handle visible and expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + // Wait for some time before verifying + waitForBufferDelay() + + verify(mockDataStoreRepository, times(1)).updateFeatureUsedTimestampMillis(eq(true)) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun init_showFirstTooltip_shouldMarkEducationViewed() = + testScope.runTest { + // App handle is visible. Should show education tooltip. + setShouldShowAppHandleEducation(true) + + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState() + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockDataStoreRepository, times(1)).updateEducationViewedTimestampMillis(eq(true)) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showWindowingImageButtonTooltip_appHandleExpanded_shouldCallShowEducationTooltipTwice() = + testScope.runTest { + // After first tooltip is dismissed, app handle is expanded. Should show second education + // tooltip. + showAndDismissFirstTooltip() + + // Simulate app handle expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + // Wait for next tooltip to showup. + waitForBufferDelay() + + // [showEducationTooltip] should be called twice, once for each tooltip. + verify(mockTooltipController, times(2)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showWindowingImageButtonTooltip_appHandleExpandedAfterTimeout_shouldCallShowEducationTooltipOnce() = + testScope.runTest { + // After first tooltip is dismissed, app handle is expanded after timeout. Should not show + // second education tooltip. + showAndDismissFirstTooltip() + + // Wait for timeout to occur, after this timeout we should not listen for further triggers + // anymore. + advanceTimeBy(APP_HANDLE_EDUCATION_TIMEOUT_BUFFER_MILLIS) + runCurrent() + // Simulate app handle expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + // Wait for next tooltip to showup. + waitForBufferDelay() + + // [showEducationTooltip] should be called once, just for the first tooltip. + verify(mockTooltipController, times(1)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showWindowingImageButtonTooltip_appHandleExpandedTwice_shouldCallShowEducationTooltipTwice() = + testScope.runTest { + // After first tooltip is dismissed, app handle is expanded twice. Should show second + // education tooltip only once. + showAndDismissFirstTooltip() + + // Simulate app handle expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + // Wait for next tooltip to showup. + waitForBufferDelay() + // Simulate app handle being expanded twice. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + waitForBufferDelay() + + // [showEducationTooltip] should not be called thrice, even if app handle was expanded + // twice. Should be called twice, once for each tooltip. + verify(mockTooltipController, times(2)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showWindowingImageButtonTooltip_appHandleNotExpanded_shouldCallShowEducationTooltipOnce() = + testScope.runTest { + // After first tooltip is dismissed, app handle is not expanded. Should not show second + // education tooltip. + showAndDismissFirstTooltip() + + // Simulate app handle visible but not expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = false) + // Wait for next tooltip to showup. + waitForBufferDelay() + + // [showEducationTooltip] should be called once, just for the first tooltip. + verify(mockTooltipController, times(1)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showExitWindowingButtonTooltip_appHeaderVisible_shouldCallShowEducationTooltipThrice() = + testScope.runTest { + // After first two tooltips are dismissed, app header is visible. Should show third + // education tooltip. + showAndDismissFirstTooltip() + showAndDismissSecondTooltip() + + // Simulate app header visible. + testCaptionStateFlow.value = createAppHeaderState() + // Wait for next tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, times(3)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showExitWindowingButtonTooltip_appHeaderVisibleAfterTimeout_shouldCallShowEducationTooltipTwice() = + testScope.runTest { + // After first two tooltips are dismissed, app header is visible after timeout. Should not + // show third education tooltip. + showAndDismissFirstTooltip() + showAndDismissSecondTooltip() + + // Wait for timeout to occur, after this timeout we should not listen for further triggers + // anymore. + advanceTimeBy(APP_HANDLE_EDUCATION_TIMEOUT_BUFFER_MILLIS) + runCurrent() + // Simulate app header visible. + testCaptionStateFlow.value = createAppHeaderState() + // Wait for next tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, times(2)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showExitWindowingButtonTooltip_appHeaderVisibleTwice_shouldCallShowEducationTooltipThrice() = + testScope.runTest { + // After first two tooltips are dismissed, app header is visible twice. Should show third + // education tooltip only once. + showAndDismissFirstTooltip() + showAndDismissSecondTooltip() + + // Simulate app header visible. + testCaptionStateFlow.value = createAppHeaderState() + // Wait for next tooltip to showup. + waitForBufferDelay() + testCaptionStateFlow.value = createAppHeaderState() + // Wait for next tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, times(3)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun showExitWindowingButtonTooltip_appHeaderExpanded_shouldCallShowEducationTooltipTwice() = + testScope.runTest { + // After first two tooltips are dismissed, app header is visible but expanded. Should not + // show third education tooltip. + showAndDismissFirstTooltip() + showAndDismissSecondTooltip() + + // Simulate app header visible. + testCaptionStateFlow.value = createAppHeaderState(isHeaderMenuExpanded = true) + // Wait for next tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, times(2)).showEducationTooltip(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun setAppHandleEducationTooltipCallbacks_onAppHandleTooltipClicked_callbackInvoked() = + testScope.runTest { + // App handle is visible. Should show education tooltip. + setShouldShowAppHandleEducation(true) + val mockOpenHandleMenuCallback: (Int) -> Unit = mock() + val mockToDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit = mock() + educationController.setAppHandleEducationTooltipCallbacks( + mockOpenHandleMenuCallback, mockToDesktopModeCallback) + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState() + // Wait for first tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, atLeastOnce()) + .showEducationTooltip(educationConfigCaptor.capture(), any()) + educationConfigCaptor.lastValue.onEducationClickAction.invoke() + + verify(mockOpenHandleMenuCallback, times(1)).invoke(any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun setAppHandleEducationTooltipCallbacks_onWindowingImageButtonTooltipClicked_callbackInvoked() = + testScope.runTest { + // After first tooltip is dismissed, app handle is expanded. Should show second education + // tooltip. + showAndDismissFirstTooltip() + val mockOpenHandleMenuCallback: (Int) -> Unit = mock() + val mockToDesktopModeCallback: (Int, DesktopModeTransitionSource) -> Unit = mock() + educationController.setAppHandleEducationTooltipCallbacks( + mockOpenHandleMenuCallback, mockToDesktopModeCallback) + // Simulate app handle expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + // Wait for next tooltip to showup. + waitForBufferDelay() + + verify(mockTooltipController, atLeastOnce()) + .showEducationTooltip(educationConfigCaptor.capture(), any()) + educationConfigCaptor.lastValue.onEducationClickAction.invoke() + + verify(mockToDesktopModeCallback, times(1)).invoke(any(), any()) + } + + private suspend fun TestScope.showAndDismissFirstTooltip() { + setShouldShowAppHandleEducation(true) + // Simulate app handle visible. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = false) + // Wait for first tooltip to showup. + waitForBufferDelay() + // [shouldShowAppHandleEducation] should return false as education has been viewed + // before. + setShouldShowAppHandleEducation(false) + // Dismiss previous tooltip, after this we should listen for next tooltip's trigger. + captureAndInvokeOnDismissAction() + } + + private fun TestScope.showAndDismissSecondTooltip() { + // Simulate app handle expanded. + testCaptionStateFlow.value = createAppHandleState(isHandleMenuExpanded = true) + // Wait for next tooltip to showup. + waitForBufferDelay() + // Dismiss previous tooltip, after this we should listen for next tooltip's trigger. + captureAndInvokeOnDismissAction() + } + + private fun captureAndInvokeOnDismissAction() { + verify(mockTooltipController, atLeastOnce()) + .showEducationTooltip(educationConfigCaptor.capture(), any()) + educationConfigCaptor.lastValue.onDismissAction.invoke() + } + + private suspend fun setShouldShowAppHandleEducation(shouldShowAppHandleEducation: Boolean) = + whenever(mockEducationFilter.shouldShowAppHandleEducation(any())) + .thenReturn(shouldShowAppHandleEducation) + + /** + * Class under test waits for some seconds before showing education, simulate advance time before + * verifying or moving forward + */ + private fun TestScope.waitForBufferDelay() { + advanceTimeBy(APP_HANDLE_EDUCATION_DELAY_BUFFER_MILLIS) + runCurrent() + } + + private companion object { + val APP_HANDLE_EDUCATION_DELAY_BUFFER_MILLIS: Long = APP_HANDLE_EDUCATION_DELAY_MILLIS + 1000L + val APP_HANDLE_EDUCATION_TIMEOUT_BUFFER_MILLIS: Long = + APP_HANDLE_EDUCATION_TIMEOUT_MILLIS + 1000L + } +} diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt index 765021fbbd3d..c2865441d7a6 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationDatastoreRepositoryTest.kt @@ -26,6 +26,7 @@ import androidx.test.filters.SmallTest import androidx.test.platform.app.InstrumentationRegistry import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository import com.android.wm.shell.desktopmode.education.data.WindowingEducationProto +import com.android.wm.shell.util.GMAIL_PACKAGE_NAME import com.android.wm.shell.util.createWindowingEducationProto import com.google.common.truth.Truth.assertThat import java.io.File @@ -108,8 +109,25 @@ class AppHandleEducationDatastoreRepositoryTest { assertThat(result).isEqualTo(windowingEducationProto) } + @Test + fun updateEducationViewedTimestampMillis_updatesDatastoreProto() = + runTest(StandardTestDispatcher()) { + datastoreRepository.updateEducationViewedTimestampMillis(true) + + val result = testDatastore.data.first().hasEducationViewedTimestampMillis() + assertThat(result).isEqualTo(true) + } + + @Test + fun updateFeatureUsedTimestampMillis_updatesDatastoreProto() = + runTest(StandardTestDispatcher()) { + datastoreRepository.updateFeatureUsedTimestampMillis(true) + + val result = testDatastore.data.first().hasFeatureUsedTimestampMillis() + assertThat(result).isEqualTo(true) + } + companion object { - private const val GMAIL_PACKAGE_NAME = "com.google.android.gm" private const val APP_HANDLE_EDUCATION_DATASTORE_TEST_FILE = "app_handle_education_test.pb" } } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt index c0d71c0bf5db..ac994248c962 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/education/AppHandleEducationFilterTest.kt @@ -26,6 +26,10 @@ import androidx.test.filters.SmallTest import com.android.wm.shell.R import com.android.wm.shell.ShellTestCase import com.android.wm.shell.desktopmode.education.data.AppHandleEducationDatastoreRepository +import com.android.wm.shell.util.GMAIL_PACKAGE_NAME +import com.android.wm.shell.util.YOUTUBE_PACKAGE_NAME +import com.android.wm.shell.util.createAppHandleState +import com.android.wm.shell.util.createTaskInfo import com.android.wm.shell.util.createWindowingEducationProto import com.google.common.truth.Truth.assertThat import kotlin.Int.Companion.MAX_VALUE @@ -38,6 +42,8 @@ import org.mockito.Mock import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations +/** Tests of [AppHandleEducationFilter] + * Usage: atest AppHandleEducationFilterTest */ @SmallTest @RunWith(AndroidTestingRunner::class) class AppHandleEducationFilterTest : ShellTestCase() { @@ -76,7 +82,7 @@ class AppHandleEducationFilterTest : ShellTestCase() { appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState()) assertThat(result).isTrue() } @@ -91,9 +97,11 @@ class AppHandleEducationFilterTest : ShellTestCase() { createWindowingEducationProto( appUsageStats = mapOf(YOUTUBE_PACKAGE_NAME to 4), appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) + val captionState = + createAppHandleState(createTaskInfo(runningTaskPackageName = YOUTUBE_PACKAGE_NAME)) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(YOUTUBE_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(captionState) assertThat(result).isFalse() } @@ -110,7 +118,7 @@ class AppHandleEducationFilterTest : ShellTestCase() { appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState()) assertThat(result).isFalse() } @@ -125,7 +133,7 @@ class AppHandleEducationFilterTest : ShellTestCase() { appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState()) assertThat(result).isFalse() } @@ -140,7 +148,7 @@ class AppHandleEducationFilterTest : ShellTestCase() { appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState()) assertThat(result).isFalse() } @@ -156,7 +164,7 @@ class AppHandleEducationFilterTest : ShellTestCase() { appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState()) assertThat(result).isFalse() } @@ -179,15 +187,26 @@ class AppHandleEducationFilterTest : ShellTestCase() { .thenReturn(mapOf(GMAIL_PACKAGE_NAME to UsageStats().apply { mAppLaunchCount = 2 })) `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) - val result = educationFilter.shouldShowAppHandleEducation(GMAIL_PACKAGE_NAME) + val result = educationFilter.shouldShowAppHandleEducation(createAppHandleState()) // Result should be false as queried usage stats should be considered to determine the result // instead of cached stats assertThat(result).isFalse() } - companion object { - private const val GMAIL_PACKAGE_NAME = "com.google.android.gm" - private const val YOUTUBE_PACKAGE_NAME = "com.google.android.youtube" + @Test + fun shouldShowAppHandleEducation_appHandleMenuExpanded_returnsFalse() = runTest { + val windowingEducationProto = + createWindowingEducationProto( + appUsageStats = mapOf(GMAIL_PACKAGE_NAME to 4), + appUsageStatsLastUpdateTimestampMillis = Long.MAX_VALUE) + // Simulate app handle menu is expanded + val captionState = createAppHandleState(isHandleMenuExpanded = true) + `when`(datastoreRepository.windowingEducationProto()).thenReturn(windowingEducationProto) + + val result = educationFilter.shouldShowAppHandleEducation(captionState) + + // We should not show app handle education if app menu is expanded + assertThat(result).isFalse() } } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java index 5f7542332c80..ce482cdd9944 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawerTests.java @@ -30,7 +30,6 @@ import static com.android.wm.shell.startingsurface.SplashscreenContentDrawer.MIN import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.times; @@ -56,12 +55,11 @@ import android.os.IBinder; import android.os.Looper; import android.os.UserHandle; import android.testing.TestableContext; -import android.view.IWindowSession; import android.view.InsetsState; import android.view.Surface; import android.view.WindowManager; -import android.view.WindowManagerGlobal; import android.view.WindowMetrics; +import android.window.SnapshotDrawerUtils; import android.window.StartingWindowInfo; import android.window.StartingWindowRemovalInfo; import android.window.TaskSnapshot; @@ -220,18 +218,10 @@ public class StartingSurfaceDrawerTests extends ShellTestCase { createWindowInfo(taskId, android.R.style.Theme, mBinder); TaskSnapshot snapshot = createTaskSnapshot(100, 100, new Point(100, 100), new Rect(0, 0, 0, 50), true /* hasImeSurface */); - final IWindowSession session = WindowManagerGlobal.getWindowSession(); - spyOn(session); - doReturn(WindowManagerGlobal.ADD_OKAY).when(session).addToDisplay( - any() /* window */, any() /* attrs */, - anyInt() /* viewVisibility */, anyInt() /* displayId */, - anyInt() /* requestedVisibleTypes */, any() /* outInputChannel */, - any() /* outInsetsState */, any() /* outActiveControls */, - any() /* outAttachedFrame */, any() /* outSizeCompatScale */); - TaskSnapshotWindow mockSnapshotWindow = TaskSnapshotWindow.create(windowInfo, - mBinder, - snapshot, mTestExecutor, () -> { - }); + final TaskSnapshotWindow mockSnapshotWindow = new TaskSnapshotWindow( + snapshot, SnapshotDrawerUtils.getOrCreateTaskDescription(windowInfo.taskInfo), + snapshot.getOrientation(), + () -> {}, mTestExecutor); spyOn(mockSnapshotWindow); try (AutoCloseable mockTaskSnapshotSession = new AutoCloseable() { MockitoSession mockSession = mockitoSession() diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java index d37b4cf4b4b3..d63158c29688 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/transition/FocusTransitionObserverTest.java @@ -18,7 +18,7 @@ package com.android.wm.shell.transition; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.WindowManager.TRANSIT_OPEN; -import static android.view.WindowManager.TRANSIT_TO_FRONT; +import static android.window.TransitionInfo.FLAG_IS_DISPLAY; import static android.window.TransitionInfo.FLAG_MOVED_TO_TOP; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; @@ -97,50 +97,38 @@ public class FocusTransitionObserverTest extends ShellTestCase { } @Test - public void testTransitionWithMovedToFrontFlagChangesDisplayFocus() throws RemoteException { + public void testOnlyDisplayChangeAffectsDisplayFocus() throws RemoteException { final IBinder binder = mock(IBinder.class); final SurfaceControl.Transaction tx = mock(SurfaceControl.Transaction.class); - // Open a task on the default display, which doesn't change display focus because the - // default display already has it. + // Open a task on the secondary display, but it doesn't change display focus because it only + // has a task change. TransitionInfo info = mock(TransitionInfo.class); final List<TransitionInfo.Change> changes = new ArrayList<>(); - setupChange(changes, 123 /* taskId */, TRANSIT_OPEN, DEFAULT_DISPLAY, + setupTaskChange(changes, 123 /* taskId */, TRANSIT_OPEN, SECONDARY_DISPLAY_ID, true /* focused */); when(info.getChanges()).thenReturn(changes); mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx); verify(mListener, never()).onFocusedDisplayChanged(SECONDARY_DISPLAY_ID); clearInvocations(mListener); - // Open a new task on the secondary display and verify display focus changes to the display. + // Moving the secondary display to front must change display focus to it. changes.clear(); - setupChange(changes, 456 /* taskId */, TRANSIT_OPEN, SECONDARY_DISPLAY_ID, - true /* focused */); + setupDisplayToTopChange(changes, SECONDARY_DISPLAY_ID); when(info.getChanges()).thenReturn(changes); mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx); - verify(mListener, times(1)).onFocusedDisplayChanged(SECONDARY_DISPLAY_ID); - clearInvocations(mListener); + verify(mListener, times(1)) + .onFocusedDisplayChanged(SECONDARY_DISPLAY_ID); - // Open the first task to front and verify display focus goes back to the default display. + // Moving the secondary display to front must change display focus back to it. changes.clear(); - setupChange(changes, 123 /* taskId */, TRANSIT_TO_FRONT, DEFAULT_DISPLAY, - true /* focused */); + setupDisplayToTopChange(changes, DEFAULT_DISPLAY); when(info.getChanges()).thenReturn(changes); mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx); verify(mListener, times(1)).onFocusedDisplayChanged(DEFAULT_DISPLAY); - clearInvocations(mListener); - - // Open another task on the default display and verify no display focus switch as it's - // already on the default display. - changes.clear(); - setupChange(changes, 789 /* taskId */, TRANSIT_OPEN, DEFAULT_DISPLAY, - true /* focused */); - when(info.getChanges()).thenReturn(changes); - mFocusTransitionObserver.onTransitionReady(binder, info, tx, tx); - verify(mListener, never()).onFocusedDisplayChanged(DEFAULT_DISPLAY); } - private void setupChange(List<TransitionInfo.Change> changes, int taskId, + private void setupTaskChange(List<TransitionInfo.Change> changes, int taskId, @TransitionMode int mode, int displayId, boolean focused) { TransitionInfo.Change change = mock(TransitionInfo.Change.class); RunningTaskInfo taskInfo = mock(RunningTaskInfo.class); @@ -152,4 +140,12 @@ public class FocusTransitionObserverTest extends ShellTestCase { when(change.getMode()).thenReturn(mode); changes.add(change); } + + private void setupDisplayToTopChange(List<TransitionInfo.Change> changes, int displayId) { + TransitionInfo.Change change = mock(TransitionInfo.Change.class); + when(change.hasFlags(FLAG_MOVED_TO_TOP)).thenReturn(true); + when(change.hasFlags(FLAG_IS_DISPLAY)).thenReturn(true); + when(change.getEndDisplayId()).thenReturn(displayId); + changes.add(change); + } } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationProtoUtils.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationTestUtils.kt index def4b916a5f7..708fadb7fbe2 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationProtoUtils.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/util/WindowingEducationTestUtils.kt @@ -16,9 +16,58 @@ package com.android.wm.shell.util +import android.app.ActivityManager.RunningTaskInfo +import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED +import android.content.pm.ActivityInfo +import android.graphics.Rect +import com.android.wm.shell.desktopmode.CaptionState import com.android.wm.shell.desktopmode.education.data.WindowingEducationProto /** + * Create an instance of [CaptionState.AppHandle] with parameters as properties. + * + * Any fields without corresponding parameters will retain their default values. + */ +fun createAppHandleState( + runningTaskInfo: RunningTaskInfo = createTaskInfo(), + isHandleMenuExpanded: Boolean = false, + globalAppHandleBounds: Rect = Rect(), +): CaptionState.AppHandle = + CaptionState.AppHandle( + runningTaskInfo = runningTaskInfo, + isHandleMenuExpanded = isHandleMenuExpanded, + globalAppHandleBounds = globalAppHandleBounds) + +/** + * Create an instance of [CaptionState.AppHeader] with parameters as properties. + * + * Any fields without corresponding parameters will retain their default values. + */ +fun createAppHeaderState( + runningTaskInfo: RunningTaskInfo = createTaskInfo(), + isHeaderMenuExpanded: Boolean = false, + globalAppChipBounds: Rect = Rect(), +): CaptionState.AppHeader = + CaptionState.AppHeader( + runningTaskInfo = runningTaskInfo, + isHeaderMenuExpanded = isHeaderMenuExpanded, + globalAppChipBounds = globalAppChipBounds) + +/** + * Create an instance of [RunningTaskInfo] with parameters as properties. + * + * Any fields without corresponding parameters will retain their default values. + */ +fun createTaskInfo( + deviceWindowingMode: Int = WINDOWING_MODE_UNDEFINED, + runningTaskPackageName: String = GMAIL_PACKAGE_NAME, +): RunningTaskInfo = + RunningTaskInfo().apply { + configuration.windowConfiguration.windowingMode = deviceWindowingMode + topActivityInfo = ActivityInfo().apply { packageName = runningTaskPackageName } + } + +/** * Constructs a [WindowingEducationProto] object, populating its fields with the provided * parameters. * @@ -61,3 +110,7 @@ fun createAppHandleEducationProto( } } .build() + +const val GMAIL_PACKAGE_NAME = "com.google.android.gm" +const val YOUTUBE_PACKAGE_NAME = "com.google.android.youtube" +const val LAUNCHER_PACKAGE_NAME = "com.google.android.apps.nexuslauncher" diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt index d141c2d771ce..0f16b9d0fa7e 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/CaptionWindowDecorationTests.kt @@ -47,6 +47,8 @@ class CaptionWindowDecorationTests : ShellTestCase() { taskInfo, true, false, + true /* isStatusBarVisible */, + false /* isKeyguardVisibleAndOccluded */, InsetsState() ) @@ -66,6 +68,8 @@ class CaptionWindowDecorationTests : ShellTestCase() { taskInfo, true, false, + true /* isStatusBarVisible */, + false /* isKeyguardVisibleAndOccluded */, InsetsState() ) @@ -81,6 +85,8 @@ class CaptionWindowDecorationTests : ShellTestCase() { taskInfo, true, false, + true /* isStatusBarVisible */, + false /* isKeyguardVisibleAndOccluded */, InsetsState() ) Truth.assertThat(relayoutParams.mOccludingCaptionElements.size).isEqualTo(2) diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt index 3051714b5ae8..5ae4ca839d61 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModelTests.kt @@ -27,6 +27,7 @@ import android.app.WindowConfiguration.WindowingMode import android.content.ComponentName import android.content.Context import android.content.Intent +import android.content.Intent.ACTION_MAIN import android.content.pm.ActivityInfo import android.graphics.Rect import android.hardware.display.DisplayManager @@ -64,6 +65,7 @@ import android.widget.Toast import android.window.WindowContainerTransaction import android.window.WindowContainerTransaction.HierarchyOp import androidx.test.filters.SmallTest +import com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession import com.android.dx.mockito.inline.extended.StaticMockitoSession @@ -85,10 +87,12 @@ import com.android.wm.shell.common.MultiInstanceHelper import com.android.wm.shell.common.ShellExecutor import com.android.wm.shell.common.SyncTransactionQueue import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler +import com.android.wm.shell.desktopmode.DesktopModeTaskRepository import com.android.wm.shell.desktopmode.DesktopTasksController import com.android.wm.shell.desktopmode.DesktopTasksController.SnapPosition import com.android.wm.shell.desktopmode.DesktopTasksLimiter import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository +import com.android.wm.shell.desktopmode.education.AppHandleEducationController import com.android.wm.shell.freeform.FreeformTaskTransitionStarter import com.android.wm.shell.shared.desktopmode.DesktopModeStatus import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource @@ -105,6 +109,7 @@ import java.util.function.Consumer import java.util.function.Supplier import junit.framework.Assert.assertFalse import junit.framework.Assert.assertTrue +import kotlinx.coroutines.ExperimentalCoroutinesApi import org.junit.After import org.junit.Assert.assertEquals import org.junit.Before @@ -136,6 +141,7 @@ import org.mockito.quality.Strictness * Tests of [DesktopModeWindowDecorViewModel] * Usage: atest WMShellUnitTests:DesktopModeWindowDecorViewModelTests */ +@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidTestingRunner::class) @RunWithLooper @@ -155,6 +161,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Mock private lateinit var mockTaskOrganizer: ShellTaskOrganizer @Mock private lateinit var mockDisplayController: DisplayController @Mock private lateinit var mockSplitScreenController: SplitScreenController + @Mock private lateinit var mockDesktopRepository: DesktopModeTaskRepository @Mock private lateinit var mockDisplayLayout: DisplayLayout @Mock private lateinit var displayInsetsController: DisplayInsetsController @Mock private lateinit var mockSyncQueue: SyncTransactionQueue @@ -184,6 +191,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Mock private lateinit var mockTaskPositionerFactory: DesktopModeWindowDecorViewModel.TaskPositionerFactory @Mock private lateinit var mockTaskPositioner: TaskPositioner + @Mock private lateinit var mockAppHandleEducationController: AppHandleEducationController @Mock private lateinit var mockCaptionHandleRepository: WindowDecorCaptionHandleRepository private lateinit var spyContext: TestableContext @@ -225,6 +233,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { mockShellCommandHandler, mockWindowManager, mockTaskOrganizer, + mockDesktopRepository, mockDisplayController, mockShellController, displayInsetsController, @@ -242,6 +251,7 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { windowDecorByTaskIdSpy, mockInteractionJankMonitor, Optional.of(mockTasksLimiter), + mockAppHandleEducationController, mockCaptionHandleRepository, Optional.of(mockActivityOrientationChangeHandler), mockTaskPositionerFactory @@ -924,13 +934,13 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { @Test fun testDecor_onClickToOpenBrowser_closeMenus() { val openInBrowserListenerCaptor = forClass(Consumer::class.java) - as ArgumentCaptor<Consumer<Uri>> + as ArgumentCaptor<Consumer<Intent>> val decor = createOpenTaskDecoration( windowingMode = WINDOWING_MODE_FULLSCREEN, onOpenInBrowserClickListener = openInBrowserListenerCaptor ) - openInBrowserListenerCaptor.value.accept(Uri.EMPTY) + openInBrowserListenerCaptor.value.accept(Intent()) verify(decor).closeHandleMenu() verify(decor).closeMaximizeMenu() @@ -940,23 +950,99 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { fun testDecor_onClickToOpenBrowser_opensBrowser() { doNothing().whenever(spyContext).startActivity(any()) val uri = Uri.parse("https://www.google.com") + val intent = Intent(ACTION_MAIN, uri) val openInBrowserListenerCaptor = forClass(Consumer::class.java) - as ArgumentCaptor<Consumer<Uri>> + as ArgumentCaptor<Consumer<Intent>> createOpenTaskDecoration( windowingMode = WINDOWING_MODE_FULLSCREEN, onOpenInBrowserClickListener = openInBrowserListenerCaptor ) - openInBrowserListenerCaptor.value.accept(uri) + openInBrowserListenerCaptor.value.accept(intent) verify(spyContext).startActivityAsUser(argThat { intent -> - intent.data == uri - && ((intent.flags and Intent.FLAG_ACTIVITY_NEW_TASK) != 0) - && intent.categories.contains(Intent.CATEGORY_LAUNCHER) - && intent.action == Intent.ACTION_MAIN + uri.equals(intent.data) + && intent.action == ACTION_MAIN }, eq(mockUserHandle)) } + @OptIn(ExperimentalCoroutinesApi::class) + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun testDecor_createWindowDecoration_setsAppHandleEducationTooltipClickCallbacks() { + whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true) + + shellInit.init() + + verify( + mockAppHandleEducationController, + times(1) + ).setAppHandleEducationTooltipCallbacks(any(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun testDecor_invokeOpenHandleMenuCallback_openHandleMenu() { + whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true) + val task = createTask(windowingMode = WINDOWING_MODE_FREEFORM) + val decor = setUpMockDecorationForTask(task) + val openHandleMenuCallbackCaptor = argumentCaptor<(Int) -> Unit>() + // Set task as gmail + val gmailPackageName = "com.google.android.gm" + val baseComponent = ComponentName(gmailPackageName, /* class */ "") + task.baseActivity = baseComponent + + onTaskOpening(task) + verify( + mockAppHandleEducationController, + times(1) + ).setAppHandleEducationTooltipCallbacks(openHandleMenuCallbackCaptor.capture(), any()) + openHandleMenuCallbackCaptor.lastValue.invoke(task.taskId) + + verify(decor, times(1)).createHandleMenu(anyBoolean()) + } + + @Test + @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun testDecor_openTaskWithFlagDisabled_doNotOpenHandleMenu() { + whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true) + val task = createTask(windowingMode = WINDOWING_MODE_FREEFORM) + setUpMockDecorationForTask(task) + val openHandleMenuCallbackCaptor = argumentCaptor<(Int) -> Unit>() + // Set task as gmail + val gmailPackageName = "com.google.android.gm" + val baseComponent = ComponentName(gmailPackageName, /* class */ "") + task.baseActivity = baseComponent + + onTaskOpening(task) + verify( + mockAppHandleEducationController, + never() + ).setAppHandleEducationTooltipCallbacks(openHandleMenuCallbackCaptor.capture(), any()) + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_APP_HANDLE_EDUCATION) + fun testDecor_invokeOnToDesktopCallback_setsAppHandleEducationTooltipClickCallbacks() { + whenever(DesktopModeStatus.canEnterDesktopMode(any())).thenReturn(true) + val task = createTask(windowingMode = WINDOWING_MODE_FREEFORM) + setUpMockDecorationsForTasks(task) + onTaskOpening(task) + val onToDesktopCallbackCaptor = argumentCaptor<(Int, DesktopModeTransitionSource) -> Unit>() + + verify( + mockAppHandleEducationController, + times(1) + ).setAppHandleEducationTooltipCallbacks(any(), onToDesktopCallbackCaptor.capture()) + onToDesktopCallbackCaptor.lastValue.invoke( + task.taskId, + DesktopModeTransitionSource.APP_HANDLE_MENU_BUTTON + ) + + verify(mockDesktopTasksController, times(1)) + .moveTaskToDesktop(any(), any(), any()) + } + @Test fun testOnDisplayRotation_tasksOutOfValidArea_taskBoundsUpdated() { val task = createTask(focused = true, windowingMode = WINDOWING_MODE_FREEFORM) @@ -1150,8 +1236,8 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { forClass(Function0::class.java) as ArgumentCaptor<Function0<Unit>>, onToSplitScreenClickListenerCaptor: ArgumentCaptor<Function0<Unit>> = forClass(Function0::class.java) as ArgumentCaptor<Function0<Unit>>, - onOpenInBrowserClickListener: ArgumentCaptor<Consumer<Uri>> = - forClass(Consumer::class.java) as ArgumentCaptor<Consumer<Uri>>, + onOpenInBrowserClickListener: ArgumentCaptor<Consumer<Intent>> = + forClass(Consumer::class.java) as ArgumentCaptor<Consumer<Intent>>, onCaptionButtonClickListener: ArgumentCaptor<View.OnClickListener> = forClass(View.OnClickListener::class.java) as ArgumentCaptor<View.OnClickListener>, onCaptionButtonTouchListener: ArgumentCaptor<View.OnTouchListener> = @@ -1213,8 +1299,8 @@ class DesktopModeWindowDecorViewModelTests : ShellTestCase() { val decoration = mock(DesktopModeWindowDecoration::class.java) whenever( mockDesktopModeWindowDecorFactory.create( - any(), any(), any(), any(), any(), eq(task), any(), any(), any(), any(), any(), - any(), any(), any(), any(), any(), any()) + any(), any(), any(), any(), any(), any(), eq(task), any(), any(), any(), any(), + any(), any(), any(), any(), any(), any(), any()) ).thenReturn(decoration) decoration.mTaskInfo = task whenever(decoration.isFocused).thenReturn(task.isFocused) diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java index f007115c6dab..3e7f3bdd72a2 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java @@ -23,6 +23,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT; import static android.view.InsetsSource.FLAG_FORCE_CONSUMING; import static android.view.InsetsSource.FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR; +import static android.view.WindowInsets.Type.captionBar; import static android.view.WindowInsets.Type.statusBars; import static android.view.WindowInsetsController.APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND; @@ -37,6 +38,7 @@ import static junit.framework.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; @@ -53,9 +55,11 @@ import android.app.ActivityManager; import android.app.assist.AssistContent; import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.PointF; @@ -102,6 +106,7 @@ import com.android.wm.shell.common.MultiInstanceHelper; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.desktopmode.CaptionState; +import com.android.wm.shell.desktopmode.DesktopModeTaskRepository; import com.android.wm.shell.desktopmode.WindowDecorCaptionHandleRepository; import com.android.wm.shell.shared.desktopmode.DesktopModeStatus; import com.android.wm.shell.splitscreen.SplitScreenController; @@ -124,6 +129,7 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.quality.Strictness; +import java.util.List; import java.util.function.Consumer; import java.util.function.Supplier; @@ -157,6 +163,8 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { @Mock private ShellTaskOrganizer mMockShellTaskOrganizer; @Mock + private DesktopModeTaskRepository mMockDesktopRepository; + @Mock private Choreographer mMockChoreographer; @Mock private SyncTransactionQueue mMockSyncQueue; @@ -187,7 +195,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { @Mock private Handler mMockHandler; @Mock - private Consumer<Uri> mMockOpenInBrowserClickListener; + private Consumer<Intent> mMockOpenInBrowserClickListener; @Mock private AppToWebGenericLinksParser mMockGenericLinksParser; @Mock @@ -242,9 +250,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { when(mMockMultiInstanceHelper.supportsMultiInstanceSplit(any())) .thenReturn(false); when(mMockPackageManager.getApplicationLabel(any())).thenReturn("applicationLabel"); - final ActivityInfo activityInfo = new ActivityInfo(); - activityInfo.applicationInfo = new ApplicationInfo(); + final ActivityInfo activityInfo = createActivityInfo(); when(mMockPackageManager.getActivityInfo(any(), anyInt())).thenReturn(activityInfo); + final ResolveInfo resolveInfo = new ResolveInfo(); + resolveInfo.activityInfo = activityInfo; + when(mMockPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo); final Display defaultDisplay = mock(Display.class); doReturn(defaultDisplay).when(mMockDisplayController).getDisplay(Display.DEFAULT_DISPLAY); doReturn(mInsetsState).when(mMockDisplayController).getInsetsState(anyInt()); @@ -284,7 +294,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { DesktopModeWindowDecoration.updateRelayoutParams( relayoutParams, mContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.mShadowRadiusId).isNotEqualTo(Resources.ID_NULL); } @@ -300,7 +314,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.mCornerRadius).isGreaterThan(0); } @@ -321,7 +339,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.mWindowDecorConfig.densityDpi).isEqualTo(customTaskDensity); } @@ -343,7 +365,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.mWindowDecorConfig.densityDpi).isEqualTo(systemDensity); } @@ -361,7 +387,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.hasInputFeatureSpy()).isTrue(); } @@ -378,7 +408,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.hasInputFeatureSpy()).isFalse(); } @@ -394,7 +428,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(relayoutParams.hasInputFeatureSpy()).isFalse(); } @@ -410,7 +448,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(hasNoInputChannelFeature(relayoutParams)).isFalse(); } @@ -427,7 +469,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(hasNoInputChannelFeature(relayoutParams)).isTrue(); } @@ -444,7 +490,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat(hasNoInputChannelFeature(relayoutParams)).isTrue(); } @@ -462,7 +512,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat((relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING) != 0).isTrue(); } @@ -481,7 +535,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat((relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING) == 0).isTrue(); } @@ -498,7 +556,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat( (relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR) != 0) @@ -517,7 +579,11 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { mTestableContext, taskInfo, /* applyStartTransactionOnDraw= */ true, - /* shouldSetTaskPositionAndCrop */ false); + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); assertThat( (relayoutParams.mInsetSourceFlags & FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR) == 0) @@ -525,6 +591,171 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { } @Test + @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP) + public void updateRelayoutParams_header_addsPaddingInFullImmersive() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); + taskInfo.configuration.windowConfiguration.setBounds(new Rect(0, 0, 1000, 2000)); + final InsetsState insetsState = createInsetsState(List.of( + createInsetsSource( + 0 /* id */, statusBars(), true /* visible */, new Rect(0, 0, 1000, 50)), + createInsetsSource( + 1 /* id */, captionBar(), true /* visible */, new Rect(0, 0, 1000, 100)))); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ true, + insetsState); + + // Takes status bar inset as padding, ignores caption bar inset. + assertThat(relayoutParams.mCaptionTopPadding).isEqualTo(50); + } + + @Test + @DisableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP) + public void updateRelayoutParams_header_statusBarInvisible_captionVisible() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ false, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); + + // Header is always shown because it's assumed the status bar is always visible. + assertThat(relayoutParams.mIsCaptionVisible).isTrue(); + } + + @Test + public void updateRelayoutParams_handle_statusBarVisibleAndNotOverKeyguard_captionVisible() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); + + assertThat(relayoutParams.mIsCaptionVisible).isTrue(); + } + + @Test + public void updateRelayoutParams_handle_statusBarInvisible_captionNotVisible() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ false, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ false, + new InsetsState()); + + assertThat(relayoutParams.mIsCaptionVisible).isFalse(); + } + + @Test + public void updateRelayoutParams_handle_overKeyguard_captionNotVisible() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ true, + /* inFullImmersiveMode */ false, + new InsetsState()); + + assertThat(relayoutParams.mIsCaptionVisible).isFalse(); + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP) + public void updateRelayoutParams_header_fullyImmersive_captionVisFollowsStatusBar() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ true, + new InsetsState()); + + assertThat(relayoutParams.mIsCaptionVisible).isTrue(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ false, + /* isKeyguardVisibleAndOccluded */ false, + /* inFullImmersiveMode */ true, + new InsetsState()); + + assertThat(relayoutParams.mIsCaptionVisible).isFalse(); + } + + @Test + @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP) + public void updateRelayoutParams_header_fullyImmersive_overKeyguard_captionNotVisible() { + final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); + taskInfo.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); + final RelayoutParams relayoutParams = new RelayoutParams(); + + DesktopModeWindowDecoration.updateRelayoutParams( + relayoutParams, + mTestableContext, + taskInfo, + /* applyStartTransactionOnDraw= */ true, + /* shouldSetTaskPositionAndCrop */ false, + /* isStatusBarVisible */ true, + /* isKeyguardVisibleAndOccluded */ true, + /* inFullImmersiveMode */ true, + new InsetsState()); + + assertThat(relayoutParams.mIsCaptionVisible).isFalse(); + } + + @Test public void relayout_fullscreenTask_appliesTransactionImmediately() { final ActivityManager.RunningTaskInfo taskInfo = createTaskInfo(/* visible= */ true); final DesktopModeWindowDecoration spyWindowDecor = spy(createWindowDecoration(taskInfo)); @@ -771,7 +1002,6 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { // Verify handle menu's browser link is set to captured link since menu was opened before // captured link expired - createHandleMenu(decor); verifyHandleMenuCreated(TEST_URI1); } @@ -782,7 +1012,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { final DesktopModeWindowDecoration decor = createWindowDecoration( taskInfo, TEST_URI1 /* captured link */, null /* web uri */, null /* generic link */); - final ArgumentCaptor<Function1<Uri, Unit>> openInBrowserCaptor = + final ArgumentCaptor<Function1<Intent, Unit>> openInBrowserCaptor = ArgumentCaptor.forClass(Function1.class); // Simulate menu opening and clicking open in browser button @@ -797,7 +1027,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { any(), any() ); - openInBrowserCaptor.getValue().invoke(TEST_URI1); + openInBrowserCaptor.getValue().invoke(new Intent(Intent.ACTION_MAIN, TEST_URI1)); // Verify handle menu's browser link not set to captured link since link not valid after // open in browser clicked @@ -812,7 +1042,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { final DesktopModeWindowDecoration decor = createWindowDecoration( taskInfo, TEST_URI1 /* captured link */, null /* web uri */, null /* generic link */); - final ArgumentCaptor<Function1<Uri, Unit>> openInBrowserCaptor = + final ArgumentCaptor<Function1<Intent, Unit>> openInBrowserCaptor = ArgumentCaptor.forClass(Function1.class); createHandleMenu(decor); verify(mMockHandleMenu).show( @@ -826,9 +1056,10 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { any() ); - openInBrowserCaptor.getValue().invoke(TEST_URI1); + openInBrowserCaptor.getValue().invoke(new Intent(Intent.ACTION_MAIN, TEST_URI1)); - verify(mMockOpenInBrowserClickListener).accept(TEST_URI1); + verify(mMockOpenInBrowserClickListener).accept( + argThat(intent -> intent.getData() == TEST_URI1)); } @Test @@ -1021,8 +1252,9 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { private void verifyHandleMenuCreated(@Nullable Uri uri) { verify(mMockHandleMenuFactory).create(any(), any(), anyInt(), any(), any(), - any(), anyBoolean(), anyBoolean(), anyBoolean(), eq(uri), anyInt(), - anyInt(), anyInt()); + any(), anyBoolean(), anyBoolean(), anyBoolean(), + argThat(intent -> (uri == null && intent == null) || intent.getData().equals(uri)), + anyInt(), anyInt(), anyInt()); } private void createMaximizeMenu(DesktopModeWindowDecoration decoration, MaximizeMenu menu) { @@ -1086,9 +1318,9 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { boolean relayout) { final DesktopModeWindowDecoration windowDecor = new DesktopModeWindowDecoration(mContext, mContext, mMockDisplayController, mMockSplitScreenController, - mMockShellTaskOrganizer, taskInfo, mMockSurfaceControl, mMockHandler, mBgExecutor, - mMockChoreographer, mMockSyncQueue, mMockAppHeaderViewHolderFactory, - mMockRootTaskDisplayAreaOrganizer, + mMockDesktopRepository, mMockShellTaskOrganizer, taskInfo, mMockSurfaceControl, + mMockHandler, mBgExecutor, mMockChoreographer, mMockSyncQueue, + mMockAppHeaderViewHolderFactory, mMockRootTaskDisplayAreaOrganizer, mMockGenericLinksParser, mMockAssistContentRequester, SurfaceControl.Builder::new, mMockTransactionSupplier, WindowContainerTransaction::new, SurfaceControl::new, new WindowManagerWrapper(mMockWindowManager), mMockSurfaceControlViewHostFactory, @@ -1128,19 +1360,39 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { decor.onAssistContentReceived(mAssistContent); } + private static ActivityInfo createActivityInfo() { + final ApplicationInfo applicationInfo = new ApplicationInfo(); + applicationInfo.packageName = "DesktopModeWindowDecorationTestPackage"; + final ActivityInfo activityInfo = new ActivityInfo(); + activityInfo.applicationInfo = applicationInfo; + activityInfo.name = "DesktopModeWindowDecorationTest"; + return activityInfo; + } + private static boolean hasNoInputChannelFeature(RelayoutParams params) { return (params.mInputFeatures & WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL) != 0; } - private InsetsState createInsetsState(@WindowInsets.Type.InsetsType int type, boolean visible) { - final InsetsState state = new InsetsState(); - final InsetsSource source = new InsetsSource(/* id= */0, type); + private InsetsSource createInsetsSource(int id, @WindowInsets.Type.InsetsType int type, + boolean visible, @NonNull Rect frame) { + final InsetsSource source = new InsetsSource(id, type); source.setVisible(visible); - state.addSource(source); + source.setFrame(frame); + return source; + } + + private InsetsState createInsetsState(@NonNull List<InsetsSource> sources) { + final InsetsState state = new InsetsState(); + sources.forEach(state::addSource); return state; } + private InsetsState createInsetsState(@WindowInsets.Type.InsetsType int type, boolean visible) { + final InsetsSource source = createInsetsSource(0 /* id */, type, visible, new Rect()); + return createInsetsState(List.of(source)); + } + private static class TestTouchEventListener extends GestureDetector.SimpleOnGestureListener implements View.OnClickListener, View.OnTouchListener, View.OnLongClickListener, View.OnGenericMotionListener, DragDetector.MotionEventHandler { diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java index 2e117ac9f865..94cabc492277 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java @@ -47,6 +47,7 @@ import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.same; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -246,6 +247,7 @@ public class WindowDecorationTests extends ShellTestCase { // Density is 2. Shadow radius is 10px. Caption height is 64px. taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2; final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); + mRelayoutParams.mIsCaptionVisible = true; windowDecor.relayout(taskInfo); @@ -319,6 +321,7 @@ public class WindowDecorationTests extends ShellTestCase { taskInfo.configuration.densityDpi = DisplayMetrics.DENSITY_DEFAULT * 2; final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); + mRelayoutParams.mIsCaptionVisible = true; windowDecor.relayout(taskInfo); @@ -571,11 +574,7 @@ public class WindowDecorationTests extends ShellTestCase { .build(); final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); - assertTrue(mInsetsState.getOrCreateSource(STATUS_BAR_INSET_SOURCE_ID, statusBars()) - .isVisible()); - assertTrue(mInsetsState.sourceSize() == 1); - assertTrue(mInsetsState.sourceAt(0).getType() == statusBars()); - + mRelayoutParams.mIsCaptionVisible = true; windowDecor.relayout(taskInfo); verify(mMockWindowContainerTransaction).addInsetsSource(eq(taskInfo.token), any(), @@ -623,33 +622,6 @@ public class WindowDecorationTests extends ShellTestCase { } @Test - public void testRelayout_captionHidden_insetsRemoved() { - final Display defaultDisplay = mock(Display.class); - doReturn(defaultDisplay).when(mMockDisplayController) - .getDisplay(Display.DEFAULT_DISPLAY); - - final ActivityManager.RunningTaskInfo taskInfo = new TestRunningTaskInfoBuilder() - .setDisplayId(Display.DEFAULT_DISPLAY) - .setVisible(true) - .setBounds(new Rect(0, 0, 1000, 1000)) - .build(); - taskInfo.isFocused = true; - // Caption visible at first. - when(mMockDisplayController.getInsetsState(taskInfo.displayId)) - .thenReturn(createInsetsState(statusBars(), true /* visible */)); - final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); - windowDecor.relayout(taskInfo); - - // Hide caption so insets are removed. - windowDecor.onInsetsStateChanged(createInsetsState(statusBars(), false /* visible */)); - - verify(mMockWindowContainerTransaction).removeInsetsSource(eq(taskInfo.token), any(), - eq(0) /* index */, eq(captionBar())); - verify(mMockWindowContainerTransaction).removeInsetsSource(eq(taskInfo.token), any(), - eq(0) /* index */, eq(mandatorySystemGestures())); - } - - @Test public void testRelayout_captionHidden_neverWasVisible_insetsNotRemoved() { final Display defaultDisplay = mock(Display.class); doReturn(defaultDisplay).when(mMockDisplayController) @@ -661,9 +633,8 @@ public class WindowDecorationTests extends ShellTestCase { .setBounds(new Rect(0, 0, 1000, 1000)) .build(); // Hidden from the beginning, so no insets were ever added. - when(mMockDisplayController.getInsetsState(taskInfo.displayId)) - .thenReturn(createInsetsState(statusBars(), false /* visible */)); final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); + mRelayoutParams.mIsCaptionVisible = false; windowDecor.relayout(taskInfo); // Never added. @@ -692,7 +663,7 @@ public class WindowDecorationTests extends ShellTestCase { final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); // Relayout will add insets. - mInsetsState.getOrCreateSource(STATUS_BAR_INSET_SOURCE_ID, captionBar()).setVisible(true); + mRelayoutParams.mIsCaptionVisible = true; windowDecor.relayout(taskInfo); verify(mMockWindowContainerTransaction).addInsetsSource(eq(taskInfo.token), any(), eq(0) /* index */, eq(captionBar()), any(), any(), anyInt()); @@ -740,6 +711,7 @@ public class WindowDecorationTests extends ShellTestCase { final TestRunningTaskInfoBuilder builder = new TestRunningTaskInfoBuilder() .setDisplayId(Display.DEFAULT_DISPLAY) .setVisible(true); + mRelayoutParams.mIsCaptionVisible = true; // Relayout twice with different bounds. final ActivityManager.RunningTaskInfo firstTaskInfo = @@ -767,6 +739,7 @@ public class WindowDecorationTests extends ShellTestCase { final TestRunningTaskInfoBuilder builder = new TestRunningTaskInfoBuilder() .setDisplayId(Display.DEFAULT_DISPLAY) .setVisible(true); + mRelayoutParams.mIsCaptionVisible = true; // Relayout twice with the same bounds. final ActivityManager.RunningTaskInfo firstTaskInfo = @@ -797,6 +770,7 @@ public class WindowDecorationTests extends ShellTestCase { final ActivityManager.RunningTaskInfo taskInfo = builder.setToken(token).setBounds(new Rect(0, 0, 1000, 1000)).build(); final TestWindowDecoration windowDecor = createWindowDecoration(taskInfo); + mRelayoutParams.mIsCaptionVisible = true; mRelayoutParams.mInsetSourceFlags = FLAG_FORCE_CONSUMING | FLAG_FORCE_CONSUMING_OPAQUE_CAPTION_BAR; windowDecor.relayout(taskInfo); @@ -901,76 +875,61 @@ public class WindowDecorationTests extends ShellTestCase { } @Test - public void onStatusBarVisibilityChange_fullscreen_shownToHidden_hidesCaption() { + public void onStatusBarVisibilityChange() { final ActivityManager.RunningTaskInfo task = createTaskInfo(); task.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); when(mMockDisplayController.getInsetsState(task.displayId)) .thenReturn(createInsetsState(statusBars(), true /* visible */)); - final TestWindowDecoration decor = createWindowDecoration(task); + final TestWindowDecoration decor = spy(createWindowDecoration(task)); decor.relayout(task); - assertTrue(decor.mIsCaptionVisible); + assertTrue(decor.mIsStatusBarVisible); decor.onInsetsStateChanged(createInsetsState(statusBars(), false /* visible */)); - assertFalse(decor.mIsCaptionVisible); + verify(decor, times(2)).relayout(task); } @Test - public void onStatusBarVisibilityChange_fullscreen_hiddenToShown_showsCaption() { + public void onStatusBarVisibilityChange_noChange_doesNotRelayout() { final ActivityManager.RunningTaskInfo task = createTaskInfo(); task.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FULLSCREEN); when(mMockDisplayController.getInsetsState(task.displayId)) - .thenReturn(createInsetsState(statusBars(), false /* visible */)); - final TestWindowDecoration decor = createWindowDecoration(task); - decor.relayout(task); - assertFalse(decor.mIsCaptionVisible); - - decor.onInsetsStateChanged(createInsetsState(statusBars(), true /* visible */)); - - assertTrue(decor.mIsCaptionVisible); - } - - @Test - public void onStatusBarVisibilityChange_freeform_shownToHidden_keepsCaption() { - final ActivityManager.RunningTaskInfo task = createTaskInfo(); - task.configuration.windowConfiguration.setWindowingMode(WINDOWING_MODE_FREEFORM); - when(mMockDisplayController.getInsetsState(task.displayId)) .thenReturn(createInsetsState(statusBars(), true /* visible */)); - final TestWindowDecoration decor = createWindowDecoration(task); + final TestWindowDecoration decor = spy(createWindowDecoration(task)); decor.relayout(task); - assertTrue(decor.mIsCaptionVisible); - decor.onInsetsStateChanged(createInsetsState(statusBars(), false /* visible */)); + decor.onInsetsStateChanged(createInsetsState(statusBars(), true /* visible */)); - assertTrue(decor.mIsCaptionVisible); + verify(decor, times(1)).relayout(task); } @Test - public void onKeyguardStateChange_hiddenToShownAndOccluding_hidesCaption() { + public void onKeyguardStateChange() { final ActivityManager.RunningTaskInfo task = createTaskInfo(); when(mMockDisplayController.getInsetsState(task.displayId)) .thenReturn(createInsetsState(statusBars(), true /* visible */)); - final TestWindowDecoration decor = createWindowDecoration(task); + final TestWindowDecoration decor = spy(createWindowDecoration(task)); decor.relayout(task); - assertTrue(decor.mIsCaptionVisible); + assertFalse(decor.mIsKeyguardVisibleAndOccluded); decor.onKeyguardStateChanged(true /* visible */, true /* occluding */); - assertFalse(decor.mIsCaptionVisible); + assertTrue(decor.mIsKeyguardVisibleAndOccluded); + verify(decor, times(2)).relayout(task); } @Test - public void onKeyguardStateChange_showingAndOccludingToHidden_showsCaption() { + public void onKeyguardStateChange_noChange_doesNotRelayout() { final ActivityManager.RunningTaskInfo task = createTaskInfo(); when(mMockDisplayController.getInsetsState(task.displayId)) .thenReturn(createInsetsState(statusBars(), true /* visible */)); - final TestWindowDecoration decor = createWindowDecoration(task); - decor.onKeyguardStateChanged(true /* visible */, true /* occluding */); - assertFalse(decor.mIsCaptionVisible); + final TestWindowDecoration decor = spy(createWindowDecoration(task)); + decor.relayout(task); + assertFalse(decor.mIsKeyguardVisibleAndOccluded); - decor.onKeyguardStateChanged(false /* visible */, false /* occluding */); + decor.onKeyguardStateChanged(false /* visible */, true /* occluding */); - assertTrue(decor.mIsCaptionVisible); + verify(decor, times(1)).relayout(task); } private ActivityManager.RunningTaskInfo createTaskInfo() { diff --git a/libs/androidfw/CursorWindow.cpp b/libs/androidfw/CursorWindow.cpp index 5e645cceea2d..cbb1e8f82838 100644 --- a/libs/androidfw/CursorWindow.cpp +++ b/libs/androidfw/CursorWindow.cpp @@ -18,11 +18,12 @@ #include <androidfw/CursorWindow.h> -#include <sys/mman.h> - #include "android-base/logging.h" +#include "android-base/mapped_file.h" #include "cutils/ashmem.h" +using android::base::MappedFile; + namespace android { /** @@ -39,7 +40,7 @@ CursorWindow::CursorWindow() { CursorWindow::~CursorWindow() { if (mAshmemFd != -1) { - ::munmap(mData, mSize); + mMappedFile.reset(); ::close(mAshmemFd); } else { free(mData); @@ -75,6 +76,7 @@ fail_silent: status_t CursorWindow::maybeInflate() { int ashmemFd = 0; void* newData = nullptr; + std::unique_ptr<MappedFile> mappedFile; // Bail early when we can't expand any further if (mReadOnly || mSize == mInflatedSize) { @@ -95,11 +97,12 @@ status_t CursorWindow::maybeInflate() { goto fail_silent; } - newData = ::mmap(nullptr, mInflatedSize, PROT_READ | PROT_WRITE, MAP_SHARED, ashmemFd, 0); - if (newData == MAP_FAILED) { + mappedFile = MappedFile::FromFd(ashmemFd, 0, mInflatedSize, PROT_READ | PROT_WRITE); + if (mappedFile == nullptr) { PLOG(ERROR) << "Failed mmap"; goto fail_silent; } + newData = mappedFile->data(); if (ashmem_set_prot_region(ashmemFd, PROT_READ) < 0) { PLOG(ERROR) << "Failed ashmem_set_prot_region"; @@ -120,6 +123,7 @@ status_t CursorWindow::maybeInflate() { mData = newData; mSize = mInflatedSize; mSlotsOffset = newSlotsOffset; + mMappedFile = std::move(mappedFile); updateSlotsData(); } @@ -130,7 +134,7 @@ status_t CursorWindow::maybeInflate() { fail: LOG(ERROR) << "Failed maybeInflate"; fail_silent: - ::munmap(newData, mInflatedSize); + mappedFile.reset(); ::close(ashmemFd); return UNKNOWN_ERROR; } @@ -167,11 +171,12 @@ status_t CursorWindow::createFromParcel(Parcel* parcel, CursorWindow** outWindow goto fail_silent; } - window->mData = ::mmap(nullptr, window->mSize, PROT_READ, MAP_SHARED, window->mAshmemFd, 0); - if (window->mData == MAP_FAILED) { + window->mMappedFile = MappedFile::FromFd(window->mAshmemFd, 0, window->mSize, PROT_READ); + if (window->mMappedFile == nullptr) { PLOG(ERROR) << "Failed mmap"; goto fail_silent; } + window->mData = window->mMappedFile->data(); } else { window->mAshmemFd = -1; diff --git a/libs/androidfw/include/androidfw/CursorWindow.h b/libs/androidfw/include/androidfw/CursorWindow.h index 9ec026a19c4c..c2eac12eb77d 100644 --- a/libs/androidfw/include/androidfw/CursorWindow.h +++ b/libs/androidfw/include/androidfw/CursorWindow.h @@ -26,6 +26,8 @@ #include "binder/Parcel.h" #include "utils/String8.h" +#include "android-base/mapped_file.h" + #define LOG_WINDOW(...) namespace android { @@ -149,6 +151,8 @@ private: String8 mName; int mAshmemFd = -1; void* mData = nullptr; + std::unique_ptr<android::base::MappedFile> mMappedFile; + /** * Pointer to the first FieldSlot, used to optimize the extremely * hot code path of getFieldSlot(). diff --git a/libs/hwui/hwui/Paint.h b/libs/hwui/hwui/Paint.h index 708f96e5a070..7eb849fe6e3d 100644 --- a/libs/hwui/hwui/Paint.h +++ b/libs/hwui/hwui/Paint.h @@ -159,6 +159,14 @@ public: return SkSamplingOptions(this->filterMode()); } + void setVariationOverride(minikin::VariationSettings&& varSettings) { + mFontVariationOverride = std::move(varSettings); + } + + const minikin::VariationSettings& getFontVariationOverride() const { + return mFontVariationOverride; + } + // The Java flags (Paint.java) no longer fit into the native apis directly. // These methods handle converting to and from them and the native representations // in android::Paint. @@ -179,6 +187,7 @@ private: float mLetterSpacing = 0; float mWordSpacing = 0; std::vector<minikin::FontFeature> mFontFeatureSettings; + minikin::VariationSettings mFontVariationOverride; uint32_t mMinikinLocaleListId; std::optional<minikin::FamilyVariant> mFamilyVariant; uint32_t mHyphenEdit = 0; diff --git a/libs/hwui/hwui/PaintImpl.cpp b/libs/hwui/hwui/PaintImpl.cpp index c32ea01db7b7..6dfcedc3d918 100644 --- a/libs/hwui/hwui/PaintImpl.cpp +++ b/libs/hwui/hwui/PaintImpl.cpp @@ -39,6 +39,7 @@ Paint::Paint(const Paint& paint) , mLetterSpacing(paint.mLetterSpacing) , mWordSpacing(paint.mWordSpacing) , mFontFeatureSettings(paint.mFontFeatureSettings) + , mFontVariationOverride(paint.mFontVariationOverride) , mMinikinLocaleListId(paint.mMinikinLocaleListId) , mFamilyVariant(paint.mFamilyVariant) , mHyphenEdit(paint.mHyphenEdit) @@ -59,6 +60,7 @@ Paint& Paint::operator=(const Paint& other) { mLetterSpacing = other.mLetterSpacing; mWordSpacing = other.mWordSpacing; mFontFeatureSettings = other.mFontFeatureSettings; + mFontVariationOverride = other.mFontVariationOverride; mMinikinLocaleListId = other.mMinikinLocaleListId; mFamilyVariant = other.mFamilyVariant; mHyphenEdit = other.mHyphenEdit; @@ -76,6 +78,7 @@ bool operator==(const Paint& a, const Paint& b) { return static_cast<const SkPaint&>(a) == static_cast<const SkPaint&>(b) && a.mFont == b.mFont && a.mLooper == b.mLooper && a.mLetterSpacing == b.mLetterSpacing && a.mWordSpacing == b.mWordSpacing && a.mFontFeatureSettings == b.mFontFeatureSettings && + a.mFontVariationOverride == b.mFontVariationOverride && a.mMinikinLocaleListId == b.mMinikinLocaleListId && a.mFamilyVariant == b.mFamilyVariant && a.mHyphenEdit == b.mHyphenEdit && a.mTypeface == b.mTypeface && a.mAlign == b.mAlign && diff --git a/libs/hwui/jni/Paint.cpp b/libs/hwui/jni/Paint.cpp index 286f06a6bad8..da237928e5e1 100644 --- a/libs/hwui/jni/Paint.cpp +++ b/libs/hwui/jni/Paint.cpp @@ -1127,6 +1127,36 @@ namespace PaintGlue { return leftMinikinPaint == rightMinikinPaint; } + struct VariationBuilder { + std::vector<minikin::FontVariation> varSettings; + }; + + static jlong createFontVariationBuilder(CRITICAL_JNI_PARAMS_COMMA jint size) { + VariationBuilder* builder = new VariationBuilder(); + builder->varSettings.reserve(size); + return reinterpret_cast<jlong>(builder); + } + + static void addFontVariationToBuilder(CRITICAL_JNI_PARAMS_COMMA jlong builderPtr, jint tag, + jfloat value) { + VariationBuilder* builder = reinterpret_cast<VariationBuilder*>(builderPtr); + builder->varSettings.emplace_back(static_cast<minikin::AxisTag>(tag), value); + } + + static void setFontVariationOverride(CRITICAL_JNI_PARAMS_COMMA jlong paintHandle, + jlong builderPtr) { + Paint* paint = reinterpret_cast<Paint*>(paintHandle); + if (builderPtr == 0) { + paint->setVariationOverride(minikin::VariationSettings()); + return; + } + + VariationBuilder* builder = reinterpret_cast<VariationBuilder*>(builderPtr); + paint->setVariationOverride( + minikin::VariationSettings(builder->varSettings, false /* sorted */)); + delete builder; + } + }; // namespace PaintGlue static const JNINativeMethod methods[] = { @@ -1235,6 +1265,9 @@ static const JNINativeMethod methods[] = { {"nSetShadowLayer", "(JFFFJJ)V", (void*)PaintGlue::setShadowLayer}, {"nHasShadowLayer", "(J)Z", (void*)PaintGlue::hasShadowLayer}, {"nEqualsForTextMeasurement", "(JJ)Z", (void*)PaintGlue::equalsForTextMeasurement}, + {"nCreateFontVariationBuilder", "(I)J", (void*)PaintGlue::createFontVariationBuilder}, + {"nAddFontVariationToBuilder", "(JIF)V", (void*)PaintGlue::addFontVariationToBuilder}, + {"nSetFontVariationOverride", "(JJ)V", (void*)PaintGlue::setFontVariationOverride}, }; int register_android_graphics_Paint(JNIEnv* env) { diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index f0ab6ecc5cda..0f24654879cd 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -1089,7 +1089,24 @@ public class RingtoneManager { defaultRingtoneUri = ContentProvider.getUriWithoutUserId(defaultRingtoneUri); if (defaultRingtoneUri == null) { return -1; - } else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)) { + } + + if (Flags.enableRingtoneHapticsCustomization() + && Utils.hasVibration(defaultRingtoneUri)) { + // skip to check TYPE_ALARM because the customized haptic hasn't enabled in alarm + if (defaultRingtoneUri.toString() + .contains(Settings.System.DEFAULT_RINGTONE_URI.toString())) { + return TYPE_RINGTONE; + } else if (defaultRingtoneUri.toString() + .contains(Settings.System.DEFAULT_NOTIFICATION_URI.toString())) { + return TYPE_NOTIFICATION; + } else if (defaultRingtoneUri.toString() + .contains(Settings.System.DEFAULT_ALARM_ALERT_URI.toString())) { + return TYPE_ALARM; + } + } + + if (defaultRingtoneUri.equals(Settings.System.DEFAULT_RINGTONE_URI)) { return TYPE_RINGTONE; } else if (defaultRingtoneUri.equals(Settings.System.DEFAULT_NOTIFICATION_URI)) { return TYPE_NOTIFICATION; diff --git a/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java b/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java index ec6c2bfab576..8e6297c3899d 100644 --- a/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java +++ b/media/java/android/media/tv/interactive/ITvInteractiveAppSessionWrapper.java @@ -267,7 +267,9 @@ public class ITvInteractiveAppSessionWrapper break; } case DO_NOTIFY_CONTENT_BLOCKED: { - mSessionImpl.notifyContentBlocked((TvContentRating) msg.obj); + String contentRating = (String) msg.obj; + mSessionImpl.notifyContentBlocked( + TvContentRating.unflattenFromString(contentRating)); break; } case DO_NOTIFY_SIGNAL_STRENGTH: { diff --git a/media/jni/android_media_ImageWriter.cpp b/media/jni/android_media_ImageWriter.cpp index 33650d91e6a3..93deb51df142 100644 --- a/media/jni/android_media_ImageWriter.cpp +++ b/media/jni/android_media_ImageWriter.cpp @@ -1029,16 +1029,19 @@ static void Image_getLockedImage(JNIEnv* env, jobject thiz, LockedImage *image) return; } + // Maintain a StrongPointer so that the GraphicBuffer isn't destroyed when the + // StrongPointer in lockImageFromBuffer goes out of scope. + sp<GraphicBuffer> bufferSp(buffer); // ImageWriter doesn't use crop by itself, app sets it, use the no crop version. - const Rect noCrop(buffer->width, buffer->height); + const Rect noCrop(bufferSp->width, bufferSp->height); status_t res = lockImageFromBuffer( - buffer, GRALLOC_USAGE_SW_WRITE_OFTEN, noCrop, fenceFd, image); + bufferSp, GRALLOC_USAGE_SW_WRITE_OFTEN, noCrop, fenceFd, image); // Clear the fenceFd as it is already consumed by lock call. env->SetIntField(thiz, gSurfaceImageClassInfo.mNativeFenceFd, -1); if (res != OK) { jniThrowExceptionFmt(env, "java/lang/RuntimeException", "lock buffer failed for format 0x%x", - buffer->getPixelFormat()); + bufferSp->getPixelFormat()); return; } diff --git a/packages/CrashRecovery/aconfig/flags.aconfig b/packages/CrashRecovery/aconfig/flags.aconfig index 52e0cbbda03a..c6c49e01c850 100644 --- a/packages/CrashRecovery/aconfig/flags.aconfig +++ b/packages/CrashRecovery/aconfig/flags.aconfig @@ -39,3 +39,10 @@ flag { bug: "289203818" is_fixed_read_only: true } + +flag { + name: "synchronous_reboot_in_rescue_party" + namespace: "modularization" + description: "Makes reboot and factory reset synchronous in RescueParty" + bug: "328203835" +}
\ No newline at end of file diff --git a/packages/PackageInstaller/TEST_MAPPING b/packages/PackageInstaller/TEST_MAPPING index 91882fde1537..50db5018d44e 100644 --- a/packages/PackageInstaller/TEST_MAPPING +++ b/packages/PackageInstaller/TEST_MAPPING @@ -1,6 +1,17 @@ { "presubmit": [ { + "name": "CtsPackageInstallerCUJDeviceAdminTestCases", + "options":[ + { + "exclude-annotation":"androidx.test.filters.FlakyTest" + }, + { + "exclude-annotation":"org.junit.Ignore" + } + ] + }, + { "name": "CtsPackageInstallerCUJInstallationTestCases", "options":[ { @@ -12,6 +23,17 @@ ] }, { + "name": "CtsPackageInstallerCUJMultiUsersTestCases", + "options":[ + { + "exclude-annotation":"androidx.test.filters.FlakyTest" + }, + { + "exclude-annotation":"org.junit.Ignore" + } + ] + }, + { "name": "CtsPackageInstallerCUJUninstallationTestCases", "options":[ { diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp index e77c2a01b996..e1418678a9f8 100644 --- a/packages/SettingsLib/Android.bp +++ b/packages/SettingsLib/Android.bp @@ -53,6 +53,8 @@ android_library { "SettingsLibSelectorWithWidgetPreference", "SettingsLibSettingsSpinner", "SettingsLibSettingsTransition", + "SettingsLibSliderPreference", + "SettingsLibStatusBannerPreference", "SettingsLibTopIntroPreference", "SettingsLibTwoTargetPreference", "SettingsLibUsageProgressBarPreference", diff --git a/packages/SettingsLib/ButtonPreference/res/values/attrs.xml b/packages/SettingsLib/ButtonPreference/res/values/attrs.xml index 9a4312aa8b36..9c1e503f1372 100644 --- a/packages/SettingsLib/ButtonPreference/res/values/attrs.xml +++ b/packages/SettingsLib/ButtonPreference/res/values/attrs.xml @@ -18,5 +18,15 @@ <resources> <declare-styleable name="ButtonPreference"> <attr name="android:gravity" /> + <attr name="buttonType" format="enum"> + <enum name="filled" value="0"/> + <enum name="tonal" value="1"/> + <enum name="outline" value="2"/> + </attr> + <attr name="buttonSize" format="enum"> + <enum name="normal" value="0"/> + <enum name="large" value="1"/> + <enum name="extra" value="2"/> + </attr> </declare-styleable> </resources>
\ No newline at end of file diff --git a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt index c93ec2bd0492..0cdfc6610bbd 100644 --- a/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt +++ b/packages/SettingsLib/IntroPreference/src/com/android/settingslib/widget/IntroPreference.kt @@ -18,7 +18,9 @@ package com.android.settingslib.widget import android.content.Context import android.os.Build +import android.text.TextUtils import android.util.AttributeSet +import android.view.View import androidx.annotation.RequiresApi import androidx.preference.Preference import androidx.preference.PreferenceViewHolder @@ -33,6 +35,9 @@ class IntroPreference @JvmOverloads constructor( private var isCollapsable: Boolean = false private var minLines: Int = 2 + private var hyperlinkListener: View.OnClickListener? = null + private var learnMoreListener: View.OnClickListener? = null + private var learnMoreText: CharSequence? = null init { layoutResource = R.layout.settingslib_expressive_preference_intro @@ -64,6 +69,13 @@ class IntroPreference @JvmOverloads constructor( setCollapsable(isCollapsable) setMinLines(minLines) setText(summary.toString()) + if (hyperlinkListener != null) { + setHyperlinkListener(hyperlinkListener) + } + if (learnMoreListener != null) { + setLearnMoreText(learnMoreText) + setLearnMoreAction(learnMoreListener) + } } } @@ -88,6 +100,42 @@ class IntroPreference @JvmOverloads constructor( notifyChanged() } + /** + * Sets the action when clicking on the hyperlink in the text. + * @param listener The click listener for hyperlink. + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + fun setHyperlinkListener(listener: View.OnClickListener) { + if (hyperlinkListener != listener) { + hyperlinkListener = listener + notifyChanged() + } + } + + /** + * Sets the action when clicking on the learn more view. + * @param listener The click listener for learn more. + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + fun setLearnMoreAction(listener: View.OnClickListener) { + if (learnMoreListener != listener) { + learnMoreListener = listener + notifyChanged() + } + } + + /** + * Sets the text of learn more view. + * @param text The text of learn more. + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + fun setLearnMoreText(text: CharSequence) { + if (!TextUtils.equals(learnMoreText, text)) { + learnMoreText = text + notifyChanged() + } + } + companion object { private const val DEFAULT_MAX_LINES = 10 private const val DEFAULT_MIN_LINES = 2 diff --git a/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java b/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java index 34de5c4a5d75..e6726dcbb17a 100644 --- a/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java +++ b/packages/SettingsLib/SelectorWithWidgetPreference/src/com/android/settingslib/widget/SelectorWithWidgetPreference.java @@ -68,6 +68,7 @@ public class SelectorWithWidgetPreference extends CheckBoxPreference { private View mExtraWidgetContainer; private ImageView mExtraWidget; + @Nullable private String mExtraWidgetContentDescription; private boolean mIsCheckBox = false; // whether to display this button as a checkbox private View.OnClickListener mExtraWidgetOnClickListener; @@ -173,6 +174,12 @@ public class SelectorWithWidgetPreference extends CheckBoxPreference { setExtraWidgetOnClickListener(mExtraWidgetOnClickListener); + if (mExtraWidget != null) { + mExtraWidget.setContentDescription(mExtraWidgetContentDescription != null + ? mExtraWidgetContentDescription + : getContext().getString(R.string.settings_label)); + } + if (Flags.allowSetTitleMaxLines()) { TextView title = (TextView) holder.findViewById(android.R.id.title); title.setMaxLines(mTitleMaxLines); @@ -210,6 +217,17 @@ public class SelectorWithWidgetPreference extends CheckBoxPreference { } /** + * Sets the content description of the extra widget. If {@code null}, a default content + * description will be used ("Settings"). + */ + public void setExtraWidgetContentDescription(@Nullable String contentDescription) { + if (!TextUtils.equals(mExtraWidgetContentDescription, contentDescription)) { + mExtraWidgetContentDescription = contentDescription; + notifyChanged(); + } + } + + /** * Returns whether this preference is a checkbox. */ public boolean isCheckBox() { diff --git a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml b/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml index 88f7eb8737a2..05a1ceacdb65 100644 --- a/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml +++ b/packages/SettingsLib/SettingsTheme/res/values-v35/styles_expressive.xml @@ -335,4 +335,15 @@ <item name="android:textSize">14sp</item> <item name="android:textColor">?android:attr/colorAccent</item> </style> + + <style name="SettingsLibStatusBannerCardStyle"> + <item name="android:layout_width">match_parent</item> + <item name="android:layout_height">wrap_content</item> + <item name="android:layout_marginHorizontal">?android:attr/listPreferredItemPaddingStart</item> + <item name="android:layout_marginVertical">@dimen/settingslib_expressive_space_extrasmall4</item> + <item name="cardBackgroundColor">@color/settingslib_materialColorSurfaceBright</item> + <item name="cardCornerRadius">@dimen/settingslib_expressive_radius_extralarge2</item> + <item name="cardElevation">0dp</item> + <item name="rippleColor">?android:attr/colorControlHighlight</item> + </style> </resources>
\ No newline at end of file diff --git a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt index 7797a0d6dcde..f1cc4e952b99 100644 --- a/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt +++ b/packages/SettingsLib/SettingsTheme/src/com/android/settingslib/widget/CollapsableTextView.kt @@ -18,8 +18,12 @@ package com.android.settingslib.widget import android.content.Context import android.graphics.drawable.Drawable +import android.text.Spannable import android.text.SpannableString +import android.text.TextPaint import android.text.TextUtils +import android.text.method.LinkMovementMethod +import android.text.style.ClickableSpan import android.text.style.URLSpan import android.util.AttributeSet import android.view.Gravity @@ -43,6 +47,7 @@ class CollapsableTextView @JvmOverloads constructor( private val titleTextView: TextView private val collapseButton: MaterialButton private val collapseButtonResources: CollapseButtonResources + private var hyperlinkListener: View.OnClickListener? = null private var learnMoreListener: View.OnClickListener? = null private var learnMoreText: CharSequence? = null private var learnMoreSpan: LearnMoreSpan? = null @@ -142,6 +147,45 @@ class CollapsableTextView @JvmOverloads constructor( } } + fun setHyperlinkListener(listener: View.OnClickListener?) { + if (hyperlinkListener != listener) { + hyperlinkListener = listener + linkifyTitle() + } + } + + private fun linkifyTitle() { + var text = titleTextView.text.toString() + val beginIndex = text.indexOf(LINK_BEGIN_MARKER) + text = text.replace(LINK_BEGIN_MARKER, "") + val endIndex = text.indexOf(LINK_END_MARKER) + text = text.replace(LINK_END_MARKER, "") + titleTextView.text = text + if (beginIndex == -1 || endIndex == -1 || beginIndex >= endIndex) { + return + } + + titleTextView.setText(text, TextView.BufferType.SPANNABLE) + titleTextView.movementMethod = LinkMovementMethod.getInstance() + val spannableContent = titleTextView.getText() as Spannable + val spannableLink = object : ClickableSpan() { + override fun onClick(widget: View) { + hyperlinkListener?.onClick(widget) + } + + override fun updateDrawState(ds: TextPaint) { + super.updateDrawState(ds) + ds.isUnderlineText = true + } + } + spannableContent.setSpan( + spannableLink, + beginIndex, + endIndex, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE + ) + } + private fun formatLearnMoreText() { if (learnMoreListener == null || TextUtils.isEmpty(learnMoreText)) { learnMoreTextView.visibility = GONE @@ -192,6 +236,9 @@ class CollapsableTextView @JvmOverloads constructor( private const val DEFAULT_MAX_LINES = 10 private const val DEFAULT_MIN_LINES = 2 + private const val LINK_BEGIN_MARKER = "LINK_BEGIN" + private const val LINK_END_MARKER = "LINK_END" + private val Attrs = R.styleable.CollapsableTextView private val GravityAttr = R.styleable.CollapsableTextView_android_gravity } diff --git a/packages/SettingsLib/SliderPreference/Android.bp b/packages/SettingsLib/SliderPreference/Android.bp new file mode 100644 index 000000000000..46528c1a584f --- /dev/null +++ b/packages/SettingsLib/SliderPreference/Android.bp @@ -0,0 +1,31 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "frameworks_base_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["frameworks_base_license"], +} + +android_library { + name: "SettingsLibSliderPreference", + use_resource_processor: true, + defaults: [ + "SettingsLintDefaults", + ], + + srcs: ["src/**/*.java"], + resource_dirs: ["res"], + + static_libs: [ + "androidx.annotation_annotation", + "androidx.preference_preference", + "SettingsLibSettingsTheme", + ], + + sdk_version: "system_current", + min_sdk_version: "23", + apex_available: [ + "//apex_available:platform", + ], +} diff --git a/packages/SettingsLib/SliderPreference/AndroidManifest.xml b/packages/SettingsLib/SliderPreference/AndroidManifest.xml new file mode 100644 index 000000000000..04a67524124d --- /dev/null +++ b/packages/SettingsLib/SliderPreference/AndroidManifest.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.settingslib.widget.preference.slider"> + + <uses-sdk android:minSdkVersion="23" /> + +</manifest> diff --git a/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml new file mode 100644 index 000000000000..a9cc2c405f8d --- /dev/null +++ b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_layout_slider.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:clipChildren="false" + android:gravity="center_vertical"> + + <FrameLayout + android:id="@+id/icon_start_frame" + android:layout_width="@dimen/settingslib_expressive_space_medium4" + android:layout_height="@dimen/settingslib_expressive_space_medium4" + android:clipChildren="false" + android:focusable="true" + android:visibility="gone"> + + <ImageView + android:id="@+id/icon_start" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:background="?android:attr/selectableItemBackgroundBorderless" + android:adjustViewBounds="true" + android:focusable="false" + android:tint="?android:attr/textColorPrimary" + android:tintMode="src_in" /> + </FrameLayout> + + <com.google.android.material.slider.Slider + android:id="@+id/slider" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:theme="@style/Theme.MaterialComponents.DayNight" /> + + <FrameLayout + android:id="@+id/icon_end_frame" + android:layout_width="@dimen/settingslib_expressive_space_medium4" + android:layout_height="@dimen/settingslib_expressive_space_medium4" + android:clipChildren="false" + android:focusable="true" + android:visibility="gone"> + + <ImageView + android:id="@+id/icon_end" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:background="?android:attr/selectableItemBackgroundBorderless" + android:adjustViewBounds="true" + android:focusable="false" + android:tint="?android:attr/textColorPrimary" + android:tintMode="src_in" /> + </FrameLayout> +</LinearLayout> diff --git a/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml new file mode 100644 index 000000000000..27720919b5e6 --- /dev/null +++ b/packages/SettingsLib/SliderPreference/res/layout/settingslib_expressive_preference_slider.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:orientation="horizontal" + android:background="?android:attr/selectableItemBackground" + android:clipToPadding="false" + android:baselineAligned="false"> + + <include layout="@layout/settingslib_icon_frame"/> + + <RelativeLayout + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:paddingVertical="@dimen/settingslib_expressive_space_small1"> + + <TextView + android:id="@android:id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start" + android:textAlignment="viewStart" + android:textAppearance="?android:attr/textAppearanceListItem" + android:maxLines="2" + android:ellipsize="marquee"/> + + <TextView + android:id="@android:id/summary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@android:id/title" + android:layout_alignLeft="@android:id/title" + android:layout_alignStart="@android:id/title" + android:layout_gravity="start" + android:textAlignment="viewStart" + android:textAppearance="?android:attr/textAppearanceListItemSecondary" + android:textColor="?android:attr/textColorSecondary" + android:maxLines="10"/> + + <include + layout="@layout/settingslib_expressive_layout_slider" + android:id="@+id/slider_frame" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignStart="@android:id/summary" + android:layout_below="@android:id/summary" /> + + <LinearLayout + android:id="@+id/label_frame" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@id/slider_frame" + android:orientation="horizontal" + android:visibility="gone"> + + <TextView + android:id="@android:id/text1" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_gravity="start|top" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" + android:gravity="start" + android:layout_weight="1"/> + + <TextView + android:id="@android:id/text2" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_gravity="end|top" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="?android:attr/textColorSecondary" + android:gravity="end" + android:layout_weight="1"/> + </LinearLayout> + + </RelativeLayout> +</LinearLayout>
\ No newline at end of file diff --git a/packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml b/packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml new file mode 100644 index 000000000000..59464099e228 --- /dev/null +++ b/packages/SettingsLib/SliderPreference/res/values/attrs_expressive.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <!-- For SliderPreference --> + <declare-styleable name="SliderPreference"> + <attr name="textStart" format="reference" /> + <attr name="textEnd" format="reference" /> + <attr name="iconStart" format="reference" /> + <attr name="iconEnd" format="reference" /> + <attr name="iconStartContentDescription" format="reference" /> + <attr name="iconEndContentDescription" format="reference" /> + </declare-styleable> +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml b/packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml new file mode 100644 index 000000000000..803b7a41cffe --- /dev/null +++ b/packages/SettingsLib/SliderPreference/res/values/colors_expressive.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources> + <color name="settingslib_expressive_color_slider_track_active">@color/settingslib_materialColorPrimary</color> + <color name="settingslib_expressive_color_slider_track_inactive">@color/settingslib_materialColorSurfaceContainerHighest</color> + <color name="settingslib_expressive_color_slider_thumb">@color/settingslib_materialColorPrimary</color> + <color name="settingslib_expressive_color_slider_halo">@android:color/transparent</color> +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml b/packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml new file mode 100644 index 000000000000..faae8bcf7e59 --- /dev/null +++ b/packages/SettingsLib/SliderPreference/res/values/dimens_expressive.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<resources> + <dimen name="settingslib_expressive_slider_track_height">@dimen/settingslib_expressive_space_small1</dimen> + <dimen name="settingslib_expressive_slider_track_inside_corner_size">@dimen/settingslib_expressive_space_extrasmall1</dimen> + <dimen name="settingslib_expressive_slider_track_stop_indicator_size">@dimen/settingslib_expressive_space_extrasmall2</dimen> + <dimen name="settingslib_expressive_slider_thumb_width">@dimen/settingslib_expressive_space_extrasmall2</dimen> + <dimen name="settingslib_expressive_slider_thumb_height">44dp</dimen> + <dimen name="settingslib_expressive_slider_thumb_elevation">@dimen/settingslib_expressive_space_none</dimen> + <dimen name="settingslib_expressive_slider_thumb_stroke_width">@dimen/settingslib_expressive_space_extrasmall2</dimen> + <dimen name="settingslib_expressive_slider_thumb_track_gap_size">@dimen/settingslib_expressive_space_extrasmall3</dimen> + <dimen name="settingslib_expressive_slider_tick_radius">@dimen/settingslib_expressive_radius_extrasmall1</dimen> + +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java b/packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java new file mode 100644 index 000000000000..1815d040bb18 --- /dev/null +++ b/packages/SettingsLib/SliderPreference/src/com/android/settingslib/widget/SliderPreference.java @@ -0,0 +1,668 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.widget; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.AttributeSet; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; + +import com.android.settingslib.widget.preference.slider.R; + +import com.google.android.material.slider.LabelFormatter; +import com.google.android.material.slider.Slider; + +/** + * A {@link Preference} that displays a {@link Slider}. + */ +public class SliderPreference extends Preference { + private static final String TAG = "SliderPreference"; + + private final int mTextStartId; + private final int mTextEndId; + private final int mIconStartId; + private final int mIconEndId; + private final int mIconStartContentDescriptionId; + private final int mIconEndContentDescriptionId; + private final ColorStateList mTrackActiveColor; + private final ColorStateList mTrackInactiveColor; + private final ColorStateList mThumbColor; + private final ColorStateList mHaloColor; + private final int mTrackHeight; + private final int mTrackInsideCornerSize; + private final int mTrackStopIndicatorSize; + private final int mThumbWidth; + private final int mThumbHeight; + private final int mThumbElevation; + private final int mThumbStrokeWidth; + private final int mThumbTrackGapSize; + private final int mTickRadius; + @Nullable private Slider mSlider; + private int mSliderValue; + private int mMin; + private int mMax; + private int mSliderIncrement; + private boolean mAdjustable; + private boolean mTrackingTouch; + + /** + * Listener reacting to the user pressing DPAD left/right keys if {@code + * adjustable} attribute is set to true; it transfers the key presses to the {@link Slider} + * to be handled accordingly. + */ + private final View.OnKeyListener mSliderKeyListener = new View.OnKeyListener() { + @Override + public boolean onKey(@NonNull View v, int keyCode, @NonNull KeyEvent event) { + if (event.getAction() != KeyEvent.ACTION_DOWN) { + return false; + } + + if (!mAdjustable && (keyCode == KeyEvent.KEYCODE_DPAD_LEFT + || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT)) { + // Right or left keys are pressed when in non-adjustable mode; Skip the keys. + return false; + } + + // We don't want to propagate the click keys down to the Slider since it will + // create the ripple effect for the thumb. + if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) { + return false; + } + + if (mSlider == null) { + Log.e(TAG, "Slider view is null and hence cannot be adjusted."); + return false; + } + return mSlider.onKeyDown(keyCode, event); + } + }; + /** + * Listener reacting to the {@link Slider} touch event by the user + */ + private final Slider.OnSliderTouchListener mTouchListener = new Slider.OnSliderTouchListener() { + @Override + public void onStopTrackingTouch(@NonNull Slider slider) { + mTrackingTouch = false; + if ((int) slider.getValue() != mSliderValue) { + syncValueInternal(slider); + } + } + + @Override + public void onStartTrackingTouch(@NonNull Slider slider) { + mTrackingTouch = true; + } + }; + private LabelFormatter mLabelFormater; + // Whether the SliderPreference should continuously save the Slider value while it is being + // dragged. + private boolean mUpdatesContinuously; + /** + * Listener reacting to the {@link Slider} changing value by the user + */ + private final Slider.OnChangeListener mChangeListener = new Slider.OnChangeListener() { + @Override + public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { + if (fromUser && (mUpdatesContinuously || !mTrackingTouch)) { + syncValueInternal(slider); + } + } + }; + // Whether to show the Slider value TextView next to the bar + private boolean mShowSliderValue; + + public SliderPreference(@NonNull Context context, + @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + setLayoutResource(R.layout.settingslib_expressive_preference_slider); + + TypedArray a = context.obtainStyledAttributes( + attrs, androidx.preference.R.styleable.SeekBarPreference, defStyleAttr, + 0 /*defStyleRes*/); + + // The ordering of these two statements are important. If we want to set max first, we need + // to perform the same steps by changing min/max to max/min as following: + // mMax = a.getInt(...) and setMin(...). + mMin = a.getInt(androidx.preference.R.styleable.SeekBarPreference_min, 0); + setMax(a.getInt(androidx.preference.R.styleable.SeekBarPreference_android_max, 100)); + setSliderIncrement( + a.getInt(androidx.preference.R.styleable.SeekBarPreference_seekBarIncrement, 0)); + mAdjustable = a.getBoolean(androidx.preference.R.styleable.SeekBarPreference_adjustable, + true); + mShowSliderValue = a.getBoolean( + androidx.preference.R.styleable.SeekBarPreference_showSeekBarValue, false); + mUpdatesContinuously = a.getBoolean( + androidx.preference.R.styleable.SeekBarPreference_updatesContinuously, + false); + a.recycle(); + + a = context.obtainStyledAttributes(attrs, + R.styleable.SliderPreference); + mTextStartId = a.getResourceId( + R.styleable.SliderPreference_textStart, /* defValue= */ 0); + mTextEndId = a.getResourceId( + R.styleable.SliderPreference_textEnd, /* defValue= */ 0); + mIconStartId = a.getResourceId( + R.styleable.SliderPreference_iconStart, /* defValue= */ 0); + mIconEndId = a.getResourceId( + R.styleable.SliderPreference_iconEnd, /* defValue= */ 0); + + mIconStartContentDescriptionId = a.getResourceId( + R.styleable.SliderPreference_iconStartContentDescription, + /* defValue= */ 0); + + mIconEndContentDescriptionId = a.getResourceId( + R.styleable.SliderPreference_iconEndContentDescription, + /* defValue= */ 0); + a.recycle(); + + mTrackActiveColor = context.getColorStateList( + R.color.settingslib_expressive_color_slider_track_active); + mTrackInactiveColor = context.getColorStateList( + R.color.settingslib_expressive_color_slider_track_inactive); + mThumbColor = context.getColorStateList( + R.color.settingslib_expressive_color_slider_thumb); + mHaloColor = context.getColorStateList(R.color.settingslib_expressive_color_slider_halo); + + Resources res = context.getResources(); + mTrackHeight = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_track_height); + mTrackInsideCornerSize = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_track_inside_corner_size); + mTrackStopIndicatorSize = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_track_stop_indicator_size); + mThumbWidth = res.getDimensionPixelSize(R.dimen.settingslib_expressive_slider_thumb_width); + mThumbHeight = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_thumb_height); + mThumbElevation = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_thumb_elevation); + mThumbStrokeWidth = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_thumb_stroke_width); + mThumbTrackGapSize = res.getDimensionPixelSize( + R.dimen.settingslib_expressive_slider_thumb_track_gap_size); + mTickRadius = res.getDimensionPixelSize(R.dimen.settingslib_expressive_slider_tick_radius); + } + + /** + * Constructor that is called when inflating a preference from XML. This is called when a + * preference is being constructed from an XML file, supplying attributes that were specified + * in the XML file. This version uses a default style of 0, so the only attribute values + * applied are those in the Context's Theme and the given AttributeSet. + * + * @param context The Context this is associated with, through which it can access the + * current theme, resources, etc. + * @param attrs The attributes of the XML tag that is inflating the preference + */ + public SliderPreference(@NonNull Context context, @Nullable AttributeSet attrs) { + this(context, attrs, 0 /* defStyleAttr */); + } + + /** + * Constructor to create a slider preference. + * + * @param context The Context this is associated with, through which it can access the + * current theme, resources, etc. + */ + public SliderPreference(@NonNull Context context) { + this(context, null); + } + + private static void setIconViewAndFrameEnabled(View iconView, ViewGroup iconFrame, + boolean enabled) { + iconView.setEnabled(enabled); + iconFrame.setEnabled(enabled); + } + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + holder.itemView.setOnKeyListener(mSliderKeyListener); + mSlider = (Slider) holder.findViewById(R.id.slider); + + if (mSlider == null) { + Log.e(TAG, "Slider is null in onBindViewHolder."); + return; + } + + if (mShowSliderValue) { + mSlider.setLabelBehavior(LabelFormatter.LABEL_FLOATING); + } else { + mSlider.setLabelBehavior(LabelFormatter.LABEL_GONE); + } + if (mLabelFormater != null) { + mSlider.setLabelFormatter(mLabelFormater); + } + if (mSliderIncrement != 0) { + mSlider.setStepSize(mSliderIncrement); + } else { + mSliderIncrement = (int) (mSlider.getStepSize()); + } + mSlider.setValueFrom(mMin); + mSlider.setValueTo(mMax); + mSlider.setValue(mSliderValue); + mSlider.addOnSliderTouchListener(mTouchListener); + mSlider.addOnChangeListener(mChangeListener); + mSlider.setEnabled(isEnabled()); + + // Set up slider color + mSlider.setTrackActiveTintList(mTrackActiveColor); + mSlider.setTrackInactiveTintList(mTrackInactiveColor); + mSlider.setThumbTintList(mThumbColor); + mSlider.setHaloTintList(mHaloColor); + mSlider.setTickActiveTintList(mTrackInactiveColor); + mSlider.setTickInactiveTintList(mTrackActiveColor); + + // Set up slider size + if (SettingsThemeHelper.isExpressiveTheme(getContext())) { + mSlider.setTrackHeight(mTrackHeight); + // need to drop 1.12.0 to Android + mSlider.setTrackInsideCornerSize(mTrackInsideCornerSize); + mSlider.setTrackStopIndicatorSize(mTrackStopIndicatorSize); + mSlider.setThumbWidth(mThumbWidth); + mSlider.setThumbHeight(mThumbHeight); + mSlider.setThumbElevation(mThumbElevation); + mSlider.setThumbStrokeWidth(mThumbStrokeWidth); + mSlider.setThumbTrackGapSize(mThumbTrackGapSize); + mSlider.setTickActiveRadius(mTickRadius); + mSlider.setTickInactiveRadius(mTickRadius); + } + + TextView startText = (TextView) holder.findViewById(android.R.id.text1); + if (mTextStartId > 0 && startText != null) { + startText.setText(mTextStartId); + } + + TextView endText = (TextView) holder.findViewById(android.R.id.text2); + if (mTextEndId > 0 && endText != null) { + endText.setText(mTextEndId); + } + + View labelFrame = holder.findViewById(R.id.label_frame); + if (labelFrame != null) { + boolean isValidTextResIdExist = mTextStartId > 0 || mTextEndId > 0; + labelFrame.setVisibility(isValidTextResIdExist ? View.VISIBLE : View.GONE); + } + + ImageView iconStartView = (ImageView) holder.findViewById(R.id.icon_start); + updateIconStartIfNeeded(iconStartView); + + ImageView iconEndView = (ImageView) holder.findViewById(R.id.icon_end); + updateIconEndIfNeeded(iconEndView); + } + + /** + * Gets the lower bound set on the {@link Slider}. + * + * @return The lower bound set + */ + public int getMin() { + return mMin; + } + + /** + * Sets the lower bound on the {@link Slider}. + * + * @param min The lower bound to set + */ + public void setMin(int min) { + if (min > mMax) { + min = mMax; + } + if (min != mMin) { + mMin = min; + notifyChanged(); + } + } + + /** + * Gets the upper bound set on the {@link Slider}. + * + * @return The upper bound set + */ + public int getMax() { + return mMax; + } + + /** + * Sets the upper bound on the {@link Slider}. + * + * @param max The upper bound to set + */ + public final void setMax(int max) { + if (max < mMin) { + max = mMin; + } + if (max != mMax) { + mMax = max; + notifyChanged(); + } + } + + public final int getSliderIncrement() { + return mSliderIncrement; + } + + /** + * Sets the increment amount on the {@link Slider} for each arrow key press. + * + * @param sliderIncrement The amount to increment or decrement when the user presses an + * arrow key. + */ + public final void setSliderIncrement(int sliderIncrement) { + if (sliderIncrement != mSliderIncrement) { + mSliderIncrement = Math.min(mMax - mMin, Math.abs(sliderIncrement)); + notifyChanged(); + } + } + + /** + * Gets whether the {@link Slider} should respond to the left/right keys. + * + * @return Whether the {@link Slider} should respond to the left/right keys + */ + public boolean isAdjustable() { + return mAdjustable; + } + + /** + * Sets whether the {@link Slider} should respond to the left/right keys. + * + * @param adjustable Whether the {@link Slider} should respond to the left/right keys + */ + public void setAdjustable(boolean adjustable) { + mAdjustable = adjustable; + } + + /** + * Gets whether the {@link SliderPreference} should continuously save the {@link Slider} value + * while it is being dragged. Note that when the value is true, + * {@link Preference.OnPreferenceChangeListener} will be called continuously as well. + * + * @return Whether the {@link SliderPreference} should continuously save the {@link Slider} + * value while it is being dragged + * @see #setUpdatesContinuously(boolean) + */ + public boolean getUpdatesContinuously() { + return mUpdatesContinuously; + } + + /** + * Sets whether the {@link SliderPreference} should continuously save the {@link Slider} value + * while it is being dragged. + * + * @param updatesContinuously Whether the {@link SliderPreference} should continuously save + * the {@link Slider} value while it is being dragged + * @see #getUpdatesContinuously() + */ + public void setUpdatesContinuously(boolean updatesContinuously) { + mUpdatesContinuously = updatesContinuously; + } + + /** + * Gets whether the current {@link Slider} value is displayed to the user. + * + * @return Whether the current {@link Slider} value is displayed to the user + * @see #setShowSliderValue(boolean) + */ + public boolean getShowSliderValue() { + return mShowSliderValue; + } + + /** + * Sets whether the current {@link Slider} value is displayed to the user. + * + * @param showSliderValue Whether the current {@link Slider} value is displayed to the user + * @see #getShowSliderValue() + */ + public void setShowSliderValue(boolean showSliderValue) { + mShowSliderValue = showSliderValue; + notifyChanged(); + } + + public void setLabelFormater(@Nullable LabelFormatter formater) { + mLabelFormater = formater; + } + + /** + * Gets the current progress of the {@link Slider}. + * + * @return The current progress of the {@link Slider} + */ + public int getValue() { + return mSliderValue; + } + + /** + * Sets the current progress of the {@link Slider}. + * + * @param sliderValue The current progress of the {@link Slider} + */ + public void setValue(int sliderValue) { + setValueInternal(sliderValue, true); + } + + @Override + protected void onSetInitialValue(@Nullable Object defaultValue) { + if (defaultValue == null) { + defaultValue = 0; + } + setValue(getPersistedInt((Integer) defaultValue)); + } + + @Override + protected @Nullable Object onGetDefaultValue(@NonNull TypedArray a, int index) { + return a.getInt(index, 0); + } + + /** + * Persist the {@link Slider}'s Slider value if callChangeListener returns true, otherwise + * set the {@link Slider}'s value to the stored value. + */ + void syncValueInternal(@NonNull Slider slider) { + int sliderValue = mMin + (int) slider.getValue(); + if (sliderValue != mSliderValue) { + if (callChangeListener(sliderValue)) { + setValueInternal(sliderValue, false); + // TODO: mHapticFeedbackMode + } else { + slider.setValue(mSliderValue); + } + } + } + + private void setValueInternal(int sliderValue, boolean notifyChanged) { + if (sliderValue < mMin) { + sliderValue = mMin; + } + if (sliderValue > mMax) { + sliderValue = mMax; + } + + if (sliderValue != mSliderValue) { + mSliderValue = sliderValue; + persistInt(sliderValue); + if (notifyChanged) { + notifyChanged(); + } + } + } + + @Nullable + @Override + protected Parcelable onSaveInstanceState() { + Parcelable superState = super.onSaveInstanceState(); + if (isPersistent()) { + // No need to save instance state since it's persistent + return superState; + } + + // Save the instance state + SavedState myState = new SavedState(superState); + myState.mSliderValue = mSliderValue; + myState.mMin = mMin; + myState.mMax = mMax; + return myState; + } + + @Override + protected void onRestoreInstanceState(@Nullable Parcelable state) { + if (state == null || !state.getClass().equals(SavedState.class)) { + // Didn't save state for us in onSaveInstanceState + super.onRestoreInstanceState(state); + return; + } + + // Restore the instance state + SavedState myState = (SavedState) state; + super.onRestoreInstanceState(myState.getSuperState()); + mSliderValue = myState.mSliderValue; + mMin = myState.mMin; + mMax = myState.mMax; + notifyChanged(); + } + + private void updateIconStartIfNeeded(ImageView icon) { + if (icon == null) { + return; + } + ViewGroup iconFrame = (ViewGroup) icon.getParent(); + if (iconFrame == null) { + return; + } + + if (mIconStartId == 0 || mSliderIncrement == 0) { + iconFrame.setVisibility(View.GONE); + return; + } + + if (icon.getDrawable() == null) { + icon.setImageResource(mIconStartId); + } + + if (mIconStartContentDescriptionId != 0) { + String contentDescription = + iconFrame.getContext().getString(mIconStartContentDescriptionId); + iconFrame.setContentDescription(contentDescription); + } + + iconFrame.setOnClickListener((view) -> { + if (mSliderValue > 0) { + setValue(mSliderValue - mSliderIncrement); + } + }); + + iconFrame.setVisibility(View.VISIBLE); + setIconViewAndFrameEnabled(icon, iconFrame, mSliderValue > mMin); + } + + private void updateIconEndIfNeeded(ImageView icon) { + if (icon == null) { + return; + } + ViewGroup iconFrame = (ViewGroup) icon.getParent(); + if (iconFrame == null) { + return; + } + + if (mIconEndId == 0 || mSliderIncrement == 0) { + iconFrame.setVisibility(View.GONE); + return; + } + + if (icon.getDrawable() == null) { + icon.setImageResource(mIconEndId); + } + + if (mIconEndContentDescriptionId != 0) { + String contentDescription = + iconFrame.getContext().getString(mIconEndContentDescriptionId); + iconFrame.setContentDescription(contentDescription); + } + + iconFrame.setOnClickListener((view) -> { + if (mSliderValue < mMax) { + setValue(mSliderValue + mSliderIncrement); + } + }); + + iconFrame.setVisibility(View.VISIBLE); + setIconViewAndFrameEnabled(icon, iconFrame, mSliderValue < mMax); + } + + /** + * SavedState, a subclass of {@link BaseSavedState}, will store the state of this preference. + * + * <p>It is important to always call through to super methods. + */ + private static class SavedState extends BaseSavedState { + public static final Parcelable.Creator<SavedState> CREATOR = + new Parcelable.Creator<>() { + @Override + @NonNull + public SavedState createFromParcel(@NonNull Parcel in) { + return new SavedState(in); + } + + @Override + @NonNull + public SavedState[] newArray(int size) { + return new SavedState[size]; + } + }; + + int mSliderValue; + int mMin; + int mMax; + + SavedState(Parcel source) { + super(source); + + // Restore the click counter + mSliderValue = source.readInt(); + mMin = source.readInt(); + mMax = source.readInt(); + } + + SavedState(Parcelable superState) { + super(superState); + } + + @Override + public void writeToParcel(@NonNull Parcel dest, int flags) { + super.writeToParcel(dest, flags); + + // Save the click counter + dest.writeInt(mSliderValue); + dest.writeInt(mMin); + dest.writeInt(mMax); + } + } +} diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt index 77073765d5a9..6d3f7bc1147d 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/IntroPreference.kt @@ -91,7 +91,7 @@ private fun IntroIcon(imageVector: ImageVector?) { imageVector = imageVector, contentDescription = null, modifier = Modifier.size(SettingsDimension.introIconSize), - tint = MaterialTheme.colorScheme.onSecondary, + tint = MaterialTheme.colorScheme.onSecondaryContainer, ) } } diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt index 92b1005d07e4..3aa7ad0a992d 100644 --- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt +++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt @@ -49,7 +49,14 @@ internal fun TwoTargetPreference( widget: @Composable () -> Unit, ) { Row( - modifier = Modifier.fillMaxWidth().padding(end = SettingsDimension.itemPaddingEnd), + modifier = + Modifier.fillMaxWidth() + .then( + if (isSpaExpressiveEnabled) + Modifier.background(MaterialTheme.colorScheme.surfaceBright) + else Modifier + ) + .padding(end = SettingsDimension.itemPaddingEnd), verticalAlignment = Alignment.CenterVertically, ) { if (isSpaExpressiveEnabled) { diff --git a/packages/SettingsLib/StatusBannerPreference/Android.bp b/packages/SettingsLib/StatusBannerPreference/Android.bp new file mode 100644 index 000000000000..d6af318da108 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/Android.bp @@ -0,0 +1,33 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "frameworks_base_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["frameworks_base_license"], +} + +android_library { + name: "SettingsLibStatusBannerPreference", + use_resource_processor: true, + defaults: [ + "SettingsLintDefaults", + ], + + srcs: [ + "src/**/*.java", + "src/**/*.kt", + ], + resource_dirs: ["res"], + + static_libs: [ + "androidx.annotation_annotation", + "androidx.preference_preference", + "SettingsLibSettingsTheme", + ], + sdk_version: "system_current", + min_sdk_version: "24", + apex_available: [ + "//apex_available:platform", + ], +} diff --git a/packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml b/packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml new file mode 100644 index 000000000000..1dca93f813e3 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/AndroidManifest.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2020 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.android.settingslib.widget.preference.statusbanner"> + + <uses-sdk android:minSdkVersion="24" /> + +</manifest> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml new file mode 100644 index 000000000000..b977893c2b89 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_high.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" /> +</shape> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml new file mode 100644 index 000000000000..b977893c2b89 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_low.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" /> +</shape> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml new file mode 100644 index 000000000000..b977893c2b89 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable-night/settingslib_expressive_background_level_medium.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" /> +</shape> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml new file mode 100644 index 000000000000..b64c09f6f12e --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_generic.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="@color/settingslib_materialColorSurfaceContainerHigh" /> +</shape>
\ No newline at end of file diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml new file mode 100644 index 000000000000..c3caaf7fb1c9 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_high.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="#FFECEE" /> +</shape> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml new file mode 100644 index 000000000000..4e2254c44016 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_low.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="#DDF8D8" /> +</shape> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml new file mode 100644 index 000000000000..31ac0596353c --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_background_level_medium.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="oval"> + <size android:height="68dp" android:width="68dp" /> + <solid android:color="#FFF2B4" /> +</shape> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml new file mode 100644 index 000000000000..58d0fd023b54 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_high.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="34dp" + android:height="42dp" + android:viewportWidth="34" + android:viewportHeight="42"> + <path + android:pathData="M0.856,17.569C0.887,19.083 1.004,20.593 1.206,22.094C2.166,28.584 5.804,35.937 15.774,41.089C16.171,41.293 16.61,41.4 17.056,41.4C17.503,41.4 17.942,41.293 18.339,41.089C28.309,35.936 31.947,28.583 32.907,22.093C33.109,20.593 33.226,19.083 33.256,17.569V8.605C33.257,7.919 33.046,7.25 32.652,6.688C32.259,6.127 31.703,5.7 31.059,5.467L18.191,0.8C17.458,0.534 16.655,0.534 15.922,0.8L3.054,5.467C2.41,5.7 1.854,6.127 1.461,6.688C1.067,7.25 0.856,7.919 0.856,8.605V17.569Z" + android:fillColor="#DB372D"/> + <path + android:pathData="M15.067,24.333V10.733H18.933V24.333H15.067ZM15.067,31.267V27.433H18.933V31.267H15.067Z" + android:fillColor="@color/settingslib_materialColorSurfaceContainerLowest"/> +</vector> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml new file mode 100644 index 000000000000..d8862e87ba19 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_low.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="34dp" + android:height="42dp" + android:viewportWidth="34" + android:viewportHeight="42"> + <path + android:pathData="M0.856,17.569C0.887,19.083 1.004,20.593 1.206,22.094C2.166,28.584 5.804,35.937 15.774,41.089C16.171,41.293 16.61,41.4 17.056,41.4C17.503,41.4 17.942,41.293 18.339,41.089C28.309,35.936 31.947,28.583 32.907,22.093C33.109,20.593 33.226,19.083 33.256,17.569V8.605C33.257,7.919 33.046,7.25 32.652,6.688C32.259,6.127 31.703,5.7 31.059,5.467L18.191,0.8C17.458,0.534 16.655,0.534 15.922,0.8L3.054,5.467C2.41,5.7 1.854,6.127 1.461,6.688C1.067,7.25 0.856,7.919 0.856,8.605V17.569Z" + android:fillColor="#1AA64A"/> + <path + android:pathData="M14.389,27.733L8.423,21.767L11.156,19.033L14.389,22.267L22.956,13.7L25.69,16.433L14.389,27.733Z" + android:fillColor="@color/settingslib_materialColorSurfaceContainerLowest"/> +</vector> diff --git a/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml new file mode 100644 index 000000000000..5e34050e7a3d --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/drawable/settingslib_expressive_icon_status_level_medium.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="34dp" + android:height="42dp" + android:viewportWidth="34" + android:viewportHeight="42"> + <path + android:pathData="M0.856,17.569C0.887,19.083 1.004,20.593 1.206,22.094C2.166,28.584 5.804,35.937 15.774,41.089C16.171,41.293 16.61,41.4 17.056,41.4C17.503,41.4 17.942,41.293 18.339,41.089C28.309,35.936 31.947,28.583 32.907,22.093C33.109,20.593 33.226,19.083 33.256,17.569V8.605C33.257,7.919 33.046,7.25 32.652,6.688C32.259,6.127 31.703,5.7 31.059,5.467L18.191,0.8C17.458,0.534 16.655,0.534 15.922,0.8L3.054,5.467C2.41,5.7 1.854,6.127 1.461,6.688C1.067,7.25 0.856,7.919 0.856,8.605V17.569Z" + android:fillColor="#FCBD00"/> + <path + android:pathData="M15.067,24.333V10.733H18.933V24.333H15.067ZM15.067,31.267V27.433H18.933V31.267H15.067Z" + android:fillColor="@color/settingslib_materialColorSurfaceContainerLowest"/> +</vector> diff --git a/packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml b/packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml new file mode 100644 index 000000000000..9a3e5b9e1e50 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/layout/settingslib_expressive_preference_statusbanner.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<com.google.android.material.card.MaterialCardView + xmlns:android="http://schemas.android.com/apk/res/android" + style="@style/SettingsLibStatusBannerCardStyle"> + + <LinearLayout + android:id="@+id/banner_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:baselineAligned="false" + android:paddingVertical="@dimen/settingslib_expressive_space_small1" + android:paddingHorizontal="?android:attr/listPreferredItemPaddingStart" + android:orientation="vertical"> + + <LinearLayout + android:id="@+id/status_container" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="horizontal"> + + <FrameLayout + android:id="@android:id/icon_frame" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:minWidth="@dimen/settingslib_status_banner_icon_frame_size" + android:minHeight="@dimen/settingslib_status_banner_icon_frame_size" + android:gravity="center" + android:orientation="horizontal"> + + <ImageView + android:id="@+id/icon_background" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <ImageView + android:id="@android:id/icon" + android:layout_width="@dimen/settingslib_expressive_space_medium4" + android:layout_height="@dimen/settingslib_expressive_space_medium4" + android:layout_gravity="center" + android:scaleType="centerInside"/> + + </FrameLayout> + + <LinearLayout + android:id="@+id/text_container" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:paddingVertical="@dimen/settingslib_expressive_space_extrasmall4" + android:paddingHorizontal="@dimen/settingslib_expressive_space_small1" + android:layout_weight="1" + android:layout_gravity="center" + android:orientation="vertical"> + <TextView + android:id="@android:id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hyphenationFrequency="normalFast" + android:lineBreakWordStyle="phrase" + android:textAppearance="@style/SettingsLibTextAppearance.Emphasized.Title.Large"/> + + <TextView + android:id="@android:id/summary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hyphenationFrequency="normalFast" + android:lineBreakWordStyle="phrase" + android:maxLines="3" + android:textAppearance="@style/SettingsLibTextAppearance.Primary.Body.Medium"/> + </LinearLayout> + </LinearLayout> + + <com.google.android.material.button.MaterialButton + android:id="@+id/status_banner_button" + android:layout_marginTop="@dimen/settingslib_expressive_space_small3" + style="@style/SettingsLibButtonStyle.Expressive.Filled.Extra"/> + + </LinearLayout> +</com.google.android.material.card.MaterialCardView>
\ No newline at end of file diff --git a/packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml b/packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml new file mode 100644 index 000000000000..54860d4af20f --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/values/attrs.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <declare-styleable name="StatusBanner"> + <attr name="iconLevel" format="enum"> + <enum name="generic" value="0"/> + <enum name="low" value="1"/> + <enum name="medium" value="2"/> + <enum name="high" value="3"/> + </attr> + <attr name="buttonLevel" format="enum"> + <enum name="generic" value="0"/> + <enum name="low" value="1"/> + <enum name="medium" value="2"/> + <enum name="high" value="3"/> + </attr> + <attr name="buttonText" format="string"/> + </declare-styleable> +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/StatusBannerPreference/res/values/colors.xml b/packages/SettingsLib/StatusBannerPreference/res/values/colors.xml new file mode 100644 index 000000000000..19181dd55852 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/values/colors.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <!-- static palette green60 --> + <color name="settingslib_expressive_color_status_level_low">#1AA64A</color> + <!-- static palette yellow80 --> + <color name="settingslib_expressive_color_status_level_medium">#FCBD00</color> + <!-- static palette red50 --> + <color name="settingslib_expressive_color_status_level_high">#DB372D</color> +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml b/packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml new file mode 100644 index 000000000000..f18f168701c0 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/res/values/dimens.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2024 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <dimen name="settingslib_status_banner_icon_frame_size">68dp</dimen> +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt b/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt new file mode 100644 index 000000000000..c1578ef69635 --- /dev/null +++ b/packages/SettingsLib/StatusBannerPreference/src/com/android/settingslib/widget/StatusBannerPreference.kt @@ -0,0 +1,197 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.widget + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.drawable.Drawable +import android.util.AttributeSet +import android.view.View +import android.widget.ImageView +import androidx.annotation.StringRes +import androidx.core.content.ContextCompat +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import com.android.settingslib.widget.preference.statusbanner.R +import com.google.android.material.button.MaterialButton + +class StatusBannerPreference @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, + defStyleRes: Int = 0 +) : Preference(context, attrs, defStyleAttr, defStyleRes) { + + enum class BannerStatus { + GENERIC, + LOW, + MEDIUM, + HIGH + } + var iconLevel: BannerStatus = BannerStatus.GENERIC + set(value) { + field = value + notifyChanged() + } + var buttonLevel: BannerStatus = BannerStatus.GENERIC + set(value) { + field = value + notifyChanged() + } + private var buttonText: String = "" + set(value) { + field = value + notifyChanged() + } + private var listener: View.OnClickListener? = null + + init { + layoutResource = R.layout.settingslib_expressive_preference_statusbanner + isSelectable = false + + initAttributes(context, attrs, defStyleAttr) + } + + private fun initAttributes(context: Context, attrs: AttributeSet?, defStyleAttr: Int) { + context.obtainStyledAttributes( + attrs, + R.styleable.StatusBanner, defStyleAttr, 0 + ).apply { + iconLevel = getInteger(R.styleable.StatusBanner_iconLevel, 0).toBannerStatus() + if (icon == null) { + icon = getIconDrawable(iconLevel) + } else { + icon!!.setTintList(ColorStateList.valueOf(getBackgroundColor(iconLevel))) + } + buttonLevel = getInteger(R.styleable.StatusBanner_buttonLevel, 0).toBannerStatus() + buttonText = getString(R.styleable.StatusBanner_buttonText) ?: "" + recycle() + } + } + + private fun Int.toBannerStatus(): BannerStatus = when (this) { + 1 -> BannerStatus.LOW + 2 -> BannerStatus.MEDIUM + 3 -> BannerStatus.HIGH + else -> BannerStatus.GENERIC + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + holder.isDividerAllowedBelow = false + holder.isDividerAllowedAbove = false + + (holder.findViewById(R.id.icon_background) as? ImageView)?.apply { + setImageDrawable(getBackgroundDrawable(iconLevel)) + } + + holder.findViewById(android.R.id.icon_frame)?.apply { + visibility = if (icon != null) View.VISIBLE else View.GONE + } + + (holder.findViewById(R.id.status_banner_button) as? MaterialButton)?.apply { + setBackgroundColor(getBackgroundColor(buttonLevel)) + text = buttonText + setOnClickListener(listener) + visibility = if (listener != null) View.VISIBLE else View.GONE + } + } + + /** + * Sets the text to be displayed in button. + */ + fun setButtonText(@StringRes textResId: Int) { + buttonText = context.getString(textResId) + } + + /** + * Register a callback to be invoked when positive button is clicked. + */ + fun setButtonOnClickListener(listener: View.OnClickListener) { + this.listener = listener + notifyChanged() + } + + private fun getBackgroundColor(level: BannerStatus): Int { + return when (level) { + BannerStatus.LOW -> ContextCompat.getColor( + context, + R.color.settingslib_expressive_color_status_level_low + ) + + BannerStatus.MEDIUM -> ContextCompat.getColor( + context, + R.color.settingslib_expressive_color_status_level_medium + ) + + BannerStatus.HIGH -> ContextCompat.getColor( + context, + R.color.settingslib_expressive_color_status_level_high + ) + + else -> ContextCompat.getColor( + context, + com.android.settingslib.widget.theme.R.color.settingslib_materialColorPrimary + ) + } + } + + private fun getIconDrawable(level: BannerStatus): Drawable? { + return when (level) { + BannerStatus.LOW -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_icon_status_level_low + ) + + BannerStatus.MEDIUM -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_icon_status_level_medium + ) + + BannerStatus.HIGH -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_icon_status_level_high + ) + + else -> null + } + } + + private fun getBackgroundDrawable(level: BannerStatus): Drawable? { + return when (level) { + BannerStatus.LOW -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_background_level_low + ) + + BannerStatus.MEDIUM -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_background_level_medium + ) + + BannerStatus.HIGH -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_background_level_high + ) + + else -> ContextCompat.getDrawable( + context, + R.drawable.settingslib_expressive_background_generic + ) + } + } +}
\ No newline at end of file diff --git a/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt b/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt index 1c5cd2aeaeb6..5be56f8ebc86 100644 --- a/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt +++ b/packages/SettingsLib/TopIntroPreference/src/com/android/settingslib/widget/TopIntroPreference.kt @@ -35,6 +35,7 @@ open class TopIntroPreference @JvmOverloads constructor( private var isCollapsable: Boolean = false private var minLines: Int = 2 + private var hyperlinkListener: View.OnClickListener? = null private var learnMoreListener: View.OnClickListener? = null private var learnMoreText: CharSequence? = null @@ -75,6 +76,9 @@ open class TopIntroPreference @JvmOverloads constructor( setCollapsable(isCollapsable) setMinLines(minLines) setText(title.toString()) + if (hyperlinkListener != null) { + setHyperlinkListener(hyperlinkListener) + } if (learnMoreListener != null) { setLearnMoreText(learnMoreText) setLearnMoreAction(learnMoreListener) @@ -103,6 +107,18 @@ open class TopIntroPreference @JvmOverloads constructor( } /** + * Sets the action when clicking on the hyperlink in the text. + * @param listener The click listener for hyperlink. + */ + @RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM) + fun setHyperlinkListener(listener: View.OnClickListener) { + if (hyperlinkListener != listener) { + hyperlinkListener = listener + notifyChanged() + } + } + + /** * Sets the action when clicking on the learn more view. * @param listener The click listener for learn more. */ diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml index d4e01ded8f59..2fd84f36c664 100644 --- a/packages/SettingsLib/res/values-en-rGB/strings.xml +++ b/packages/SettingsLib/res/values-en-rGB/strings.xml @@ -585,7 +585,6 @@ <string name="media_transfer_this_device_name_desktop" msgid="7912386128141470452">"This computer (internal)"</string> <!-- no translation found for media_transfer_this_device_name_tv (5285685336836896535) --> <skip /> - <string name="media_transfer_internal_mic" msgid="797333824290228595">"Microphone (internal)"</string> <string name="media_transfer_dock_speaker_device_name" msgid="2856219597113881950">"Dock speaker"</string> <string name="media_transfer_external_device_name" msgid="2588672258721846418">"External device"</string> <string name="media_transfer_default_device_name" msgid="4315604017399871828">"Connected device"</string> @@ -688,9 +687,11 @@ <string name="cached_apps_freezer_reboot_dialog_text" msgid="695330563489230096">"Your device must be rebooted for this change to apply. Reboot now or cancel."</string> <string name="media_transfer_wired_headphone_name" msgid="8698668536022665254">"Wired headphones"</string> <string name="media_transfer_headphone_name" msgid="1131962659136578852">"Headphone"</string> - <string name="media_transfer_usb_speaker_name" msgid="4736537022543593896">"USB speaker"</string> + <!-- no translation found for media_transfer_usb_audio_name (1789292056757821355) --> + <skip /> <string name="media_transfer_wired_device_mic_name" msgid="7417067197803840965">"Mic jack"</string> - <string name="media_transfer_usb_device_mic_name" msgid="9189914846215516322">"USB mic"</string> + <!-- no translation found for media_transfer_usb_device_mic_name (7171789543226269822) --> + <skip /> <string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"On"</string> <string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Off"</string> <string name="carrier_network_change_mode" msgid="4257621815706644026">"Operator network changing"</string> diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml index 7f5bb0fa55dc..e286643c5cf5 100644 --- a/packages/SettingsLib/res/values-pt-rBR/strings.xml +++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml @@ -585,7 +585,6 @@ <string name="media_transfer_this_device_name_desktop" msgid="7912386128141470452">"Este computador (interno)"</string> <!-- no translation found for media_transfer_this_device_name_tv (5285685336836896535) --> <skip /> - <string name="media_transfer_internal_mic" msgid="797333824290228595">"Microfone (interno)"</string> <string name="media_transfer_dock_speaker_device_name" msgid="2856219597113881950">"Alto-falante da base"</string> <string name="media_transfer_external_device_name" msgid="2588672258721846418">"Dispositivo externo"</string> <string name="media_transfer_default_device_name" msgid="4315604017399871828">"Dispositivo conectado"</string> @@ -688,9 +687,11 @@ <string name="cached_apps_freezer_reboot_dialog_text" msgid="695330563489230096">"É necessário reinicializar o dispositivo para que a mudança seja aplicada. Faça isso agora ou cancele."</string> <string name="media_transfer_wired_headphone_name" msgid="8698668536022665254">"Fones de ouvido com fio"</string> <string name="media_transfer_headphone_name" msgid="1131962659136578852">"Fone de ouvido"</string> - <string name="media_transfer_usb_speaker_name" msgid="4736537022543593896">"Alto-falante USB"</string> + <!-- no translation found for media_transfer_usb_audio_name (1789292056757821355) --> + <skip /> <string name="media_transfer_wired_device_mic_name" msgid="7417067197803840965">"Entrada para microfone"</string> - <string name="media_transfer_usb_device_mic_name" msgid="9189914846215516322">"Microfone USB"</string> + <!-- no translation found for media_transfer_usb_device_mic_name (7171789543226269822) --> + <skip /> <string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"Ativado"</string> <string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Desativado"</string> <string name="carrier_network_change_mode" msgid="4257621815706644026">"Alteração de rede da operadora"</string> diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt b/packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt new file mode 100644 index 000000000000..14f9a19ee753 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedInterface.kt @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib + +import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin + +interface RestrictedInterface { + fun useAdminDisabledSummary(useSummary: Boolean) + + fun checkRestrictionAndSetDisabled(userRestriction: String) + + fun checkRestrictionAndSetDisabled(userRestriction: String, userId: Int) + + /** + * Checks if the given setting is subject to Enhanced Confirmation Mode restrictions for this + * package. Marks the preference as disabled if so. + * + * @param settingIdentifier The key identifying the setting + * @param packageName the package to check the settingIdentifier for + */ + fun checkEcmRestrictionAndSetDisabled( + settingIdentifier: String, + packageName: String + ) + + val isDisabledByAdmin: Boolean + + fun setDisabledByAdmin(admin: EnforcedAdmin?) + + val isDisabledByEcm: Boolean + + val uid: Int + + val packageName: String? +} diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java new file mode 100644 index 000000000000..1dc5281c266c --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedSliderPreference.java @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.os.Process; +import android.os.UserHandle; +import android.util.AttributeSet; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.res.TypedArrayUtils; +import androidx.preference.PreferenceManager; +import androidx.preference.PreferenceViewHolder; + +import com.android.settingslib.widget.SliderPreference; + +/** + * Slide Preference that supports being disabled by a user restriction + * set by a device admin. + */ +public class RestrictedSliderPreference extends SliderPreference implements RestrictedInterface { + RestrictedPreferenceHelper mHelper; + + public RestrictedSliderPreference(@NonNull Context context, @Nullable AttributeSet attrs, + int defStyleAttr, @Nullable String packageName, int uid) { + super(context, attrs, defStyleAttr); + mHelper = new RestrictedPreferenceHelper(context, this, attrs, packageName, uid); + } + + public RestrictedSliderPreference(@NonNull Context context, + @Nullable AttributeSet attrs, int defStyleAttr) { + this(context, attrs, defStyleAttr, null, Process.INVALID_UID); + } + + @SuppressLint("RestrictedApi") + public RestrictedSliderPreference(@NonNull Context context, @Nullable AttributeSet attrs) { + this(context, attrs, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle, + android.R.attr.preferenceStyle)); + } + + public RestrictedSliderPreference(@NonNull Context context) { + this(context, null); + } + + @SuppressLint("RestrictedApi") + public RestrictedSliderPreference(@NonNull Context context, @Nullable String packageName, + int uid) { + this(context, null, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle, + android.R.attr.preferenceStyle), packageName, uid); + } + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + mHelper.onBindViewHolder(holder); + } + + @SuppressLint("RestrictedApi") + @Override + public void performClick() { + if (!mHelper.performClick()) { + super.performClick(); + } + } + + @Override + public void setEnabled(boolean enabled) { + if (enabled && isDisabledByAdmin()) { + mHelper.setDisabledByAdmin(null); + return; + } + + if (enabled && isDisabledByEcm()) { + mHelper.setDisabledByEcm(null); + return; + } + + super.setEnabled(enabled); + } + + @Override + public void useAdminDisabledSummary(boolean useSummary) { + mHelper.useAdminDisabledSummary(useSummary); + } + + @Override + public void checkRestrictionAndSetDisabled(@NonNull String userRestriction) { + mHelper.checkRestrictionAndSetDisabled(userRestriction, UserHandle.myUserId()); + } + + @Override + public void checkRestrictionAndSetDisabled(@NonNull String userRestriction, int userId) { + mHelper.checkRestrictionAndSetDisabled(userRestriction, userId); + } + + @Override + public void checkEcmRestrictionAndSetDisabled(@NonNull String settingIdentifier, + @NonNull String packageName) { + mHelper.checkEcmRestrictionAndSetDisabled(settingIdentifier, packageName); + } + + @Override + public void setDisabledByAdmin(@Nullable RestrictedLockUtils.EnforcedAdmin admin) { + if (mHelper.setDisabledByAdmin(admin)) { + notifyChanged(); + } + } + + @Override + public boolean isDisabledByAdmin() { + return mHelper.isDisabledByAdmin(); + } + + @Override + public boolean isDisabledByEcm() { + return mHelper.isDisabledByEcm(); + } + + @Override + public int getUid() { + return mHelper != null ? mHelper.uid : Process.INVALID_UID; + } + + @Override + @Nullable + public String getPackageName() { + return mHelper != null ? mHelper.packageName : null; + } + + @Override + protected void onAttachedToHierarchy(@NonNull PreferenceManager preferenceManager) { + mHelper.onAttachedToHierarchy(); + super.onAttachedToHierarchy(preferenceManager); + } +} diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java index 243ce85bd579..2b8b3b74dab9 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java @@ -19,8 +19,6 @@ package com.android.settingslib.widget; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import android.app.Application; import android.platform.test.annotations.DisableFlags; @@ -68,7 +66,7 @@ public class SelectorWithWidgetPreferenceTest { mPreference = new SelectorWithWidgetPreference(mContext); View view = LayoutInflater.from(mContext) - .inflate(R.layout.preference_selector_with_widget, null /* root */); + .inflate(mPreference.getLayoutResource(), null /* root */); PreferenceViewHolder preferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view); mPreference.onBindViewHolder(preferenceViewHolder); @@ -104,28 +102,28 @@ public class SelectorWithWidgetPreferenceTest { @Test public void onBindViewHolder_withSummary_containerShouldBeVisible() { mPreference.setSummary("some summary"); - View summaryContainer = new View(mContext); - View view = mock(View.class); - when(view.findViewById(R.id.summary_container)).thenReturn(summaryContainer); + View view = LayoutInflater.from(mContext) + .inflate(mPreference.getLayoutResource(), null /* root */); PreferenceViewHolder preferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view); mPreference.onBindViewHolder(preferenceViewHolder); + View summaryContainer = view.findViewById(R.id.summary_container); assertEquals(View.VISIBLE, summaryContainer.getVisibility()); } @Test public void onBindViewHolder_emptySummary_containerShouldBeGone() { mPreference.setSummary(""); - View summaryContainer = new View(mContext); - View view = mock(View.class); - when(view.findViewById(R.id.summary_container)).thenReturn(summaryContainer); + View view = LayoutInflater.from(mContext) + .inflate(mPreference.getLayoutResource(), null /* root */); PreferenceViewHolder preferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view); mPreference.onBindViewHolder(preferenceViewHolder); + View summaryContainer = view.findViewById(R.id.summary_container); assertEquals(View.GONE, summaryContainer.getVisibility()); } @@ -184,25 +182,49 @@ public class SelectorWithWidgetPreferenceTest { } @Test + public void onBindViewHolder_appliesWidgetContentDescription() { + mPreference = new SelectorWithWidgetPreference(mContext); + View view = LayoutInflater.from(mContext) + .inflate(mPreference.getLayoutResource(), /* root= */ null); + PreferenceViewHolder preferenceViewHolder = + PreferenceViewHolder.createInstanceForTests(view); + + mPreference.setExtraWidgetContentDescription("this is clearer"); + mPreference.onBindViewHolder(preferenceViewHolder); + + View widget = preferenceViewHolder.findViewById(R.id.selector_extra_widget); + assertThat(widget.getContentDescription().toString()).isEqualTo("this is clearer"); + + mPreference.setExtraWidgetContentDescription(null); + mPreference.onBindViewHolder(preferenceViewHolder); + + assertThat(widget.getContentDescription().toString()).isEqualTo("Settings"); + } + + @Test public void nullSummary_containerShouldBeGone() { mPreference.setSummary(null); - View summaryContainer = new View(mContext); - View view = mock(View.class); - when(view.findViewById(R.id.summary_container)).thenReturn(summaryContainer); + View view = LayoutInflater.from(mContext) + .inflate(mPreference.getLayoutResource(), null /* root */); PreferenceViewHolder preferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view); + mPreference.onBindViewHolder(preferenceViewHolder); + + View summaryContainer = view.findViewById(R.id.summary_container); assertEquals(View.GONE, summaryContainer.getVisibility()); } @Test public void setAppendixVisibility_setGone_shouldBeGone() { mPreference.setAppendixVisibility(View.GONE); - View view = LayoutInflater.from(mContext) - .inflate(R.layout.preference_selector_with_widget, null /* root */); - PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(view); + .inflate(mPreference.getLayoutResource(), null /* root */); + PreferenceViewHolder holder = + PreferenceViewHolder.createInstanceForTests(view); + mPreference.onBindViewHolder(holder); + assertThat(holder.findViewById(R.id.appendix).getVisibility()).isEqualTo(View.GONE); } diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig index cb1411bdd91e..d98b2da5a811 100644 --- a/packages/SystemUI/aconfig/systemui.aconfig +++ b/packages/SystemUI/aconfig/systemui.aconfig @@ -630,6 +630,13 @@ flag { } flag { + name: "screenshot_multidisplay_focus_change" + namespace: "systemui" + description: "Only capture a single display when screenshotting" + bug: "362720389" +} + +flag { name: "run_fingerprint_detect_on_dismissible_keyguard" namespace: "systemui" description: "Run fingerprint detect instead of authenticate if the keyguard is dismissible." @@ -1431,6 +1438,13 @@ flag { } flag { + name: "override_suppress_overlay_condition" + namespace: "systemui" + description: "Allow override the conditions to suppress the clipboard overlay" + bug: "358473717" +} + +flag { name: "media_projection_dialog_behind_lockscreen" namespace: "systemui" description: "Ensure MediaProjection Dialog appears behind the lockscreen" diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt index d326f00d869e..bf8f6ce50944 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/bouncer/ui/composable/BouncerContent.kt @@ -450,7 +450,7 @@ private fun BesideUserSwitcherLayout( viewModel = viewModel, pinButtonRowVerticalSpacing = 12.dp, centerPatternDotsVertically = true, - modifier = Modifier.align(Alignment.BottomCenter).testTag("InputArea"), + modifier = Modifier.align(Alignment.BottomCenter), ) } @@ -904,12 +904,9 @@ private fun UserSwitcherDropdownMenu( DropdownMenu( expanded = isExpanded, onDismissRequest = onDismissed, - offset = - DpOffset( - x = 0.dp, - y = -UserSwitcherDropdownHeight, - ), - modifier = Modifier.width(UserSwitcherDropdownWidth), + offset = DpOffset(x = 0.dp, y = -UserSwitcherDropdownHeight), + modifier = + Modifier.width(UserSwitcherDropdownWidth).sysuiResTag("user_switcher_dropdown"), ) { items.forEach { userSwitcherDropdownItem -> DropdownMenuItem( diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt index fdf82ca026b1..8b9e9274b448 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationScrimNestedScrollConnection.kt @@ -81,7 +81,7 @@ fun NotificationScrimNestedScrollConnection( if (scrimOffset() < minScrimOffset()) { animateScrimOffset(minScrimOffset()) } - 0f + { 0f } }, ) } diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt index a2ae8bbf66e4..a706585deebc 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/notifications/ui/composable/NotificationStackNestedScrollConnection.kt @@ -100,7 +100,7 @@ fun NotificationStackNestedScrollConnection( }, onStop = { velocityAvailable -> onStop(velocityAvailable) - velocityAvailable + suspend { velocityAvailable } }, ) } diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt index a6d5c1cef81f..e9c5c0333fe5 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/qs/ui/composable/QuickSettings.kt @@ -29,6 +29,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.dimensionResource +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -45,6 +47,7 @@ import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Companion.Collaps import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.Expanding import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQQS import com.android.systemui.qs.ui.adapter.QSSceneAdapter.State.UnsquishingQS +import com.android.systemui.res.R import com.android.systemui.scene.shared.model.Scenes object QuickSettings { @@ -73,10 +76,21 @@ object QuickSettings { val MediaLandscapeTopOffset = ValueKey("MediaLandscapeTopOffset") object MediaOffset { - val InQQS = 0.dp // Brightness + padding val InQS = 92.dp val Default = 0.dp + + @Composable + fun inQqs(isMediaInRow: Boolean): Dp { + return if (isMediaInRow) { + // Tiles are laid out in a center of a container, that has this + // margin on the bottom. This compensates this margin, so that the Media + // Carousel can be properly centered + -dimensionResource(id = R.dimen.qqs_layout_padding_bottom) / 2 + } else { + 0.dp + } + } } } } diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt index ef415b151200..c6c42fce7553 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/ShadeScene.kt @@ -53,7 +53,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.CompositingStrategy import androidx.compose.ui.graphics.graphicsLayer -import androidx.compose.ui.input.pointer.pointerInteropFilter import androidx.compose.ui.layout.Layout import androidx.compose.ui.layout.layoutId import androidx.compose.ui.platform.LocalContext @@ -70,7 +69,7 @@ import com.android.compose.animation.scene.NestedScrollBehavior import com.android.compose.animation.scene.SceneScope import com.android.compose.animation.scene.UserAction import com.android.compose.animation.scene.UserActionResult -import com.android.compose.animation.scene.animateSceneDpAsState +import com.android.compose.animation.scene.animateContentDpAsState import com.android.compose.animation.scene.animateSceneFloatAsState import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.modifiers.padding @@ -101,7 +100,6 @@ import com.android.systemui.qs.footer.ui.compose.FooterActionsWithAnimatedVisibi import com.android.systemui.qs.ui.composable.BrightnessMirror import com.android.systemui.qs.ui.composable.QuickSettings import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaLandscapeTopOffset -import com.android.systemui.qs.ui.composable.QuickSettings.SharedValues.MediaOffset.InQQS import com.android.systemui.res.R import com.android.systemui.scene.session.ui.composable.SaveableSession import com.android.systemui.scene.shared.model.Scenes @@ -292,7 +290,11 @@ private fun SceneScope.SingleShade( // Media is visible and we are in landscape on a small height screen val mediaInRow = isMediaVisible && isLandscape() val mediaOffset by - animateSceneDpAsState(value = InQQS, key = MediaLandscapeTopOffset, canOverflow = false) + animateContentDpAsState( + value = QuickSettings.SharedValues.MediaOffset.inQqs(mediaInRow), + key = MediaLandscapeTopOffset, + canOverflow = false, + ) val navBarHeight = WindowInsets.systemBars.asPaddingValues().calculateBottomPadding() @@ -395,7 +397,8 @@ private fun SceneScope.SingleShade( modifier = Modifier.align(Alignment.BottomCenter) .height(navBarHeight) - .pointerInteropFilter { true } + // Intercepts touches, prevents the scrollable container behind from scrolling. + .clickable(interactionSource = null, indication = null) { /* do nothing */ } .verticalNestedScrollToScene( topBehavior = NestedScrollBehavior.EdgeAlways, isExternalOverscrollGesture = { false }, diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt index 6275ac396628..352d29e21987 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/shade/ui/composable/SingleShadeMeasurePolicy.kt @@ -90,19 +90,28 @@ class SingleShadeMeasurePolicy( y = insetsTop + shadeHeaderPlaceable.height, ) - if (isMediaInRow) { - mediaPlaceable?.placeRelative( - x = insetsLeft + constraintsWithCutout.maxWidth / 2, - y = mediaOffset() + insetsTop + shadeHeaderPlaceable.height, - zIndex = mediaZIndex(), - ) - } else { - mediaPlaceable?.placeRelative( - x = insetsLeft, - y = insetsTop + shadeHeaderPlaceable.height + quickSettingsPlaceable.height, - zIndex = mediaZIndex(), - ) - } + if (mediaPlaceable != null) + if (isMediaInRow) { + // mediaPlaceable height ranges from 0 to qsHeight. We want it to be centered + // vertically when it's smaller than the QS + val mediaCenteringOffset = + (quickSettingsPlaceable.height - mediaPlaceable.height) / 2 + mediaPlaceable.placeRelative( + x = insetsLeft + constraintsWithCutout.maxWidth / 2, + y = + insetsTop + + shadeHeaderPlaceable.height + + mediaCenteringOffset + + mediaOffset(), + zIndex = mediaZIndex(), + ) + } else { + mediaPlaceable.placeRelative( + x = insetsLeft, + y = insetsTop + shadeHeaderPlaceable.height + quickSettingsPlaceable.height, + zIndex = mediaZIndex(), + ) + } // Notifications don't need to accommodate for horizontal insets notificationsPlaceable.placeRelative(x = 0, y = notificationsTop) diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt index 367faed7b7f7..c8adac064690 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/DraggableHandler.kt @@ -27,6 +27,7 @@ import com.android.compose.animation.scene.content.Content import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.content.state.TransitionState.HasOverscrollProperties.Companion.DistanceUnspecified import com.android.compose.nestedscroll.PriorityNestedScrollConnection +import com.android.compose.nestedscroll.SuspendedValue import kotlin.math.absoluteValue internal interface DraggableHandler { @@ -54,9 +55,9 @@ internal interface DragController { /** * Stop the current drag with the given [velocity]. * - * @return the consumed [velocity] + * @return the consumed [velocity] when the animation complete */ - fun onStop(velocity: Float, canChangeContent: Boolean): Float + fun onStop(velocity: Float, canChangeContent: Boolean): SuspendedValue<Float> } internal class DraggableHandlerImpl( @@ -188,7 +189,7 @@ internal class DraggableHandlerImpl( return createSwipeAnimation(layoutImpl, result, isUpOrLeft, orientation) } - private fun resolveSwipeSource(startedPosition: Offset?): SwipeSource.Resolved? { + internal fun resolveSwipeSource(startedPosition: Offset?): SwipeSource.Resolved? { if (startedPosition == null) return null return layoutImpl.swipeSourceDetector.source( layoutSize = layoutImpl.lastSize, @@ -198,7 +199,7 @@ internal class DraggableHandlerImpl( ) } - private fun resolveSwipe( + internal fun resolveSwipe( pointersDown: Int, fromSource: SwipeSource.Resolved?, isUpOrLeft: Boolean, @@ -386,7 +387,7 @@ private class DragControllerImpl( return consumedDelta } - override fun onStop(velocity: Float, canChangeContent: Boolean): Float { + override fun onStop(velocity: Float, canChangeContent: Boolean): SuspendedValue<Float> { return onStop(velocity, canChangeContent, swipeAnimation) } @@ -399,14 +400,14 @@ private class DragControllerImpl( // callbacks (like onAnimationCompleted()) might incorrectly finish a new transition that // replaced this one. swipeAnimation: SwipeAnimation<T>, - ): Float { + ): SuspendedValue<Float> { // The state was changed since the drag started; don't do anything. if (!isDrivingTransition || swipeAnimation.isAnimatingOffset()) { - return 0f + return { 0f } } val fromContent = swipeAnimation.fromContent - val consumedVelocity: Float + val consumedVelocity: SuspendedValue<Float> if (canChangeContent) { // If we are halfway between two contents, we check what the target will be based on the // velocity and offset of the transition, then we launch the animation. @@ -558,6 +559,14 @@ internal class NestedScrollHandlerImpl( val connection: PriorityNestedScrollConnection = nestedScrollConnection() + private fun PointersInfo.resolveSwipe(isUpOrLeft: Boolean): Swipe.Resolved { + return draggableHandler.resolveSwipe( + pointersDown = pointersDown, + fromSource = draggableHandler.resolveSwipeSource(startedPosition), + isUpOrLeft = isUpOrLeft, + ) + } + private fun nestedScrollConnection(): PriorityNestedScrollConnection { // If we performed a long gesture before entering priority mode, we would have to avoid // moving on to the next scene. @@ -574,36 +583,19 @@ internal class NestedScrollHandlerImpl( val transitionState = layoutState.transitionState val scene = transitionState.currentScene val fromScene = layoutImpl.scene(scene) - val nextScene = + val resolvedSwipe = when { - amount < 0f -> { - val actionUpOrLeft = - Swipe.Resolved( - direction = - when (orientation) { - Orientation.Horizontal -> SwipeDirection.Resolved.Left - Orientation.Vertical -> SwipeDirection.Resolved.Up - }, - pointerCount = pointersInfo().pointersDown, - fromSource = null, - ) - fromScene.userActions[actionUpOrLeft] - } - amount > 0f -> { - val actionDownOrRight = - Swipe.Resolved( - direction = - when (orientation) { - Orientation.Horizontal -> SwipeDirection.Resolved.Right - Orientation.Vertical -> SwipeDirection.Resolved.Down - }, - pointerCount = pointersInfo().pointersDown, - fromSource = null, - ) - fromScene.userActions[actionDownOrRight] - } + amount < 0f -> pointersInfo().resolveSwipe(isUpOrLeft = true) + amount > 0f -> pointersInfo().resolveSwipe(isUpOrLeft = false) else -> null } + val nextScene = + resolvedSwipe?.let { + fromScene.userActions[it] + ?: if (it.fromSource != null) { + fromScene.userActions[it.copy(fromSource = null)] + } else null + } if (nextScene != null) return true if (transitionState !is TransitionState.Idle) return false @@ -738,5 +730,5 @@ internal const val OffsetVisibilityThreshold = 0.5f private object NoOpDragController : DragController { override fun onDrag(delta: Float) = 0f - override fun onStop(velocity: Float, canChangeContent: Boolean) = 0f + override fun onStop(velocity: Float, canChangeContent: Boolean) = suspend { 0f } } diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt index 0bb1d928c2b4..dc3135ddbf54 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/MultiPointerDraggable.kt @@ -213,8 +213,9 @@ internal class MultiPointerDraggableNode( internal fun pointersInfo(): PointersInfo { return PointersInfo( + // This may be null, i.e. when the user uses TalkBack startedPosition = startedPosition, - // Note: We could have 0 pointers during fling or for other reasons. + // We could have 0 pointers during fling or for other reasons. pointersDown = pointersDown.coerceAtLeast(1), ) } @@ -325,13 +326,17 @@ internal class MultiPointerDraggableNode( velocityTracker.calculateVelocity(maxVelocity) } .toFloat(), - onFling = { controller.onStop(it, canChangeContent = true) }, + onFling = { + controller.onStop(it, canChangeContent = true).invoke() + }, ) }, onDragCancel = { controller -> startFlingGesture( initialVelocity = 0f, - onFling = { controller.onStop(it, canChangeContent = true) }, + onFling = { + controller.onStop(it, canChangeContent = true).invoke() + }, ) }, swipeDetector = swipeDetector, @@ -353,7 +358,10 @@ internal class MultiPointerDraggableNode( * * Note: Inspired by [androidx.compose.foundation.gestures.ScrollableNode.onDragStopped] */ - private fun startFlingGesture(initialVelocity: Float, onFling: (velocity: Float) -> Float) { + private fun startFlingGesture( + initialVelocity: Float, + onFling: suspend (velocity: Float) -> Float, + ) { // Note: [AwaitPointerEventScope] is annotated as @RestrictsSuspension, we need another // CoroutineScope to run the fling gestures. // We do not need to cancel this [Job], the source will take care of emitting an @@ -415,7 +423,7 @@ internal class MultiPointerDraggableNode( */ private suspend inline fun dispatchFlingEvents( availableOnPreFling: Float, - onFling: (velocity: Float) -> Float, + onFling: suspend (velocity: Float) -> Float, ): Float { // PreFling phase val consumedByPreFling = diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt index 84dce0d730c4..205267da151a 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/animation/scene/SwipeAnimation.kt @@ -27,6 +27,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.unit.IntSize import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.content.state.TransitionState.HasOverscrollProperties.Companion.DistanceUnspecified +import com.android.compose.nestedscroll.SuspendedValue import kotlin.math.absoluteValue import kotlinx.coroutines.CompletableDeferred @@ -321,7 +322,7 @@ internal class SwipeAnimation<T : ContentKey>( initialVelocity: Float, targetContent: T, spec: AnimationSpec<Float>? = null, - ): Float { + ): SuspendedValue<Float> { check(!isAnimatingOffset()) { "SwipeAnimation.animateOffset() can only be called once" } val initialProgress = progress @@ -360,7 +361,7 @@ internal class SwipeAnimation<T : ContentKey>( currentContent = targetContent } - val startProgress = + val initialOffset = if (contentTransition.previewTransformationSpec != null && targetContent == toContent) { 0f } else { @@ -368,7 +369,7 @@ internal class SwipeAnimation<T : ContentKey>( } val animatable = - Animatable(startProgress, OffsetVisibilityThreshold).also { offsetAnimation = it } + Animatable(initialOffset, OffsetVisibilityThreshold).also { offsetAnimation = it } check(isAnimatingOffset()) @@ -379,7 +380,7 @@ internal class SwipeAnimation<T : ContentKey>( if (skipAnimation) { // Unblock the job. offsetAnimationRunnable.complete(null) - return 0f + return { 0f } } val isTargetGreater = targetOffset > animatable.value @@ -391,6 +392,8 @@ internal class SwipeAnimation<T : ContentKey>( ?: contentTransition.transformationSpec.swipeSpec ?: layoutState.transitions.defaultSwipeSpec + val velocityConsumed = CompletableDeferred<Float>() + offsetAnimationRunnable.complete { try { animatable.animateTo( @@ -420,6 +423,9 @@ internal class SwipeAnimation<T : ContentKey>( // Immediately stop this transition if we are bouncing on a content that // does not bounce. if (!contentTransition.isWithinProgressRange(progress)) { + // We are no longer able to consume the velocity, the rest can be + // consumed by another component in the hierarchy. + velocityConsumed.complete(initialVelocity - velocity) throw SnapException() } } @@ -427,11 +433,15 @@ internal class SwipeAnimation<T : ContentKey>( } } catch (_: SnapException) { /* Ignore. */ + } finally { + if (!velocityConsumed.isCompleted) { + // The animation consumed the whole available velocity + velocityConsumed.complete(initialVelocity) + } } } - // This animation always consumes the whole available velocity - return initialVelocity + return { velocityConsumed.await() } } /** An exception thrown during the animation to stop it immediately. */ diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt index ae3169b117ba..4ae323517b26 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/LargeTopAppBarNestedScrollConnection.kt @@ -72,6 +72,6 @@ fun LargeTopAppBarNestedScrollConnection( amountConsumed }, // Don't consume the velocity on pre/post fling - onStop = { 0f }, + onStop = { { 0f } }, ) } diff --git a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt index 16fb533bbe06..a6ebb0e3ba56 100644 --- a/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt +++ b/packages/SystemUI/compose/scene/src/com/android/compose/nestedscroll/PriorityNestedScrollConnection.kt @@ -24,6 +24,8 @@ import androidx.compose.ui.unit.Velocity import com.android.compose.ui.util.SpaceVectorConverter import kotlin.math.sign +internal typealias SuspendedValue<T> = suspend () -> T + /** * This [NestedScrollConnection] waits for a child to scroll ([onPreScroll] or [onPostScroll]), and * then decides (via [canStartPreScroll] or [canStartPostScroll]) if it should take over scrolling. @@ -42,7 +44,7 @@ class PriorityNestedScrollConnection( private val canScrollOnFling: Boolean, private val onStart: (offsetAvailable: Offset) -> Unit, private val onScroll: (offsetAvailable: Offset) -> Offset, - private val onStop: (velocityAvailable: Velocity) -> Velocity, + private val onStop: (velocityAvailable: Velocity) -> SuspendedValue<Velocity>, ) : NestedScrollConnection { /** In priority mode [onPreScroll] events are first consumed by the parent, via [onScroll]. */ @@ -106,12 +108,12 @@ class PriorityNestedScrollConnection( } // Step 3b: The finger is lifted, we can stop intercepting scroll events and use the speed // of the fling gesture. - return onPriorityStop(velocity = available) + return onPriorityStop(velocity = available).invoke() } override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity { if (isPriorityMode) { - return onPriorityStop(velocity = available) + return onPriorityStop(velocity = available).invoke() } if (!canStartPostFling(available)) { @@ -126,7 +128,7 @@ class PriorityNestedScrollConnection( onPriorityStart(available = smallOffset) // This is the last event of a scroll gesture. - return onPriorityStop(available) + return onPriorityStop(available).invoke() } /** @@ -155,12 +157,12 @@ class PriorityNestedScrollConnection( return onScroll(available) } - private fun onPriorityStop(velocity: Velocity): Velocity { + private fun onPriorityStop(velocity: Velocity): SuspendedValue<Velocity> { // We can restart tracking the consumed offsets from scratch. offsetScrolledBeforePriorityMode = Offset.Zero if (!isPriorityMode) { - return Velocity.Zero + return { Velocity.Zero } } isPriorityMode = false @@ -178,7 +180,7 @@ fun PriorityNestedScrollConnection( canScrollOnFling: Boolean, onStart: (offsetAvailable: Float) -> Unit, onScroll: (offsetAvailable: Float) -> Float, - onStop: (velocityAvailable: Float) -> Float, + onStop: (velocityAvailable: Float) -> SuspendedValue<Float>, ) = with(SpaceVectorConverter(orientation)) { PriorityNestedScrollConnection( @@ -198,7 +200,8 @@ fun PriorityNestedScrollConnection( onScroll(offsetAvailable.toFloat()).toOffset() }, onStop = { velocityAvailable: Velocity -> - onStop(velocityAvailable.toFloat()).toVelocity() + val consumedVelocity = onStop(velocityAvailable.toFloat()) + suspend { consumedVelocity.invoke().toVelocity() } }, ) } diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt index b64b8be90ad2..16dc0d544fd2 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/DraggableHandlerTest.kt @@ -39,6 +39,7 @@ import com.android.compose.animation.scene.TestScenes.SceneC import com.android.compose.animation.scene.content.state.TransitionState import com.android.compose.animation.scene.content.state.TransitionState.Transition import com.android.compose.animation.scene.subjects.assertThat +import com.android.compose.nestedscroll.SuspendedValue import com.android.compose.test.MonotonicClockTestScope import com.android.compose.test.runMonotonicClockTest import com.android.compose.test.transition @@ -129,6 +130,10 @@ class DraggableHandlerTest { val draggableHandler = layoutImpl.draggableHandler(Orientation.Vertical) val horizontalDraggableHandler = layoutImpl.draggableHandler(Orientation.Horizontal) + var pointerInfoOwner: () -> PointersInfo = { + PointersInfo(startedPosition = Offset.Zero, pointersDown = 1) + } + fun nestedScrollConnection( nestedScrollBehavior: NestedScrollBehavior, isExternalOverscrollGesture: Boolean = false, @@ -139,9 +144,7 @@ class DraggableHandlerTest { topOrLeftBehavior = nestedScrollBehavior, bottomOrRightBehavior = nestedScrollBehavior, isExternalOverscrollGesture = { isExternalOverscrollGesture }, - pointersInfoOwner = { - PointersInfo(startedPosition = Offset.Zero, pointersDown = 1) - }, + pointersInfoOwner = { pointerInfoOwner() }, ) .connection @@ -155,11 +158,18 @@ class DraggableHandlerTest { fun downOffset(fractionOfScreen: Float) = if (fractionOfScreen < 0f) { - error("upOffset() is required, not implemented yet") + error("use upOffset()") } else { Offset(x = 0f, y = down(fractionOfScreen)) } + fun upOffset(fractionOfScreen: Float) = + if (fractionOfScreen < 0f) { + error("use downOffset()") + } else { + Offset(x = 0f, y = up(fractionOfScreen)) + } + val transitionState: TransitionState get() = layoutState.transitionState @@ -253,13 +263,35 @@ class DraggableHandlerTest { assertThat(consumed).isEqualTo(expectedConsumed) } - fun DragController.onDragStopped( + suspend fun DragController.onDragStoppedAnimateNow( velocity: Float, canChangeScene: Boolean = true, - expectedConsumed: Boolean = true, + onAnimationStart: () -> Unit, + onAnimationEnd: (Float) -> Unit, ) { - val consumed = onStop(velocity, canChangeScene) - assertThat(consumed).isEqualTo(if (expectedConsumed) velocity else 0f) + val velocityConsumed = onDragStoppedAnimateLater(velocity, canChangeScene) + onAnimationStart() + onAnimationEnd(velocityConsumed.invoke()) + } + + suspend fun DragController.onDragStoppedAnimateNow( + velocity: Float, + canChangeScene: Boolean = true, + onAnimationStart: () -> Unit, + expectedConsumedVelocity: Float, + ) = + onDragStoppedAnimateNow( + velocity = velocity, + canChangeScene = canChangeScene, + onAnimationStart = onAnimationStart, + onAnimationEnd = { assertThat(it).isEqualTo(expectedConsumedVelocity) }, + ) + + fun DragController.onDragStoppedAnimateLater( + velocity: Float, + canChangeScene: Boolean = true, + ): SuspendedValue<Float> { + return onStop(velocity, canChangeScene) } fun NestedScrollConnection.scroll( @@ -341,11 +373,12 @@ class DraggableHandlerTest { val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f)) assertTransition(currentScene = SceneA) - dragController.onDragStopped(velocity = velocityThreshold - 0.01f) - assertTransition(currentScene = SceneA) + dragController.onDragStoppedAnimateNow( + velocity = velocityThreshold - 0.01f, + onAnimationStart = { assertTransition(currentScene = SceneA) }, + expectedConsumedVelocity = velocityThreshold - 0.01f, + ) - // wait for the stop animation - advanceUntilIdle() assertIdle(currentScene = SceneA) } @@ -359,19 +392,21 @@ class DraggableHandlerTest { val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f)) assertTransition(currentScene = SceneA) - dragController.onDragStopped(velocity = velocityThreshold - 0.01f) - runCurrent() - - // verify that transition remains in preview stage and animates back to fromScene - assertTransition( - currentScene = SceneA, - isInPreviewStage = true, - previewProgress = 0.1f, - progress = 0f, + dragController.onDragStoppedAnimateNow( + velocity = velocityThreshold - 0.01f, + onAnimationStart = { + // verify that transition remains in preview stage and animates back to + // fromScene + assertTransition( + currentScene = SceneA, + isInPreviewStage = true, + previewProgress = 0.1f, + progress = 0f, + ) + }, + expectedConsumedVelocity = velocityThreshold - 0.01f, ) - // wait for the stop animation - advanceUntilIdle() assertIdle(currentScene = SceneA) } @@ -380,11 +415,11 @@ class DraggableHandlerTest { val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f)) assertTransition(currentScene = SceneA) - dragController.onDragStopped(velocity = velocityThreshold) - assertTransition(currentScene = SceneC) - - // wait for the stop animation - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = velocityThreshold, + onAnimationStart = { assertTransition(currentScene = SceneC) }, + expectedConsumedVelocity = velocityThreshold, + ) assertIdle(currentScene = SceneC) } @@ -393,8 +428,11 @@ class DraggableHandlerTest { val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f)) assertTransition(currentScene = SceneA) - dragController.onDragStopped(velocity = 0f) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { assertTransition(currentScene = SceneA) }, + expectedConsumedVelocity = 0f, + ) assertIdle(currentScene = SceneA) } @@ -419,11 +457,13 @@ class DraggableHandlerTest { ) // After the drag stopped scene C should be committed - dragController.onDragStopped(velocity = velocityThreshold) - assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC) - - // wait for the stop animation - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = velocityThreshold, + onAnimationStart = { + assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC) + }, + expectedConsumedVelocity = velocityThreshold, + ) assertIdle(currentScene = SceneC) } @@ -511,12 +551,17 @@ class DraggableHandlerTest { ) } - private fun TestGestureScope.navigateToSceneC() { + private suspend fun TestGestureScope.navigateToSceneC() { assertIdle(currentScene = SceneA) val dragController = onDragStarted(overSlop = down(fractionOfScreen = 1f)) assertTransition(currentScene = SceneA, fromScene = SceneA, toScene = SceneC) - dragController.onDragStopped(velocity = 0f) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(currentScene = SceneC, fromScene = SceneA, toScene = SceneC) + }, + expectedConsumedVelocity = 0f, + ) assertIdle(currentScene = SceneC) } @@ -532,7 +577,7 @@ class DraggableHandlerTest { ) // Start animation A -> B with progress 0.2 -> 1.0 - dragController1.onDragStopped(velocity = -velocityThreshold) + dragController1.onDragStoppedAnimateLater(velocity = -velocityThreshold) assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB) // While at A -> B do a 100% screen drag (progress 1.2). This should go past B and change @@ -547,11 +592,13 @@ class DraggableHandlerTest { ) // After the drag stopped scene C should be committed - dragController2.onDragStopped(velocity = -velocityThreshold) - assertTransition(currentScene = SceneC, fromScene = SceneB, toScene = SceneC) - - // wait for the stop animation - advanceUntilIdle() + dragController2.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { + assertTransition(currentScene = SceneC, fromScene = SceneB, toScene = SceneC) + }, + expectedConsumedVelocity = -velocityThreshold, + ) assertIdle(currentScene = SceneC) } @@ -559,7 +606,7 @@ class DraggableHandlerTest { fun onAcceleratedScrollBothTargetsBecomeNull_settlesToIdle() = runGestureTest { val dragController1 = onDragStarted(overSlop = up(fractionOfScreen = 0.2f)) dragController1.onDragDelta(pixels = up(fractionOfScreen = 0.2f)) - dragController1.onDragStopped(velocity = -velocityThreshold) + dragController1.onDragStoppedAnimateLater(velocity = -velocityThreshold) assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB) mutableUserActionsA = emptyMap() @@ -573,14 +620,24 @@ class DraggableHandlerTest { // here onDragStopped is already triggered, but subsequent onDelta/onDragStopped calls may // still be called. Make sure that they don't crash or change the scene dragController2.onDragDelta(pixels = up(fractionOfScreen = 0.5f), expectedConsumed = 0f) - dragController2.onDragStopped(velocity = 0f) + dragController2.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB) + }, + expectedConsumedVelocity = 0f, + ) advanceUntilIdle() assertIdle(SceneB) // These events can still come in after the animation has settled dragController2.onDragDelta(pixels = up(fractionOfScreen = 0.5f), expectedConsumed = 0f) - dragController2.onDragStopped(velocity = 0f) + dragController2.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { assertIdle(SceneB) }, + expectedConsumedVelocity = 0f, + ) assertIdle(SceneB) } @@ -593,8 +650,15 @@ class DraggableHandlerTest { dragController1.onDragDelta(pixels = up(fractionOfScreen = 0.1f)) // target stays B even though UserActions changed assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.2f) - dragController1.onDragStopped(velocity = down(fractionOfScreen = 0.1f)) - advanceUntilIdle() + + dragController1.onDragStoppedAnimateNow( + velocity = down(fractionOfScreen = 0.1f), + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.2f) + }, + expectedConsumedVelocity = down(fractionOfScreen = 0.1f), + ) + assertIdle(SceneA) // now target changed to C for new drag onDragStarted(overSlop = up(fractionOfScreen = 0.1f)) @@ -608,7 +672,7 @@ class DraggableHandlerTest { mutableUserActionsA += Swipe.Up to UserActionResult(SceneC) dragController1.onDragDelta(pixels = up(fractionOfScreen = 0.1f)) - dragController1.onDragStopped(velocity = down(fractionOfScreen = 0.1f)) + dragController1.onDragStoppedAnimateLater(velocity = down(fractionOfScreen = 0.1f)) // now target changed to C for new drag that started before previous drag settled to Idle val dragController2 = onDragStartedImmediately() @@ -621,7 +685,7 @@ class DraggableHandlerTest { val dragController = onDragStarted(overSlop = down(fractionOfScreen = 0.1f)) assertTransition(currentScene = SceneA) - dragController.onDragStopped(velocity = velocityThreshold) + dragController.onDragStoppedAnimateLater(velocity = velocityThreshold) runCurrent() assertTransition(currentScene = SceneC) @@ -907,7 +971,11 @@ class DraggableHandlerTest { assertThat(progress).isEqualTo(0.2f) // this should be ignored, we are scrolling now! - dragController.onDragStopped(-velocityThreshold, expectedConsumed = false) + dragController.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { assertTransition(currentScene = SceneA) }, + expectedConsumedVelocity = 0f, + ) assertTransition(currentScene = SceneA) nestedScroll.scroll(available = -offsetY10) @@ -1019,8 +1087,11 @@ class DraggableHandlerTest { // Block the transition when the user release their finger. canChangeScene = { false } - dragController.onDragStopped(velocity = -velocityThreshold) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) }, + expectedConsumedVelocity = -velocityThreshold, + ) assertIdle(SceneA) } @@ -1031,7 +1102,7 @@ class DraggableHandlerTest { // Swipe up to B. val dragController1 = onDragStarted(overSlop = up(0.1f)) assertTransition(currentScene = SceneA, fromScene = SceneA, toScene = SceneB) - dragController1.onDragStopped(velocity = -velocityThreshold) + dragController1.onDragStoppedAnimateLater(velocity = -velocityThreshold) assertTransition(currentScene = SceneB, fromScene = SceneA, toScene = SceneB) // Intercept the transition and swipe down back to scene A. @@ -1040,9 +1111,11 @@ class DraggableHandlerTest { // Block the transition when the user release their finger. canChangeScene = { false } - dragController2.onDragStopped(velocity = velocityThreshold) - - advanceUntilIdle() + dragController2.onDragStoppedAnimateNow( + velocity = velocityThreshold, + onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) }, + expectedConsumedVelocity = velocityThreshold, + ) assertIdle(SceneB) } @@ -1071,13 +1144,52 @@ class DraggableHandlerTest { } @Test + fun nestedScrollUseFromSourceInfo() = runGestureTest { + // Start at scene C. + navigateToSceneC() + val nestedScroll = nestedScrollConnection(nestedScrollBehavior = EdgeAlways) + + // Drag from the **top** of the screen + pointerInfoOwner = { PointersInfo(startedPosition = Offset(0f, 0f), pointersDown = 1) } + assertIdle(currentScene = SceneC) + + nestedScroll.scroll(available = upOffset(fractionOfScreen = 0.1f)) + assertTransition( + currentScene = SceneC, + fromScene = SceneC, + // userAction: Swipe.Up to SceneB + toScene = SceneB, + progress = 0.1f, + ) + + // Reset to SceneC + nestedScroll.preFling(Velocity.Zero) + advanceUntilIdle() + + // Drag from the **bottom** of the screen + pointerInfoOwner = { + PointersInfo(startedPosition = Offset(0f, SCREEN_SIZE), pointersDown = 1) + } + assertIdle(currentScene = SceneC) + + nestedScroll.scroll(available = upOffset(fractionOfScreen = 0.1f)) + assertTransition( + currentScene = SceneC, + fromScene = SceneC, + // userAction: Swipe(SwipeDirection.Up, fromSource = Edge.Bottom) to SceneA + toScene = SceneA, + progress = 0.1f, + ) + } + + @Test fun transitionIsImmediatelyUpdatedWhenReleasingFinger() = runGestureTest { // Swipe up from the middle to transition to scene B. val middle = Offset(SCREEN_SIZE / 2f, SCREEN_SIZE / 2f) val dragController = onDragStarted(startedPosition = middle, overSlop = up(0.1f)) assertTransition(fromScene = SceneA, toScene = SceneB, isUserInputOngoing = true) - dragController.onDragStopped(velocity = 0f) + dragController.onDragStoppedAnimateLater(velocity = 0f) assertTransition(isUserInputOngoing = false) } @@ -1100,7 +1212,11 @@ class DraggableHandlerTest { assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1f) // Release the finger. - dragController.onDragStopped(velocity = -velocityThreshold, expectedConsumed = false) + dragController.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) }, + expectedConsumedVelocity = 0f, + ) // Exhaust all coroutines *without advancing the clock*. Given that we are at progress >= // 100% and that the overscroll on scene B is doing nothing, we are already idle. @@ -1109,6 +1225,29 @@ class DraggableHandlerTest { } @Test + fun emptyOverscrollAbortsSettleAnimationAndExposeTheConsumedVelocity() = runGestureTest { + // Overscrolling on scene B does nothing. + layoutState.transitions = transitions { overscrollDisabled(SceneB, Orientation.Vertical) } + + // Swipe up to scene B at progress = 200%. + val middle = Offset(SCREEN_SIZE / 2f, SCREEN_SIZE / 2f) + val dragController = onDragStarted(startedPosition = middle, overSlop = up(0.99f)) + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.99f) + + // Release the finger. + dragController.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { assertTransition(fromScene = SceneA, toScene = SceneB) }, + onAnimationEnd = { consumedVelocity -> + // Our progress value was 0.99f and it is coerced in `[0..1]` (overscrollDisabled). + // Some of the velocity will be used for animation, but not all of it. + assertThat(consumedVelocity).isLessThan(0f) + assertThat(consumedVelocity).isGreaterThan(-velocityThreshold) + }, + ) + } + + @Test fun overscroll_releaseBetween0And100Percent_up() = runGestureTest { // Make scene B overscrollable. layoutState.transitions = transitions { @@ -1125,8 +1264,13 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(0.5f) // Release to B. - dragController.onDragStopped(velocity = -velocityThreshold) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.5f) + }, + expectedConsumedVelocity = -velocityThreshold, + ) // We didn't overscroll at the end of the transition. assertIdle(SceneB) @@ -1151,8 +1295,13 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(0.5f) // Release to C. - dragController.onDragStopped(velocity = velocityThreshold) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = velocityThreshold, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneC, progress = 0.5f) + }, + expectedConsumedVelocity = velocityThreshold, + ) // We didn't overscroll at the end of the transition. assertIdle(SceneC) @@ -1177,8 +1326,13 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(1.5f) // Release to B. - dragController.onDragStopped(velocity = 0f) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1.5f) + }, + expectedConsumedVelocity = 0f, + ) // We kept the overscroll at 100% so that the placement logic didn't change at the end of // the animation. @@ -1204,8 +1358,13 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(1.5f) // Release to C. - dragController.onDragStopped(velocity = 0f) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneC, progress = 1.5f) + }, + expectedConsumedVelocity = 0f, + ) // We kept the overscroll at 100% so that the placement logic didn't change at the end of // the animation. @@ -1232,8 +1391,13 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(-1f) // Release to A. - dragController.onDragStopped(velocity = 0f) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = -1f) + }, + expectedConsumedVelocity = 0f, + ) // We kept the overscroll at 100% so that the placement logic didn't change at the end of // the animation. @@ -1260,8 +1424,13 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(-1f) // Release to A. - dragController.onDragStopped(velocity = 0f) - advanceUntilIdle() + dragController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneC, progress = -1f) + }, + expectedConsumedVelocity = 0f, + ) // We kept the overscroll at 100% so that the placement logic didn't change at the end of // the animation. @@ -1284,7 +1453,7 @@ class DraggableHandlerTest { // Intercept the transition and change the swipe distance. The original distance and // progress should be the same. swipeDistance = 50f - controller.onDragStopped(0f) + controller.onDragStoppedAnimateLater(0f) onDragStartedImmediately() assertTransition(fromScene = SceneA, toScene = SceneB, progress = 50f / 75f) } @@ -1297,14 +1466,24 @@ class DraggableHandlerTest { val controller = onDragStarted(overSlop = up(fractionOfScreen = 0.9f)) assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.9f) - controller.onDragStopped(velocity = 0f) - advanceUntilIdle() + controller.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.9f) + }, + expectedConsumedVelocity = 0f, + ) assertIdle(SceneA) val otherController = onDragStarted(overSlop = up(fractionOfScreen = 1f)) assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1f) - otherController.onDragStopped(velocity = 0f) - advanceUntilIdle() + otherController.onDragStoppedAnimateNow( + velocity = 0f, + onAnimationStart = { + assertTransition(fromScene = SceneA, toScene = SceneB, progress = 1f) + }, + expectedConsumedVelocity = 0f, + ) assertIdle(SceneB) } @@ -1312,7 +1491,7 @@ class DraggableHandlerTest { fun interceptingTransitionReplacesCurrentTransition() = runGestureTest { val controller = onDragStarted(overSlop = up(fractionOfScreen = 0.5f)) val transition = assertThat(layoutState.transitionState).isSceneTransition() - controller.onDragStopped(velocity = 0f) + controller.onDragStoppedAnimateLater(velocity = 0f) // Intercept the transition. onDragStartedImmediately() @@ -1340,9 +1519,11 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(0.1f) // Commit the gesture. The overlay is instantly added in the set of current overlays. - controller.onDragStopped(velocityThreshold) - assertThat(transition).hasCurrentOverlays(OverlayA) - advanceUntilIdle() + controller.onDragStoppedAnimateNow( + velocity = velocityThreshold, + onAnimationStart = { assertThat(transition).hasCurrentOverlays(OverlayA) }, + expectedConsumedVelocity = velocityThreshold, + ) assertThat(layoutState.transitionState).isIdle() assertThat(layoutState.transitionState).hasCurrentScene(SceneA) assertThat(layoutState.transitionState).hasCurrentOverlays(OverlayA) @@ -1368,9 +1549,11 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(0.1f) // Commit the gesture. The overlay is instantly removed from the set of current overlays. - controller.onDragStopped(-velocityThreshold) - assertThat(transition).hasCurrentOverlays(/* empty */ ) - advanceUntilIdle() + controller.onDragStoppedAnimateNow( + velocity = -velocityThreshold, + onAnimationStart = { assertThat(transition).hasCurrentOverlays(/* empty */ ) }, + expectedConsumedVelocity = -velocityThreshold, + ) assertThat(layoutState.transitionState).isIdle() assertThat(layoutState.transitionState).hasCurrentScene(SceneA) assertThat(layoutState.transitionState).hasCurrentOverlays(/* empty */ ) @@ -1396,9 +1579,11 @@ class DraggableHandlerTest { assertThat(transition).hasProgress(0.1f) // Commit the gesture. The overlays are instantly swapped in the set of current overlays. - controller.onDragStopped(velocityThreshold) - assertThat(transition).hasCurrentOverlays(OverlayB) - advanceUntilIdle() + controller.onDragStoppedAnimateNow( + velocity = velocityThreshold, + onAnimationStart = { assertThat(transition).hasCurrentOverlays(OverlayB) }, + expectedConsumedVelocity = velocityThreshold, + ) assertThat(layoutState.transitionState).isIdle() assertThat(layoutState.transitionState).hasCurrentScene(SceneA) assertThat(layoutState.transitionState).hasCurrentOverlays(OverlayB) diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt index af717ac7d50b..493f3a1377cc 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/animation/scene/MultiPointerDraggableTest.kt @@ -45,6 +45,7 @@ import androidx.compose.ui.test.performTouchInput import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.Velocity import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.android.compose.nestedscroll.SuspendedValue import com.google.common.truth.Truth.assertThat import kotlin.properties.Delegates import kotlinx.coroutines.coroutineScope @@ -71,9 +72,9 @@ class MultiPointerDraggableTest { return delta } - override fun onStop(velocity: Float, canChangeContent: Boolean): Float { + override fun onStop(velocity: Float, canChangeContent: Boolean): SuspendedValue<Float> { onStop.invoke(velocity) - return velocity + return { velocity } } } diff --git a/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt b/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt index 7f1af05b7252..bde769920676 100644 --- a/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt +++ b/packages/SystemUI/compose/scene/tests/src/com/android/compose/nestedscroll/PriorityNestedScrollConnectionTest.kt @@ -54,7 +54,7 @@ class PriorityNestedScrollConnectionTest { }, onStop = { lastStop = it - returnOnStop + { returnOnStop } }, ) diff --git a/packages/SystemUI/frp/Android.bp b/packages/SystemUI/frp/Android.bp new file mode 100644 index 000000000000..c3381db7a0e3 --- /dev/null +++ b/packages/SystemUI/frp/Android.bp @@ -0,0 +1,49 @@ +// +// Copyright (C) 2024 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package { + default_team: "trendy_team_system_ui_please_use_a_more_specific_subteam_if_possible_", + default_applicable_licenses: ["frameworks_base_packages_SystemUI_license"], +} + +java_library { + name: "kt-frp", + host_supported: true, + kotlincflags: ["-opt-in=com.android.systemui.experimental.frp.ExperimentalFrpApi"], + srcs: ["src/**/*.kt"], + static_libs: [ + "kotlin-stdlib", + "kotlinx_coroutines", + ], +} + +java_test { + name: "kt-frp-test", + optimize: { + enabled: false, + }, + srcs: [ + "test/**/*.kt", + ], + static_libs: [ + "kt-frp", + "junit", + "kotlin-stdlib", + "kotlin-test", + "kotlinx_coroutines", + "kotlinx_coroutines_test", + ], +} diff --git a/packages/SystemUI/frp/OWNERS b/packages/SystemUI/frp/OWNERS new file mode 100644 index 000000000000..8876ad6f6224 --- /dev/null +++ b/packages/SystemUI/frp/OWNERS @@ -0,0 +1,3 @@ +steell@google.com +nijamkin@google.com +evanlaird@google.com diff --git a/packages/SystemUI/frp/README.md b/packages/SystemUI/frp/README.md new file mode 100644 index 000000000000..9c5bdb036c45 --- /dev/null +++ b/packages/SystemUI/frp/README.md @@ -0,0 +1,64 @@ +# kt-frp + +A functional reactive programming (FRP) library for Kotlin. + +This library is **experimental** and should not be used for general production +code. The APIs within are subject to change, and there may be bugs. + +## About FRP + +Functional reactive programming is a type of reactive programming system that +follows a set of clear and composable rules, without sacrificing consistency. +FRP exposes an API that should be familiar to those versed in Kotlin `Flow`. + +### Details for nerds + +`kt-frp` implements an applicative / monadic flavor of FRP, using a push-pull +methodology to allow for efficient updates. + +"Real" functional reactive programming should be specified with denotational +semantics ([wikipedia](https://en.wikipedia.org/wiki/Denotational_semantics)): +you can view the semantics for `kt-frp` [here](docs/semantics.md). + +## Usage + +First, stand up a new `FrpNetwork`. All reactive events and state is kept +consistent within a single network. + +``` kotlin +val coroutineScope: CoroutineScope = ... +val frpNetwork = coroutineScope.newFrpNetwork() +``` + +You can use the `FrpNetwork` to stand-up a network of reactive events and state. +Events are modeled with `TFlow` (short for "transactional flow"), and state +`TState` (short for "transactional state"). + +``` kotlin +suspend fun activate(network: FrpNetwork) { + network.activateSpec { + val input = network.mutableTFlow<Unit>() + // Launch a long-running side-effect that emits to the network + // every second. + launchEffect { + while (true) { + input.emit(Unit) + delay(1.seconds) + } + } + // Accumulate state + val count: TState<Int> = input.fold { _, i -> i + 1 } + // Observe events to perform side-effects in reaction to them + input.observe { + println("Got event ${count.sample()} at time: ${System.currentTimeMillis()}") + } + } +} +``` + +`FrpNetwork.activateSpec` will suspend indefinitely; cancelling the invocation +will tear-down all effects and obervers running within the lambda. + +## Resources + +- [Cheatsheet for those coming from Kotlin Flow](docs/flow-to-frp-cheatsheet.md) diff --git a/packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md b/packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md new file mode 100644 index 000000000000..e20f3e6c7461 --- /dev/null +++ b/packages/SystemUI/frp/docs/flow-to-frp-cheatsheet.md @@ -0,0 +1,330 @@ +# From Flows to FRP + +## Key differences + +* FRP evaluates all events (`TFlow` emissions + observers) in a transaction. + +* FRP splits `Flow` APIs into two distinct types: `TFlow` and `TState` + + * `TFlow` is roughly equivalent to `SharedFlow` w/ a replay cache that + exists for the duration of the current FRP transaction and shared with + `SharingStarted.WhileSubscribed()` + + * `TState` is roughly equivalent to `StateFlow` shared with + `SharingStarted.Eagerly`, but the current value can only be queried within + a FRP transaction, and the value is only updated at the end of the + transaction + +* FRP further divides `Flow` APIs based on how they internally use state: + + * **FrpTransactionScope:** APIs that internally query some state need to be + performed within an FRP transaction + + * this scope is available from the other scopes, and from most lambdas + passed to other FRP APIs + + * **FrpStateScope:** APIs that internally accumulate state in reaction to + events need to be performed within an FRP State scope (akin to a + `CoroutineScope`) + + * this scope is a side-effect-free subset of FrpBuildScope, and so can be + used wherever you have an FrpBuildScope + + * **FrpBuildScope:** APIs that perform external side-effects (`Flow.collect`) + need to be performed within an FRP Build scope (akin to a `CoroutineScope`) + + * this scope is available from `FrpNetwork.activateSpec { … }` + + * All other APIs can be used anywhere + +## emptyFlow() + +Use `emptyTFlow` + +``` kotlin +// this TFlow emits nothing +val noEvents: TFlow<Int> = emptyTFlow +``` + +## map { … } + +Use `TFlow.map` / `TState.map` + +``` kotlin +val anInt: TState<Int> = … +val squared: TState<Int> = anInt.map { it * it } +val messages: TFlow<String> = … +val messageLengths: TFlow<Int> = messages.map { it.size } +``` + +## filter { … } / mapNotNull { … } + +### I have a TFlow + +Use `TFlow.filter` / `TFlow.mapNotNull` + +``` kotlin +val messages: TFlow<String> = … +val nonEmpty: TFlow<String> = messages.filter { it.isNotEmpty() } +``` + +### I have a TState + +Convert the `TState` to `TFlow` using `TState.stateChanges`, then use +`TFlow.filter` / `TFlow.mapNotNull` + +If you need to convert back to `TState`, use `TFlow.hold(initialValue)` on the +result. + +``` kotlin +tState.stateChanges.filter { … }.hold(initialValue) +``` + +Note that `TFlow.hold` is only available within an `FrpStateScope` in order to +track the lifetime of the state accumulation. + +## combine(...) { … } + +### I have TStates + +Use `combine(TStates)` + +``` kotlin +val someInt: TState<Int> = … +val someString: TState<String> = … +val model: TState<MyModel> = combine(someInt, someString) { i, s -> MyModel(i, s) } +``` + +### I have TFlows + +Convert the TFlows to TStates using `TFlow.hold(initialValue)`, then use +`combine(TStates)` + +If you want the behavior of Flow.combine where nothing is emitted until each +TFlow has emitted at least once, you can use filter: + +``` kotlin +// null used as an example, can use a different sentinel if needed +combine(tFlowA.hold(null), tFlowB.hold(null)) { a, b -> + a?.let { b?.let { … } } + } + .filterNotNull() +``` + +Note that `TFlow.hold` is only available within an `FrpStateScope` in order to +track the lifetime of the state accumulation. + +#### Explanation + +`Flow.combine` always tracks the last-emitted value of each `Flow` it's +combining. This is a form of state-accumulation; internally, it collects from +each `Flow`, tracks the latest-emitted value, and when anything changes, it +re-runs the lambda to combine the latest values. + +An effect of this is that `Flow.combine` doesn't emit until each combined `Flow` +has emitted at least once. This often bites developers. As a workaround, +developers generally append `.onStart { emit(initialValue) }` to the `Flows` +that don't immediately emit. + +FRP avoids this gotcha by forcing usage of `TState` for `combine`, thus ensuring +that there is always a current value to be combined for each input. + +## collect { … } + +Use `observe { … }` + +``` kotlin +val job: Job = tFlow.observe { println("observed: $it") } +``` + +Note that `observe` is only available within an `FrpBuildScope` in order to +track the lifetime of the observer. `FrpBuildScope` can only come from a +top-level `FrpNetwork.transaction { … }`, or a sub-scope created by using a +`-Latest` operator. + +## sample(flow) { … } + +### I want to sample a TState + +Use `TState.sample()` to get the current value of a `TState`. This can be +invoked anywhere you have access to an `FrpTransactionScope`. + +``` kotlin +// the lambda passed to map receives an FrpTransactionScope, so it can invoke +// sample +tFlow.map { tState.sample() } +``` + +#### Explanation + +To keep all state-reads consistent, the current value of a TState can only be +queried within an FRP transaction, modeled with `FrpTransactionScope`. Note that +both `FrpStateScope` and `FrpBuildScope` extend `FrpTransactionScope`. + +### I want to sample a TFlow + +Convert to a `TState` by using `TFlow.hold(initialValue)`, then use `sample`. + +Note that `hold` is only available within an `FrpStateScope` in order to track +the lifetime of the state accumulation. + +## stateIn(scope, sharingStarted, initialValue) + +Use `TFlow.hold(initialValue)`. There is no need to supply a sharingStarted +argument; all states are accumulated eagerly. + +``` kotlin +val ints: TFlow<Int> = … +val lastSeenInt: TState<Int> = ints.hold(initialValue = 0) +``` + +Note that `hold` is only available within an `FrpStateScope` in order to track +the lifetime of the state accumulation (akin to the scope parameter of +`Flow.stateIn`). `FrpStateScope` can only come from a top-level +`FrpNetwork.transaction { … }`, or a sub-scope created by using a `-Latest` +operator. Also note that `FrpBuildScope` extends `FrpStateScope`. + +## distinctUntilChanged() + +Use `distinctUntilChanged` like normal. This is only available for `TFlow`; +`TStates` are already `distinctUntilChanged`. + +## merge(...) + +### I have TFlows + +Use `merge(TFlows) { … }`. The lambda argument is used to disambiguate multiple +simultaneous emissions within the same transaction. + +#### Explanation + +Under FRP's rules, a `TFlow` may only emit up to once per transaction. This +means that if we are merging two or more `TFlows` that are emitting at the same +time (within the same transaction), the resulting merged `TFlow` must emit a +single value. The lambda argument allows the developer to decide what to do in +this case. + +### I have TStates + +If `combine` doesn't satisfy your needs, you can use `TState.stateChanges` to +convert to a `TFlow`, and then `merge`. + +## conflatedCallbackFlow { … } + +Use `tFlow { … }`. + +As a shortcut, if you already have a `conflatedCallbackFlow { … }`, you can +convert it to a TFlow via `Flow.toTFlow()`. + +Note that `tFlow` is only available within an `FrpBuildScope` in order to track +the lifetime of the input registration. + +## first() + +### I have a TState + +Use `TState.sample`. + +### I have a TFlow + +Use `TFlow.nextOnly`, which works exactly like `Flow.first` but instead of +suspending it returns a `TFlow` that emits once. + +The naming is intentionally different because `first` implies that it is the +first-ever value emitted from the `Flow` (which makes sense for cold `Flows`), +whereas `nextOnly` indicates that only the next value relative to the current +transaction (the one `nextOnly` is being invoked in) will be emitted. + +Note that `nextOnly` is only available within an `FrpStateScope` in order to +track the lifetime of the state accumulation. + +## flatMapLatest { … } + +If you want to use -Latest to cancel old side-effects, similar to what the Flow +-Latest operators offer for coroutines, see `mapLatest`. + +### I have a TState… + +#### …and want to switch TStates + +Use `TState.flatMap` + +``` kotlin +val flattened = tState.flatMap { a -> getTState(a) } +``` + +#### …and want to switch TFlows + +Use `TState<TFlow<T>>.switch()` + +``` kotlin +val tFlow = tState.map { a -> getTFlow(a) }.switch() +``` + +### I have a TFlow… + +#### …and want to switch TFlows + +Use `hold` to convert to a `TState<TFlow<T>>`, then use `switch` to switch to +the latest `TFlow`. + +``` kotlin +val tFlow = tFlowOfFlows.hold(emptyTFlow).switch() +``` + +#### …and want to switch TStates + +Use `hold` to convert to a `TState<TState<T>>`, then use `flatMap` to switch to +the latest `TState`. + +``` kotlin +val tState = tFlowOfStates.hold(tStateOf(initialValue)).flatMap { it } +``` + +## mapLatest { … } / collectLatest { … } + +`FrpStateScope` and `FrpBuildScope` both provide `-Latest` operators that +automatically cancel old work when new values are emitted. + +``` kotlin +val currentModel: TState<SomeModel> = … +val mapped: TState<...> = currentModel.mapLatestBuild { model -> + effect { "new model in the house: $model" } + model.someState.observe { "someState: $it" } + val someData: TState<SomeInfo> = + getBroadcasts(model.uri) + .map { extractInfo(it) } + .hold(initialInfo) + … +} +``` + +## flowOf(...) + +### I want a TState + +Use `tStateOf(initialValue)`. + +### I want a TFlow + +Use `now.map { initialValue }` + +Note that `now` is only available within an `FrpTransactionScope`. + +#### Explanation + +`TFlows` are not cold, and so there isn't a notion of "emit this value once +there is a collector" like there is for `Flow`. The closest analog would be +`TState`, since the initial value is retained indefinitely until there is an +observer. However, it is often useful to immediately emit a value within the +current transaction, usually when using a `flatMap` or `switch`. In these cases, +using `now` explicitly models that the emission will occur within the current +transaction. + +``` kotlin +fun <T> FrpTransactionScope.tFlowOf(value: T): TFlow<T> = now.map { value } +``` + +## MutableStateFlow / MutableSharedFlow + +Use `MutableTState(frpNetwork, initialValue)` and `MutableTFlow(frpNetwork)`. diff --git a/packages/SystemUI/frp/docs/semantics.md b/packages/SystemUI/frp/docs/semantics.md new file mode 100644 index 000000000000..b533190e687d --- /dev/null +++ b/packages/SystemUI/frp/docs/semantics.md @@ -0,0 +1,225 @@ +# FRP Semantics + +`kt-frp`'s pure API is based off of the following denotational semantics +([wikipedia](https://en.wikipedia.org/wiki/Denotational_semantics)). + +The semantics model `kt-frp` types as time-varying values; by making `Time` a +first-class value, we can define a referentially-transparent API that allows us +to reason about the behavior of the pure FRP combinators. This is +implementation-agnostic; we can compare the behavior of any implementation with +expected behavior denoted by these semantics to identify bugs. + +The semantics are written in pseudo-Kotlin; places where we are deviating from +real Kotlin are noted with comments. + +``` kotlin + +sealed class Time : Comparable<Time> { + object BigBang : Time() + data class At(time: BigDecimal) : Time() + object Infinity : Time() + + override final fun compareTo(other: Time): Int = + when (this) { + BigBang -> if (other === BigBang) 0 else -1 + is At -> when (other) { + BigBang -> 1 + is At -> time.compareTo(other.time) + Infinity -> -1 + } + Infinity -> if (other === Infinity) 0 else 1 + } +} + +typealias Transactional<T> = (Time) -> T + +typealias TFlow<T> = SortedMap<Time, T> + +private fun <T> SortedMap<Time, T>.pairwise(): List<Pair<Pair<Time, T>, Pair<Time<T>>>> = + // NOTE: pretend evaluation is lazy, so that error() doesn't immediately throw + (toList() + Pair(Time.Infinity, error("no value"))).zipWithNext() + +class TState<T> internal constructor( + internal val current: Transactional<T>, + val stateChanges: TFlow<T>, +) + +val emptyTFlow: TFlow<Nothing> = emptyMap() + +fun <A, B> TFlow<A>.map(f: FrpTransactionScope.(A) -> B): TFlow<B> = + mapValues { (t, a) -> FrpTransactionScope(t).f(a) } + +fun <A> TFlow<A>.filter(f: FrpTransactionScope.(A) -> Boolean): TFlow<A> = + filter { (t, a) -> FrpTransactionScope(t).f(a) } + +fun <A> merge( + first: TFlow<A>, + second: TFlow<A>, + onCoincidence: Time.(A, A) -> A, +): TFlow<A> = + first.toMutableMap().also { result -> + second.forEach { (t, a) -> + result.merge(t, a) { f, s -> + FrpTranscationScope(t).onCoincidence(f, a) + } + } + }.toSortedMap() + +fun <A> TState<TFlow<A>>.switch(): TFlow<A> { + val truncated = listOf(Pair(Time.BigBang, current.invoke(Time.BigBang))) + + stateChanges.dropWhile { (time, _) -> time < time0 } + val events = + truncated + .pairwise() + .flatMap { ((t0, sa), (t2, _)) -> + sa.filter { (t1, a) -> t0 < t1 && t1 <= t2 } + } + return events.toSortedMap() +} + +fun <A> TState<TFlow<A>>.switchPromptly(): TFlow<A> { + val truncated = listOf(Pair(Time.BigBang, current.invoke(Time.BigBang))) + + stateChanges.dropWhile { (time, _) -> time < time0 } + val events = + truncated + .pairwise() + .flatMap { ((t0, sa), (t2, _)) -> + sa.filter { (t1, a) -> t0 <= t1 && t1 <= t2 } + } + return events.toSortedMap() +} + +typealias GroupedTFlow<K, V> = TFlow<Map<K, V>> + +fun <K, V> TFlow<Map<K, V>>.groupByKey(): GroupedTFlow<K, V> = this + +fun <K, V> GroupedTFlow<K, V>.eventsForKey(key: K): TFlow<V> = + map { m -> m[k] }.filter { it != null }.map { it!! } + +fun <A, B> TState<A>.map(f: (A) -> B): TState<B> = + TState( + current = { t -> f(current.invoke(t)) }, + stateChanges = stateChanges.map { f(it) }, + ) + +fun <A, B, C> TState<A>.combineWith( + other: TState<B>, + f: (A, B) -> C, +): TState<C> = + TState( + current = { t -> f(current.invoke(t), other.current.invoke(t)) }, + stateChanges = run { + val aChanges = + stateChanges + .map { a -> + val b = other.current.sample() + Triple(a, b, f(a, b)) + } + val bChanges = + other + .stateChanges + .map { b -> + val a = current.sample() + Triple(a, b, f(a, b)) + } + merge(aChanges, bChanges) { (a, _, _), (_, b, _) -> + Triple(a, b, f(a, b)) + } + .map { (_, _, zipped) -> zipped } + }, + ) + +fun <A> TState<TState<A>>.flatten(): TState<A> { + val changes = + stateChanges + .pairwise() + .flatMap { ((t0, oldInner), (t2, _)) -> + val inWindow = + oldInner + .stateChanges + .filter { (t1, b) -> t0 <= t1 && t1 < t2 } + if (inWindow.firstOrNull()?.time != t0) { + listOf(Pair(t0, oldInner.current.invoke(t0))) + inWindow + } else { + inWindow + } + } + return TState( + current = { t -> current.invoke(t).current.invoke(t) }, + stateChanges = changes.toSortedMap(), + ) +} + +open class FrpTranscationScope internal constructor( + internal val currentTime: Time, +) { + val now: TFlow<Unit> = + sortedMapOf(currentTime to Unit) + + fun <A> Transactional<A>.sample(): A = + invoke(currentTime) + + fun <A> TState<A>.sample(): A = + current.sample() +} + +class FrpStateScope internal constructor( + time: Time, + internal val stopTime: Time, +): FrpTransactionScope(time) { + + fun <A, B> TFlow<A>.fold( + initialValue: B, + f: FrpTransactionScope.(B, A) -> B, + ): TState<B> { + val truncated = + dropWhile { (t, _) -> t < currentTime } + .takeWhile { (t, _) -> t <= stopTime } + val folded = + truncated + .scan(Pair(currentTime, initialValue)) { (_, b) (t, a) -> + Pair(t, FrpTransactionScope(t).f(a, b)) + } + val lookup = { t1 -> + folded.lastOrNull { (t0, _) -> t0 < t1 }?.value ?: initialValue + } + return TState(lookup, folded.toSortedMap()) + } + + fun <A> TFlow<A>.hold(initialValue: A): TState<A> = + fold(initialValue) { _, a -> a } + + fun <K, V> TFlow<Map<K, Maybe<V>>>.foldMapIncrementally( + initialValues: Map<K, V> + ): TState<Map<K, V>> = + fold(initialValues) { patch, map -> + val eithers = patch.map { (k, v) -> + if (v is Just) Left(k to v.value) else Right(k) + } + val adds = eithers.filterIsInstance<Left>().map { it.left } + val removes = eithers.filterIsInstance<Right>().map { it.right } + val removed: Map<K, V> = map - removes.toSet() + val updated: Map<K, V> = removed + adds + updated + } + + fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally( + initialTFlows: Map<K, TFlow<V>>, + ): TFlow<Map<K, V>> = + foldMapIncrementally(initialTFlows).map { it.merge() }.switch() + + fun <K, A, B> TFlow<Map<K, Maybe<A>>.mapLatestStatefulForKey( + transform: suspend FrpStateScope.(A) -> B, + ): TFlow<Map<K, Maybe<B>>> = + pairwise().map { ((t0, patch), (t1, _)) -> + patch.map { (k, ma) -> + ma.map { a -> + FrpStateScope(t0, t1).transform(a) + } + } + } + } + +} + +``` diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt new file mode 100644 index 000000000000..298c071a4229 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Combinators.kt @@ -0,0 +1,250 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.util.These +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.none +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.channelFlow +import kotlinx.coroutines.flow.conflate + +/** + * Returns a [TFlow] that emits the value sampled from the [Transactional] produced by each emission + * of the original [TFlow], within the same transaction of the original emission. + */ +fun <A> TFlow<Transactional<A>>.sampleTransactionals(): TFlow<A> = map { it.sample() } + +/** @see FrpTransactionScope.sample */ +fun <A, B, C> TFlow<A>.sample( + state: TState<B>, + transform: suspend FrpTransactionScope.(A, B) -> C, +): TFlow<C> = map { transform(it, state.sample()) } + +/** @see FrpTransactionScope.sample */ +fun <A, B, C> TFlow<A>.sample( + transactional: Transactional<B>, + transform: suspend FrpTransactionScope.(A, B) -> C, +): TFlow<C> = map { transform(it, transactional.sample()) } + +/** + * Like [sample], but if [state] is changing at the time it is sampled ([stateChanges] is emitting), + * then the new value is passed to [transform]. + * + * Note that [sample] is both more performant, and safer to use with recursive definitions. You will + * generally want to use it rather than this. + * + * @see sample + */ +fun <A, B, C> TFlow<A>.samplePromptly( + state: TState<B>, + transform: suspend FrpTransactionScope.(A, B) -> C, +): TFlow<C> = + sample(state) { a, b -> These.thiz<Pair<A, B>, B>(a to b) } + .mergeWith(state.stateChanges.map { These.that(it) }) { thiz, that -> + These.both((thiz as These.This).thiz, (that as These.That).that) + } + .mapMaybe { these -> + when (these) { + // both present, transform the upstream value and the new value + is These.Both -> just(transform(these.thiz.first, these.that)) + // no upstream present, so don't perform the sample + is These.That -> none() + // just the upstream, so transform the upstream and the old value + is These.This -> just(transform(these.thiz.first, these.thiz.second)) + } + } + +/** + * Returns a [TState] containing a map with a snapshot of the current state of each [TState] in the + * original map. + */ +fun <K, A> Map<K, TState<A>>.combineValues(): TState<Map<K, A>> = + asIterable() + .map { (k, state) -> state.map { v -> k to v } } + .combine() + .map { entries -> entries.toMap() } + +/** + * Returns a cold [Flow] that, when collected, emits from this [TFlow]. [network] is needed to + * transactionally connect to / disconnect from the [TFlow] when collection starts/stops. + */ +fun <A> TFlow<A>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, emits from this [TState]. [network] is needed to + * transactionally connect to / disconnect from the [TState] when collection starts/stops. + */ +fun <A> TState<A>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, applies this [FrpSpec] in a new transaction in this + * [network], and then emits from the returned [TFlow]. + * + * When collection is cancelled, so is the [FrpSpec]. This means all ongoing work is cleaned up. + */ +@JvmName("flowSpecToColdConflatedFlow") +fun <A> FrpSpec<TFlow<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { applySpec().observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, applies this [FrpSpec] in a new transaction in this + * [network], and then emits from the returned [TState]. + * + * When collection is cancelled, so is the [FrpSpec]. This means all ongoing work is cleaned up. + */ +@JvmName("stateSpecToColdConflatedFlow") +fun <A> FrpSpec<TState<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { applySpec().observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, applies this [Transactional] in a new transaction in + * this [network], and then emits from the returned [TFlow]. + */ +@JvmName("transactionalFlowToColdConflatedFlow") +fun <A> Transactional<TFlow<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { sample().observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, applies this [Transactional] in a new transaction in + * this [network], and then emits from the returned [TState]. + */ +@JvmName("transactionalStateToColdConflatedFlow") +fun <A> Transactional<TState<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { sample().observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, applies this [FrpStateful] in a new transaction in + * this [network], and then emits from the returned [TFlow]. + * + * When collection is cancelled, so is the [FrpStateful]. This means all ongoing work is cleaned up. + */ +@JvmName("statefulFlowToColdConflatedFlow") +fun <A> FrpStateful<TFlow<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { applyStateful().observe { trySend(it) } } }.conflate() + +/** + * Returns a cold [Flow] that, when collected, applies this [Transactional] in a new transaction in + * this [network], and then emits from the returned [TState]. + * + * When collection is cancelled, so is the [FrpStateful]. This means all ongoing work is cleaned up. + */ +@JvmName("statefulStateToColdConflatedFlow") +fun <A> FrpStateful<TState<A>>.toColdConflatedFlow(network: FrpNetwork): Flow<A> = + channelFlow { network.activateSpec { applyStateful().observe { trySend(it) } } }.conflate() + +/** Return a [TFlow] that emits from the original [TFlow] only when [state] is `true`. */ +fun <A> TFlow<A>.filter(state: TState<Boolean>): TFlow<A> = filter { state.sample() } + +private fun Iterable<Boolean>.allTrue() = all { it } + +private fun Iterable<Boolean>.anyTrue() = any { it } + +/** Returns a [TState] that is `true` only when all of [states] are `true`. */ +fun allOf(vararg states: TState<Boolean>): TState<Boolean> = combine(*states) { it.allTrue() } + +/** Returns a [TState] that is `true` when any of [states] are `true`. */ +fun anyOf(vararg states: TState<Boolean>): TState<Boolean> = combine(*states) { it.anyTrue() } + +/** Returns a [TState] containing the inverse of the Boolean held by the original [TState]. */ +fun not(state: TState<Boolean>): TState<Boolean> = state.mapCheapUnsafe { !it } + +/** + * Represents a modal FRP sub-network. + * + * When [enabled][enableMode], all network modifications are applied immediately to the FRP network. + * When the returned [TFlow] emits a [FrpBuildMode], that mode is enabled and replaces this mode, + * undoing all modifications in the process (any registered [observers][FrpBuildScope.observe] are + * unregistered, and any pending [side-effects][FrpBuildScope.effect] are cancelled). + * + * Use [compiledFrpSpec] to compile and stand-up a mode graph. + * + * @see FrpStatefulMode + */ +fun interface FrpBuildMode<out A> { + /** + * Invoked when this mode is enabled. Returns a value and a [TFlow] that signals a switch to a + * new mode. + */ + suspend fun FrpBuildScope.enableMode(): Pair<A, TFlow<FrpBuildMode<A>>> +} + +/** + * Returns an [FrpSpec] that, when [applied][FrpBuildScope.applySpec], stands up a modal-transition + * graph starting with this [FrpBuildMode], automatically switching to new modes as they are + * produced. + * + * @see FrpBuildMode + */ +val <A> FrpBuildMode<A>.compiledFrpSpec: FrpSpec<TState<A>> + get() = frpSpec { + var modeChangeEvents by TFlowLoop<FrpBuildMode<A>>() + val activeMode: TState<Pair<A, TFlow<FrpBuildMode<A>>>> = + modeChangeEvents + .map { it.run { frpSpec { enableMode() } } } + .holdLatestSpec(frpSpec { enableMode() }) + modeChangeEvents = + activeMode.map { statefully { it.second.nextOnly() } }.applyLatestStateful().switch() + activeMode.map { it.first } + } + +/** + * Represents a modal FRP sub-network. + * + * When [enabled][enableMode], all state accumulation is immediately started. When the returned + * [TFlow] emits a [FrpBuildMode], that mode is enabled and replaces this mode, stopping all state + * accumulation in the process. + * + * Use [compiledStateful] to compile and stand-up a mode graph. + * + * @see FrpBuildMode + */ +fun interface FrpStatefulMode<out A> { + /** + * Invoked when this mode is enabled. Returns a value and a [TFlow] that signals a switch to a + * new mode. + */ + suspend fun FrpStateScope.enableMode(): Pair<A, TFlow<FrpStatefulMode<A>>> +} + +/** + * Returns an [FrpStateful] that, when [applied][FrpStateScope.applyStateful], stands up a + * modal-transition graph starting with this [FrpStatefulMode], automatically switching to new modes + * as they are produced. + * + * @see FrpBuildMode + */ +val <A> FrpStatefulMode<A>.compiledStateful: FrpStateful<TState<A>> + get() = statefully { + var modeChangeEvents by TFlowLoop<FrpStatefulMode<A>>() + val activeMode: TState<Pair<A, TFlow<FrpStatefulMode<A>>>> = + modeChangeEvents + .map { it.run { statefully { enableMode() } } } + .holdLatestStateful(statefully { enableMode() }) + modeChangeEvents = + activeMode.map { statefully { it.second.nextOnly() } }.applyLatestStateful().switch() + activeMode.map { it.first } + } + +/** + * Runs [spec] in this [FrpBuildScope], and then re-runs it whenever [rebuildSignal] emits. Returns + * a [TState] that holds the result of the currently-active [FrpSpec]. + */ +fun <A> FrpBuildScope.rebuildOn(rebuildSignal: TFlow<*>, spec: FrpSpec<A>): TState<A> = + rebuildSignal.map { spec }.holdLatestSpec(spec) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt new file mode 100644 index 000000000000..6e4c9eba90bf --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpBuildScope.kt @@ -0,0 +1,864 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalCoroutinesApi::class) + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.map +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.RestrictsSuspension +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.Job +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.FlowCollector +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.dropWhile +import kotlinx.coroutines.launch + +/** A function that modifies the FrpNetwork. */ +typealias FrpSpec<A> = suspend FrpBuildScope.() -> A + +/** + * Constructs an [FrpSpec]. The passed [block] will be invoked with an [FrpBuildScope] that can be + * used to perform network-building operations, including adding new inputs and outputs to the + * network, as well as all operations available in [FrpTransactionScope]. + */ +@ExperimentalFrpApi +@Suppress("NOTHING_TO_INLINE") +inline fun <A> frpSpec(noinline block: suspend FrpBuildScope.() -> A): FrpSpec<A> = block + +/** Applies the [FrpSpec] within this [FrpBuildScope]. */ +@ExperimentalFrpApi +inline operator fun <A> FrpBuildScope.invoke(block: FrpBuildScope.() -> A) = run(block) + +/** Operations that add inputs and outputs to an FRP network. */ +@ExperimentalFrpApi +@RestrictsSuspension +interface FrpBuildScope : FrpStateScope { + + /** TODO: Javadoc */ + @ExperimentalFrpApi + fun <R> deferredBuildScope(block: suspend FrpBuildScope.() -> R): FrpDeferredValue<R> + + /** TODO: Javadoc */ + @ExperimentalFrpApi fun deferredBuildScopeAction(block: suspend FrpBuildScope.() -> Unit) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow]. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * Unlike [mapLatestBuild], these modifications are not undone with each subsequent emission of + * the original [TFlow]. + * + * **NOTE:** This API does not [observe] the original [TFlow], meaning that unless the returned + * (or a downstream) [TFlow] is observed separately, [transform] will not be invoked, and no + * internal side-effects will occur. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapBuild(transform: suspend FrpBuildScope.(A) -> B): TFlow<B> + + /** + * Invokes [block] whenever this [TFlow] emits a value, allowing side-effects to be safely + * performed in reaction to the emission. + * + * Specifically, [block] is deferred to the end of the transaction, and is only actually + * executed if this [FrpBuildScope] is still active by that time. It can be deactivated due to a + * -Latest combinator, for example. + * + * Shorthand for: + * ```kotlin + * tFlow.observe { effect { ... } } + * ``` + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.observe( + coroutineContext: CoroutineContext = EmptyCoroutineContext, + block: suspend FrpEffectScope.(A) -> Unit = {}, + ): Job + + /** + * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original + * [TFlow], and a [FrpDeferredValue] containing the result of applying [initialSpecs] + * immediately. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same + * key are undone (any registered [observers][observe] are unregistered, and any pending + * [side-effects][effect] are cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpSpec] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey( + initialSpecs: FrpDeferredValue<Map<K, FrpSpec<B>>>, + numKeys: Int? = null, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> + + /** + * Creates an instance of a [TFlow] with elements that are from [builder]. + * + * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the + * provided [MutableTFlow]. + * + * By default, [builder] is only running while the returned [TFlow] is being + * [observed][observe]. If you want it to run at all times, simply add a no-op observer: + * ```kotlin + * tFlow { ... }.apply { observe() } + * ``` + */ + @ExperimentalFrpApi fun <T> tFlow(builder: suspend FrpProducerScope<T>.() -> Unit): TFlow<T> + + /** + * Creates an instance of a [TFlow] with elements that are emitted from [builder]. + * + * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the + * provided [MutableTFlow]. + * + * By default, [builder] is only running while the returned [TFlow] is being + * [observed][observe]. If you want it to run at all times, simply add a no-op observer: + * ```kotlin + * tFlow { ... }.apply { observe() } + * ``` + * + * In the event of backpressure, emissions are *coalesced* into batches. When a value is + * [emitted][FrpCoalescingProducerScope.emit] from [builder], it is merged into the batch via + * [coalesce]. Once the batch is consumed by the frp network in the next transaction, the batch + * is reset back to [getInitialValue]. + */ + @ExperimentalFrpApi + fun <In, Out> coalescingTFlow( + getInitialValue: () -> Out, + coalesce: (old: Out, new: In) -> Out, + builder: suspend FrpCoalescingProducerScope<In>.() -> Unit, + ): TFlow<Out> + + /** + * Creates a new [FrpBuildScope] that is a child of this one. + * + * This new scope can be manually cancelled via the returned [Job], or will be cancelled + * automatically when its parent is cancelled. Cancellation will unregister all + * [observers][observe] and cancel all scheduled [effects][effect]. + * + * The return value from [block] can be accessed via the returned [FrpDeferredValue]. + */ + @ExperimentalFrpApi fun <A> asyncScope(block: FrpSpec<A>): Pair<FrpDeferredValue<A>, Job> + + // TODO: once we have context params, these can all become extensions: + + /** + * Returns a [TFlow] containing the results of applying the given [transform] function to each + * value of the original [TFlow]. + * + * Unlike [TFlow.map], [transform] can perform arbitrary asynchronous code. This code is run + * outside of the current FRP transaction; when [transform] returns, the returned value is + * emitted from the result [TFlow] in a new transaction. + * + * Shorthand for: + * ```kotlin + * tflow.mapLatestBuild { a -> asyncTFlow { transform(a) } }.flatten() + * ``` + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapAsyncLatest(transform: suspend (A) -> B): TFlow<B> = + mapLatestBuild { a -> asyncTFlow { transform(a) } }.flatten() + + /** + * Invokes [block] whenever this [TFlow] emits a value. [block] receives an [FrpBuildScope] that + * can be used to make further modifications to the FRP network, and/or perform side-effects via + * [effect]. + * + * @see observe + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.observeBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job = + mapBuild(block).observe() + + /** + * Returns a [StateFlow] whose [value][StateFlow.value] tracks the current + * [value of this TState][TState.sample], and will emit at the same rate as + * [TState.stateChanges]. + * + * Note that the [value][StateFlow.value] is not available until the *end* of the current + * transaction. If you need the current value before this time, then use [TState.sample]. + */ + @ExperimentalFrpApi + fun <A> TState<A>.toStateFlow(): StateFlow<A> { + val uninitialized = Any() + var initialValue: Any? = uninitialized + val innerStateFlow = MutableStateFlow<Any?>(uninitialized) + deferredBuildScope { + initialValue = sample() + stateChanges.observe { + innerStateFlow.value = it + initialValue = null + } + } + + @Suppress("UNCHECKED_CAST") + fun getValue(innerValue: Any?): A = + when { + innerValue !== uninitialized -> innerValue as A + initialValue !== uninitialized -> initialValue as A + else -> + error( + "Attempted to access StateFlow.value before FRP transaction has completed." + ) + } + + return object : StateFlow<A> { + override val replayCache: List<A> + get() = innerStateFlow.replayCache.map(::getValue) + + override val value: A + get() = getValue(innerStateFlow.value) + + override suspend fun collect(collector: FlowCollector<A>): Nothing { + innerStateFlow.collect { collector.emit(getValue(it)) } + } + } + } + + /** + * Returns a [SharedFlow] configured with a replay cache of size [replay] that emits the current + * [value][TState.sample] of this [TState] followed by all [stateChanges]. + */ + @ExperimentalFrpApi + fun <A> TState<A>.toSharedFlow(replay: Int = 0): SharedFlow<A> { + val result = MutableSharedFlow<A>(replay, extraBufferCapacity = 1) + deferredBuildScope { + result.tryEmit(sample()) + stateChanges.observe { a -> result.tryEmit(a) } + } + return result + } + + /** + * Returns a [SharedFlow] configured with a replay cache of size [replay] that emits values + * whenever this [TFlow] emits. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.toSharedFlow(replay: Int = 0): SharedFlow<A> { + val result = MutableSharedFlow<A>(replay, extraBufferCapacity = 1) + observe { a -> result.tryEmit(a) } + return result + } + + /** + * Returns a [TState] that holds onto the value returned by applying the most recently emitted + * [FrpSpec] from the original [TFlow], or the value returned by applying [initialSpec] if + * nothing has been emitted since it was constructed. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A> TFlow<FrpSpec<A>>.holdLatestSpec(initialSpec: FrpSpec<A>): TState<A> { + val (changes: TFlow<A>, initApplied: FrpDeferredValue<A>) = applyLatestSpec(initialSpec) + return changes.holdDeferred(initApplied) + } + + /** + * Returns a [TState] containing the value returned by applying the [FrpSpec] held by the + * original [TState]. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A> TState<FrpSpec<A>>.applyLatestSpec(): TState<A> { + val (appliedChanges: TFlow<A>, init: FrpDeferredValue<A>) = + stateChanges.applyLatestSpec(frpSpec { sample().applySpec() }) + return appliedChanges.holdDeferred(init) + } + + /** + * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original + * [TFlow]. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A> TFlow<FrpSpec<A>>.applyLatestSpec(): TFlow<A> = applyLatestSpec(frpSpec {}).first + + /** + * Returns a [TFlow] that switches to a new [TFlow] produced by [transform] every time the + * original [TFlow] emits a value. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * When the original [TFlow] emits a new value, those changes are undone (any registered + * [observers][observe] are unregistered, and any pending [effects][effect] are cancelled). + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.flatMapLatestBuild( + transform: suspend FrpBuildScope.(A) -> TFlow<B> + ): TFlow<B> = mapCheap { frpSpec { transform(it) } }.applyLatestSpec().flatten() + + /** + * Returns a [TState] by applying [transform] to the value held by the original [TState]. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * When the value held by the original [TState] changes, those changes are undone (any + * registered [observers][observe] are unregistered, and any pending [effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A, B> TState<A>.flatMapLatestBuild( + transform: suspend FrpBuildScope.(A) -> TState<B> + ): TState<B> = mapLatestBuild { transform(it) }.flatten() + + /** + * Returns a [TState] that transforms the value held inside this [TState] by applying it to the + * [transform]. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * When the value held by the original [TState] changes, those changes are undone (any + * registered [observers][observe] are unregistered, and any pending [effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A, B> TState<A>.mapLatestBuild(transform: suspend FrpBuildScope.(A) -> B): TState<B> = + mapCheapUnsafe { frpSpec { transform(it) } }.applyLatestSpec() + + /** + * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original + * [TFlow], and a [FrpDeferredValue] containing the result of applying [initialSpec] + * immediately. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A : Any?, B> TFlow<FrpSpec<B>>.applyLatestSpec( + initialSpec: FrpSpec<A> + ): Pair<TFlow<B>, FrpDeferredValue<A>> { + val (flow, result) = + mapCheap { spec -> mapOf(Unit to just(spec)) } + .applyLatestSpecForKey(initialSpecs = mapOf(Unit to initialSpec), numKeys = 1) + val outFlow: TFlow<B> = + flow.mapMaybe { + checkNotNull(it[Unit]) { "applyLatest: expected result, but none present in: $it" } + } + val outInit: FrpDeferredValue<A> = deferredBuildScope { + val initResult: Map<Unit, A> = result.get() + check(Unit in initResult) { + "applyLatest: expected initial result, but none present in: $initResult" + } + @Suppress("UNCHECKED_CAST") + initResult.getOrDefault(Unit) { null } as A + } + return Pair(outFlow, outInit) + } + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow]. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * With each invocation of [transform], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapLatestBuild(transform: suspend FrpBuildScope.(A) -> B): TFlow<B> = + mapCheap { frpSpec { transform(it) } }.applyLatestSpec() + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to + * [initialValue] immediately. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * With each invocation of [transform], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapLatestBuild( + initialValue: A, + transform: suspend FrpBuildScope.(A) -> B, + ): Pair<TFlow<B>, FrpDeferredValue<B>> = + mapLatestBuildDeferred(deferredOf(initialValue), transform) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to + * [initialValue] immediately. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * With each invocation of [transform], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapLatestBuildDeferred( + initialValue: FrpDeferredValue<A>, + transform: suspend FrpBuildScope.(A) -> B, + ): Pair<TFlow<B>, FrpDeferredValue<B>> = + mapCheap { frpSpec { transform(it) } } + .applyLatestSpec(initialSpec = frpSpec { transform(initialValue.get()) }) + + /** + * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original + * [TFlow], and a [FrpDeferredValue] containing the result of applying [initialSpecs] + * immediately. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same + * key are undone (any registered [observers][observe] are unregistered, and any pending + * [side-effects][effect] are cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpSpec] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey( + initialSpecs: Map<K, FrpSpec<B>>, + numKeys: Int? = null, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> = + applyLatestSpecForKey(deferredOf(initialSpecs), numKeys) + + /** + * Returns a [TFlow] containing the results of applying each [FrpSpec] emitted from the original + * [TFlow]. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same + * key are undone (any registered [observers][observe] are unregistered, and any pending + * [side-effects][effect] are cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpSpec] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey( + numKeys: Int? = null + ): TFlow<Map<K, Maybe<A>>> = + applyLatestSpecForKey<K, A, Nothing>(deferredOf(emptyMap()), numKeys).first + + /** + * Returns a [TState] containing the latest results of applying each [FrpSpec] emitted from the + * original [TFlow]. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same + * key are undone (any registered [observers][observe] are unregistered, and any pending + * [side-effects][effect] are cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpSpec] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A> TFlow<Map<K, Maybe<FrpSpec<A>>>>.holdLatestSpecForKey( + initialSpecs: FrpDeferredValue<Map<K, FrpSpec<A>>>, + numKeys: Int? = null, + ): TState<Map<K, A>> { + val (changes, initialValues) = applyLatestSpecForKey(initialSpecs, numKeys) + return changes.foldMapIncrementally(initialValues) + } + + /** + * Returns a [TState] containing the latest results of applying each [FrpSpec] emitted from the + * original [TFlow]. + * + * When each [FrpSpec] is applied, changes from the previously-active [FrpSpec] with the same + * key are undone (any registered [observers][observe] are unregistered, and any pending + * [side-effects][effect] are cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpSpec] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A> TFlow<Map<K, Maybe<FrpSpec<A>>>>.holdLatestSpecForKey( + initialSpecs: Map<K, FrpSpec<A>> = emptyMap(), + numKeys: Int? = null, + ): TState<Map<K, A>> = holdLatestSpecForKey(deferredOf(initialSpecs), numKeys) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to + * [initialValues] immediately. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * With each invocation of [transform], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpBuildScope] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestBuildForKey( + initialValues: FrpDeferredValue<Map<K, A>>, + numKeys: Int? = null, + transform: suspend FrpBuildScope.(A) -> B, + ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> = + map { patch -> patch.mapValues { (_, v) -> v.map { frpSpec { transform(it) } } } } + .applyLatestSpecForKey( + deferredBuildScope { + initialValues.get().mapValues { (_, v) -> frpSpec { transform(v) } } + }, + numKeys = numKeys, + ) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to + * [initialValues] immediately. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * With each invocation of [transform], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpBuildScope] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestBuildForKey( + initialValues: Map<K, A>, + numKeys: Int? = null, + transform: suspend FrpBuildScope.(A) -> B, + ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> = + mapLatestBuildForKey(deferredOf(initialValues), numKeys, transform) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow]. + * + * [transform] can perform modifications to the FRP network via its [FrpBuildScope] receiver. + * With each invocation of [transform], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpBuildScope] will be undone with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestBuildForKey( + numKeys: Int? = null, + transform: suspend FrpBuildScope.(A) -> B, + ): TFlow<Map<K, Maybe<B>>> = mapLatestBuildForKey(emptyMap(), numKeys, transform).first + + /** Returns a [Deferred] containing the next value to be emitted from this [TFlow]. */ + @ExperimentalFrpApi + fun <R> TFlow<R>.nextDeferred(): Deferred<R> { + lateinit var next: CompletableDeferred<R> + val job = nextOnly().observe { next.complete(it) } + next = CompletableDeferred<R>(parent = job) + return next + } + + /** Returns a [TState] that reflects the [StateFlow.value] of this [StateFlow]. */ + @ExperimentalFrpApi + fun <A> StateFlow<A>.toTState(): TState<A> { + val initial = value + return tFlow { dropWhile { it == initial }.collect { emit(it) } }.hold(initial) + } + + /** Returns a [TFlow] that emits whenever this [Flow] emits. */ + @ExperimentalFrpApi fun <A> Flow<A>.toTFlow(): TFlow<A> = tFlow { collect { emit(it) } } + + /** + * Shorthand for: + * ```kotlin + * flow.toTFlow().hold(initialValue) + * ``` + */ + @ExperimentalFrpApi + fun <A> Flow<A>.toTState(initialValue: A): TState<A> = toTFlow().hold(initialValue) + + /** + * Invokes [block] whenever this [TFlow] emits a value. [block] receives an [FrpBuildScope] that + * can be used to make further modifications to the FRP network, and/or perform side-effects via + * [effect]. + * + * With each invocation of [block], changes from the previous invocation are undone (any + * registered [observers][observe] are unregistered, and any pending [side-effects][effect] are + * cancelled). + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.observeLatestBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job = + mapLatestBuild { block(it) }.observe() + + /** + * Invokes [block] whenever this [TFlow] emits a value, allowing side-effects to be safely + * performed in reaction to the emission. + * + * With each invocation of [block], running effects from the previous invocation are cancelled. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.observeLatest(block: suspend FrpEffectScope.(A) -> Unit = {}): Job { + var innerJob: Job? = null + return observeBuild { + innerJob?.cancel() + innerJob = effect { block(it) } + } + } + + /** + * Invokes [block] with the value held by this [TState], allowing side-effects to be safely + * performed in reaction to the state changing. + * + * With each invocation of [block], running effects from the previous invocation are cancelled. + */ + @ExperimentalFrpApi + fun <A> TState<A>.observeLatest(block: suspend FrpEffectScope.(A) -> Unit = {}): Job = + launchScope { + var innerJob = effect { block(sample()) } + stateChanges.observeBuild { + innerJob.cancel() + innerJob = effect { block(it) } + } + } + + /** + * Applies [block] to the value held by this [TState]. [block] receives an [FrpBuildScope] that + * can be used to make further modifications to the FRP network, and/or perform side-effects via + * [effect]. + * + * [block] can perform modifications to the FRP network via its [FrpBuildScope] receiver. With + * each invocation of [block], changes from the previous invocation are undone (any registered + * [observers][observe] are unregistered, and any pending [side-effects][effect] are cancelled). + */ + @ExperimentalFrpApi + fun <A> TState<A>.observeLatestBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job = + launchScope { + var innerJob: Job = launchScope { block(sample()) } + stateChanges.observeBuild { + innerJob.cancel() + innerJob = launchScope { block(it) } + } + } + + /** Applies the [FrpSpec] within this [FrpBuildScope]. */ + @ExperimentalFrpApi suspend fun <A> FrpSpec<A>.applySpec(): A = this() + + /** + * Applies the [FrpSpec] within this [FrpBuildScope], returning the result as an + * [FrpDeferredValue]. + */ + @ExperimentalFrpApi + fun <A> FrpSpec<A>.applySpecDeferred(): FrpDeferredValue<A> = deferredBuildScope { applySpec() } + + /** + * Invokes [block] on the value held in this [TState]. [block] receives an [FrpBuildScope] that + * can be used to make further modifications to the FRP network, and/or perform side-effects via + * [effect]. + */ + @ExperimentalFrpApi + fun <A> TState<A>.observeBuild(block: suspend FrpBuildScope.(A) -> Unit = {}): Job = + launchScope { + block(sample()) + stateChanges.observeBuild(block) + } + + /** + * Invokes [block] with the current value of this [TState], re-invoking whenever it changes, + * allowing side-effects to be safely performed in reaction value changing. + * + * Specifically, [block] is deferred to the end of the transaction, and is only actually + * executed if this [FrpBuildScope] is still active by that time. It can be deactivated due to a + * -Latest combinator, for example. + * + * If the [TState] is changing within the *current* transaction (i.e. [stateChanges] is + * presently emitting) then [block] will be invoked for the first time with the new value; + * otherwise, it will be invoked with the [current][sample] value. + */ + @ExperimentalFrpApi + fun <A> TState<A>.observe(block: suspend FrpEffectScope.(A) -> Unit = {}): Job = + now.map { sample() }.mergeWith(stateChanges) { _, new -> new }.observe { block(it) } +} + +/** + * Returns a [TFlow] that emits the result of [block] once it completes. [block] is evaluated + * outside of the current FRP transaction; when it completes, the returned [TFlow] emits in a new + * transaction. + * + * Shorthand for: + * ``` + * tFlow { emitter: MutableTFlow<A> -> + * val a = block() + * emitter.emit(a) + * } + * ``` + */ +@ExperimentalFrpApi +fun <A> FrpBuildScope.asyncTFlow(block: suspend () -> A): TFlow<A> = + tFlow { + // TODO: if block completes synchronously, it would be nice to emit within this + // transaction + emit(block()) + } + .apply { observe() } + +/** + * Performs a side-effect in a safe manner w/r/t the current FRP transaction. + * + * Specifically, [block] is deferred to the end of the current transaction, and is only actually + * executed if this [FrpBuildScope] is still active by that time. It can be deactivated due to a + * -Latest combinator, for example. + * + * Shorthand for: + * ```kotlin + * now.observe { block() } + * ``` + */ +@ExperimentalFrpApi +fun FrpBuildScope.effect(block: suspend FrpEffectScope.() -> Unit): Job = now.observe { block() } + +/** + * Launches [block] in a new coroutine, returning a [Job] bound to the coroutine. + * + * This coroutine is not actually started until the *end* of the current FRP transaction. This is + * done because the current [FrpBuildScope] might be deactivated within this transaction, perhaps + * due to a -Latest combinator. If this happens, then the coroutine will never actually be started. + * + * Shorthand for: + * ```kotlin + * effect { frpCoroutineScope.launch { block() } } + * ``` + */ +@ExperimentalFrpApi +fun FrpBuildScope.launchEffect(block: suspend CoroutineScope.() -> Unit): Job = asyncEffect(block) + +/** + * Launches [block] in a new coroutine, returning the result as a [Deferred]. + * + * This coroutine is not actually started until the *end* of the current FRP transaction. This is + * done because the current [FrpBuildScope] might be deactivated within this transaction, perhaps + * due to a -Latest combinator. If this happens, then the coroutine will never actually be started. + * + * Shorthand for: + * ```kotlin + * CompletableDeferred<R>.apply { + * effect { frpCoroutineScope.launch { complete(coroutineScope { block() }) } } + * } + * .await() + * ``` + */ +@ExperimentalFrpApi +fun <R> FrpBuildScope.asyncEffect(block: suspend CoroutineScope.() -> R): Deferred<R> { + val result = CompletableDeferred<R>() + val job = now.observe { frpCoroutineScope.launch { result.complete(coroutineScope(block)) } } + val handle = job.invokeOnCompletion { result.cancel() } + result.invokeOnCompletion { + handle.dispose() + job.cancel() + } + return result +} + +/** Like [FrpBuildScope.asyncScope], but ignores the result of [block]. */ +@ExperimentalFrpApi fun FrpBuildScope.launchScope(block: FrpSpec<*>): Job = asyncScope(block).second + +/** + * Creates an instance of a [TFlow] with elements that are emitted from [builder]. + * + * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the provided + * [MutableTFlow]. + * + * By default, [builder] is only running while the returned [TFlow] is being + * [observed][FrpBuildScope.observe]. If you want it to run at all times, simply add a no-op + * observer: + * ```kotlin + * tFlow { ... }.apply { observe() } + * ``` + * + * In the event of backpressure, emissions are *coalesced* into batches. When a value is + * [emitted][FrpCoalescingProducerScope.emit] from [builder], it is merged into the batch via + * [coalesce]. Once the batch is consumed by the FRP network in the next transaction, the batch is + * reset back to [initialValue]. + */ +@ExperimentalFrpApi +fun <In, Out> FrpBuildScope.coalescingTFlow( + initialValue: Out, + coalesce: (old: Out, new: In) -> Out, + builder: suspend FrpCoalescingProducerScope<In>.() -> Unit, +): TFlow<Out> = coalescingTFlow(getInitialValue = { initialValue }, coalesce, builder) + +/** + * Creates an instance of a [TFlow] with elements that are emitted from [builder]. + * + * [builder] is run in its own coroutine, allowing for ongoing work that can emit to the provided + * [MutableTFlow]. + * + * By default, [builder] is only running while the returned [TFlow] is being + * [observed][FrpBuildScope.observe]. If you want it to run at all times, simply add a no-op + * observer: + * ```kotlin + * tFlow { ... }.apply { observe() } + * ``` + * + * In the event of backpressure, emissions are *conflated*; any older emissions are dropped and only + * the most recent emission will be used when the FRP network is ready. + */ +@ExperimentalFrpApi +fun <T> FrpBuildScope.conflatedTFlow( + builder: suspend FrpCoalescingProducerScope<T>.() -> Unit +): TFlow<T> = + coalescingTFlow<T, Any?>(initialValue = Any(), coalesce = { _, new -> new }, builder = builder) + .mapCheap { + @Suppress("UNCHECKED_CAST") + it as T + } + +/** Scope for emitting to a [FrpBuildScope.coalescingTFlow]. */ +interface FrpCoalescingProducerScope<in T> { + /** + * Inserts [value] into the current batch, enqueueing it for emission from this [TFlow] if not + * already pending. + * + * Backpressure occurs when [emit] is called while the FRP network is currently in a + * transaction; if called multiple times, then emissions will be coalesced into a single batch + * that is then processed when the network is ready. + */ + fun emit(value: T) +} + +/** Scope for emitting to a [FrpBuildScope.tFlow]. */ +interface FrpProducerScope<in T> { + /** + * Emits a [value] to this [TFlow], suspending the caller until the FRP transaction containing + * the emission has completed. + */ + suspend fun emit(value: T) +} + +/** + * Suspends forever. Upon cancellation, runs [block]. Useful for unregistering callbacks inside of + * [FrpBuildScope.tFlow] and [FrpBuildScope.coalescingTFlow]. + */ +suspend fun awaitClose(block: () -> Unit): Nothing = + try { + awaitCancellation() + } finally { + block() + } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt new file mode 100644 index 000000000000..a8ec98fdc6c9 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpEffectScope.kt @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import kotlin.coroutines.RestrictsSuspension +import kotlinx.coroutines.CoroutineScope + +/** + * Scope for external side-effects triggered by the Frp network. This still occurs within the + * context of a transaction, so general suspending calls are disallowed to prevent blocking the + * transaction. You can use [frpCoroutineScope] to [launch] new coroutines to perform long-running + * asynchronous work. This scope is alive for the duration of the containing [FrpBuildScope] that + * this side-effect scope is running in. + */ +@RestrictsSuspension +@ExperimentalFrpApi +interface FrpEffectScope : FrpTransactionScope { + /** + * A [CoroutineScope] whose lifecycle lives for as long as this [FrpEffectScope] is alive. This + * is generally until the [Job] returned by [FrpBuildScope.effect] is cancelled. + */ + @ExperimentalFrpApi val frpCoroutineScope: CoroutineScope + + /** + * A [FrpNetwork] instance that can be used to transactionally query / modify the FRP network. + * + * The lambda passed to [FrpNetwork.transact] on this instance will receive an [FrpBuildScope] + * that is lifetime-bound to this [FrpEffectScope]. Once this [FrpEffectScope] is no longer + * alive, any modifications to the FRP network performed via this [FrpNetwork] instance will be + * undone (any registered [observers][FrpBuildScope.observe] are unregistered, and any pending + * [side-effects][FrpBuildScope.effect] are cancelled). + */ + @ExperimentalFrpApi val frpNetwork: FrpNetwork +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt new file mode 100644 index 000000000000..acc76d93f928 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpNetwork.kt @@ -0,0 +1,195 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.internal.BuildScopeImpl +import com.android.systemui.experimental.frp.internal.Network +import com.android.systemui.experimental.frp.internal.StateScopeImpl +import com.android.systemui.experimental.frp.internal.util.awaitCancellationAndThen +import com.android.systemui.experimental.frp.internal.util.childScope +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.coroutineContext +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CoroutineName +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.job +import kotlinx.coroutines.launch + +/** + * Marks declarations that are still **experimental** and shouldn't be used in general production + * code. + */ +@RequiresOptIn( + message = "This API is experimental and should not be used in general production code." +) +@Retention(AnnotationRetention.BINARY) +annotation class ExperimentalFrpApi + +/** + * External interface to an FRP network. Can be used to make transactional queries and modifications + * to the network. + */ +@ExperimentalFrpApi +interface FrpNetwork { + /** + * Runs [block] inside of a transaction, suspending until the transaction is complete. + * + * The [FrpBuildScope] receiver exposes methods that can be used to query or modify the network. + * If the network is cancelled while the caller of [transact] is suspended, then the call will + * be cancelled. + */ + @ExperimentalFrpApi suspend fun <R> transact(block: suspend FrpTransactionScope.() -> R): R + + /** + * Activates [spec] in a transaction, suspending indefinitely. While suspended, all observers + * and long-running effects are kept alive. When cancelled, observers are unregistered and + * effects are cancelled. + */ + @ExperimentalFrpApi suspend fun activateSpec(spec: FrpSpec<*>) + + /** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */ + @ExperimentalFrpApi + fun <In, Out> coalescingMutableTFlow( + coalesce: (old: Out, new: In) -> Out, + getInitialValue: () -> Out, + ): CoalescingMutableTFlow<In, Out> + + /** Returns a [MutableTFlow] that can emit values into this [FrpNetwork]. */ + @ExperimentalFrpApi fun <T> mutableTFlow(): MutableTFlow<T> + + /** Returns a [MutableTState]. with initial state [initialValue]. */ + @ExperimentalFrpApi + fun <T> mutableTStateDeferred(initialValue: FrpDeferredValue<T>): MutableTState<T> +} + +/** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */ +@ExperimentalFrpApi +fun <In, Out> FrpNetwork.coalescingMutableTFlow( + coalesce: (old: Out, new: In) -> Out, + initialValue: Out, +): CoalescingMutableTFlow<In, Out> = + coalescingMutableTFlow(coalesce, getInitialValue = { initialValue }) + +/** Returns a [MutableTState]. with initial state [initialValue]. */ +@ExperimentalFrpApi +fun <T> FrpNetwork.mutableTState(initialValue: T): MutableTState<T> = + mutableTStateDeferred(deferredOf(initialValue)) + +/** Returns a [MutableTState]. with initial state [initialValue]. */ +@ExperimentalFrpApi +fun <T> MutableTState(network: FrpNetwork, initialValue: T): MutableTState<T> = + network.mutableTState(initialValue) + +/** Returns a [MutableTFlow] that can emit values into this [FrpNetwork]. */ +@ExperimentalFrpApi +fun <T> MutableTFlow(network: FrpNetwork): MutableTFlow<T> = network.mutableTFlow() + +/** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */ +@ExperimentalFrpApi +fun <In, Out> CoalescingMutableTFlow( + network: FrpNetwork, + coalesce: (old: Out, new: In) -> Out, + initialValue: Out, +): CoalescingMutableTFlow<In, Out> = network.coalescingMutableTFlow(coalesce) { initialValue } + +/** Returns a [CoalescingMutableTFlow] that can emit values into this [FrpNetwork]. */ +@ExperimentalFrpApi +fun <In, Out> CoalescingMutableTFlow( + network: FrpNetwork, + coalesce: (old: Out, new: In) -> Out, + getInitialValue: () -> Out, +): CoalescingMutableTFlow<In, Out> = network.coalescingMutableTFlow(coalesce, getInitialValue) + +/** + * Activates [spec] in a transaction and invokes [block] with the result, suspending indefinitely. + * While suspended, all observers and long-running effects are kept alive. When cancelled, observers + * are unregistered and effects are cancelled. + */ +@ExperimentalFrpApi +suspend fun <R> FrpNetwork.activateSpec(spec: FrpSpec<R>, block: suspend (R) -> Unit) { + activateSpec { + val result = spec.applySpec() + launchEffect { block(result) } + } +} + +internal class LocalFrpNetwork( + private val network: Network, + private val scope: CoroutineScope, + private val endSignal: TFlow<Any>, +) : FrpNetwork { + override suspend fun <R> transact(block: suspend FrpTransactionScope.() -> R): R { + val result = CompletableDeferred<R>(coroutineContext[Job]) + @Suppress("DeferredResultUnused") + network.transaction { + val buildScope = + BuildScopeImpl( + stateScope = StateScopeImpl(evalScope = this, endSignal = endSignal), + coroutineScope = scope, + ) + buildScope.runInBuildScope { effect { result.complete(block()) } } + } + return result.await() + } + + override suspend fun activateSpec(spec: FrpSpec<*>) { + val job = + network + .transaction { + val buildScope = + BuildScopeImpl( + stateScope = StateScopeImpl(evalScope = this, endSignal = endSignal), + coroutineScope = scope, + ) + buildScope.runInBuildScope { launchScope(spec) } + } + .await() + awaitCancellationAndThen { job.cancel() } + } + + override fun <In, Out> coalescingMutableTFlow( + coalesce: (old: Out, new: In) -> Out, + getInitialValue: () -> Out, + ): CoalescingMutableTFlow<In, Out> = CoalescingMutableTFlow(coalesce, network, getInitialValue) + + override fun <T> mutableTFlow(): MutableTFlow<T> = MutableTFlow(network) + + override fun <T> mutableTStateDeferred(initialValue: FrpDeferredValue<T>): MutableTState<T> = + MutableTState(network, initialValue.unwrapped) +} + +/** + * Combination of an [FrpNetwork] and a [Job] that, when cancelled, will cancel the entire FRP + * network. + */ +@ExperimentalFrpApi +class RootFrpNetwork +internal constructor(private val network: Network, private val scope: CoroutineScope, job: Job) : + Job by job, FrpNetwork by LocalFrpNetwork(network, scope, emptyTFlow) + +/** Constructs a new [RootFrpNetwork] in the given [CoroutineScope]. */ +@ExperimentalFrpApi +fun CoroutineScope.newFrpNetwork( + context: CoroutineContext = EmptyCoroutineContext +): RootFrpNetwork { + val scope = childScope(context) + val network = Network(scope) + scope.launch(CoroutineName("newFrpNetwork scheduler")) { network.runInputScheduler() } + return RootFrpNetwork(network, scope, scope.coroutineContext.job) +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt new file mode 100644 index 000000000000..a5a7977f2177 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpScope.kt @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import kotlin.coroutines.RestrictsSuspension +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.suspendCancellableCoroutine + +/** Denotes [FrpScope] interfaces as [DSL markers][DslMarker]. */ +@DslMarker annotation class FrpScopeMarker + +/** + * Base scope for all FRP scopes. Used to prevent implicitly capturing other scopes from in lambdas. + */ +@FrpScopeMarker +@RestrictsSuspension +@ExperimentalFrpApi +interface FrpScope { + /** + * Returns the value held by the [FrpDeferredValue], suspending until available if necessary. + */ + @ExperimentalFrpApi + @OptIn(ExperimentalCoroutinesApi::class) + suspend fun <A> FrpDeferredValue<A>.get(): A = suspendCancellableCoroutine { k -> + unwrapped.invokeOnCompletion { ex -> + ex?.let { k.resumeWithException(ex) } ?: k.resume(unwrapped.getCompleted()) + } + } +} + +/** + * A value that may not be immediately (synchronously) available, but is guaranteed to be available + * before this transaction is completed. + * + * @see FrpScope.get + */ +@ExperimentalFrpApi +class FrpDeferredValue<out A> internal constructor(internal val unwrapped: Deferred<A>) + +/** + * Returns the value held by this [FrpDeferredValue], or throws [IllegalStateException] if it is not + * yet available. + * + * This API is not meant for general usage within the FRP network. It is made available mainly for + * debugging and logging. You should always prefer [get][FrpScope.get] if possible. + * + * @see FrpScope.get + */ +@ExperimentalFrpApi +@OptIn(ExperimentalCoroutinesApi::class) +fun <A> FrpDeferredValue<A>.getUnsafe(): A = unwrapped.getCompleted() + +/** Returns an already-available [FrpDeferredValue] containing [value]. */ +@ExperimentalFrpApi +fun <A> deferredOf(value: A): FrpDeferredValue<A> = FrpDeferredValue(CompletableDeferred(value)) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt new file mode 100644 index 000000000000..61336f4f4608 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpStateScope.kt @@ -0,0 +1,780 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.combine as combinePure +import com.android.systemui.experimental.frp.map as mapPure +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Left +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.Right +import com.android.systemui.experimental.frp.util.WithPrev +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.map +import com.android.systemui.experimental.frp.util.none +import com.android.systemui.experimental.frp.util.partitionEithers +import com.android.systemui.experimental.frp.util.zipWith +import kotlin.coroutines.RestrictsSuspension + +typealias FrpStateful<R> = suspend FrpStateScope.() -> R + +/** + * Returns a [FrpStateful] that, when [applied][FrpStateScope.applyStateful], invokes [block] with + * the applier's [FrpStateScope]. + */ +// TODO: caching story? should each Scope have a cache of applied FrpStateful instances? +@ExperimentalFrpApi +@Suppress("NOTHING_TO_INLINE") +inline fun <A> statefully(noinline block: suspend FrpStateScope.() -> A): FrpStateful<A> = block + +/** + * Operations that accumulate state within the FRP network. + * + * State accumulation is an ongoing process that has a lifetime. Use `-Latest` combinators, such as + * [mapLatestStateful], to create smaller, nested lifecycles so that accumulation isn't running + * longer than needed. + */ +@ExperimentalFrpApi +@RestrictsSuspension +interface FrpStateScope : FrpTransactionScope { + + /** TODO */ + @ExperimentalFrpApi + // TODO: wish this could just be `deferred` but alas + fun <A> deferredStateScope(block: suspend FrpStateScope.() -> A): FrpDeferredValue<A> + + /** + * Returns a [TState] that holds onto the most recently emitted value from this [TFlow], or + * [initialValue] if nothing has been emitted since it was constructed. + * + * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s + * have been processed; this keeps the value of the [TState] consistent during the entire FRP + * transaction. + */ + @ExperimentalFrpApi fun <A> TFlow<A>.holdDeferred(initialValue: FrpDeferredValue<A>): TState<A> + + /** + * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s + * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally]. + * + * Conceptually this is equivalent to: + * ```kotlin + * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally( + * initialTFlows: Map<K, TFlow<V>>, + * ): TFlow<Map<K, V>> = + * foldMapIncrementally(initialTFlows).map { it.merge() }.switch() + * ``` + * + * While the behavior is equivalent to the conceptual definition above, the implementation is + * significantly more efficient. + * + * @see merge + */ + @ExperimentalFrpApi + fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally( + initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>> + ): TFlow<Map<K, V>> + + /** + * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s + * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally]. + * + * Conceptually this is equivalent to: + * ```kotlin + * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPrompt( + * initialTFlows: Map<K, TFlow<V>>, + * ): TFlow<Map<K, V>> = + * foldMapIncrementally(initialTFlows).map { it.merge() }.switchPromptly() + * ``` + * + * While the behavior is equivalent to the conceptual definition above, the implementation is + * significantly more efficient. + * + * @see merge + */ + @ExperimentalFrpApi + fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptly( + initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>> + ): TFlow<Map<K, V>> + + // TODO: everything below this comment can be made into extensions once we have context params + + /** + * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s + * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally]. + * + * Conceptually this is equivalent to: + * ```kotlin + * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally( + * initialTFlows: Map<K, TFlow<V>>, + * ): TFlow<Map<K, V>> = + * foldMapIncrementally(initialTFlows).map { it.merge() }.switch() + * ``` + * + * While the behavior is equivalent to the conceptual definition above, the implementation is + * significantly more efficient. + * + * @see merge + */ + @ExperimentalFrpApi + fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally( + initialTFlows: Map<K, TFlow<V>> = emptyMap() + ): TFlow<Map<K, V>> = mergeIncrementally(deferredOf(initialTFlows)) + + /** + * Returns a [TFlow] that emits from a merged, incrementally-accumulated collection of [TFlow]s + * emitted from this, following the same "patch" rules as outlined in [foldMapIncrementally]. + * + * Conceptually this is equivalent to: + * ```kotlin + * fun <K, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPrompt( + * initialTFlows: Map<K, TFlow<V>>, + * ): TFlow<Map<K, V>> = + * foldMapIncrementally(initialTFlows).map { it.merge() }.switchPromptly() + * ``` + * + * While the behavior is equivalent to the conceptual definition above, the implementation is + * significantly more efficient. + * + * @see merge + */ + @ExperimentalFrpApi + fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptly( + initialTFlows: Map<K, TFlow<V>> = emptyMap() + ): TFlow<Map<K, V>> = mergeIncrementallyPromptly(deferredOf(initialTFlows)) + + /** Applies the [FrpStateful] within this [FrpStateScope]. */ + @ExperimentalFrpApi suspend fun <A> FrpStateful<A>.applyStateful(): A = this() + + /** + * Applies the [FrpStateful] within this [FrpStateScope], returning the result as an + * [FrpDeferredValue]. + */ + @ExperimentalFrpApi + fun <A> FrpStateful<A>.applyStatefulDeferred(): FrpDeferredValue<A> = deferredStateScope { + applyStateful() + } + + /** + * Returns a [TState] that holds onto the most recently emitted value from this [TFlow], or + * [initialValue] if nothing has been emitted since it was constructed. + * + * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s + * have been processed; this keeps the value of the [TState] consistent during the entire FRP + * transaction. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.hold(initialValue: A): TState<A> = holdDeferred(deferredOf(initialValue)) + + /** + * Returns a [TFlow] the emits the result of applying [FrpStatefuls][FrpStateful] emitted from + * the original [TFlow]. + * + * Unlike [applyLatestStateful], state accumulation is not stopped with each subsequent emission + * of the original [TFlow]. + */ + @ExperimentalFrpApi fun <A> TFlow<FrpStateful<A>>.applyStatefuls(): TFlow<A> + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow]. + * + * [transform] can perform state accumulation via its [FrpStateScope] receiver. Unlike + * [mapLatestStateful], accumulation is not stopped with each subsequent emission of the + * original [TFlow]. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapStateful(transform: suspend FrpStateScope.(A) -> B): TFlow<B> = + mapPure { statefully { transform(it) } }.applyStatefuls() + + /** + * Returns a [TState] the holds the result of applying the [FrpStateful] held by the original + * [TState]. + * + * Unlike [applyLatestStateful], state accumulation is not stopped with each state change. + */ + @ExperimentalFrpApi + fun <A> TState<FrpStateful<A>>.applyStatefuls(): TState<A> = + stateChanges + .applyStatefuls() + .holdDeferred(initialValue = deferredStateScope { sampleDeferred().get()() }) + + /** Returns a [TFlow] that switches to the [TFlow] emitted by the original [TFlow]. */ + @ExperimentalFrpApi fun <A> TFlow<TFlow<A>>.flatten() = hold(emptyTFlow).switch() + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow]. + * + * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each + * invocation of [transform], state accumulation from previous invocation is stopped. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapLatestStateful(transform: suspend FrpStateScope.(A) -> B): TFlow<B> = + mapPure { statefully { transform(it) } }.applyLatestStateful() + + /** + * Returns a [TFlow] that switches to a new [TFlow] produced by [transform] every time the + * original [TFlow] emits a value. + * + * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each + * invocation of [transform], state accumulation from previous invocation is stopped. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.flatMapLatestStateful( + transform: suspend FrpStateScope.(A) -> TFlow<B> + ): TFlow<B> = mapLatestStateful(transform).flatten() + + /** + * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the + * original [TFlow]. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] is stopped. + */ + @ExperimentalFrpApi + fun <A> TFlow<FrpStateful<A>>.applyLatestStateful(): TFlow<A> = applyLatestStateful {}.first + + /** + * Returns a [TState] containing the value returned by applying the [FrpStateful] held by the + * original [TState]. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] is stopped. + */ + @ExperimentalFrpApi + fun <A> TState<FrpStateful<A>>.applyLatestStateful(): TState<A> { + val (changes, init) = stateChanges.applyLatestStateful { sample()() } + return changes.holdDeferred(init) + } + + /** + * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init] + * immediately. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] is stopped. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<FrpStateful<B>>.applyLatestStateful( + init: FrpStateful<A> + ): Pair<TFlow<B>, FrpDeferredValue<A>> { + val (flow, result) = + mapCheap { spec -> mapOf(Unit to just(spec)) } + .applyLatestStatefulForKey(init = mapOf(Unit to init), numKeys = 1) + val outFlow: TFlow<B> = + flow.mapMaybe { + checkNotNull(it[Unit]) { "applyLatest: expected result, but none present in: $it" } + } + val outInit: FrpDeferredValue<A> = deferredTransactionScope { + val initResult: Map<Unit, A> = result.get() + check(Unit in initResult) { + "applyLatest: expected initial result, but none present in: $initResult" + } + @Suppress("UNCHECKED_CAST") + initResult.getOrDefault(Unit) { null } as A + } + return Pair(outFlow, outInit) + } + + /** + * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init] + * immediately. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateful] will be stopped with no replacement. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] with the same key is stopped. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey( + init: FrpDeferredValue<Map<K, FrpStateful<B>>>, + numKeys: Int? = null, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> + + /** + * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init] + * immediately. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] with the same key is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateful] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey( + init: Map<K, FrpStateful<B>>, + numKeys: Int? = null, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> = + applyLatestStatefulForKey(deferredOf(init), numKeys) + + /** + * Returns a [TState] containing the latest results of applying each [FrpStateful] emitted from + * the original [TFlow]. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] with the same key is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateful] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A> TFlow<Map<K, Maybe<FrpStateful<A>>>>.holdLatestStatefulForKey( + init: FrpDeferredValue<Map<K, FrpStateful<A>>>, + numKeys: Int? = null, + ): TState<Map<K, A>> { + val (changes, initialValues) = applyLatestStatefulForKey(init, numKeys) + return changes.foldMapIncrementally(initialValues) + } + + /** + * Returns a [TState] containing the latest results of applying each [FrpStateful] emitted from + * the original [TFlow]. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] with the same key is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateful] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A> TFlow<Map<K, Maybe<FrpStateful<A>>>>.holdLatestStatefulForKey( + init: Map<K, FrpStateful<A>> = emptyMap(), + numKeys: Int? = null, + ): TState<Map<K, A>> = holdLatestStatefulForKey(deferredOf(init), numKeys) + + /** + * Returns a [TFlow] containing the results of applying each [FrpStateful] emitted from the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [init] + * immediately. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] with the same key is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateful] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey( + numKeys: Int? = null + ): TFlow<Map<K, Maybe<A>>> = + applyLatestStatefulForKey(init = emptyMap<K, FrpStateful<*>>(), numKeys = numKeys).first + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to + * [initialValues] immediately. + * + * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each + * invocation of [transform], state accumulation from previous invocation is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateScope] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestStatefulForKey( + initialValues: FrpDeferredValue<Map<K, A>>, + numKeys: Int? = null, + transform: suspend FrpStateScope.(A) -> B, + ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> = + mapPure { patch -> patch.mapValues { (_, v) -> v.map { statefully { transform(it) } } } } + .applyLatestStatefulForKey( + deferredStateScope { + initialValues.get().mapValues { (_, v) -> statefully { transform(v) } } + }, + numKeys = numKeys, + ) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow], and a [FrpDeferredValue] containing the result of applying [transform] to + * [initialValues] immediately. + * + * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each + * invocation of [transform], state accumulation from previous invocation is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateScope] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestStatefulForKey( + initialValues: Map<K, A>, + numKeys: Int? = null, + transform: suspend FrpStateScope.(A) -> B, + ): Pair<TFlow<Map<K, Maybe<B>>>, FrpDeferredValue<Map<K, B>>> = + mapLatestStatefulForKey(deferredOf(initialValues), numKeys, transform) + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow]. + * + * [transform] can perform state accumulation via its [FrpStateScope] receiver. With each + * invocation of [transform], state accumulation from previous invocation is stopped. + * + * If the [Maybe] contained within the value for an associated key is [none], then the + * previously-active [FrpStateScope] will be stopped with no replacement. + */ + @ExperimentalFrpApi + fun <K, A, B> TFlow<Map<K, Maybe<A>>>.mapLatestStatefulForKey( + numKeys: Int? = null, + transform: suspend FrpStateScope.(A) -> B, + ): TFlow<Map<K, Maybe<B>>> = mapLatestStatefulForKey(emptyMap(), numKeys, transform).first + + /** + * Returns a [TFlow] that will only emit the next event of the original [TFlow], and then will + * act as [emptyTFlow]. + * + * If the original [TFlow] is emitting an event at this exact time, then it will be the only + * even emitted from the result [TFlow]. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.nextOnly(): TFlow<A> = + if (this === emptyTFlow) { + this + } else { + TFlowLoop<A>().also { + it.loopback = it.mapCheap { emptyTFlow }.hold(this@nextOnly).switch() + } + } + + /** Returns a [TFlow] that skips the next emission of the original [TFlow]. */ + @ExperimentalFrpApi + fun <A> TFlow<A>.skipNext(): TFlow<A> = + if (this === emptyTFlow) { + this + } else { + nextOnly().mapCheap { this@skipNext }.hold(emptyTFlow).switch() + } + + /** + * Returns a [TFlow] that emits values from the original [TFlow] up until [stop] emits a value. + * + * If the original [TFlow] emits at the same time as [stop], then the returned [TFlow] will emit + * that value. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.takeUntil(stop: TFlow<*>): TFlow<A> = + if (stop === emptyTFlow) { + this + } else { + stop.mapCheap { emptyTFlow }.nextOnly().hold(this).switch() + } + + /** + * Invokes [stateful] in a new [FrpStateScope] that is a child of this one. + * + * This new scope is stopped when [stop] first emits a value, or when the parent scope is + * stopped. Stopping will end all state accumulation; any [TStates][TState] returned from this + * scope will no longer update. + */ + @ExperimentalFrpApi + fun <A> childStateScope(stop: TFlow<*>, stateful: FrpStateful<A>): FrpDeferredValue<A> { + val (_, init: FrpDeferredValue<Map<Unit, A>>) = + stop + .nextOnly() + .mapPure { mapOf(Unit to none<FrpStateful<A>>()) } + .applyLatestStatefulForKey(init = mapOf(Unit to stateful), numKeys = 1) + return deferredStateScope { init.get().getValue(Unit) } + } + + /** + * Returns a [TFlow] that emits values from the original [TFlow] up to and including a value is + * emitted that satisfies [predicate]. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.takeUntil(predicate: suspend FrpTransactionScope.(A) -> Boolean): TFlow<A> = + takeUntil(filter(predicate)) + + /** + * Returns a [TState] that is incrementally updated when this [TFlow] emits a value, by applying + * [transform] to both the emitted value and the currently tracked state. + * + * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s + * have been processed; this keeps the value of the [TState] consistent during the entire FRP + * transaction. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.fold( + initialValue: B, + transform: suspend FrpTransactionScope.(A, B) -> B, + ): TState<B> { + lateinit var state: TState<B> + return mapPure { a -> transform(a, state.sample()) }.hold(initialValue).also { state = it } + } + + /** + * Returns a [TState] that is incrementally updated when this [TFlow] emits a value, by applying + * [transform] to both the emitted value and the currently tracked state. + * + * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s + * have been processed; this keeps the value of the [TState] consistent during the entire FRP + * transaction. + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.foldDeferred( + initialValue: FrpDeferredValue<B>, + transform: suspend FrpTransactionScope.(A, B) -> B, + ): TState<B> { + lateinit var state: TState<B> + return mapPure { a -> transform(a, state.sample()) } + .holdDeferred(initialValue) + .also { state = it } + } + + /** + * Returns a [TState] that holds onto the result of applying the most recently emitted + * [FrpStateful] this [TFlow], or [init] if nothing has been emitted since it was constructed. + * + * When each [FrpStateful] is applied, state accumulation from the previously-active + * [FrpStateful] is stopped. + * + * Note that the value contained within the [TState] is not updated until *after* all [TFlow]s + * have been processed; this keeps the value of the [TState] consistent during the entire FRP + * transaction. + * + * Shorthand for: + * ```kotlin + * val (changes, initApplied) = applyLatestStateful(init) + * return changes.toTStateDeferred(initApplied) + * ``` + */ + @ExperimentalFrpApi + fun <A> TFlow<FrpStateful<A>>.holdLatestStateful(init: FrpStateful<A>): TState<A> { + val (changes, initApplied) = applyLatestStateful(init) + return changes.holdDeferred(initApplied) + } + + /** + * Returns a [TFlow] that emits the two most recent emissions from the original [TFlow]. + * [initialValue] is used as the previous value for the first emission. + * + * Shorthand for `sample(hold(init)) { new, old -> Pair(old, new) }` + */ + @ExperimentalFrpApi + fun <S, T : S> TFlow<T>.pairwise(initialValue: S): TFlow<WithPrev<S, T>> { + val previous = hold(initialValue) + return mapCheap { new -> WithPrev(previousValue = previous.sample(), newValue = new) } + } + + /** + * Returns a [TFlow] that emits the two most recent emissions from the original [TFlow]. Note + * that the returned [TFlow] will not emit until the original [TFlow] has emitted twice. + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.pairwise(): TFlow<WithPrev<A, A>> = + mapCheap { just(it) } + .pairwise(none) + .mapMaybe { (prev, next) -> prev.zipWith(next, ::WithPrev) } + + /** + * Returns a [TState] that holds both the current and previous values of the original [TState]. + * [initialPreviousValue] is used as the first previous value. + * + * Shorthand for `sample(hold(init)) { new, old -> Pair(old, new) }` + */ + @ExperimentalFrpApi + fun <S, T : S> TState<T>.pairwise(initialPreviousValue: S): TState<WithPrev<S, T>> = + stateChanges + .pairwise(initialPreviousValue) + .holdDeferred(deferredTransactionScope { WithPrev(initialPreviousValue, sample()) }) + + /** + * Returns a [TState] holding a [Map] that is updated incrementally whenever this emits a value. + * + * The value emitted is used as a "patch" for the tracked [Map]; for each key [K] in the emitted + * map, an associated value of [Just] will insert or replace the value in the tracked [Map], and + * an associated value of [none] will remove the key from the tracked [Map]. + */ + @ExperimentalFrpApi + fun <K, V> TFlow<Map<K, Maybe<V>>>.foldMapIncrementally( + initialValues: FrpDeferredValue<Map<K, V>> + ): TState<Map<K, V>> = + foldDeferred(initialValues) { patch, map -> + val (adds: List<Pair<K, V>>, removes: List<K>) = + patch + .asSequence() + .map { (k, v) -> if (v is Just) Left(k to v.value) else Right(k) } + .partitionEithers() + val removed: Map<K, V> = map - removes.toSet() + val updated: Map<K, V> = removed + adds + updated + } + + /** + * Returns a [TState] holding a [Map] that is updated incrementally whenever this emits a value. + * + * The value emitted is used as a "patch" for the tracked [Map]; for each key [K] in the emitted + * map, an associated value of [Just] will insert or replace the value in the tracked [Map], and + * an associated value of [none] will remove the key from the tracked [Map]. + */ + @ExperimentalFrpApi + fun <K, V> TFlow<Map<K, Maybe<V>>>.foldMapIncrementally( + initialValues: Map<K, V> = emptyMap() + ): TState<Map<K, V>> = foldMapIncrementally(deferredOf(initialValues)) + + /** + * Returns a [TFlow] that wraps each emission of the original [TFlow] into an [IndexedValue], + * containing the emitted value and its index (starting from zero). + * + * Shorthand for: + * ``` + * val index = fold(0) { _, oldIdx -> oldIdx + 1 } + * sample(index) { a, idx -> IndexedValue(idx, a) } + * ``` + */ + @ExperimentalFrpApi + fun <A> TFlow<A>.withIndex(): TFlow<IndexedValue<A>> { + val index = fold(0) { _, old -> old + 1 } + return sample(index) { a, idx -> IndexedValue(idx, a) } + } + + /** + * Returns a [TFlow] containing the results of applying [transform] to each value of the + * original [TFlow] and its index (starting from zero). + * + * Shorthand for: + * ``` + * withIndex().map { (idx, a) -> transform(idx, a) } + * ``` + */ + @ExperimentalFrpApi + fun <A, B> TFlow<A>.mapIndexed(transform: suspend FrpTransactionScope.(Int, A) -> B): TFlow<B> { + val index = fold(0) { _, i -> i + 1 } + return sample(index) { a, idx -> transform(idx, a) } + } + + /** Returns a [TFlow] where all subsequent repetitions of the same value are filtered out. */ + @ExperimentalFrpApi + fun <A> TFlow<A>.distinctUntilChanged(): TFlow<A> { + val state: TState<Any?> = hold(Any()) + return filter { it != state.sample() } + } + + /** + * Returns a new [TFlow] that emits at the same rate as the original [TFlow], but combines the + * emitted value with the most recent emission from [other] using [transform]. + * + * Note that the returned [TFlow] will not emit anything until [other] has emitted at least one + * value. + */ + @ExperimentalFrpApi + fun <A, B, C> TFlow<A>.sample( + other: TFlow<B>, + transform: suspend FrpTransactionScope.(A, B) -> C, + ): TFlow<C> { + val state = other.mapCheap { just(it) }.hold(none) + return sample(state) { a, b -> b.map { transform(a, it) } }.filterJust() + } + + /** + * Returns a [TState] that samples the [Transactional] held by the given [TState] within the + * same transaction that the state changes. + */ + @ExperimentalFrpApi + fun <A> TState<Transactional<A>>.sampleTransactionals(): TState<A> = + stateChanges + .sampleTransactionals() + .holdDeferred(deferredTransactionScope { sample().sample() }) + + /** + * Returns a [TState] that transforms the value held inside this [TState] by applying it to the + * given function [transform]. + */ + @ExperimentalFrpApi + fun <A, B> TState<A>.map(transform: suspend FrpTransactionScope.(A) -> B): TState<B> = + mapPure { transactionally { transform(it) } }.sampleTransactionals() + + /** + * Returns a [TState] whose value is generated with [transform] by combining the current values + * of each given [TState]. + * + * @see TState.combineWith + */ + @ExperimentalFrpApi + fun <A, B, Z> combine( + stateA: TState<A>, + stateB: TState<B>, + transform: suspend FrpTransactionScope.(A, B) -> Z, + ): TState<Z> = + com.android.systemui.experimental.frp + .combine(stateA, stateB) { a, b -> transactionally { transform(a, b) } } + .sampleTransactionals() + + /** + * Returns a [TState] whose value is generated with [transform] by combining the current values + * of each given [TState]. + * + * @see TState.combineWith + */ + @ExperimentalFrpApi + fun <A, B, C, D, Z> combine( + stateA: TState<A>, + stateB: TState<B>, + stateC: TState<C>, + stateD: TState<D>, + transform: suspend FrpTransactionScope.(A, B, C, D) -> Z, + ): TState<Z> = + com.android.systemui.experimental.frp + .combine(stateA, stateB, stateC, stateD) { a, b, c, d -> + transactionally { transform(a, b, c, d) } + } + .sampleTransactionals() + + /** Returns a [TState] by applying [transform] to the value held by the original [TState]. */ + @ExperimentalFrpApi + fun <A, B> TState<A>.flatMap( + transform: suspend FrpTransactionScope.(A) -> TState<B> + ): TState<B> = mapPure { transactionally { transform(it) } }.sampleTransactionals().flatten() + + /** + * Returns a [TState] whose value is generated with [transform] by combining the current values + * of each given [TState]. + * + * @see TState.combineWith + */ + @ExperimentalFrpApi + fun <A, Z> combine( + vararg states: TState<A>, + transform: suspend FrpTransactionScope.(List<A>) -> Z, + ): TState<Z> = combinePure(*states).map(transform) + + /** + * Returns a [TState] whose value is generated with [transform] by combining the current values + * of each given [TState]. + * + * @see TState.combineWith + */ + @ExperimentalFrpApi + fun <A, Z> Iterable<TState<A>>.combine( + transform: suspend FrpTransactionScope.(List<A>) -> Z + ): TState<Z> = combinePure().map(transform) + + /** + * Returns a [TState] by combining the values held inside the given [TState]s by applying them + * to the given function [transform]. + */ + @ExperimentalFrpApi + fun <A, B, C> TState<A>.combineWith( + other: TState<B>, + transform: suspend FrpTransactionScope.(A, B) -> C, + ): TState<C> = combine(this, other, transform) +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt new file mode 100644 index 000000000000..b0b9dbcbe8c1 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/FrpTransactionScope.kt @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import kotlin.coroutines.RestrictsSuspension + +/** + * FRP operations that are available while a transaction is active. + * + * These operations do not accumulate state, which makes [FrpTransactionScope] weaker than + * [FrpStateScope], but allows them to be used in more places. + */ +@ExperimentalFrpApi +@RestrictsSuspension +interface FrpTransactionScope : FrpScope { + + /** + * Returns the current value of this [Transactional] as a [FrpDeferredValue]. + * + * @see sample + */ + @ExperimentalFrpApi fun <A> Transactional<A>.sampleDeferred(): FrpDeferredValue<A> + + /** + * Returns the current value of this [TState] as a [FrpDeferredValue]. + * + * @see sample + */ + @ExperimentalFrpApi fun <A> TState<A>.sampleDeferred(): FrpDeferredValue<A> + + /** TODO */ + @ExperimentalFrpApi + fun <A> deferredTransactionScope( + block: suspend FrpTransactionScope.() -> A + ): FrpDeferredValue<A> + + /** A [TFlow] that emits once, within this transaction, and then never again. */ + @ExperimentalFrpApi val now: TFlow<Unit> + + /** + * Returns the current value held by this [TState]. Guaranteed to be consistent within the same + * transaction. + */ + @ExperimentalFrpApi suspend fun <A> TState<A>.sample(): A = sampleDeferred().get() + + /** + * Returns the current value held by this [Transactional]. Guaranteed to be consistent within + * the same transaction. + */ + @ExperimentalFrpApi suspend fun <A> Transactional<A>.sample(): A = sampleDeferred().get() +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt new file mode 100644 index 000000000000..cca6c9a623f2 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TFlow.kt @@ -0,0 +1,560 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.internal.DemuxImpl +import com.android.systemui.experimental.frp.internal.Init +import com.android.systemui.experimental.frp.internal.InitScope +import com.android.systemui.experimental.frp.internal.InputNode +import com.android.systemui.experimental.frp.internal.Network +import com.android.systemui.experimental.frp.internal.NoScope +import com.android.systemui.experimental.frp.internal.TFlowImpl +import com.android.systemui.experimental.frp.internal.activated +import com.android.systemui.experimental.frp.internal.cached +import com.android.systemui.experimental.frp.internal.constInit +import com.android.systemui.experimental.frp.internal.filterNode +import com.android.systemui.experimental.frp.internal.init +import com.android.systemui.experimental.frp.internal.map +import com.android.systemui.experimental.frp.internal.mapImpl +import com.android.systemui.experimental.frp.internal.mapMaybeNode +import com.android.systemui.experimental.frp.internal.mergeNodes +import com.android.systemui.experimental.frp.internal.mergeNodesLeft +import com.android.systemui.experimental.frp.internal.neverImpl +import com.android.systemui.experimental.frp.internal.switchDeferredImplSingle +import com.android.systemui.experimental.frp.internal.switchPromptImpl +import com.android.systemui.experimental.frp.internal.util.hashString +import com.android.systemui.experimental.frp.util.Either +import com.android.systemui.experimental.frp.util.Left +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.Right +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.map +import com.android.systemui.experimental.frp.util.toMaybe +import java.util.concurrent.atomic.AtomicReference +import kotlin.reflect.KProperty +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Job +import kotlinx.coroutines.async +import kotlinx.coroutines.coroutineScope + +/** A series of values of type [A] available at discrete points in time. */ +@ExperimentalFrpApi +sealed class TFlow<out A> { + companion object { + /** A [TFlow] with no values. */ + val empty: TFlow<Nothing> = EmptyFlow + } +} + +/** A [TFlow] with no values. */ +@ExperimentalFrpApi val emptyTFlow: TFlow<Nothing> = TFlow.empty + +/** + * A forward-reference to a [TFlow]. Useful for recursive definitions. + * + * This reference can be used like a standard [TFlow], but will hold up evaluation of the FRP + * network until the [loopback] reference is set. + */ +@ExperimentalFrpApi +class TFlowLoop<A> : TFlow<A>() { + private val deferred = CompletableDeferred<TFlow<A>>() + + internal val init: Init<TFlowImpl<A>> = + init(name = null) { deferred.await().init.connect(evalScope = this) } + + /** The [TFlow] this reference is referring to. */ + @ExperimentalFrpApi + var loopback: TFlow<A>? = null + set(value) { + value?.let { + check(deferred.complete(value)) { "TFlowLoop.loopback has already been set." } + field = value + } + } + + operator fun getValue(thisRef: Any?, property: KProperty<*>): TFlow<A> = this + + operator fun setValue(thisRef: Any?, property: KProperty<*>, value: TFlow<A>) { + loopback = value + } + + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +/** TODO */ +@ExperimentalFrpApi fun <A> Lazy<TFlow<A>>.defer(): TFlow<A> = deferInline { value } + +/** TODO */ +@ExperimentalFrpApi +fun <A> FrpDeferredValue<TFlow<A>>.defer(): TFlow<A> = deferInline { unwrapped.await() } + +/** TODO */ +@ExperimentalFrpApi +fun <A> deferTFlow(block: suspend FrpScope.() -> TFlow<A>): TFlow<A> = deferInline { + NoScope.runInFrpScope(block) +} + +/** Returns a [TFlow] that emits the new value of this [TState] when it changes. */ +@ExperimentalFrpApi +val <A> TState<A>.stateChanges: TFlow<A> + get() = TFlowInit(init(name = null) { init.connect(evalScope = this).changes }) + +/** + * Returns a [TFlow] that contains only the [just] results of applying [transform] to each value of + * the original [TFlow]. + * + * @see mapNotNull + */ +@ExperimentalFrpApi +fun <A, B> TFlow<A>.mapMaybe(transform: suspend FrpTransactionScope.(A) -> Maybe<B>): TFlow<B> { + val pulse = + mapMaybeNode({ init.connect(evalScope = this) }) { runInTransactionScope { transform(it) } } + return TFlowInit(constInit(name = null, pulse)) +} + +/** + * Returns a [TFlow] that contains only the non-null results of applying [transform] to each value + * of the original [TFlow]. + * + * @see mapMaybe + */ +@ExperimentalFrpApi +fun <A, B> TFlow<A>.mapNotNull(transform: suspend FrpTransactionScope.(A) -> B?): TFlow<B> = + mapMaybe { + transform(it).toMaybe() + } + +/** Returns a [TFlow] containing only values of the original [TFlow] that are not null. */ +@ExperimentalFrpApi fun <A> TFlow<A?>.filterNotNull(): TFlow<A> = mapNotNull { it } + +/** Shorthand for `mapNotNull { it as? A }`. */ +@ExperimentalFrpApi +inline fun <reified A> TFlow<*>.filterIsInstance(): TFlow<A> = mapNotNull { it as? A } + +/** Shorthand for `mapMaybe { it }`. */ +@ExperimentalFrpApi fun <A> TFlow<Maybe<A>>.filterJust(): TFlow<A> = mapMaybe { it } + +/** + * Returns a [TFlow] containing the results of applying [transform] to each value of the original + * [TFlow]. + */ +@ExperimentalFrpApi +fun <A, B> TFlow<A>.map(transform: suspend FrpTransactionScope.(A) -> B): TFlow<B> { + val mapped: TFlowImpl<B> = + mapImpl({ init.connect(evalScope = this) }) { a -> runInTransactionScope { transform(a) } } + return TFlowInit(constInit(name = null, mapped.cached())) +} + +/** + * Like [map], but the emission is not cached during the transaction. Use only if [transform] is + * fast and pure. + * + * @see map + */ +@ExperimentalFrpApi +fun <A, B> TFlow<A>.mapCheap(transform: suspend FrpTransactionScope.(A) -> B): TFlow<B> = + TFlowInit( + constInit( + name = null, + mapImpl({ init.connect(evalScope = this) }) { a -> + runInTransactionScope { transform(a) } + }, + ) + ) + +/** + * Returns a [TFlow] that invokes [action] before each value of the original [TFlow] is emitted. + * Useful for logging and debugging. + * + * ``` + * pulse.onEach { foo(it) } == pulse.map { foo(it); it } + * ``` + * + * Note that the side effects performed in [onEach] are only performed while the resulting [TFlow] + * is connected to an output of the FRP network. If your goal is to reliably perform side effects in + * response to a [TFlow], use the output combinators available in [FrpBuildScope], such as + * [FrpBuildScope.toSharedFlow] or [FrpBuildScope.observe]. + */ +@ExperimentalFrpApi +fun <A> TFlow<A>.onEach(action: suspend FrpTransactionScope.(A) -> Unit): TFlow<A> = map { + action(it) + it +} + +/** + * Returns a [TFlow] containing only values of the original [TFlow] that satisfy the given + * [predicate]. + */ +@ExperimentalFrpApi +fun <A> TFlow<A>.filter(predicate: suspend FrpTransactionScope.(A) -> Boolean): TFlow<A> { + val pulse = + filterNode({ init.connect(evalScope = this) }) { runInTransactionScope { predicate(it) } } + return TFlowInit(constInit(name = null, pulse.cached())) +} + +/** + * Splits a [TFlow] of pairs into a pair of [TFlows][TFlow], where each returned [TFlow] emits half + * of the original. + * + * Shorthand for: + * ```kotlin + * val lefts = map { it.first } + * val rights = map { it.second } + * return Pair(lefts, rights) + * ``` + */ +@ExperimentalFrpApi +fun <A, B> TFlow<Pair<A, B>>.unzip(): Pair<TFlow<A>, TFlow<B>> { + val lefts = map { it.first } + val rights = map { it.second } + return lefts to rights +} + +/** + * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from both. + * + * Because [TFlow]s can only emit one value per transaction, the provided [transformCoincidence] + * function is used to combine coincident emissions to produce the result value to be emitted by the + * merged [TFlow]. + */ +@ExperimentalFrpApi +fun <A> TFlow<A>.mergeWith( + other: TFlow<A>, + transformCoincidence: suspend FrpTransactionScope.(A, A) -> A = { a, _ -> a }, +): TFlow<A> { + val node = + mergeNodes( + getPulse = { init.connect(evalScope = this) }, + getOther = { other.init.connect(evalScope = this) }, + ) { a, b -> + runInTransactionScope { transformCoincidence(a, b) } + } + return TFlowInit(constInit(name = null, node)) +} + +/** + * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. All coincident + * emissions are collected into the emitted [List], preserving the input ordering. + * + * @see mergeWith + * @see mergeLeft + */ +@ExperimentalFrpApi +fun <A> merge(vararg flows: TFlow<A>): TFlow<List<A>> = flows.asIterable().merge() + +/** + * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. In the case of + * coincident emissions, the emission from the left-most [TFlow] is emitted. + * + * @see merge + */ +@ExperimentalFrpApi +fun <A> mergeLeft(vararg flows: TFlow<A>): TFlow<A> = flows.asIterable().mergeLeft() + +/** + * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. + * + * Because [TFlow]s can only emit one value per transaction, the provided [transformCoincidence] + * function is used to combine coincident emissions to produce the result value to be emitted by the + * merged [TFlow]. + */ +// TODO: can be optimized to avoid creating the intermediate list +fun <A> merge(vararg flows: TFlow<A>, transformCoincidence: (A, A) -> A): TFlow<A> = + merge(*flows).map { l -> l.reduce(transformCoincidence) } + +/** + * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. All coincident + * emissions are collected into the emitted [List], preserving the input ordering. + * + * @see mergeWith + * @see mergeLeft + */ +@ExperimentalFrpApi +fun <A> Iterable<TFlow<A>>.merge(): TFlow<List<A>> = + TFlowInit(constInit(name = null, mergeNodes { map { it.init.connect(evalScope = this) } })) + +/** + * Merges the given [TFlows][TFlow] into a single [TFlow] that emits events from all. In the case of + * coincident emissions, the emission from the left-most [TFlow] is emitted. + * + * @see merge + */ +@ExperimentalFrpApi +fun <A> Iterable<TFlow<A>>.mergeLeft(): TFlow<A> = + TFlowInit(constInit(name = null, mergeNodesLeft { map { it.init.connect(evalScope = this) } })) + +/** + * Creates a new [TFlow] that emits events from all given [TFlow]s. All simultaneous emissions are + * collected into the emitted [List], preserving the input ordering. + * + * @see mergeWith + */ +@ExperimentalFrpApi fun <A> Sequence<TFlow<A>>.merge(): TFlow<List<A>> = asIterable().merge() + +/** + * Creates a new [TFlow] that emits events from all given [TFlow]s. All simultaneous emissions are + * collected into the emitted [Map], and are given the same key of the associated [TFlow] in the + * input [Map]. + * + * @see mergeWith + */ +@ExperimentalFrpApi +fun <K, A> Map<K, TFlow<A>>.merge(): TFlow<Map<K, A>> = + asSequence().map { (k, flowA) -> flowA.map { a -> k to a } }.toList().merge().map { it.toMap() } + +/** + * Returns a [GroupedTFlow] that can be used to efficiently split a single [TFlow] into multiple + * downstream [TFlow]s. + * + * The input [TFlow] emits [Map] instances that specify which downstream [TFlow] the associated + * value will be emitted from. These downstream [TFlow]s can be obtained via + * [GroupedTFlow.eventsForKey]. + * + * An example: + * ``` + * val sFoo: TFlow<Map<String, Foo>> = ... + * val fooById: GroupedTFlow<String, Foo> = sFoo.groupByKey() + * val fooBar: TFlow<Foo> = fooById["bar"] + * ``` + * + * This is semantically equivalent to `val fooBar = sFoo.mapNotNull { map -> map["bar"] }` but is + * significantly more efficient; specifically, using [mapNotNull] in this way incurs a `O(n)` + * performance hit, where `n` is the number of different [mapNotNull] operations used to filter on a + * specific key's presence in the emitted [Map]. [groupByKey] internally uses a [HashMap] to lookup + * the appropriate downstream [TFlow], and so operates in `O(1)`. + * + * Note that the result [GroupedTFlow] should be cached and re-used to gain the performance benefit. + * + * @see selector + */ +@ExperimentalFrpApi +fun <K, A> TFlow<Map<K, A>>.groupByKey(numKeys: Int? = null): GroupedTFlow<K, A> = + GroupedTFlow(DemuxImpl({ init.connect(this) }, numKeys)) + +/** + * Shorthand for `map { mapOf(extractKey(it) to it) }.groupByKey()` + * + * @see groupByKey + */ +@ExperimentalFrpApi +fun <K, A> TFlow<A>.groupBy( + numKeys: Int? = null, + extractKey: suspend FrpTransactionScope.(A) -> K, +): GroupedTFlow<K, A> = map { mapOf(extractKey(it) to it) }.groupByKey(numKeys) + +/** + * Returns two new [TFlow]s that contain elements from this [TFlow] that satisfy or don't satisfy + * [predicate]. + * + * Using this is equivalent to `upstream.filter(predicate) to upstream.filter { !predicate(it) }` + * but is more efficient; specifically, [partition] will only invoke [predicate] once per element. + */ +@ExperimentalFrpApi +fun <A> TFlow<A>.partition( + predicate: suspend FrpTransactionScope.(A) -> Boolean +): Pair<TFlow<A>, TFlow<A>> { + val grouped: GroupedTFlow<Boolean, A> = groupBy(numKeys = 2, extractKey = predicate) + return Pair(grouped.eventsForKey(true), grouped.eventsForKey(false)) +} + +/** + * Returns two new [TFlow]s that contain elements from this [TFlow]; [Pair.first] will contain + * [Left] values, and [Pair.second] will contain [Right] values. + * + * Using this is equivalent to using [filterIsInstance] in conjunction with [map] twice, once for + * [Left]s and once for [Right]s, but is slightly more efficient; specifically, the + * [filterIsInstance] check is only performed once per element. + */ +@ExperimentalFrpApi +fun <A, B> TFlow<Either<A, B>>.partitionEither(): Pair<TFlow<A>, TFlow<B>> { + val (left, right) = partition { it is Left } + return Pair(left.mapCheap { (it as Left).value }, right.mapCheap { (it as Right).value }) +} + +/** + * A mapping from keys of type [K] to [TFlow]s emitting values of type [A]. + * + * @see groupByKey + */ +@ExperimentalFrpApi +class GroupedTFlow<in K, out A> internal constructor(internal val impl: DemuxImpl<K, A>) { + /** + * Returns a [TFlow] that emits values of type [A] that correspond to the given [key]. + * + * @see groupByKey + */ + @ExperimentalFrpApi + fun eventsForKey(key: K): TFlow<A> = TFlowInit(constInit(name = null, impl.eventsForKey(key))) + + /** + * Returns a [TFlow] that emits values of type [A] that correspond to the given [key]. + * + * @see groupByKey + */ + @ExperimentalFrpApi operator fun get(key: K): TFlow<A> = eventsForKey(key) +} + +/** + * Returns a [TFlow] that switches to the [TFlow] contained within this [TState] whenever it + * changes. + * + * This switch does take effect until the *next* transaction after [TState] changes. For a switch + * that takes effect immediately, see [switchPromptly]. + */ +@ExperimentalFrpApi +fun <A> TState<TFlow<A>>.switch(): TFlow<A> { + return TFlowInit( + constInit( + name = null, + switchDeferredImplSingle( + getStorage = { + init.connect(this).getCurrentWithEpoch(this).first.init.connect(this) + }, + getPatches = { + mapImpl({ init.connect(this).changes }) { newFlow -> + newFlow.init.connect(this) + } + }, + ), + ) + ) +} + +/** + * Returns a [TFlow] that switches to the [TFlow] contained within this [TState] whenever it + * changes. + * + * This switch takes effect immediately within the same transaction that [TState] changes. In + * general, you should prefer [switch] over this method. It is both safer and more performant. + */ +// TODO: parameter to handle coincidental emission from both old and new +@ExperimentalFrpApi +fun <A> TState<TFlow<A>>.switchPromptly(): TFlow<A> { + val switchNode = + switchPromptImpl( + getStorage = { + mapOf(Unit to init.connect(this).getCurrentWithEpoch(this).first.init.connect(this)) + }, + getPatches = { + val patches = init.connect(this).changes + mapImpl({ patches }) { newFlow -> mapOf(Unit to just(newFlow.init.connect(this))) } + }, + ) + return TFlowInit(constInit(name = null, mapImpl({ switchNode }) { it.getValue(Unit) })) +} + +/** + * A mutable [TFlow] that provides the ability to [emit] values to the flow, handling backpressure + * by coalescing all emissions into batches. + * + * @see FrpNetwork.coalescingMutableTFlow + */ +@ExperimentalFrpApi +class CoalescingMutableTFlow<In, Out> +internal constructor( + internal val coalesce: (old: Out, new: In) -> Out, + internal val network: Network, + private val getInitialValue: () -> Out, + internal val impl: InputNode<Out> = InputNode(), +) : TFlow<Out>() { + internal val name: String? = null + internal val storage = AtomicReference(false to getInitialValue()) + + override fun toString(): String = "${this::class.simpleName}@$hashString" + + /** + * Inserts [value] into the current batch, enqueueing it for emission from this [TFlow] if not + * already pending. + * + * Backpressure occurs when [emit] is called while the FRP network is currently in a + * transaction; if called multiple times, then emissions will be coalesced into a single batch + * that is then processed when the network is ready. + */ + @ExperimentalFrpApi + fun emit(value: In) { + val (scheduled, _) = storage.getAndUpdate { (_, old) -> true to coalesce(old, value) } + if (!scheduled) { + @Suppress("DeferredResultUnused") + network.transaction { + impl.visit(this, storage.getAndSet(false to getInitialValue()).second) + } + } + } +} + +/** + * A mutable [TFlow] that provides the ability to [emit] values to the flow, handling backpressure + * by suspending the emitter. + * + * @see FrpNetwork.coalescingMutableTFlow + */ +@ExperimentalFrpApi +class MutableTFlow<T> +internal constructor(internal val network: Network, internal val impl: InputNode<T> = InputNode()) : + TFlow<T>() { + internal val name: String? = null + + private val storage = AtomicReference<Job?>(null) + + override fun toString(): String = "${this::class.simpleName}@$hashString" + + /** + * Emits a [value] to this [TFlow], suspending the caller until the FRP transaction containing + * the emission has completed. + */ + @ExperimentalFrpApi + suspend fun emit(value: T) { + coroutineScope { + val newEmit = + async(start = CoroutineStart.LAZY) { + network.transaction { impl.visit(this, value) }.await() + } + val jobOrNull = storage.getAndSet(newEmit) + if (jobOrNull?.isActive != true) { + newEmit.await() + } else { + jobOrNull.join() + } + } + } + + // internal suspend fun emitInCurrentTransaction(value: T, evalScope: EvalScope) { + // if (storage.getAndSet(just(value)) is None) { + // impl.visit(evalScope) + // } + // } +} + +private data object EmptyFlow : TFlow<Nothing>() + +internal class TFlowInit<out A>(val init: Init<TFlowImpl<A>>) : TFlow<A>() { + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +internal val <A> TFlow<A>.init: Init<TFlowImpl<A>> + get() = + when (this) { + is EmptyFlow -> constInit("EmptyFlow", neverImpl) + is TFlowInit -> init + is TFlowLoop -> init + is CoalescingMutableTFlow<*, A> -> constInit(name, impl.activated()) + is MutableTFlow -> constInit(name, impl.activated()) + } + +private inline fun <A> deferInline(crossinline block: suspend InitScope.() -> TFlow<A>): TFlow<A> = + TFlowInit(init(name = null) { block().init.connect(evalScope = this) }) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt new file mode 100644 index 000000000000..a5ec503e5c8d --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/TState.kt @@ -0,0 +1,492 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.internal.DerivedMapCheap +import com.android.systemui.experimental.frp.internal.Init +import com.android.systemui.experimental.frp.internal.InitScope +import com.android.systemui.experimental.frp.internal.Network +import com.android.systemui.experimental.frp.internal.NoScope +import com.android.systemui.experimental.frp.internal.Schedulable +import com.android.systemui.experimental.frp.internal.TFlowImpl +import com.android.systemui.experimental.frp.internal.TStateImpl +import com.android.systemui.experimental.frp.internal.TStateSource +import com.android.systemui.experimental.frp.internal.activated +import com.android.systemui.experimental.frp.internal.cached +import com.android.systemui.experimental.frp.internal.constInit +import com.android.systemui.experimental.frp.internal.constS +import com.android.systemui.experimental.frp.internal.filterNode +import com.android.systemui.experimental.frp.internal.flatMap +import com.android.systemui.experimental.frp.internal.init +import com.android.systemui.experimental.frp.internal.map +import com.android.systemui.experimental.frp.internal.mapCheap +import com.android.systemui.experimental.frp.internal.mapImpl +import com.android.systemui.experimental.frp.internal.util.hashString +import com.android.systemui.experimental.frp.internal.zipStates +import kotlin.reflect.KProperty +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.async +import kotlinx.coroutines.coroutineScope + +/** + * A time-varying value with discrete changes. Essentially, a combination of a [Transactional] that + * holds a value, and a [TFlow] that emits when the value changes. + */ +@ExperimentalFrpApi sealed class TState<out A> + +/** A [TState] that never changes. */ +@ExperimentalFrpApi +fun <A> tStateOf(value: A): TState<A> { + val operatorName = "tStateOf" + val name = "$operatorName($value)" + return TStateInit(constInit(name, constS(name, operatorName, value))) +} + +/** TODO */ +@ExperimentalFrpApi fun <A> Lazy<TState<A>>.defer(): TState<A> = deferInline { value } + +/** TODO */ +@ExperimentalFrpApi +fun <A> FrpDeferredValue<TState<A>>.defer(): TState<A> = deferInline { unwrapped.await() } + +/** TODO */ +@ExperimentalFrpApi +fun <A> deferTState(block: suspend FrpScope.() -> TState<A>): TState<A> = deferInline { + NoScope.runInFrpScope(block) +} + +/** + * Returns a [TState] containing the results of applying [transform] to the value held by the + * original [TState]. + */ +@ExperimentalFrpApi +fun <A, B> TState<A>.map(transform: suspend FrpScope.(A) -> B): TState<B> { + val operatorName = "map" + val name = operatorName + return TStateInit( + init(name) { + init.connect(evalScope = this).map(name, operatorName) { + NoScope.runInFrpScope { transform(it) } + } + } + ) +} + +/** + * Returns a [TState] that transforms the value held inside this [TState] by applying it to the + * [transform]. + * + * Note that unlike [map], the result is not cached. This means that not only should [transform] be + * fast and pure, it should be *monomorphic* (1-to-1). Failure to do this means that [stateChanges] + * for the returned [TState] will operate unexpectedly, emitting at rates that do not reflect an + * observable change to the returned [TState]. + */ +@ExperimentalFrpApi +fun <A, B> TState<A>.mapCheapUnsafe(transform: suspend FrpScope.(A) -> B): TState<B> { + val operatorName = "map" + val name = operatorName + return TStateInit( + init(name) { + init.connect(evalScope = this).mapCheap(name, operatorName) { + NoScope.runInFrpScope { transform(it) } + } + } + ) +} + +/** + * Returns a [TState] by combining the values held inside the given [TState]s by applying them to + * the given function [transform]. + */ +@ExperimentalFrpApi +fun <A, B, C> TState<A>.combineWith( + other: TState<B>, + transform: suspend FrpScope.(A, B) -> C, +): TState<C> = combine(this, other, transform) + +/** + * Splits a [TState] of pairs into a pair of [TFlows][TState], where each returned [TState] holds + * hald of the original. + * + * Shorthand for: + * ```kotlin + * val lefts = map { it.first } + * val rights = map { it.second } + * return Pair(lefts, rights) + * ``` + */ +@ExperimentalFrpApi +fun <A, B> TState<Pair<A, B>>.unzip(): Pair<TState<A>, TState<B>> { + val left = map { it.first } + val right = map { it.second } + return left to right +} + +/** + * Returns a [TState] by combining the values held inside the given [TStates][TState] into a [List]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A> Iterable<TState<A>>.combine(): TState<List<A>> { + val operatorName = "combine" + val name = operatorName + return TStateInit( + init(name) { + zipStates(name, operatorName, states = map { it.init.connect(evalScope = this) }) + } + ) +} + +/** + * Returns a [TState] by combining the values held inside the given [TStates][TState] into a [Map]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <K : Any, A> Map<K, TState<A>>.combine(): TState<Map<K, A>> { + val operatorName = "combine" + val name = operatorName + return TStateInit( + init(name) { + zipStates( + name, + operatorName, + states = mapValues { it.value.init.connect(evalScope = this) }, + ) + } + ) +} + +/** + * Returns a [TState] whose value is generated with [transform] by combining the current values of + * each given [TState]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A, B> Iterable<TState<A>>.combine(transform: suspend FrpScope.(List<A>) -> B): TState<B> = + combine().map(transform) + +/** + * Returns a [TState] by combining the values held inside the given [TState]s into a [List]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A> combine(vararg states: TState<A>): TState<List<A>> = states.asIterable().combine() + +/** + * Returns a [TState] whose value is generated with [transform] by combining the current values of + * each given [TState]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A, B> combine( + vararg states: TState<A>, + transform: suspend FrpScope.(List<A>) -> B, +): TState<B> = states.asIterable().combine(transform) + +/** + * Returns a [TState] whose value is generated with [transform] by combining the current values of + * each given [TState]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A, B, Z> combine( + stateA: TState<A>, + stateB: TState<B>, + transform: suspend FrpScope.(A, B) -> Z, +): TState<Z> { + val operatorName = "combine" + val name = operatorName + return TStateInit( + init(name) { + coroutineScope { + val dl1: Deferred<TStateImpl<A>> = async { + stateA.init.connect(evalScope = this@init) + } + val dl2: Deferred<TStateImpl<B>> = async { + stateB.init.connect(evalScope = this@init) + } + zipStates(name, operatorName, dl1.await(), dl2.await()) { a, b -> + NoScope.runInFrpScope { transform(a, b) } + } + } + } + ) +} + +/** + * Returns a [TState] whose value is generated with [transform] by combining the current values of + * each given [TState]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A, B, C, Z> combine( + stateA: TState<A>, + stateB: TState<B>, + stateC: TState<C>, + transform: suspend FrpScope.(A, B, C) -> Z, +): TState<Z> { + val operatorName = "combine" + val name = operatorName + return TStateInit( + init(name) { + coroutineScope { + val dl1: Deferred<TStateImpl<A>> = async { + stateA.init.connect(evalScope = this@init) + } + val dl2: Deferred<TStateImpl<B>> = async { + stateB.init.connect(evalScope = this@init) + } + val dl3: Deferred<TStateImpl<C>> = async { + stateC.init.connect(evalScope = this@init) + } + zipStates(name, operatorName, dl1.await(), dl2.await(), dl3.await()) { a, b, c -> + NoScope.runInFrpScope { transform(a, b, c) } + } + } + } + ) +} + +/** + * Returns a [TState] whose value is generated with [transform] by combining the current values of + * each given [TState]. + * + * @see TState.combineWith + */ +@ExperimentalFrpApi +fun <A, B, C, D, Z> combine( + stateA: TState<A>, + stateB: TState<B>, + stateC: TState<C>, + stateD: TState<D>, + transform: suspend FrpScope.(A, B, C, D) -> Z, +): TState<Z> { + val operatorName = "combine" + val name = operatorName + return TStateInit( + init(name) { + coroutineScope { + val dl1: Deferred<TStateImpl<A>> = async { + stateA.init.connect(evalScope = this@init) + } + val dl2: Deferred<TStateImpl<B>> = async { + stateB.init.connect(evalScope = this@init) + } + val dl3: Deferred<TStateImpl<C>> = async { + stateC.init.connect(evalScope = this@init) + } + val dl4: Deferred<TStateImpl<D>> = async { + stateD.init.connect(evalScope = this@init) + } + zipStates(name, operatorName, dl1.await(), dl2.await(), dl3.await(), dl4.await()) { + a, + b, + c, + d -> + NoScope.runInFrpScope { transform(a, b, c, d) } + } + } + } + ) +} + +/** Returns a [TState] by applying [transform] to the value held by the original [TState]. */ +@ExperimentalFrpApi +fun <A, B> TState<A>.flatMap(transform: suspend FrpScope.(A) -> TState<B>): TState<B> { + val operatorName = "flatMap" + val name = operatorName + return TStateInit( + init(name) { + init.connect(this).flatMap(name, operatorName) { a -> + NoScope.runInFrpScope { transform(a) }.init.connect(this) + } + } + ) +} + +/** Shorthand for `flatMap { it }` */ +@ExperimentalFrpApi fun <A> TState<TState<A>>.flatten() = flatMap { it } + +/** + * Returns a [TStateSelector] that can be used to efficiently check if the input [TState] is + * currently holding a specific value. + * + * An example: + * ``` + * val lInt: TState<Int> = ... + * val intSelector: TStateSelector<Int> = lInt.selector() + * // Tracks if lInt is holding 1 + * val isOne: TState<Boolean> = intSelector.whenSelected(1) + * ``` + * + * This is semantically equivalent to `val isOne = lInt.map { i -> i == 1 }`, but is significantly + * more efficient; specifically, using [TState.map] in this way incurs a `O(n)` performance hit, + * where `n` is the number of different [TState.map] operations used to track a specific value. + * [selector] internally uses a [HashMap] to lookup the appropriate downstream [TState] to update, + * and so operates in `O(1)`. + * + * Note that the result [TStateSelector] should be cached and re-used to gain the performance + * benefit. + * + * @see groupByKey + */ +@ExperimentalFrpApi +fun <A> TState<A>.selector(numDistinctValues: Int? = null): TStateSelector<A> = + TStateSelector( + this, + stateChanges + .map { new -> mapOf(new to true, sampleDeferred().get() to false) } + .groupByKey(numDistinctValues), + ) + +/** + * Tracks the currently selected value of type [A] from an upstream [TState]. + * + * @see selector + */ +@ExperimentalFrpApi +class TStateSelector<A> +internal constructor( + private val upstream: TState<A>, + private val groupedChanges: GroupedTFlow<A, Boolean>, +) { + /** + * Returns a [TState] that tracks whether the upstream [TState] is currently holding the given + * [value]. + * + * @see selector + */ + @ExperimentalFrpApi + fun whenSelected(value: A): TState<Boolean> { + val operatorName = "TStateSelector#whenSelected" + val name = "$operatorName[$value]" + return TStateInit( + init(name) { + DerivedMapCheap( + name, + operatorName, + upstream = upstream.init.connect(evalScope = this), + changes = groupedChanges.impl.eventsForKey(value), + ) { + it == value + } + } + ) + } + + @ExperimentalFrpApi operator fun get(value: A): TState<Boolean> = whenSelected(value) +} + +/** TODO */ +@ExperimentalFrpApi +class MutableTState<T> +internal constructor(internal val network: Network, initialValue: Deferred<T>) : TState<T>() { + + private val input: CoalescingMutableTFlow<Deferred<T>, Deferred<T>?> = + CoalescingMutableTFlow( + coalesce = { _, new -> new }, + network = network, + getInitialValue = { null }, + ) + + internal val tState = run { + val changes = input.impl + val name = null + val operatorName = "MutableTState" + lateinit var state: TStateSource<T> + val calm: TFlowImpl<T> = + filterNode({ mapImpl(upstream = { changes.activated() }) { it!!.await() } }) { new -> + new != state.getCurrentWithEpoch(evalScope = this).first + } + .cached() + state = TStateSource(name, operatorName, initialValue, calm) + @Suppress("DeferredResultUnused") + network.transaction { + calm.activate(evalScope = this, downstream = Schedulable.S(state))?.let { + (connection, needsEval) -> + state.upstreamConnection = connection + if (needsEval) { + schedule(state) + } + } + } + TStateInit(constInit(name, state)) + } + + /** TODO */ + @ExperimentalFrpApi fun setValue(value: T) = input.emit(CompletableDeferred(value)) + + @ExperimentalFrpApi + fun setValueDeferred(value: FrpDeferredValue<T>) = input.emit(value.unwrapped) +} + +/** A forward-reference to a [TState], allowing for recursive definitions. */ +@ExperimentalFrpApi +class TStateLoop<A> : TState<A>() { + + private val name: String? = null + + private val deferred = CompletableDeferred<TState<A>>() + + internal val init: Init<TStateImpl<A>> = + init(name) { deferred.await().init.connect(evalScope = this) } + + /** The [TState] this [TStateLoop] will forward to. */ + @ExperimentalFrpApi + var loopback: TState<A>? = null + set(value) { + value?.let { + check(deferred.complete(value)) { "TStateLoop.loopback has already been set." } + field = value + } + } + + @ExperimentalFrpApi + operator fun getValue(thisRef: Any?, property: KProperty<*>): TState<A> = this + + @ExperimentalFrpApi + operator fun setValue(thisRef: Any?, property: KProperty<*>, value: TState<A>) { + loopback = value + } + + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +internal class TStateInit<A> internal constructor(internal val init: Init<TStateImpl<A>>) : + TState<A>() { + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +internal val <A> TState<A>.init: Init<TStateImpl<A>> + get() = + when (this) { + is TStateInit -> init + is TStateLoop -> init + is MutableTState -> tState.init + } + +private inline fun <A> deferInline( + crossinline block: suspend InitScope.() -> TState<A> +): TState<A> = TStateInit(init(name = null) { block().init.connect(evalScope = this) }) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt new file mode 100644 index 000000000000..0e7b420afd51 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/Transactional.kt @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.internal.InitScope +import com.android.systemui.experimental.frp.internal.NoScope +import com.android.systemui.experimental.frp.internal.TransactionalImpl +import com.android.systemui.experimental.frp.internal.init +import com.android.systemui.experimental.frp.internal.transactionalImpl +import com.android.systemui.experimental.frp.internal.util.hashString +import kotlinx.coroutines.CompletableDeferred + +/** + * A time-varying value. A [Transactional] encapsulates the idea of some continuous state; each time + * it is "sampled", a new result may be produced. + * + * Because FRP operates over an "idealized" model of Time that can be passed around as a data type, + * [Transactional]s are guaranteed to produce the same result if queried multiple times at the same + * (conceptual) time, in order to preserve _referential transparency_. + */ +@ExperimentalFrpApi +class Transactional<out A> internal constructor(internal val impl: TState<TransactionalImpl<A>>) { + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +/** A constant [Transactional] that produces [value] whenever it is sampled. */ +@ExperimentalFrpApi +fun <A> transactionalOf(value: A): Transactional<A> = + Transactional(tStateOf(TransactionalImpl.Const(CompletableDeferred(value)))) + +/** TODO */ +@ExperimentalFrpApi +fun <A> FrpDeferredValue<Transactional<A>>.defer(): Transactional<A> = deferInline { + unwrapped.await() +} + +/** TODO */ +@ExperimentalFrpApi fun <A> Lazy<Transactional<A>>.defer(): Transactional<A> = deferInline { value } + +/** TODO */ +@ExperimentalFrpApi +fun <A> deferTransactional(block: suspend FrpScope.() -> Transactional<A>): Transactional<A> = + deferInline { + NoScope.runInFrpScope(block) + } + +private inline fun <A> deferInline( + crossinline block: suspend InitScope.() -> Transactional<A> +): Transactional<A> = + Transactional(TStateInit(init(name = null) { block().impl.init.connect(evalScope = this) })) + +/** + * Returns a [Transactional]. The passed [block] will be evaluated on demand at most once per + * transaction; any subsequent sampling within the same transaction will receive a cached value. + */ +@ExperimentalFrpApi +fun <A> transactionally(block: suspend FrpTransactionScope.() -> A): Transactional<A> = + Transactional(tStateOf(transactionalImpl { runInTransactionScope(block) })) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt new file mode 100644 index 000000000000..806234184d81 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/debug/Debug.kt @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.debug + +import com.android.systemui.experimental.frp.MutableTState +import com.android.systemui.experimental.frp.TState +import com.android.systemui.experimental.frp.TStateInit +import com.android.systemui.experimental.frp.TStateLoop +import com.android.systemui.experimental.frp.internal.DerivedFlatten +import com.android.systemui.experimental.frp.internal.DerivedMap +import com.android.systemui.experimental.frp.internal.DerivedMapCheap +import com.android.systemui.experimental.frp.internal.DerivedZipped +import com.android.systemui.experimental.frp.internal.Init +import com.android.systemui.experimental.frp.internal.TStateDerived +import com.android.systemui.experimental.frp.internal.TStateImpl +import com.android.systemui.experimental.frp.internal.TStateSource +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.None +import com.android.systemui.experimental.frp.util.none +import com.android.systemui.experimental.frp.util.orElseGet + +// object IdGen { +// private val counter = AtomicLong() +// fun getId() = counter.getAndIncrement() +// } + +typealias StateGraph = Graph<ActivationInfo> + +sealed class StateInfo( + val name: String, + val value: Maybe<Any?>, + val operator: String, + val epoch: Long?, +) + +class Source(name: String, value: Maybe<Any?>, operator: String, epoch: Long) : + StateInfo(name, value, operator, epoch) + +class Derived( + name: String, + val type: DerivedStateType, + value: Maybe<Any?>, + operator: String, + epoch: Long?, +) : StateInfo(name, value, operator, epoch) + +sealed interface DerivedStateType + +data object Flatten : DerivedStateType + +data class Mapped(val cheap: Boolean) : DerivedStateType + +data object Combine : DerivedStateType + +sealed class InitInfo(val name: String) + +class Uninitialized(name: String) : InitInfo(name) + +class Initialized(val state: StateInfo) : InitInfo(state.name) + +sealed interface ActivationInfo + +class Inactive(val name: String) : ActivationInfo + +class Active(val nodeInfo: StateInfo) : ActivationInfo + +class Dead(val name: String) : ActivationInfo + +data class Edge(val upstream: Any, val downstream: Any, val tag: Any? = null) + +data class Graph<T>(val nodes: Map<Any, T>, val edges: List<Edge>) + +internal fun TState<*>.dump(infoMap: MutableMap<Any, InitInfo>, edges: MutableList<Edge>) { + val init: Init<TStateImpl<Any?>> = + when (this) { + is TStateInit -> init + is TStateLoop -> init + is MutableTState -> tState.init + } + when (val stateMaybe = init.getUnsafe()) { + None -> { + infoMap[this] = Uninitialized(init.name ?: init.toString()) + } + is Just -> { + stateMaybe.value.dump(infoMap, edges) + } + } +} + +internal fun TStateImpl<*>.dump(infoById: MutableMap<Any, InitInfo>, edges: MutableList<Edge>) { + val state = this + if (state in infoById) return + val stateInfo = + when (state) { + is TStateDerived -> { + val type = + when (state) { + is DerivedFlatten -> { + state.upstream.dump(infoById, edges) + edges.add( + Edge(upstream = state.upstream, downstream = state, tag = "outer") + ) + state.upstream + .getUnsafe() + .orElseGet { null } + ?.let { + edges.add( + Edge(upstream = it, downstream = state, tag = "inner") + ) + it.dump(infoById, edges) + } + Flatten + } + is DerivedMap<*, *> -> { + state.upstream.dump(infoById, edges) + edges.add(Edge(upstream = state.upstream, downstream = state)) + Mapped(cheap = false) + } + is DerivedZipped<*, *> -> { + state.upstream.forEach { (key, upstream) -> + edges.add( + Edge(upstream = upstream, downstream = state, tag = "key=$key") + ) + upstream.dump(infoById, edges) + } + Combine + } + } + Derived( + state.name ?: state.operatorName, + type, + state.getCachedUnsafe(), + state.operatorName, + state.invalidatedEpoch, + ) + } + is TStateSource -> + Source( + state.name ?: state.operatorName, + state.getStorageUnsafe(), + state.operatorName, + state.writeEpoch, + ) + is DerivedMapCheap<*, *> -> { + state.upstream.dump(infoById, edges) + edges.add(Edge(upstream = state.upstream, downstream = state)) + val type = Mapped(cheap = true) + Derived( + state.name ?: state.operatorName, + type, + state.getUnsafe(), + state.operatorName, + null, + ) + } + } + infoById[state] = Initialized(stateInfo) +} + +private fun <A> TStateImpl<A>.getUnsafe(): Maybe<A> = + when (this) { + is TStateDerived -> getCachedUnsafe() + is TStateSource -> getStorageUnsafe() + is DerivedMapCheap<*, *> -> none + } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt new file mode 100644 index 000000000000..127abd857fb3 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/BuildScopeImpl.kt @@ -0,0 +1,363 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.CoalescingMutableTFlow +import com.android.systemui.experimental.frp.FrpBuildScope +import com.android.systemui.experimental.frp.FrpCoalescingProducerScope +import com.android.systemui.experimental.frp.FrpDeferredValue +import com.android.systemui.experimental.frp.FrpEffectScope +import com.android.systemui.experimental.frp.FrpNetwork +import com.android.systemui.experimental.frp.FrpProducerScope +import com.android.systemui.experimental.frp.FrpSpec +import com.android.systemui.experimental.frp.FrpStateScope +import com.android.systemui.experimental.frp.FrpTransactionScope +import com.android.systemui.experimental.frp.GroupedTFlow +import com.android.systemui.experimental.frp.LocalFrpNetwork +import com.android.systemui.experimental.frp.MutableTFlow +import com.android.systemui.experimental.frp.TFlow +import com.android.systemui.experimental.frp.TFlowInit +import com.android.systemui.experimental.frp.groupByKey +import com.android.systemui.experimental.frp.init +import com.android.systemui.experimental.frp.internal.util.childScope +import com.android.systemui.experimental.frp.internal.util.launchOnCancel +import com.android.systemui.experimental.frp.internal.util.mapValuesParallel +import com.android.systemui.experimental.frp.launchEffect +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.None +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.map +import java.util.concurrent.atomic.AtomicReference +import kotlin.coroutines.Continuation +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.startCoroutine +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CompletableJob +import kotlinx.coroutines.CoroutineName +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Job +import kotlinx.coroutines.cancel +import kotlinx.coroutines.completeWith +import kotlinx.coroutines.job + +internal class BuildScopeImpl(val stateScope: StateScopeImpl, val coroutineScope: CoroutineScope) : + BuildScope, StateScope by stateScope { + + private val job: Job + get() = coroutineScope.coroutineContext.job + + override val frpScope: FrpBuildScope = FrpBuildScopeImpl() + + override suspend fun <R> runInBuildScope(block: suspend FrpBuildScope.() -> R): R { + val complete = CompletableDeferred<R>(parent = coroutineContext.job) + block.startCoroutine( + frpScope, + object : Continuation<R> { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWith(result: Result<R>) { + complete.completeWith(result) + } + }, + ) + return complete.await() + } + + private fun <A, T : TFlow<A>, S> buildTFlow( + constructFlow: (InputNode<A>) -> Pair<T, S>, + builder: suspend S.() -> Unit, + ): TFlow<A> { + var job: Job? = null + val stopEmitter = newStopEmitter() + val handle = this.job.invokeOnCompletion { stopEmitter.emit(Unit) } + // Create a child scope that will be kept alive beyond the end of this transaction. + val childScope = coroutineScope.childScope() + lateinit var emitter: Pair<T, S> + val inputNode = + InputNode<A>( + activate = { + check(job == null) { "already activated" } + job = + reenterBuildScope(this@BuildScopeImpl, childScope).runInBuildScope { + launchEffect { + builder(emitter.second) + handle.dispose() + stopEmitter.emit(Unit) + } + } + }, + deactivate = { + checkNotNull(job) { "already deactivated" }.cancel() + job = null + }, + ) + emitter = constructFlow(inputNode) + return with(frpScope) { emitter.first.takeUntil(stopEmitter) } + } + + private fun <T> tFlowInternal(builder: suspend FrpProducerScope<T>.() -> Unit): TFlow<T> = + buildTFlow( + constructFlow = { inputNode -> + val flow = MutableTFlow(network, inputNode) + flow to + object : FrpProducerScope<T> { + override suspend fun emit(value: T) { + flow.emit(value) + } + } + }, + builder = builder, + ) + + private fun <In, Out> coalescingTFlowInternal( + getInitialValue: () -> Out, + coalesce: (old: Out, new: In) -> Out, + builder: suspend FrpCoalescingProducerScope<In>.() -> Unit, + ): TFlow<Out> = + buildTFlow( + constructFlow = { inputNode -> + val flow = CoalescingMutableTFlow(coalesce, network, getInitialValue, inputNode) + flow to + object : FrpCoalescingProducerScope<In> { + override fun emit(value: In) { + flow.emit(value) + } + } + }, + builder = builder, + ) + + private fun <A> asyncScopeInternal(block: FrpSpec<A>): Pair<FrpDeferredValue<A>, Job> { + val childScope = mutableChildBuildScope() + return FrpDeferredValue(deferAsync { childScope.runInBuildScope(block) }) to childScope.job + } + + private fun <R> deferredInternal(block: suspend FrpBuildScope.() -> R): FrpDeferredValue<R> = + FrpDeferredValue(deferAsync { runInBuildScope(block) }) + + private fun deferredActionInternal(block: suspend FrpBuildScope.() -> Unit) { + deferAction { runInBuildScope(block) } + } + + private fun <A> TFlow<A>.observeEffectInternal( + context: CoroutineContext, + block: suspend FrpEffectScope.(A) -> Unit, + ): Job { + val subRef = AtomicReference<Maybe<Output<A>>>(null) + val childScope = coroutineScope.childScope() + // When our scope is cancelled, deactivate this observer. + childScope.launchOnCancel(CoroutineName("TFlow.observeEffect")) { + subRef.getAndSet(None)?.let { output -> + if (output is Just) { + @Suppress("DeferredResultUnused") + network.transaction { scheduleDeactivation(output.value) } + } + } + } + // Defer so that we don't suspend the caller + deferAction { + val outputNode = + Output<A>( + context = context, + onDeath = { subRef.getAndSet(None)?.let { childScope.cancel() } }, + onEmit = { output -> + if (subRef.get() is Just) { + // Not cancelled, safe to emit + val coroutine: suspend FrpEffectScope.() -> Unit = { block(output) } + val complete = CompletableDeferred<Unit>(parent = coroutineContext.job) + coroutine.startCoroutine( + object : FrpEffectScope, FrpTransactionScope by frpScope { + override val frpCoroutineScope: CoroutineScope = childScope + override val frpNetwork: FrpNetwork = + LocalFrpNetwork(network, childScope, endSignal) + }, + completion = + object : Continuation<Unit> { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWith(result: Result<Unit>) { + complete.completeWith(result) + } + }, + ) + complete.await() + } + }, + ) + with(frpScope) { this@observeEffectInternal.takeUntil(endSignal) } + .init + .connect(evalScope = stateScope.evalScope) + .activate(evalScope = stateScope.evalScope, outputNode.schedulable) + ?.let { (conn, needsEval) -> + outputNode.upstream = conn + if (!subRef.compareAndSet(null, just(outputNode))) { + // Job's already been cancelled, schedule deactivation + scheduleDeactivation(outputNode) + } else if (needsEval) { + outputNode.schedule(evalScope = stateScope.evalScope) + } + } ?: childScope.cancel() + } + return childScope.coroutineContext.job + } + + private fun <A, B> TFlow<A>.mapBuildInternal( + transform: suspend FrpBuildScope.(A) -> B + ): TFlow<B> { + val childScope = coroutineScope.childScope() + return TFlowInit( + constInit( + "mapBuild", + mapImpl({ init.connect(evalScope = this) }) { spec -> + reenterBuildScope(outerScope = this@BuildScopeImpl, childScope) + .runInBuildScope { + val (result, _) = asyncScope { transform(spec) } + result.get() + } + } + .cached(), + ) + ) + } + + private fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestForKeyInternal( + init: FrpDeferredValue<Map<K, FrpSpec<B>>>, + numKeys: Int?, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> { + val eventsByKey: GroupedTFlow<K, Maybe<FrpSpec<A>>> = groupByKey(numKeys) + val initOut: Deferred<Map<K, B>> = deferAsync { + init.unwrapped.await().mapValuesParallel { (k, spec) -> + val newEnd = with(frpScope) { eventsByKey[k].skipNext() } + val newScope = childBuildScope(newEnd) + newScope.runInBuildScope(spec) + } + } + val childScope = coroutineScope.childScope() + val changesNode: TFlowImpl<Map<K, Maybe<A>>> = + mapImpl(upstream = { this@applyLatestForKeyInternal.init.connect(evalScope = this) }) { + upstreamMap -> + reenterBuildScope(this@BuildScopeImpl, childScope).run { + upstreamMap.mapValuesParallel { (k: K, ma: Maybe<FrpSpec<A>>) -> + ma.map { spec -> + val newEnd = with(frpScope) { eventsByKey[k].skipNext() } + val newScope = childBuildScope(newEnd) + newScope.runInBuildScope(spec) + } + } + } + } + val changes: TFlow<Map<K, Maybe<A>>> = + TFlowInit(constInit("applyLatestForKey", changesNode.cached())) + // Ensure effects are observed; otherwise init will stay alive longer than expected + changes.observeEffectInternal(EmptyCoroutineContext) {} + return changes to FrpDeferredValue(initOut) + } + + private fun newStopEmitter(): CoalescingMutableTFlow<Unit, Unit> = + CoalescingMutableTFlow( + coalesce = { _, _: Unit -> }, + network = network, + getInitialValue = {}, + ) + + private suspend fun childBuildScope(newEnd: TFlow<Any>): BuildScopeImpl { + val newCoroutineScope: CoroutineScope = coroutineScope.childScope() + return BuildScopeImpl( + stateScope = stateScope.childStateScope(newEnd), + coroutineScope = newCoroutineScope, + ) + .apply { + // Ensure that once this transaction is done, the new child scope enters the + // completing state (kept alive so long as there are child jobs). + scheduleOutput( + OneShot { + // TODO: don't like this cast + (newCoroutineScope.coroutineContext.job as CompletableJob).complete() + } + ) + runInBuildScope { endSignal.nextOnly().observe { newCoroutineScope.cancel() } } + } + } + + private fun mutableChildBuildScope(): BuildScopeImpl { + val stopEmitter = newStopEmitter() + val childScope = coroutineScope.childScope() + childScope.coroutineContext.job.invokeOnCompletion { stopEmitter.emit(Unit) } + // Ensure that once this transaction is done, the new child scope enters the completing + // state (kept alive so long as there are child jobs). + scheduleOutput( + OneShot { + // TODO: don't like this cast + (childScope.coroutineContext.job as CompletableJob).complete() + } + ) + return BuildScopeImpl( + stateScope = StateScopeImpl(evalScope = stateScope.evalScope, endSignal = stopEmitter), + coroutineScope = childScope, + ) + } + + private inner class FrpBuildScopeImpl : FrpBuildScope, FrpStateScope by stateScope.frpScope { + + override fun <T> tFlow(builder: suspend FrpProducerScope<T>.() -> Unit): TFlow<T> = + tFlowInternal(builder) + + override fun <In, Out> coalescingTFlow( + getInitialValue: () -> Out, + coalesce: (old: Out, new: In) -> Out, + builder: suspend FrpCoalescingProducerScope<In>.() -> Unit, + ): TFlow<Out> = coalescingTFlowInternal(getInitialValue, coalesce, builder) + + override fun <A> asyncScope(block: FrpSpec<A>): Pair<FrpDeferredValue<A>, Job> = + asyncScopeInternal(block) + + override fun <R> deferredBuildScope( + block: suspend FrpBuildScope.() -> R + ): FrpDeferredValue<R> = deferredInternal(block) + + override fun deferredBuildScopeAction(block: suspend FrpBuildScope.() -> Unit) = + deferredActionInternal(block) + + override fun <A> TFlow<A>.observe( + coroutineContext: CoroutineContext, + block: suspend FrpEffectScope.(A) -> Unit, + ): Job = observeEffectInternal(coroutineContext, block) + + override fun <A, B> TFlow<A>.mapBuild(transform: suspend FrpBuildScope.(A) -> B): TFlow<B> = + mapBuildInternal(transform) + + override fun <K, A, B> TFlow<Map<K, Maybe<FrpSpec<A>>>>.applyLatestSpecForKey( + initialSpecs: FrpDeferredValue<Map<K, FrpSpec<B>>>, + numKeys: Int?, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> = + applyLatestForKeyInternal(initialSpecs, numKeys) + } +} + +private fun EvalScope.reenterBuildScope( + outerScope: BuildScopeImpl, + coroutineScope: CoroutineScope, +) = + BuildScopeImpl( + stateScope = StateScopeImpl(evalScope = this, endSignal = outerScope.endSignal), + coroutineScope, + ) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt new file mode 100644 index 000000000000..f72ba5fdfc6f --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/DeferScope.kt @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.asyncImmediate +import com.android.systemui.experimental.frp.internal.util.launchImmediate +import kotlinx.coroutines.CoroutineName +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Job +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.isActive + +internal typealias DeferScope = CoroutineScope + +internal inline fun DeferScope.deferAction( + start: CoroutineStart = CoroutineStart.UNDISPATCHED, + crossinline block: suspend () -> Unit, +): Job { + check(isActive) { "Cannot perform deferral, scope already closed." } + return launchImmediate(start, CoroutineName("deferAction")) { block() } +} + +internal inline fun <R> DeferScope.deferAsync( + start: CoroutineStart = CoroutineStart.UNDISPATCHED, + crossinline block: suspend () -> R, +): Deferred<R> { + check(isActive) { "Cannot perform deferral, scope already closed." } + return asyncImmediate(start, CoroutineName("deferAsync")) { block() } +} + +internal suspend inline fun <A> deferScope(noinline block: suspend DeferScope.() -> A): A = + coroutineScope(block) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt new file mode 100644 index 000000000000..418220f2da4d --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Demux.kt @@ -0,0 +1,349 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress("NOTHING_TO_INLINE") + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.hashString +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.flatMap +import com.android.systemui.experimental.frp.util.getMaybe +import java.util.concurrent.ConcurrentHashMap +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.async +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock + +internal class DemuxNode<K, A>( + private val branchNodeByKey: ConcurrentHashMap<K, DemuxBranchNode<K, A>>, + val lifecycle: DemuxLifecycle<K, A>, + private val spec: DemuxActivator<K, A>, +) : SchedulableNode { + + val schedulable = Schedulable.N(this) + + inline val mutex + get() = lifecycle.mutex + + lateinit var upstreamConnection: NodeConnection<Map<K, A>> + + fun getAndMaybeAddDownstream(key: K): DemuxBranchNode<K, A> = + branchNodeByKey.getOrPut(key) { DemuxBranchNode(key, this) } + + override suspend fun schedule(evalScope: EvalScope) { + val upstreamResult = upstreamConnection.getPushEvent(evalScope) + if (upstreamResult is Just) { + coroutineScope { + val outerScope = this + mutex.withLock { + coroutineScope { + for ((key, _) in upstreamResult.value) { + launch { + branchNodeByKey[key]?.let { branch -> + outerScope.launch { branch.schedule(evalScope) } + } + } + } + } + } + } + } + } + + override suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) { + coroutineScope { + mutex.withLock { + for ((_, branchNode) in branchNodeByKey) { + branchNode.downstreamSet.adjustDirectUpstream( + coroutineScope = this, + scheduler, + oldDepth, + newDepth, + ) + } + } + } + } + + override suspend fun moveIndirectUpstreamToDirect( + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectSet: Set<MuxDeferredNode<*, *>>, + newDirectDepth: Int, + ) { + coroutineScope { + mutex.withLock { + for ((_, branchNode) in branchNodeByKey) { + branchNode.downstreamSet.moveIndirectUpstreamToDirect( + coroutineScope = this, + scheduler, + oldIndirectDepth, + oldIndirectSet, + newDirectDepth, + ) + } + } + } + } + + override suspend fun adjustIndirectUpstream( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) { + coroutineScope { + mutex.withLock { + for ((_, branchNode) in branchNodeByKey) { + branchNode.downstreamSet.adjustIndirectUpstream( + coroutineScope = this, + scheduler, + oldDepth, + newDepth, + removals, + additions, + ) + } + } + } + } + + override suspend fun moveDirectUpstreamToIndirect( + scheduler: Scheduler, + oldDirectDepth: Int, + newIndirectDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) { + coroutineScope { + mutex.withLock { + for ((_, branchNode) in branchNodeByKey) { + branchNode.downstreamSet.moveDirectUpstreamToIndirect( + coroutineScope = this, + scheduler, + oldDirectDepth, + newIndirectDepth, + newIndirectSet, + ) + } + } + } + } + + override suspend fun removeIndirectUpstream( + scheduler: Scheduler, + depth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) { + coroutineScope { + mutex.withLock { + lifecycle.lifecycleState = DemuxLifecycleState.Dead + for ((_, branchNode) in branchNodeByKey) { + branchNode.downstreamSet.removeIndirectUpstream( + coroutineScope = this, + scheduler, + depth, + indirectSet, + ) + } + } + } + } + + override suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) { + coroutineScope { + mutex.withLock { + lifecycle.lifecycleState = DemuxLifecycleState.Dead + for ((_, branchNode) in branchNodeByKey) { + branchNode.downstreamSet.removeDirectUpstream( + coroutineScope = this, + scheduler, + depth, + ) + } + } + } + } + + suspend fun removeDownstreamAndDeactivateIfNeeded(key: K) { + val deactivate = + mutex.withLock { + branchNodeByKey.remove(key) + branchNodeByKey.isEmpty() + } + if (deactivate) { + // No need for mutex here; no more concurrent changes to can occur during this phase + lifecycle.lifecycleState = DemuxLifecycleState.Inactive(spec) + upstreamConnection.removeDownstreamAndDeactivateIfNeeded(downstream = schedulable) + } + } +} + +internal class DemuxBranchNode<K, A>(val key: K, private val demuxNode: DemuxNode<K, A>) : + PushNode<A> { + + private val mutex = Mutex() + + val downstreamSet = DownstreamSet() + + override val depthTracker: DepthTracker + get() = demuxNode.upstreamConnection.depthTracker + + override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean = + demuxNode.upstreamConnection.hasCurrentValue(transactionStore) + + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> = + demuxNode.upstreamConnection.getPushEvent(evalScope).flatMap { it.getMaybe(key) } + + override suspend fun addDownstream(downstream: Schedulable) { + mutex.withLock { downstreamSet.add(downstream) } + } + + override suspend fun removeDownstream(downstream: Schedulable) { + mutex.withLock { downstreamSet.remove(downstream) } + } + + override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) { + val canDeactivate = + mutex.withLock { + downstreamSet.remove(downstream) + downstreamSet.isEmpty() + } + if (canDeactivate) { + demuxNode.removeDownstreamAndDeactivateIfNeeded(key) + } + } + + override suspend fun deactivateIfNeeded() { + if (mutex.withLock { downstreamSet.isEmpty() }) { + demuxNode.removeDownstreamAndDeactivateIfNeeded(key) + } + } + + override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) { + if (mutex.withLock { downstreamSet.isEmpty() }) { + evalScope.scheduleDeactivation(this) + } + } + + suspend fun schedule(evalScope: EvalScope) { + if (!coroutineScope { mutex.withLock { scheduleAll(downstreamSet, evalScope) } }) { + evalScope.scheduleDeactivation(this) + } + } +} + +internal fun <K, A> DemuxImpl( + upstream: suspend EvalScope.() -> TFlowImpl<Map<K, A>>, + numKeys: Int?, +): DemuxImpl<K, A> = + DemuxImpl( + DemuxLifecycle( + object : DemuxActivator<K, A> { + override suspend fun activate( + evalScope: EvalScope, + lifecycle: DemuxLifecycle<K, A>, + ): Pair<DemuxNode<K, A>, Boolean>? { + val dmux = DemuxNode(ConcurrentHashMap(numKeys ?: 16), lifecycle, this) + return upstream + .invoke(evalScope) + .activate(evalScope, downstream = dmux.schedulable) + ?.let { (conn, needsEval) -> + dmux.apply { upstreamConnection = conn } to needsEval + } + } + } + ) + ) + +internal class DemuxImpl<in K, out A>(private val dmux: DemuxLifecycle<K, A>) { + fun eventsForKey(key: K): TFlowImpl<A> = TFlowCheap { downstream -> + dmux.activate(evalScope = this, key)?.let { (branchNode, needsEval) -> + branchNode.addDownstream(downstream) + val branchNeedsEval = needsEval && branchNode.getPushEvent(evalScope = this) is Just + ActivationResult( + connection = NodeConnection(branchNode, branchNode), + needsEval = branchNeedsEval, + ) + } + } +} + +internal class DemuxLifecycle<K, A>(@Volatile var lifecycleState: DemuxLifecycleState<K, A>) { + val mutex = Mutex() + + override fun toString(): String = "TFlowDmuxState[$hashString][$lifecycleState][$mutex]" + + suspend fun activate(evalScope: EvalScope, key: K): Pair<DemuxBranchNode<K, A>, Boolean>? = + coroutineScope { + mutex + .withLock { + when (val state = lifecycleState) { + is DemuxLifecycleState.Dead -> null + is DemuxLifecycleState.Active -> + state.node.getAndMaybeAddDownstream(key) to + async { + state.node.upstreamConnection.hasCurrentValue( + evalScope.transactionStore + ) + } + is DemuxLifecycleState.Inactive -> { + state.spec + .activate(evalScope, this@DemuxLifecycle) + .also { result -> + lifecycleState = + if (result == null) { + DemuxLifecycleState.Dead + } else { + DemuxLifecycleState.Active(result.first) + } + } + ?.let { (node, needsEval) -> + node.getAndMaybeAddDownstream(key) to + CompletableDeferred(needsEval) + } + } + } + } + ?.let { (branch, result) -> branch to result.await() } + } +} + +internal sealed interface DemuxLifecycleState<out K, out A> { + class Inactive<K, A>(val spec: DemuxActivator<K, A>) : DemuxLifecycleState<K, A> { + override fun toString(): String = "Inactive" + } + + class Active<K, A>(val node: DemuxNode<K, A>) : DemuxLifecycleState<K, A> { + override fun toString(): String = "Active(node=$node)" + } + + data object Dead : DemuxLifecycleState<Nothing, Nothing> +} + +internal interface DemuxActivator<K, A> { + suspend fun activate( + evalScope: EvalScope, + lifecycle: DemuxLifecycle<K, A>, + ): Pair<DemuxNode<K, A>, Boolean>? +} + +internal inline fun <K, A> DemuxLifecycle(onSubscribe: DemuxActivator<K, A>) = + DemuxLifecycle(DemuxLifecycleState.Inactive(onSubscribe)) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt new file mode 100644 index 000000000000..38bc22f1df80 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/EvalScopeImpl.kt @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.FrpDeferredValue +import com.android.systemui.experimental.frp.FrpTransactionScope +import com.android.systemui.experimental.frp.TFlow +import com.android.systemui.experimental.frp.TFlowInit +import com.android.systemui.experimental.frp.TFlowLoop +import com.android.systemui.experimental.frp.TState +import com.android.systemui.experimental.frp.TStateInit +import com.android.systemui.experimental.frp.Transactional +import com.android.systemui.experimental.frp.emptyTFlow +import com.android.systemui.experimental.frp.init +import com.android.systemui.experimental.frp.mapCheap +import com.android.systemui.experimental.frp.switch +import kotlin.coroutines.Continuation +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.startCoroutine +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.completeWith +import kotlinx.coroutines.job + +internal class EvalScopeImpl(networkScope: NetworkScope, deferScope: DeferScope) : + EvalScope, NetworkScope by networkScope, DeferScope by deferScope { + + private suspend fun <A> Transactional<A>.sample(): A = + impl.sample().sample(this@EvalScopeImpl).await() + + private suspend fun <A> TState<A>.sample(): A = + init.connect(evalScope = this@EvalScopeImpl).getCurrentWithEpoch(this@EvalScopeImpl).first + + private val <A> Transactional<A>.deferredValue: FrpDeferredValue<A> + get() = FrpDeferredValue(deferAsync { sample() }) + + private val <A> TState<A>.deferredValue: FrpDeferredValue<A> + get() = FrpDeferredValue(deferAsync { sample() }) + + private val nowInternal: TFlow<Unit> by lazy { + var result by TFlowLoop<Unit>() + result = + TStateInit( + constInit( + "now", + mkState( + "now", + "now", + this, + { result.mapCheap { emptyTFlow }.init.connect(evalScope = this) }, + CompletableDeferred( + TFlowInit( + constInit( + "now", + TFlowCheap { + ActivationResult( + connection = NodeConnection(AlwaysNode, AlwaysNode), + needsEval = true, + ) + }, + ) + ) + ), + ), + ) + ) + .switch() + result + } + + private fun <R> deferredInternal( + block: suspend FrpTransactionScope.() -> R + ): FrpDeferredValue<R> = FrpDeferredValue(deferAsync { runInTransactionScope(block) }) + + override suspend fun <R> runInTransactionScope(block: suspend FrpTransactionScope.() -> R): R { + val complete = CompletableDeferred<R>(parent = coroutineContext.job) + block.startCoroutine( + frpScope, + object : Continuation<R> { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWith(result: Result<R>) { + complete.completeWith(result) + } + }, + ) + return complete.await() + } + + override val frpScope: FrpTransactionScope = FrpTransactionScopeImpl() + + inner class FrpTransactionScopeImpl : FrpTransactionScope { + override fun <A> Transactional<A>.sampleDeferred(): FrpDeferredValue<A> = deferredValue + + override fun <A> TState<A>.sampleDeferred(): FrpDeferredValue<A> = deferredValue + + override fun <R> deferredTransactionScope( + block: suspend FrpTransactionScope.() -> R + ): FrpDeferredValue<R> = deferredInternal(block) + + override val now: TFlow<Unit> + get() = nowInternal + } +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt new file mode 100644 index 000000000000..4f2a76999bb6 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/FilterNode.kt @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.none + +internal inline fun <A, B> mapMaybeNode( + crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>, + crossinline f: suspend EvalScope.(A) -> Maybe<B>, +): TFlowImpl<B> { + return DemuxImpl( + { + mapImpl(getPulse) { + val maybeResult = f(it) + if (maybeResult is Just) { + mapOf(Unit to maybeResult.value) + } else { + emptyMap() + } + } + }, + numKeys = 1, + ) + .eventsForKey(Unit) +} + +internal inline fun <A> filterNode( + crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>, + crossinline f: suspend EvalScope.(A) -> Boolean, +): TFlowImpl<A> = mapMaybeNode(getPulse) { if (f(it)) just(it) else none } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt new file mode 100644 index 000000000000..9425870738fc --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Graph.kt @@ -0,0 +1,530 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Bag +import java.util.TreeMap +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch + +/** + * Tracks all upstream connections for Mux nodes. + * + * Connections come in two flavors: + * 1. **DIRECT** :: The upstream node may emit events that would cause the owner of this depth + * tracker to also emit. + * 2. **INDIRECT** :: The upstream node will not emit events, but may start doing so in a future + * transaction (at which point its depth will change to DIRECT). + * + * DIRECT connections are the standard, active connections that propagate events through the graph. + * They are used to calculate the evaluation depth of a node, so that it is only visited once it is + * certain that all DIRECT upstream connections have already been visited (or are not emitting in + * the current transaction). + * + * It is *invalid* for a node to be directly upstream of itself. Doing so is an error. + * + * INDIRECT connections identify nodes that are still "alive" (should not be garbage-collected) but + * are presently "dormant". This only occurs when a MuxDeferredNode has nothing switched-in, but is + * still connected to its "patches" upstream node, implying that something *may* be switched-in at a + * later time. + * + * It is *invalid* for a node to be indirectly upstream of itself. These connections are + * automatically filtered out. + * + * When there are no connections, either DIRECT or INDIRECT, a node *dies* and all incoming/outgoing + * connections are freed so that it can be garbage-collected. + * + * Note that there is an edge case where a MuxDeferredNode is connected to itself via its "patches" + * upstream node. In this case: + * 1. If the node has switched-in upstream nodes, then this is perfectly valid. Downstream nodes + * will see a direct connection to this MuxDeferredNode. + * 2. Otherwise, the node would normally be considered "dormant" and downstream nodes would see an + * indirect connection. However, because a node cannot be indirectly upstream of itself, then the + * MuxDeferredNode sees no connection via its patches upstream node, and so is considered "dead". + * Conceptually, this makes some sense: The only way for this recursive MuxDeferredNode to become + * non-dormant is to switch some upstream nodes back in, but since the patches node is itself, + * this will never happen. + * + * This behavior underpins the recursive definition of `nextOnly`. + */ +internal class DepthTracker { + + @Volatile var snapshotIsDirect = true + @Volatile private var snapshotIsIndirectRoot = false + + private inline val snapshotIsIndirect: Boolean + get() = !snapshotIsDirect + + @Volatile var snapshotIndirectDepth: Int = 0 + @Volatile var snapshotDirectDepth: Int = 0 + + private val _snapshotIndirectRoots = HashSet<MuxDeferredNode<*, *>>() + val snapshotIndirectRoots + get() = _snapshotIndirectRoots.toSet() + + private val indirectAdditions = HashSet<MuxDeferredNode<*, *>>() + private val indirectRemovals = HashSet<MuxDeferredNode<*, *>>() + private val dirty_directUpstreamDepths = TreeMap<Int, Int>() + private val dirty_indirectUpstreamDepths = TreeMap<Int, Int>() + private val dirty_indirectUpstreamRoots = Bag<MuxDeferredNode<*, *>>() + @Volatile var dirty_directDepth = 0 + @Volatile private var dirty_indirectDepth = 0 + @Volatile private var dirty_depthIsDirect = true + @Volatile private var dirty_isIndirectRoot = false + + suspend fun schedule(scheduler: Scheduler, node: MuxNode<*, *, *>) { + if (dirty_depthIsDirect) { + scheduler.schedule(dirty_directDepth, node) + } else { + scheduler.scheduleIndirect(dirty_indirectDepth, node) + } + } + + // only used by MuxDeferred + // and only when there is a direct connection to the patch node + fun setIsIndirectRoot(isRoot: Boolean): Boolean { + if (isRoot != dirty_isIndirectRoot) { + dirty_isIndirectRoot = isRoot + return !dirty_depthIsDirect + } + return false + } + + // adds an upstream connection, and recalcs depth + // returns true if depth has changed + fun addDirectUpstream(oldDepth: Int?, newDepth: Int): Boolean { + if (oldDepth != null) { + dirty_directUpstreamDepths.compute(oldDepth) { _, count -> + count?.minus(1)?.takeIf { it > 0 } + } + } + dirty_directUpstreamDepths.compute(newDepth) { _, current -> current?.plus(1) ?: 1 } + return recalcDepth() + } + + private fun recalcDepth(): Boolean { + val newDepth = + dirty_directUpstreamDepths.lastEntry()?.let { (maxDepth, _) -> maxDepth + 1 } ?: 0 + + val isDirect = dirty_directUpstreamDepths.isNotEmpty() + val isDirectChanged = dirty_depthIsDirect != isDirect + dirty_depthIsDirect = isDirect + + return (newDepth != dirty_directDepth).also { dirty_directDepth = newDepth } or + isDirectChanged + } + + private fun recalcIndirDepth(): Boolean { + val newDepth = + dirty_indirectUpstreamDepths.lastEntry()?.let { (maxDepth, _) -> maxDepth + 1 } ?: 0 + return (!dirty_depthIsDirect && !dirty_isIndirectRoot && newDepth != dirty_indirectDepth) + .also { dirty_indirectDepth = newDepth } + } + + fun removeDirectUpstream(depth: Int): Boolean { + dirty_directUpstreamDepths.compute(depth) { _, count -> count?.minus(1)?.takeIf { it > 0 } } + return recalcDepth() + } + + fun addIndirectUpstream(oldDepth: Int?, newDepth: Int): Boolean = + if (oldDepth == newDepth) { + false + } else { + if (oldDepth != null) { + dirty_indirectUpstreamDepths.compute(oldDepth) { _, current -> + current?.minus(1)?.takeIf { it > 0 } + } + } + dirty_indirectUpstreamDepths.compute(newDepth) { _, current -> current?.plus(1) ?: 1 } + recalcIndirDepth() + } + + fun removeIndirectUpstream(depth: Int): Boolean { + dirty_indirectUpstreamDepths.compute(depth) { _, current -> + current?.minus(1)?.takeIf { it > 0 } + } + return recalcIndirDepth() + } + + fun updateIndirectRoots( + additions: Set<MuxDeferredNode<*, *>>? = null, + removals: Set<MuxDeferredNode<*, *>>? = null, + butNot: MuxDeferredNode<*, *>? = null, + ): Boolean { + val addsChanged = + additions + ?.let { dirty_indirectUpstreamRoots.addAll(additions, butNot) } + ?.let { + indirectAdditions.addAll(indirectRemovals.applyRemovalDiff(it)) + true + } ?: false + val removalsChanged = + removals + ?.let { dirty_indirectUpstreamRoots.removeAll(removals) } + ?.let { + indirectRemovals.addAll(indirectAdditions.applyRemovalDiff(it)) + true + } ?: false + return (!dirty_depthIsDirect && (addsChanged || removalsChanged)) + } + + private fun <T> HashSet<T>.applyRemovalDiff(changeSet: Set<T>): Set<T> { + val remainder = HashSet<T>() + for (element in changeSet) { + if (!add(element)) { + remainder.add(element) + } + } + return remainder + } + + suspend fun propagateChanges(scheduler: Scheduler, muxNode: MuxNode<*, *, *>) { + if (isDirty()) { + schedule(scheduler, muxNode) + } + } + + fun applyChanges( + coroutineScope: CoroutineScope, + scheduler: Scheduler, + downstreamSet: DownstreamSet, + muxNode: MuxNode<*, *, *>, + ) { + when { + dirty_depthIsDirect -> { + if (snapshotIsDirect) { + downstreamSet.adjustDirectUpstream( + coroutineScope, + scheduler, + oldDepth = snapshotDirectDepth, + newDepth = dirty_directDepth, + ) + } else { + downstreamSet.moveIndirectUpstreamToDirect( + coroutineScope, + scheduler, + oldIndirectDepth = snapshotIndirectDepth, + oldIndirectSet = + buildSet { + addAll(snapshotIndirectRoots) + if (snapshotIsIndirectRoot) { + add(muxNode as MuxDeferredNode<*, *>) + } + }, + newDirectDepth = dirty_directDepth, + ) + } + } + + dirty_hasIndirectUpstream() || dirty_isIndirectRoot -> { + if (snapshotIsDirect) { + downstreamSet.moveDirectUpstreamToIndirect( + coroutineScope, + scheduler, + oldDirectDepth = snapshotDirectDepth, + newIndirectDepth = dirty_indirectDepth, + newIndirectSet = + buildSet { + addAll(dirty_indirectUpstreamRoots) + if (dirty_isIndirectRoot) { + add(muxNode as MuxDeferredNode<*, *>) + } + }, + ) + } else { + downstreamSet.adjustIndirectUpstream( + coroutineScope, + scheduler, + oldDepth = snapshotIndirectDepth, + newDepth = dirty_indirectDepth, + removals = + buildSet { + addAll(indirectRemovals) + if (snapshotIsIndirectRoot && !dirty_isIndirectRoot) { + add(muxNode as MuxDeferredNode<*, *>) + } + }, + additions = + buildSet { + addAll(indirectAdditions) + if (!snapshotIsIndirectRoot && dirty_isIndirectRoot) { + add(muxNode as MuxDeferredNode<*, *>) + } + }, + ) + } + } + + else -> { + // die + muxNode.lifecycle.lifecycleState = MuxLifecycleState.Dead + + if (snapshotIsDirect) { + downstreamSet.removeDirectUpstream( + coroutineScope, + scheduler, + depth = snapshotDirectDepth, + ) + } else { + downstreamSet.removeIndirectUpstream( + coroutineScope, + scheduler, + depth = snapshotIndirectDepth, + indirectSet = + buildSet { + addAll(snapshotIndirectRoots) + if (snapshotIsIndirectRoot) { + add(muxNode as MuxDeferredNode<*, *>) + } + }, + ) + } + downstreamSet.clear() + } + } + reset() + } + + fun dirty_hasDirectUpstream(): Boolean = dirty_directUpstreamDepths.isNotEmpty() + + private fun dirty_hasIndirectUpstream(): Boolean = dirty_indirectUpstreamRoots.isNotEmpty() + + override fun toString(): String = + "DepthTracker(" + + "sIsDirect=$snapshotIsDirect, " + + "sDirectDepth=$snapshotDirectDepth, " + + "sIndirectDepth=$snapshotIndirectDepth, " + + "sIndirectRoots=$snapshotIndirectRoots, " + + "dIsIndirectRoot=$dirty_isIndirectRoot, " + + "dDirectDepths=$dirty_directUpstreamDepths, " + + "dIndirectDepths=$dirty_indirectUpstreamDepths, " + + "dIndirectRoots=$dirty_indirectUpstreamRoots" + + ")" + + fun reset() { + snapshotIsDirect = dirty_hasDirectUpstream() + snapshotDirectDepth = dirty_directDepth + snapshotIndirectDepth = dirty_indirectDepth + snapshotIsIndirectRoot = dirty_isIndirectRoot + if (indirectAdditions.isNotEmpty() || indirectRemovals.isNotEmpty()) { + _snapshotIndirectRoots.clear() + _snapshotIndirectRoots.addAll(dirty_indirectUpstreamRoots) + } + indirectAdditions.clear() + indirectRemovals.clear() + // check(!isDirty()) { "should not be dirty after a reset" } + } + + fun isDirty(): Boolean = + when { + snapshotIsDirect -> !dirty_depthIsDirect || snapshotDirectDepth != dirty_directDepth + snapshotIsIndirectRoot -> dirty_depthIsDirect || !dirty_isIndirectRoot + else -> + dirty_depthIsDirect || + dirty_isIndirectRoot || + snapshotIndirectDepth != dirty_indirectDepth || + indirectAdditions.isNotEmpty() || + indirectRemovals.isNotEmpty() + } + + fun dirty_depthIncreased(): Boolean = + snapshotDirectDepth < dirty_directDepth || snapshotIsIndirect && dirty_hasDirectUpstream() +} + +/** + * Tracks downstream nodes to be scheduled when the owner of this DownstreamSet produces a value in + * a transaction. + */ +internal class DownstreamSet { + + val outputs = HashSet<Output<*>>() + val stateWriters = mutableListOf<TStateSource<*>>() + val muxMovers = HashSet<MuxDeferredNode<*, *>>() + val nodes = HashSet<SchedulableNode>() + + fun add(schedulable: Schedulable) { + when (schedulable) { + is Schedulable.S -> stateWriters.add(schedulable.state) + is Schedulable.M -> muxMovers.add(schedulable.muxMover) + is Schedulable.N -> nodes.add(schedulable.node) + is Schedulable.O -> outputs.add(schedulable.output) + } + } + + fun remove(schedulable: Schedulable) { + when (schedulable) { + is Schedulable.S -> error("WTF: latches are never removed") + is Schedulable.M -> muxMovers.remove(schedulable.muxMover) + is Schedulable.N -> nodes.remove(schedulable.node) + is Schedulable.O -> outputs.remove(schedulable.output) + } + } + + fun adjustDirectUpstream( + coroutineScope: CoroutineScope, + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + ) = + coroutineScope.run { + for (node in nodes) { + launch { node.adjustDirectUpstream(scheduler, oldDepth, newDepth) } + } + } + + fun moveIndirectUpstreamToDirect( + coroutineScope: CoroutineScope, + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectSet: Set<MuxDeferredNode<*, *>>, + newDirectDepth: Int, + ) = + coroutineScope.run { + for (node in nodes) { + launch { + node.moveIndirectUpstreamToDirect( + scheduler, + oldIndirectDepth, + oldIndirectSet, + newDirectDepth, + ) + } + } + for (mover in muxMovers) { + launch { + mover.moveIndirectPatchNodeToDirect(scheduler, oldIndirectDepth, oldIndirectSet) + } + } + } + + fun adjustIndirectUpstream( + coroutineScope: CoroutineScope, + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) = + coroutineScope.run { + for (node in nodes) { + launch { + node.adjustIndirectUpstream(scheduler, oldDepth, newDepth, removals, additions) + } + } + for (mover in muxMovers) { + launch { + mover.adjustIndirectPatchNode( + scheduler, + oldDepth, + newDepth, + removals, + additions, + ) + } + } + } + + fun moveDirectUpstreamToIndirect( + coroutineScope: CoroutineScope, + scheduler: Scheduler, + oldDirectDepth: Int, + newIndirectDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) = + coroutineScope.run { + for (node in nodes) { + launch { + node.moveDirectUpstreamToIndirect( + scheduler, + oldDirectDepth, + newIndirectDepth, + newIndirectSet, + ) + } + } + for (mover in muxMovers) { + launch { + mover.moveDirectPatchNodeToIndirect(scheduler, newIndirectDepth, newIndirectSet) + } + } + } + + fun removeIndirectUpstream( + coroutineScope: CoroutineScope, + scheduler: Scheduler, + depth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) = + coroutineScope.run { + for (node in nodes) { + launch { node.removeIndirectUpstream(scheduler, depth, indirectSet) } + } + for (mover in muxMovers) { + launch { mover.removeIndirectPatchNode(scheduler, depth, indirectSet) } + } + for (output in outputs) { + launch { output.kill() } + } + } + + fun removeDirectUpstream(coroutineScope: CoroutineScope, scheduler: Scheduler, depth: Int) = + coroutineScope.run { + for (node in nodes) { + launch { node.removeDirectUpstream(scheduler, depth) } + } + for (mover in muxMovers) { + launch { mover.removeDirectPatchNode(scheduler) } + } + for (output in outputs) { + launch { output.kill() } + } + } + + fun clear() { + outputs.clear() + stateWriters.clear() + muxMovers.clear() + nodes.clear() + } +} + +// TODO: remove this indirection +internal sealed interface Schedulable { + data class S constructor(val state: TStateSource<*>) : Schedulable + + data class M constructor(val muxMover: MuxDeferredNode<*, *>) : Schedulable + + data class N constructor(val node: SchedulableNode) : Schedulable + + data class O constructor(val output: Output<*>) : Schedulable +} + +internal fun DownstreamSet.isEmpty() = + nodes.isEmpty() && outputs.isEmpty() && muxMovers.isEmpty() && stateWriters.isEmpty() + +@Suppress("NOTHING_TO_INLINE") internal inline fun DownstreamSet.isNotEmpty() = !isEmpty() + +internal fun CoroutineScope.scheduleAll( + downstreamSet: DownstreamSet, + evalScope: EvalScope, +): Boolean { + downstreamSet.nodes.forEach { launch { it.schedule(evalScope) } } + downstreamSet.muxMovers.forEach { launch { it.scheduleMover(evalScope) } } + downstreamSet.outputs.forEach { launch { it.schedule(evalScope) } } + downstreamSet.stateWriters.forEach { evalScope.schedule(it) } + return downstreamSet.isNotEmpty() +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt new file mode 100644 index 000000000000..efb7a0951737 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Init.kt @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.none +import java.util.concurrent.atomic.AtomicBoolean +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.ExperimentalCoroutinesApi + +/** Performs actions once, when the reactive component is first connected to the network. */ +internal class Init<out A>(val name: String?, private val block: suspend InitScope.() -> A) { + + /** Has the initialization logic been evaluated yet? */ + private val initialized = AtomicBoolean() + + /** + * Stores the result after initialization, as well as the id of the [Network] it's been + * initialized with. + */ + private val cache = CompletableDeferred<Pair<Any, A>>() + + suspend fun connect(evalScope: InitScope): A = + if (initialized.getAndSet(true)) { + // Read from cache + val (networkId, result) = cache.await() + check(networkId == evalScope.networkId) { "Network mismatch" } + result + } else { + // Write to cache + block(evalScope).also { cache.complete(evalScope.networkId to it) } + } + + @OptIn(ExperimentalCoroutinesApi::class) + fun getUnsafe(): Maybe<A> = + if (cache.isCompleted) { + just(cache.getCompleted().second) + } else { + none + } +} + +internal fun <A> init(name: String?, block: suspend InitScope.() -> A) = Init(name, block) + +internal fun <A> constInit(name: String?, value: A) = init(name) { value } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt new file mode 100644 index 000000000000..85c87fea299b --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Inputs.kt @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.just +import java.util.concurrent.atomic.AtomicBoolean +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock + +internal class InputNode<A>( + private val activate: suspend EvalScope.() -> Unit = {}, + private val deactivate: () -> Unit = {}, +) : PushNode<A>, Key<A> { + + internal val downstreamSet = DownstreamSet() + private val mutex = Mutex() + private val activated = AtomicBoolean(false) + + override val depthTracker: DepthTracker = DepthTracker() + + override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean = + transactionStore.contains(this) + + suspend fun visit(evalScope: EvalScope, value: A) { + evalScope.setResult(this, value) + coroutineScope { + if (!mutex.withLock { scheduleAll(downstreamSet, evalScope) }) { + evalScope.scheduleDeactivation(this@InputNode) + } + } + } + + override suspend fun removeDownstream(downstream: Schedulable) { + mutex.withLock { downstreamSet.remove(downstream) } + } + + override suspend fun deactivateIfNeeded() { + if (mutex.withLock { downstreamSet.isEmpty() && activated.getAndSet(false) }) { + deactivate() + } + } + + override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) { + if (mutex.withLock { downstreamSet.isEmpty() }) { + evalScope.scheduleDeactivation(this) + } + } + + override suspend fun addDownstream(downstream: Schedulable) { + mutex.withLock { downstreamSet.add(downstream) } + } + + suspend fun addDownstreamAndActivateIfNeeded(downstream: Schedulable, evalScope: EvalScope) { + val needsActivation = + mutex.withLock { + val wasEmpty = downstreamSet.isEmpty() + downstreamSet.add(downstream) + wasEmpty && !activated.getAndSet(true) + } + if (needsActivation) { + activate(evalScope) + } + } + + override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) { + val needsDeactivation = + mutex.withLock { + downstreamSet.remove(downstream) + downstreamSet.isEmpty() && activated.getAndSet(false) + } + if (needsDeactivation) { + deactivate() + } + } + + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> = + evalScope.getCurrentValue(this) +} + +internal fun <A> InputNode<A>.activated() = TFlowCheap { downstream -> + val input = this@activated + addDownstreamAndActivateIfNeeded(downstream, evalScope = this) + ActivationResult(connection = NodeConnection(input, input), needsEval = hasCurrentValue(input)) +} + +internal data object AlwaysNode : PushNode<Unit> { + + override val depthTracker = DepthTracker() + + override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean = true + + override suspend fun removeDownstream(downstream: Schedulable) {} + + override suspend fun deactivateIfNeeded() {} + + override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) {} + + override suspend fun addDownstream(downstream: Schedulable) {} + + override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) {} + + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<Unit> = just(Unit) +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt new file mode 100644 index 000000000000..b6cd9063622b --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/InternalScopes.kt @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.FrpBuildScope +import com.android.systemui.experimental.frp.FrpStateScope +import com.android.systemui.experimental.frp.FrpTransactionScope +import com.android.systemui.experimental.frp.TFlow +import com.android.systemui.experimental.frp.internal.util.HeteroMap +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.util.Maybe + +internal interface InitScope { + val networkId: Any +} + +internal interface EvalScope : NetworkScope, DeferScope { + val frpScope: FrpTransactionScope + + suspend fun <R> runInTransactionScope(block: suspend FrpTransactionScope.() -> R): R +} + +internal interface StateScope : EvalScope { + override val frpScope: FrpStateScope + + suspend fun <R> runInStateScope(block: suspend FrpStateScope.() -> R): R + + val endSignal: TFlow<Any> + + fun childStateScope(newEnd: TFlow<Any>): StateScope +} + +internal interface BuildScope : StateScope { + override val frpScope: FrpBuildScope + + suspend fun <R> runInBuildScope(block: suspend FrpBuildScope.() -> R): R +} + +internal interface NetworkScope : InitScope { + + val epoch: Long + val network: Network + + val compactor: Scheduler + val scheduler: Scheduler + + val transactionStore: HeteroMap + + fun scheduleOutput(output: Output<*>) + + fun scheduleMuxMover(muxMover: MuxDeferredNode<*, *>) + + fun schedule(state: TStateSource<*>) + + suspend fun schedule(node: MuxNode<*, *, *>) + + fun scheduleDeactivation(node: PushNode<*>) + + fun scheduleDeactivation(output: Output<*>) +} + +internal fun <A> NetworkScope.setResult(node: Key<A>, result: A) { + transactionStore[node] = result +} + +internal fun <A> NetworkScope.getCurrentValue(key: Key<A>): Maybe<A> = transactionStore[key] + +internal fun NetworkScope.hasCurrentValue(key: Key<*>): Boolean = transactionStore.contains(key) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt new file mode 100644 index 000000000000..e616d625dd1c --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Mux.kt @@ -0,0 +1,326 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress("NOTHING_TO_INLINE") + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.ConcurrentNullableHashMap +import com.android.systemui.experimental.frp.internal.util.hashString +import com.android.systemui.experimental.frp.util.Just +import java.util.concurrent.ConcurrentHashMap +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock + +/** Base class for muxing nodes, which have a potentially dynamic collection of upstream nodes. */ +internal sealed class MuxNode<K : Any, V, Output>(val lifecycle: MuxLifecycle<Output>) : + PushNode<Output> { + + inline val mutex + get() = lifecycle.mutex + + // TODO: preserve insertion order? + val upstreamData = ConcurrentNullableHashMap<K, V>() + val switchedIn = ConcurrentHashMap<K, MuxBranchNode<K, V>>() + val downstreamSet: DownstreamSet = DownstreamSet() + + // TODO: inline DepthTracker? would need to be added to PushNode signature + final override val depthTracker = DepthTracker() + + final override suspend fun addDownstream(downstream: Schedulable) { + mutex.withLock { addDownstreamLocked(downstream) } + } + + /** + * Adds a downstream schedulable to this mux node, such that when this mux node emits a value, + * it will be scheduled for evaluation within this same transaction. + * + * Must only be called when [mutex] is acquired. + */ + fun addDownstreamLocked(downstream: Schedulable) { + downstreamSet.add(downstream) + } + + final override suspend fun removeDownstream(downstream: Schedulable) { + // TODO: return boolean? + mutex.withLock { downstreamSet.remove(downstream) } + } + + final override suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) { + val deactivate = + mutex.withLock { + downstreamSet.remove(downstream) + downstreamSet.isEmpty() + } + if (deactivate) { + doDeactivate() + } + } + + final override suspend fun deactivateIfNeeded() { + if (mutex.withLock { downstreamSet.isEmpty() }) { + doDeactivate() + } + } + + /** visit this node from the scheduler (push eval) */ + abstract suspend fun visit(evalScope: EvalScope) + + /** perform deactivation logic, propagating to all upstream nodes. */ + protected abstract suspend fun doDeactivate() + + final override suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) { + if (mutex.withLock { downstreamSet.isEmpty() }) { + evalScope.scheduleDeactivation(this) + } + } + + suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) { + mutex.withLock { + if (depthTracker.addDirectUpstream(oldDepth, newDepth)) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun moveIndirectUpstreamToDirect( + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectRoots: Set<MuxDeferredNode<*, *>>, + newDepth: Int, + ) { + mutex.withLock { + if ( + depthTracker.addDirectUpstream(oldDepth = null, newDepth) or + depthTracker.removeIndirectUpstream(depth = oldIndirectDepth) or + depthTracker.updateIndirectRoots(removals = oldIndirectRoots) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun adjustIndirectUpstream( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) { + mutex.withLock { + if ( + depthTracker.addIndirectUpstream(oldDepth, newDepth) or + depthTracker.updateIndirectRoots( + additions, + removals, + butNot = this as? MuxDeferredNode<*, *>, + ) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun moveDirectUpstreamToIndirect( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) { + mutex.withLock { + if ( + depthTracker.addIndirectUpstream(oldDepth = null, newDepth) or + depthTracker.removeDirectUpstream(oldDepth) or + depthTracker.updateIndirectRoots( + additions = newIndirectSet, + butNot = this as? MuxDeferredNode<*, *>, + ) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int, key: K) { + mutex.withLock { + switchedIn.remove(key) + if (depthTracker.removeDirectUpstream(depth)) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun removeIndirectUpstream( + scheduler: Scheduler, + oldDepth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + key: K, + ) { + mutex.withLock { + switchedIn.remove(key) + if ( + depthTracker.removeIndirectUpstream(oldDepth) or + depthTracker.updateIndirectRoots(removals = indirectSet) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun visitCompact(scheduler: Scheduler) = coroutineScope { + if (depthTracker.isDirty()) { + depthTracker.applyChanges(coroutineScope = this, scheduler, downstreamSet, this@MuxNode) + } + } + + abstract fun hasCurrentValueLocked(transactionStore: TransactionStore): Boolean +} + +/** An input branch of a mux node, associated with a key. */ +internal class MuxBranchNode<K : Any, V>(private val muxNode: MuxNode<K, V, *>, val key: K) : + SchedulableNode { + + val schedulable = Schedulable.N(this) + + @Volatile lateinit var upstream: NodeConnection<V> + + override suspend fun schedule(evalScope: EvalScope) { + val upstreamResult = upstream.getPushEvent(evalScope) + if (upstreamResult is Just) { + muxNode.upstreamData[key] = upstreamResult.value + evalScope.schedule(muxNode) + } + } + + override suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) { + muxNode.adjustDirectUpstream(scheduler, oldDepth, newDepth) + } + + override suspend fun moveIndirectUpstreamToDirect( + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectSet: Set<MuxDeferredNode<*, *>>, + newDirectDepth: Int, + ) { + muxNode.moveIndirectUpstreamToDirect( + scheduler, + oldIndirectDepth, + oldIndirectSet, + newDirectDepth, + ) + } + + override suspend fun adjustIndirectUpstream( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) { + muxNode.adjustIndirectUpstream(scheduler, oldDepth, newDepth, removals, additions) + } + + override suspend fun moveDirectUpstreamToIndirect( + scheduler: Scheduler, + oldDirectDepth: Int, + newIndirectDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) { + muxNode.moveDirectUpstreamToIndirect( + scheduler, + oldDirectDepth, + newIndirectDepth, + newIndirectSet, + ) + } + + override suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) { + muxNode.removeDirectUpstream(scheduler, depth, key) + } + + override suspend fun removeIndirectUpstream( + scheduler: Scheduler, + depth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) { + muxNode.removeIndirectUpstream(scheduler, depth, indirectSet, key) + } + + override fun toString(): String = "MuxBranchNode(key=$key, mux=$muxNode)" +} + +/** Tracks lifecycle of MuxNode in the network. Essentially a mutable ref for MuxLifecycleState. */ +internal class MuxLifecycle<A>(@Volatile var lifecycleState: MuxLifecycleState<A>) : TFlowImpl<A> { + val mutex = Mutex() + + override fun toString(): String = "TFlowLifecycle[$hashString][$lifecycleState][$mutex]" + + override suspend fun activate( + evalScope: EvalScope, + downstream: Schedulable, + ): ActivationResult<A>? = + mutex.withLock { + when (val state = lifecycleState) { + is MuxLifecycleState.Dead -> null + is MuxLifecycleState.Active -> { + state.node.addDownstreamLocked(downstream) + ActivationResult( + connection = NodeConnection(state.node, state.node), + needsEval = state.node.hasCurrentValueLocked(evalScope.transactionStore), + ) + } + is MuxLifecycleState.Inactive -> { + state.spec + .activate(evalScope, this@MuxLifecycle) + .also { node -> + lifecycleState = + if (node == null) { + MuxLifecycleState.Dead + } else { + MuxLifecycleState.Active(node) + } + } + ?.let { node -> + node.addDownstreamLocked(downstream) + ActivationResult( + connection = NodeConnection(node, node), + needsEval = false, + ) + } + } + } + } +} + +internal sealed interface MuxLifecycleState<out A> { + class Inactive<A>(val spec: MuxActivator<A>) : MuxLifecycleState<A> { + override fun toString(): String = "Inactive" + } + + class Active<A>(val node: MuxNode<*, *, A>) : MuxLifecycleState<A> { + override fun toString(): String = "Active(node=$node)" + } + + data object Dead : MuxLifecycleState<Nothing> +} + +internal interface MuxActivator<A> { + suspend fun activate(evalScope: EvalScope, lifecycle: MuxLifecycle<A>): MuxNode<*, *, A>? +} + +internal inline fun <A> MuxLifecycle(onSubscribe: MuxActivator<A>): TFlowImpl<A> = + MuxLifecycle(MuxLifecycleState.Inactive(onSubscribe)) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt new file mode 100644 index 000000000000..6d43285c9ef5 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxDeferred.kt @@ -0,0 +1,473 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.internal.util.associateByIndexTo +import com.android.systemui.experimental.frp.internal.util.hashString +import com.android.systemui.experimental.frp.internal.util.mapParallel +import com.android.systemui.experimental.frp.internal.util.mapValuesNotNullParallelTo +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Left +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.None +import com.android.systemui.experimental.frp.util.Right +import com.android.systemui.experimental.frp.util.These +import com.android.systemui.experimental.frp.util.flatMap +import com.android.systemui.experimental.frp.util.getMaybe +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.maybeThat +import com.android.systemui.experimental.frp.util.maybeThis +import com.android.systemui.experimental.frp.util.merge +import com.android.systemui.experimental.frp.util.orElseGet +import com.android.systemui.experimental.frp.util.partitionEithers +import com.android.systemui.experimental.frp.util.these +import java.util.TreeMap +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.sync.withLock + +internal class MuxDeferredNode<K : Any, V>( + lifecycle: MuxLifecycle<Map<K, V>>, + val spec: MuxActivator<Map<K, V>>, +) : MuxNode<K, V, Map<K, V>>(lifecycle), Key<Map<K, V>> { + + val schedulable = Schedulable.M(this) + + @Volatile var patches: NodeConnection<Map<K, Maybe<TFlowImpl<V>>>>? = null + @Volatile var patchData: Map<K, Maybe<TFlowImpl<V>>>? = null + + override fun hasCurrentValueLocked(transactionStore: TransactionStore): Boolean = + transactionStore.contains(this) + + override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean = + mutex.withLock { hasCurrentValueLocked(transactionStore) } + + override suspend fun visit(evalScope: EvalScope) { + val result = upstreamData.toMap() + upstreamData.clear() + val scheduleDownstream = result.isNotEmpty() + val compactDownstream = depthTracker.isDirty() + if (scheduleDownstream || compactDownstream) { + coroutineScope { + mutex.withLock { + if (compactDownstream) { + depthTracker.applyChanges( + coroutineScope = this, + evalScope.scheduler, + downstreamSet, + muxNode = this@MuxDeferredNode, + ) + } + if (scheduleDownstream) { + evalScope.setResult(this@MuxDeferredNode, result) + if (!scheduleAll(downstreamSet, evalScope)) { + evalScope.scheduleDeactivation(this@MuxDeferredNode) + } + } + } + } + } + } + + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<Map<K, V>> = + evalScope.getCurrentValue(key = this) + + private suspend fun compactIfNeeded(evalScope: EvalScope) { + depthTracker.propagateChanges(evalScope.compactor, this) + } + + override suspend fun doDeactivate() { + // Update lifecycle + lifecycle.mutex.withLock { + if (lifecycle.lifecycleState !is MuxLifecycleState.Active) return@doDeactivate + lifecycle.lifecycleState = MuxLifecycleState.Inactive(spec) + } + // Process branch nodes + coroutineScope { + switchedIn.values.forEach { branchNode -> + branchNode.upstream.let { + launch { it.removeDownstreamAndDeactivateIfNeeded(branchNode.schedulable) } + } + } + } + // Process patch node + patches?.removeDownstreamAndDeactivateIfNeeded(schedulable) + } + + // MOVE phase + // - concurrent moves may be occurring, but no more evals. all depth recalculations are + // deferred to the end of this phase. + suspend fun performMove(evalScope: EvalScope) { + val patch = patchData ?: return + patchData = null + + // TODO: this logic is very similar to what's in MuxPromptMoving, maybe turn into an inline + // fun? + + // We have a patch, process additions/updates and removals + val (adds, removes) = + patch + .asSequence() + .map { (k, newUpstream: Maybe<TFlowImpl<V>>) -> + when (newUpstream) { + is Just -> Left(k to newUpstream.value) + None -> Right(k) + } + } + .partitionEithers() + + val severed = mutableListOf<NodeConnection<*>>() + + coroutineScope { + // remove and sever + removes.forEach { k -> + switchedIn.remove(k)?.let { branchNode: MuxBranchNode<K, V> -> + val conn = branchNode.upstream + severed.add(conn) + launch { conn.removeDownstream(downstream = branchNode.schedulable) } + depthTracker.removeDirectUpstream(conn.depthTracker.snapshotDirectDepth) + } + } + + // add or replace + adds + .mapParallel { (k, newUpstream: TFlowImpl<V>) -> + val branchNode = MuxBranchNode(this@MuxDeferredNode, k) + k to + newUpstream.activate(evalScope, branchNode.schedulable)?.let { (conn, _) -> + branchNode.apply { upstream = conn } + } + } + .forEach { (k, newBranch: MuxBranchNode<K, V>?) -> + // remove old and sever, if present + switchedIn.remove(k)?.let { branchNode -> + val conn = branchNode.upstream + severed.add(conn) + launch { conn.removeDownstream(downstream = branchNode.schedulable) } + depthTracker.removeDirectUpstream(conn.depthTracker.snapshotDirectDepth) + } + + // add new + newBranch?.let { + switchedIn[k] = newBranch + val branchDepthTracker = newBranch.upstream.depthTracker + if (branchDepthTracker.snapshotIsDirect) { + depthTracker.addDirectUpstream( + oldDepth = null, + newDepth = branchDepthTracker.snapshotDirectDepth, + ) + } else { + depthTracker.addIndirectUpstream( + oldDepth = null, + newDepth = branchDepthTracker.snapshotIndirectDepth, + ) + depthTracker.updateIndirectRoots( + additions = branchDepthTracker.snapshotIndirectRoots, + butNot = this@MuxDeferredNode, + ) + } + } + } + } + + coroutineScope { + for (severedNode in severed) { + launch { severedNode.scheduleDeactivationIfNeeded(evalScope) } + } + } + + compactIfNeeded(evalScope) + } + + suspend fun removeDirectPatchNode(scheduler: Scheduler) { + mutex.withLock { + if ( + depthTracker.removeIndirectUpstream(depth = 0) or + depthTracker.setIsIndirectRoot(false) + ) { + depthTracker.schedule(scheduler, this) + } + patches = null + } + } + + suspend fun removeIndirectPatchNode( + scheduler: Scheduler, + depth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) { + // indirectly connected patches forward the indirectSet + mutex.withLock { + if ( + depthTracker.updateIndirectRoots(removals = indirectSet) or + depthTracker.removeIndirectUpstream(depth) + ) { + depthTracker.schedule(scheduler, this) + } + patches = null + } + } + + suspend fun moveIndirectPatchNodeToDirect( + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectSet: Set<MuxDeferredNode<*, *>>, + ) { + // directly connected patches are stored as an indirect singleton set of the patchNode + mutex.withLock { + if ( + depthTracker.updateIndirectRoots(removals = oldIndirectSet) or + depthTracker.removeIndirectUpstream(oldIndirectDepth) or + depthTracker.setIsIndirectRoot(true) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun moveDirectPatchNodeToIndirect( + scheduler: Scheduler, + newIndirectDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) { + // indirectly connected patches forward the indirectSet + mutex.withLock { + if ( + depthTracker.setIsIndirectRoot(false) or + depthTracker.updateIndirectRoots(additions = newIndirectSet, butNot = this) or + depthTracker.addIndirectUpstream(oldDepth = null, newDepth = newIndirectDepth) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun adjustIndirectPatchNode( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) { + // indirectly connected patches forward the indirectSet + mutex.withLock { + if ( + depthTracker.updateIndirectRoots( + additions = additions, + removals = removals, + butNot = this, + ) or depthTracker.addIndirectUpstream(oldDepth = oldDepth, newDepth = newDepth) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun scheduleMover(evalScope: EvalScope) { + patchData = + checkNotNull(patches) { "mux mover scheduled with unset patches upstream node" } + .getPushEvent(evalScope) + .orElseGet { null } + evalScope.scheduleMuxMover(this) + } + + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +internal inline fun <A> switchDeferredImplSingle( + crossinline getStorage: suspend EvalScope.() -> TFlowImpl<A>, + crossinline getPatches: suspend EvalScope.() -> TFlowImpl<TFlowImpl<A>>, +): TFlowImpl<A> = + mapImpl({ + switchDeferredImpl( + getStorage = { mapOf(Unit to getStorage()) }, + getPatches = { mapImpl(getPatches) { newFlow -> mapOf(Unit to just(newFlow)) } }, + ) + }) { map -> + map.getValue(Unit) + } + +internal fun <K : Any, A> switchDeferredImpl( + getStorage: suspend EvalScope.() -> Map<K, TFlowImpl<A>>, + getPatches: suspend EvalScope.() -> TFlowImpl<Map<K, Maybe<TFlowImpl<A>>>>, +): TFlowImpl<Map<K, A>> = + MuxLifecycle( + object : MuxActivator<Map<K, A>> { + override suspend fun activate( + evalScope: EvalScope, + lifecycle: MuxLifecycle<Map<K, A>>, + ): MuxNode<*, *, Map<K, A>>? { + val storage: Map<K, TFlowImpl<A>> = getStorage(evalScope) + // Initialize mux node and switched-in connections. + val muxNode = + MuxDeferredNode(lifecycle, this).apply { + storage.mapValuesNotNullParallelTo(switchedIn) { (key, flow) -> + val branchNode = MuxBranchNode(this@apply, key) + flow.activate(evalScope, branchNode.schedulable)?.let { + (conn, needsEval) -> + branchNode + .apply { upstream = conn } + .also { + if (needsEval) { + val result = conn.getPushEvent(evalScope) + if (result is Just) { + upstreamData[key] = result.value + } + } + } + } + } + } + // Update depth based on all initial switched-in nodes. + muxNode.switchedIn.values.forEach { branch -> + val conn = branch.upstream + if (conn.depthTracker.snapshotIsDirect) { + muxNode.depthTracker.addDirectUpstream( + oldDepth = null, + newDepth = conn.depthTracker.snapshotDirectDepth, + ) + } else { + muxNode.depthTracker.addIndirectUpstream( + oldDepth = null, + newDepth = conn.depthTracker.snapshotIndirectDepth, + ) + muxNode.depthTracker.updateIndirectRoots( + additions = conn.depthTracker.snapshotIndirectRoots, + butNot = muxNode, + ) + } + } + // We don't have our patches connection established yet, so for now pretend we have + // a direct connection to patches. We will update downstream nodes later if this + // turns out to be a lie. + muxNode.depthTracker.setIsIndirectRoot(true) + muxNode.depthTracker.reset() + + // Setup patches connection; deferring allows for a recursive connection, where + // muxNode is downstream of itself via patches. + var isIndirect = true + evalScope.deferAction { + val (patchesConn, needsEval) = + getPatches(evalScope).activate(evalScope, downstream = muxNode.schedulable) + ?: run { + isIndirect = false + // Turns out we can't connect to patches, so update our depth and + // propagate + muxNode.mutex.withLock { + if (muxNode.depthTracker.setIsIndirectRoot(false)) { + muxNode.depthTracker.schedule(evalScope.scheduler, muxNode) + } + } + return@deferAction + } + muxNode.patches = patchesConn + + if (!patchesConn.schedulerUpstream.depthTracker.snapshotIsDirect) { + // Turns out patches is indirect, so we are not a root. Update depth and + // propagate. + muxNode.mutex.withLock { + if ( + muxNode.depthTracker.setIsIndirectRoot(false) or + muxNode.depthTracker.addIndirectUpstream( + oldDepth = null, + newDepth = patchesConn.depthTracker.snapshotIndirectDepth, + ) or + muxNode.depthTracker.updateIndirectRoots( + additions = patchesConn.depthTracker.snapshotIndirectRoots + ) + ) { + muxNode.depthTracker.schedule(evalScope.scheduler, muxNode) + } + } + } + // Schedule mover to process patch emission at the end of this transaction, if + // needed. + if (needsEval) { + val result = patchesConn.getPushEvent(evalScope) + if (result is Just) { + muxNode.patchData = result.value + evalScope.scheduleMuxMover(muxNode) + } + } + } + + // Schedule for evaluation if any switched-in nodes have already emitted within + // this transaction. + if (muxNode.upstreamData.isNotEmpty()) { + evalScope.schedule(muxNode) + } + return muxNode.takeUnless { muxNode.switchedIn.isEmpty() && !isIndirect } + } + } + ) + +internal inline fun <A> mergeNodes( + crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>, + crossinline getOther: suspend EvalScope.() -> TFlowImpl<A>, + crossinline f: suspend EvalScope.(A, A) -> A, +): TFlowImpl<A> { + val merged = + mapImpl({ mergeNodes(getPulse, getOther) }) { these -> + these.merge { thiz, that -> f(thiz, that) } + } + return merged.cached() +} + +internal inline fun <A, B> mergeNodes( + crossinline getPulse: suspend EvalScope.() -> TFlowImpl<A>, + crossinline getOther: suspend EvalScope.() -> TFlowImpl<B>, +): TFlowImpl<These<A, B>> { + val storage = + mapOf( + 0 to mapImpl(getPulse) { These.thiz<A, B>(it) }, + 1 to mapImpl(getOther) { These.that(it) }, + ) + val switchNode = switchDeferredImpl(getStorage = { storage }, getPatches = { neverImpl }) + val merged = + mapImpl({ switchNode }) { mergeResults -> + val first = mergeResults.getMaybe(0).flatMap { it.maybeThis() } + val second = mergeResults.getMaybe(1).flatMap { it.maybeThat() } + these(first, second).orElseGet { error("unexpected missing merge result") } + } + return merged.cached() +} + +internal inline fun <A> mergeNodes( + crossinline getPulses: suspend EvalScope.() -> Iterable<TFlowImpl<A>> +): TFlowImpl<List<A>> { + val switchNode = + switchDeferredImpl( + getStorage = { getPulses().associateByIndexTo(TreeMap()) }, + getPatches = { neverImpl }, + ) + val merged = mapImpl({ switchNode }) { mergeResults -> mergeResults.values.toList() } + return merged.cached() +} + +internal inline fun <A> mergeNodesLeft( + crossinline getPulses: suspend EvalScope.() -> Iterable<TFlowImpl<A>> +): TFlowImpl<A> { + val switchNode = + switchDeferredImpl( + getStorage = { getPulses().associateByIndexTo(TreeMap()) }, + getPatches = { neverImpl }, + ) + val merged = + mapImpl({ switchNode }) { mergeResults: Map<Int, A> -> mergeResults.values.first() } + return merged.cached() +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt new file mode 100644 index 000000000000..ea0c1501f6a4 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/MuxPrompt.kt @@ -0,0 +1,472 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.internal.util.launchImmediate +import com.android.systemui.experimental.frp.internal.util.mapParallel +import com.android.systemui.experimental.frp.internal.util.mapValuesNotNullParallelTo +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Left +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.None +import com.android.systemui.experimental.frp.util.Right +import com.android.systemui.experimental.frp.util.filterJust +import com.android.systemui.experimental.frp.util.map +import com.android.systemui.experimental.frp.util.partitionEithers +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.sync.withLock + +internal class MuxPromptMovingNode<K : Any, V>( + lifecycle: MuxLifecycle<Pair<Map<K, V>, Map<K, PullNode<V>>?>>, + private val spec: MuxActivator<Pair<Map<K, V>, Map<K, PullNode<V>>?>>, +) : + MuxNode<K, V, Pair<Map<K, V>, Map<K, PullNode<V>>?>>(lifecycle), + Key<Pair<Map<K, V>, Map<K, PullNode<V>>?>> { + + @Volatile var patchData: Map<K, Maybe<TFlowImpl<V>>>? = null + @Volatile var patches: MuxPromptPatchNode<K, V>? = null + + @Volatile private var reEval: Pair<Map<K, V>, Map<K, PullNode<V>>?>? = null + + override fun hasCurrentValueLocked(transactionStore: TransactionStore): Boolean = + transactionStore.contains(this) + + override suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean = + mutex.withLock { hasCurrentValueLocked(transactionStore) } + + override suspend fun visit(evalScope: EvalScope) { + val preSwitchResults: Map<K, V> = upstreamData.toMap() + upstreamData.clear() + + val patch: Map<K, Maybe<TFlowImpl<V>>>? = patchData + patchData = null + + val (reschedule, evalResult) = + reEval?.let { false to it } + ?: if (preSwitchResults.isNotEmpty() || patch?.isNotEmpty() == true) { + doEval(preSwitchResults, patch, evalScope) + } else { + false to null + } + reEval = null + + if (reschedule || depthTracker.dirty_depthIncreased()) { + reEval = evalResult + // Can't schedule downstream yet, need to compact first + if (depthTracker.dirty_depthIncreased()) { + depthTracker.schedule(evalScope.compactor, node = this) + } + evalScope.schedule(this) + } else { + val compactDownstream = depthTracker.isDirty() + if (evalResult != null || compactDownstream) { + coroutineScope { + mutex.withLock { + if (compactDownstream) { + adjustDownstreamDepths(evalScope, coroutineScope = this) + } + if (evalResult != null) { + evalScope.setResult(this@MuxPromptMovingNode, evalResult) + if (!scheduleAll(downstreamSet, evalScope)) { + evalScope.scheduleDeactivation(this@MuxPromptMovingNode) + } + } + } + } + } + } + } + + private suspend fun doEval( + preSwitchResults: Map<K, V>, + patch: Map<K, Maybe<TFlowImpl<V>>>?, + evalScope: EvalScope, + ): Pair<Boolean, Pair<Map<K, V>, Map<K, PullNode<V>>?>?> { + val newlySwitchedIn: Map<K, PullNode<V>>? = + patch?.let { + // We have a patch, process additions/updates and removals + val (adds, removes) = + patch + .asSequence() + .map { (k, newUpstream: Maybe<TFlowImpl<V>>) -> + when (newUpstream) { + is Just -> Left(k to newUpstream.value) + None -> Right(k) + } + } + .partitionEithers() + + val additionsAndUpdates = mutableMapOf<K, PullNode<V>>() + val severed = mutableListOf<NodeConnection<*>>() + + coroutineScope { + // remove and sever + removes.forEach { k -> + switchedIn.remove(k)?.let { branchNode: MuxBranchNode<K, V> -> + val conn: NodeConnection<V> = branchNode.upstream + severed.add(conn) + launchImmediate { + conn.removeDownstream(downstream = branchNode.schedulable) + } + depthTracker.removeDirectUpstream(conn.depthTracker.snapshotDirectDepth) + } + } + + // add or replace + adds + .mapParallel { (k, newUpstream: TFlowImpl<V>) -> + val branchNode = MuxBranchNode(this@MuxPromptMovingNode, k) + k to + newUpstream.activate(evalScope, branchNode.schedulable)?.let { + (conn, _) -> + branchNode.apply { upstream = conn } + } + } + .forEach { (k, newBranch: MuxBranchNode<K, V>?) -> + // remove old and sever, if present + switchedIn.remove(k)?.let { oldBranch: MuxBranchNode<K, V> -> + val conn: NodeConnection<V> = oldBranch.upstream + severed.add(conn) + launchImmediate { + conn.removeDownstream(downstream = oldBranch.schedulable) + } + depthTracker.removeDirectUpstream( + conn.depthTracker.snapshotDirectDepth + ) + } + + // add new + newBranch?.let { + switchedIn[k] = newBranch + additionsAndUpdates[k] = newBranch.upstream.directUpstream + val branchDepthTracker = newBranch.upstream.depthTracker + if (branchDepthTracker.snapshotIsDirect) { + depthTracker.addDirectUpstream( + oldDepth = null, + newDepth = branchDepthTracker.snapshotDirectDepth, + ) + } else { + depthTracker.addIndirectUpstream( + oldDepth = null, + newDepth = branchDepthTracker.snapshotIndirectDepth, + ) + depthTracker.updateIndirectRoots( + additions = branchDepthTracker.snapshotIndirectRoots, + butNot = null, + ) + } + } + } + } + + coroutineScope { + for (severedNode in severed) { + launch { severedNode.scheduleDeactivationIfNeeded(evalScope) } + } + } + + additionsAndUpdates.takeIf { it.isNotEmpty() } + } + + return if (preSwitchResults.isNotEmpty() || newlySwitchedIn != null) { + (newlySwitchedIn != null) to (preSwitchResults to newlySwitchedIn) + } else { + false to null + } + } + + private suspend fun adjustDownstreamDepths( + evalScope: EvalScope, + coroutineScope: CoroutineScope, + ) { + if (depthTracker.dirty_depthIncreased()) { + // schedule downstream nodes on the compaction scheduler; this scheduler is drained at + // the end of this eval depth, so that all depth increases are applied before we advance + // the eval step + depthTracker.schedule(evalScope.compactor, node = this@MuxPromptMovingNode) + } else if (depthTracker.isDirty()) { + // schedule downstream nodes on the eval scheduler; this is more efficient and is only + // safe if the depth hasn't increased + depthTracker.applyChanges( + coroutineScope, + evalScope.scheduler, + downstreamSet, + muxNode = this@MuxPromptMovingNode, + ) + } + } + + override suspend fun getPushEvent( + evalScope: EvalScope + ): Maybe<Pair<Map<K, V>, Map<K, PullNode<V>>?>> = evalScope.getCurrentValue(key = this) + + override suspend fun doDeactivate() { + // Update lifecycle + lifecycle.mutex.withLock { + if (lifecycle.lifecycleState !is MuxLifecycleState.Active) return@doDeactivate + lifecycle.lifecycleState = MuxLifecycleState.Inactive(spec) + } + // Process branch nodes + switchedIn.values.forEach { branchNode -> + branchNode.upstream.removeDownstreamAndDeactivateIfNeeded( + downstream = branchNode.schedulable + ) + } + // Process patch node + patches?.let { patches -> + patches.upstream.removeDownstreamAndDeactivateIfNeeded(downstream = patches.schedulable) + } + } + + suspend fun removeIndirectPatchNode( + scheduler: Scheduler, + oldDepth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) { + mutex.withLock { + patches = null + if ( + depthTracker.removeIndirectUpstream(oldDepth) or + depthTracker.updateIndirectRoots(removals = indirectSet) + ) { + depthTracker.schedule(scheduler, this) + } + } + } + + suspend fun removeDirectPatchNode(scheduler: Scheduler, depth: Int) { + mutex.withLock { + patches = null + if (depthTracker.removeDirectUpstream(depth)) { + depthTracker.schedule(scheduler, this) + } + } + } +} + +internal class MuxPromptEvalNode<K, V>( + private val movingNode: PullNode<Pair<Map<K, V>, Map<K, PullNode<V>>?>> +) : PullNode<Map<K, V>> { + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<Map<K, V>> = + movingNode.getPushEvent(evalScope).map { (preSwitchResults, newlySwitchedIn) -> + coroutineScope { + newlySwitchedIn + ?.map { (k, v) -> async { v.getPushEvent(evalScope).map { k to it } } } + ?.awaitAll() + ?.asSequence() + ?.filterJust() + ?.toMap(preSwitchResults.toMutableMap()) ?: preSwitchResults + } + } +} + +// TODO: inner class? +internal class MuxPromptPatchNode<K : Any, V>(private val muxNode: MuxPromptMovingNode<K, V>) : + SchedulableNode { + + val schedulable = Schedulable.N(this) + + lateinit var upstream: NodeConnection<Map<K, Maybe<TFlowImpl<V>>>> + + override suspend fun schedule(evalScope: EvalScope) { + val upstreamResult = upstream.getPushEvent(evalScope) + if (upstreamResult is Just) { + muxNode.patchData = upstreamResult.value + evalScope.schedule(muxNode) + } + } + + override suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) { + muxNode.adjustDirectUpstream(scheduler, oldDepth, newDepth) + } + + override suspend fun moveIndirectUpstreamToDirect( + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectSet: Set<MuxDeferredNode<*, *>>, + newDirectDepth: Int, + ) { + muxNode.moveIndirectUpstreamToDirect( + scheduler, + oldIndirectDepth, + oldIndirectSet, + newDirectDepth, + ) + } + + override suspend fun adjustIndirectUpstream( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) { + muxNode.adjustIndirectUpstream(scheduler, oldDepth, newDepth, removals, additions) + } + + override suspend fun moveDirectUpstreamToIndirect( + scheduler: Scheduler, + oldDirectDepth: Int, + newIndirectDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) { + muxNode.moveDirectUpstreamToIndirect( + scheduler, + oldDirectDepth, + newIndirectDepth, + newIndirectSet, + ) + } + + override suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) { + muxNode.removeDirectPatchNode(scheduler, depth) + } + + override suspend fun removeIndirectUpstream( + scheduler: Scheduler, + depth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) { + muxNode.removeIndirectPatchNode(scheduler, depth, indirectSet) + } +} + +internal fun <K : Any, A> switchPromptImpl( + getStorage: suspend EvalScope.() -> Map<K, TFlowImpl<A>>, + getPatches: suspend EvalScope.() -> TFlowImpl<Map<K, Maybe<TFlowImpl<A>>>>, +): TFlowImpl<Map<K, A>> { + val moving = + MuxLifecycle( + object : MuxActivator<Pair<Map<K, A>, Map<K, PullNode<A>>?>> { + override suspend fun activate( + evalScope: EvalScope, + lifecycle: MuxLifecycle<Pair<Map<K, A>, Map<K, PullNode<A>>?>>, + ): MuxNode<*, *, Pair<Map<K, A>, Map<K, PullNode<A>>?>>? { + val storage: Map<K, TFlowImpl<A>> = getStorage(evalScope) + // Initialize mux node and switched-in connections. + val movingNode = + MuxPromptMovingNode(lifecycle, this).apply { + coroutineScope { + launch { + storage.mapValuesNotNullParallelTo(switchedIn) { (key, flow) -> + val branchNode = MuxBranchNode(this@apply, key) + flow + .activate( + evalScope = evalScope, + downstream = branchNode.schedulable, + ) + ?.let { (conn, needsEval) -> + branchNode + .apply { upstream = conn } + .also { + if (needsEval) { + val result = + conn.getPushEvent(evalScope) + if (result is Just) { + upstreamData[key] = result.value + } + } + } + } + } + } + // Setup patches connection + val patchNode = MuxPromptPatchNode(this@apply) + getPatches(evalScope) + .activate( + evalScope = evalScope, + downstream = patchNode.schedulable, + ) + ?.let { (conn, needsEval) -> + patchNode.upstream = conn + patches = patchNode + + if (needsEval) { + val result = conn.getPushEvent(evalScope) + if (result is Just) { + patchData = result.value + } + } + } + } + } + // Update depth based on all initial switched-in nodes. + movingNode.switchedIn.values.forEach { branch -> + val conn = branch.upstream + if (conn.depthTracker.snapshotIsDirect) { + movingNode.depthTracker.addDirectUpstream( + oldDepth = null, + newDepth = conn.depthTracker.snapshotDirectDepth, + ) + } else { + movingNode.depthTracker.addIndirectUpstream( + oldDepth = null, + newDepth = conn.depthTracker.snapshotIndirectDepth, + ) + movingNode.depthTracker.updateIndirectRoots( + additions = conn.depthTracker.snapshotIndirectRoots, + butNot = null, + ) + } + } + // Update depth based on patches node. + movingNode.patches?.upstream?.let { conn -> + if (conn.depthTracker.snapshotIsDirect) { + movingNode.depthTracker.addDirectUpstream( + oldDepth = null, + newDepth = conn.depthTracker.snapshotDirectDepth, + ) + } else { + movingNode.depthTracker.addIndirectUpstream( + oldDepth = null, + newDepth = conn.depthTracker.snapshotIndirectDepth, + ) + movingNode.depthTracker.updateIndirectRoots( + additions = conn.depthTracker.snapshotIndirectRoots, + butNot = null, + ) + } + } + movingNode.depthTracker.reset() + + // Schedule for evaluation if any switched-in nodes or the patches node have + // already emitted within this transaction. + if (movingNode.patchData != null || movingNode.upstreamData.isNotEmpty()) { + evalScope.schedule(movingNode) + } + + return movingNode.takeUnless { it.patches == null && it.switchedIn.isEmpty() } + } + } + ) + + val eval = TFlowCheap { downstream -> + moving.activate(evalScope = this, downstream)?.let { (connection, needsEval) -> + val evalNode = MuxPromptEvalNode(connection.directUpstream) + ActivationResult( + connection = NodeConnection(evalNode, connection.schedulerUpstream), + needsEval = needsEval, + ) + } + } + return eval.cached() +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt new file mode 100644 index 000000000000..b5ffe75eb9f4 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Network.kt @@ -0,0 +1,252 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.TState +import com.android.systemui.experimental.frp.internal.util.HeteroMap +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.none +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.ConcurrentLinkedDeque +import java.util.concurrent.ConcurrentLinkedQueue +import java.util.concurrent.atomic.AtomicLong +import kotlin.coroutines.ContinuationInterceptor +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.job +import kotlinx.coroutines.launch +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock +import kotlinx.coroutines.yield + +private val nextNetworkId = AtomicLong() + +internal class Network(val coroutineScope: CoroutineScope) : NetworkScope { + + override val networkId: Any = nextNetworkId.getAndIncrement() + + @Volatile + override var epoch: Long = 0L + private set + + override val network + get() = this + + override val compactor = SchedulerImpl() + override val scheduler = SchedulerImpl() + override val transactionStore = HeteroMap() + + private val stateWrites = ConcurrentLinkedQueue<TStateSource<*>>() + private val outputsByDispatcher = + ConcurrentHashMap<ContinuationInterceptor, ConcurrentLinkedQueue<Output<*>>>() + private val muxMovers = ConcurrentLinkedQueue<MuxDeferredNode<*, *>>() + private val deactivations = ConcurrentLinkedDeque<PushNode<*>>() + private val outputDeactivations = ConcurrentLinkedQueue<Output<*>>() + private val transactionMutex = Mutex() + private val inputScheduleChan = Channel<ScheduledAction<*>>() + + override fun scheduleOutput(output: Output<*>) { + val continuationInterceptor = + output.context[ContinuationInterceptor] ?: Dispatchers.Unconfined + outputsByDispatcher + .computeIfAbsent(continuationInterceptor) { ConcurrentLinkedQueue() } + .add(output) + } + + override fun scheduleMuxMover(muxMover: MuxDeferredNode<*, *>) { + muxMovers.add(muxMover) + } + + override fun schedule(state: TStateSource<*>) { + stateWrites.add(state) + } + + // TODO: weird that we have this *and* scheduler exposed + override suspend fun schedule(node: MuxNode<*, *, *>) { + scheduler.schedule(node.depthTracker.dirty_directDepth, node) + } + + override fun scheduleDeactivation(node: PushNode<*>) { + deactivations.add(node) + } + + override fun scheduleDeactivation(output: Output<*>) { + outputDeactivations.add(output) + } + + /** Listens for external events and starts FRP transactions. Runs forever. */ + suspend fun runInputScheduler() = coroutineScope { + launch { scheduler.activate() } + launch { compactor.activate() } + val actions = mutableListOf<ScheduledAction<*>>() + for (first in inputScheduleChan) { + // Drain and conflate all transaction requests into a single transaction + actions.add(first) + while (true) { + yield() + val func = inputScheduleChan.tryReceive().getOrNull() ?: break + actions.add(func) + } + transactionMutex.withLock { + // Run all actions + evalScope { + for (action in actions) { + launch { action.started(evalScope = this@evalScope) } + } + } + // Step through the network + doTransaction() + // Signal completion + while (actions.isNotEmpty()) { + actions.removeLast().completed() + } + } + } + } + + /** Evaluates [block] inside of a new transaction when the network is ready. */ + fun <R> transaction(block: suspend EvalScope.() -> R): Deferred<R> = + CompletableDeferred<R>(parent = coroutineScope.coroutineContext.job).also { onResult -> + val job = + coroutineScope.launch { + inputScheduleChan.send( + ScheduledAction(onStartTransaction = block, onResult = onResult) + ) + } + onResult.invokeOnCompletion { job.cancel() } + } + + suspend fun <R> evalScope(block: suspend EvalScope.() -> R): R = deferScope { + block(EvalScopeImpl(this@Network, this)) + } + + /** Performs a transactional update of the FRP network. */ + private suspend fun doTransaction() { + // Traverse network, then run outputs + do { + scheduler.drainEval(this) + } while (evalScope { evalOutputs(this) }) + // Update states + evalScope { evalStateWriters(this) } + transactionStore.clear() + // Perform deferred switches + evalScope { evalMuxMovers(this) } + // Compact depths + scheduler.drainCompact() + compactor.drainCompact() + // Deactivate nodes with no downstream + evalDeactivations() + epoch++ + } + + /** Invokes all [Output]s that have received data within this transaction. */ + private suspend fun evalOutputs(evalScope: EvalScope): Boolean { + // Outputs can enqueue other outputs, so we need two loops + if (outputsByDispatcher.isEmpty()) return false + while (outputsByDispatcher.isNotEmpty()) { + var launchedAny = false + coroutineScope { + for ((key, outputs) in outputsByDispatcher) { + if (outputs.isNotEmpty()) { + launchedAny = true + launch(key) { + while (outputs.isNotEmpty()) { + val output = outputs.remove() + launch { output.visit(evalScope) } + } + } + } + } + } + if (!launchedAny) outputsByDispatcher.clear() + } + return true + } + + private suspend fun evalMuxMovers(evalScope: EvalScope) { + while (muxMovers.isNotEmpty()) { + coroutineScope { + val toMove = muxMovers.remove() + launch { toMove.performMove(evalScope) } + } + } + } + + /** Updates all [TState]es that have changed within this transaction. */ + private suspend fun evalStateWriters(evalScope: EvalScope) { + coroutineScope { + while (stateWrites.isNotEmpty()) { + val latch = stateWrites.remove() + launch { latch.updateState(evalScope) } + } + } + } + + private suspend fun evalDeactivations() { + coroutineScope { + launch { + while (deactivations.isNotEmpty()) { + // traverse in reverse order + // - deactivations are added in depth-order during the node traversal phase + // - perform deactivations in reverse order, in case later ones propagate to + // earlier ones + val toDeactivate = deactivations.removeLast() + launch { toDeactivate.deactivateIfNeeded() } + } + } + while (outputDeactivations.isNotEmpty()) { + val toDeactivate = outputDeactivations.remove() + launch { + toDeactivate.upstream?.removeDownstreamAndDeactivateIfNeeded( + downstream = toDeactivate.schedulable + ) + } + } + } + check(deactivations.isEmpty()) { "unexpected lingering deactivations" } + check(outputDeactivations.isEmpty()) { "unexpected lingering output deactivations" } + } +} + +internal class ScheduledAction<T>( + private val onResult: CompletableDeferred<T>? = null, + private val onStartTransaction: suspend EvalScope.() -> T, +) { + private var result: Maybe<T> = none + + suspend fun started(evalScope: EvalScope) { + result = just(onStartTransaction(evalScope)) + } + + fun completed() { + if (onResult != null) { + when (val result = result) { + is Just -> onResult.complete(result.value) + else -> {} + } + } + result = none + } +} + +internal typealias TransactionStore = HeteroMap diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt new file mode 100644 index 000000000000..6375918f35cd --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NoScope.kt @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.FrpScope +import kotlin.coroutines.Continuation +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.coroutineContext +import kotlin.coroutines.startCoroutine +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.completeWith +import kotlinx.coroutines.job + +internal object NoScope { + private object FrpScopeImpl : FrpScope + + suspend fun <R> runInFrpScope(block: suspend FrpScope.() -> R): R { + val complete = CompletableDeferred<R>(coroutineContext.job) + block.startCoroutine( + FrpScopeImpl, + object : Continuation<R> { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWith(result: Result<R>) { + complete.completeWith(result) + } + }, + ) + return complete.await() + } +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt new file mode 100644 index 000000000000..e7f76a08b638 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/NodeTypes.kt @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.util.Maybe + +/* +Dmux +Muxes + Branch +*/ +internal sealed interface SchedulableNode { + /** schedule this node w/ given NodeEvalScope */ + suspend fun schedule(evalScope: EvalScope) + + suspend fun adjustDirectUpstream(scheduler: Scheduler, oldDepth: Int, newDepth: Int) + + suspend fun moveIndirectUpstreamToDirect( + scheduler: Scheduler, + oldIndirectDepth: Int, + oldIndirectSet: Set<MuxDeferredNode<*, *>>, + newDirectDepth: Int, + ) + + suspend fun adjustIndirectUpstream( + scheduler: Scheduler, + oldDepth: Int, + newDepth: Int, + removals: Set<MuxDeferredNode<*, *>>, + additions: Set<MuxDeferredNode<*, *>>, + ) + + suspend fun moveDirectUpstreamToIndirect( + scheduler: Scheduler, + oldDirectDepth: Int, + newIndirectDepth: Int, + newIndirectSet: Set<MuxDeferredNode<*, *>>, + ) + + suspend fun removeIndirectUpstream( + scheduler: Scheduler, + depth: Int, + indirectSet: Set<MuxDeferredNode<*, *>>, + ) + + suspend fun removeDirectUpstream(scheduler: Scheduler, depth: Int) +} + +/* +All but Dmux + */ +internal sealed interface PullNode<out A> { + /** + * query the result of this node within the current transaction. if the node is cached, this + * will read from the cache, otherwise it will perform a full evaluation, even if invoked + * multiple times within a transaction. + */ + suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> +} + +/* +Muxes + DmuxBranch + */ +internal sealed interface PushNode<A> : PullNode<A> { + + suspend fun hasCurrentValue(transactionStore: TransactionStore): Boolean + + val depthTracker: DepthTracker + + suspend fun removeDownstream(downstream: Schedulable) + + /** called during cleanup phase */ + suspend fun deactivateIfNeeded() + + /** called from mux nodes after severs */ + suspend fun scheduleDeactivationIfNeeded(evalScope: EvalScope) + + suspend fun addDownstream(downstream: Schedulable) + + suspend fun removeDownstreamAndDeactivateIfNeeded(downstream: Schedulable) +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt new file mode 100644 index 000000000000..e60dccaac392 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Output.kt @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.util.Just +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext + +internal class Output<A>( + val context: CoroutineContext = EmptyCoroutineContext, + val onDeath: suspend () -> Unit = {}, + val onEmit: suspend EvalScope.(A) -> Unit, +) { + + val schedulable = Schedulable.O(this) + + @Volatile var upstream: NodeConnection<A>? = null + @Volatile var result: Any? = NoResult + + private object NoResult + + // invoked by network + suspend fun visit(evalScope: EvalScope) { + val upstreamResult = result + check(upstreamResult !== NoResult) { "output visited with null upstream result" } + result = null + @Suppress("UNCHECKED_CAST") evalScope.onEmit(upstreamResult as A) + } + + suspend fun kill() { + onDeath() + } + + suspend fun schedule(evalScope: EvalScope) { + val upstreamResult = + checkNotNull(upstream) { "output scheduled with null upstream" }.getPushEvent(evalScope) + if (upstreamResult is Just) { + result = upstreamResult.value + evalScope.scheduleOutput(this) + } + } +} + +internal inline fun OneShot(crossinline onEmit: suspend EvalScope.() -> Unit): Output<Unit> = + Output<Unit>(onEmit = { onEmit() }).apply { result = Unit } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt new file mode 100644 index 000000000000..b4656e0aee3a --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/PullNodes.kt @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.map +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Deferred + +internal val neverImpl: TFlowImpl<Nothing> = TFlowCheap { null } + +internal class MapNode<A, B>(val upstream: PullNode<A>, val transform: suspend EvalScope.(A) -> B) : + PullNode<B> { + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<B> = + upstream.getPushEvent(evalScope).map { evalScope.transform(it) } +} + +internal inline fun <A, B> mapImpl( + crossinline upstream: suspend EvalScope.() -> TFlowImpl<A>, + noinline transform: suspend EvalScope.(A) -> B, +): TFlowImpl<B> = TFlowCheap { downstream -> + upstream().activate(evalScope = this, downstream)?.let { (connection, needsEval) -> + ActivationResult( + connection = + NodeConnection( + directUpstream = MapNode(connection.directUpstream, transform), + schedulerUpstream = connection.schedulerUpstream, + ), + needsEval = needsEval, + ) + } +} + +internal class CachedNode<A>(val key: Key<Deferred<Maybe<A>>>, val upstream: PullNode<A>) : + PullNode<A> { + override suspend fun getPushEvent(evalScope: EvalScope): Maybe<A> { + val deferred = + evalScope.transactionStore.getOrPut(key) { + evalScope.deferAsync(CoroutineStart.LAZY) { upstream.getPushEvent(evalScope) } + } + return deferred.await() + } +} + +internal fun <A> TFlowImpl<A>.cached(): TFlowImpl<A> { + val key = object : Key<Deferred<Maybe<A>>> {} + return TFlowCheap { + activate(this, it)?.let { (connection, needsEval) -> + ActivationResult( + connection = + NodeConnection( + directUpstream = CachedNode(key, connection.directUpstream), + schedulerUpstream = connection.schedulerUpstream, + ), + needsEval = needsEval, + ) + } + } +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt new file mode 100644 index 000000000000..4fef865e87e7 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/Scheduler.kt @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalCoroutinesApi::class) + +package com.android.systemui.experimental.frp.internal + +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.PriorityBlockingQueue +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch + +internal interface Scheduler { + suspend fun schedule(depth: Int, node: MuxNode<*, *, *>) + + suspend fun scheduleIndirect(indirectDepth: Int, node: MuxNode<*, *, *>) +} + +internal class SchedulerImpl : Scheduler { + val enqueued = ConcurrentHashMap<MuxNode<*, *, *>, Any>() + val scheduledQ = PriorityBlockingQueue<Pair<Int, MuxNode<*, *, *>>>(16, compareBy { it.first }) + val chan = Channel<Pair<Int, MuxNode<*, *, *>>>(Channel.UNLIMITED) + + override suspend fun schedule(depth: Int, node: MuxNode<*, *, *>) { + if (enqueued.putIfAbsent(node, node) == null) { + chan.send(Pair(depth, node)) + } + } + + override suspend fun scheduleIndirect(indirectDepth: Int, node: MuxNode<*, *, *>) { + schedule(Int.MIN_VALUE + indirectDepth, node) + } + + suspend fun activate() { + for (nodeSchedule in chan) { + scheduledQ.add(nodeSchedule) + drainChan() + } + } + + internal suspend fun drainEval(network: Network) { + drain { runStep -> + runStep { muxNode -> network.evalScope { muxNode.visit(this) } } + // If any visited MuxPromptNodes had their depths increased, eagerly propagate those + // depth + // changes now before performing further network evaluation. + network.compactor.drainCompact() + } + } + + internal suspend fun drainCompact() { + drain { runStep -> runStep { muxNode -> muxNode.visitCompact(scheduler = this) } } + } + + private suspend inline fun drain( + crossinline onStep: + suspend (runStep: suspend (visit: suspend (MuxNode<*, *, *>) -> Unit) -> Unit) -> Unit + ): Unit = coroutineScope { + while (!chan.isEmpty || scheduledQ.isNotEmpty()) { + drainChan() + val maxDepth = scheduledQ.peek()?.first ?: error("Unexpected empty scheduler") + onStep { visit -> runStep(maxDepth, visit) } + } + } + + private suspend fun drainChan() { + while (!chan.isEmpty) { + scheduledQ.add(chan.receive()) + } + } + + private suspend inline fun runStep( + maxDepth: Int, + crossinline visit: suspend (MuxNode<*, *, *>) -> Unit, + ) = coroutineScope { + while (scheduledQ.peek()?.first?.let { it <= maxDepth } == true) { + val (d, node) = scheduledQ.remove() + if ( + node.depthTracker.dirty_hasDirectUpstream() && + d < node.depthTracker.dirty_directDepth + ) { + scheduledQ.add(node.depthTracker.dirty_directDepth to node) + } else { + launch { + enqueued.remove(node) + visit(node) + } + } + } + } +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt new file mode 100644 index 000000000000..c1d10760978a --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/StateScopeImpl.kt @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.FrpDeferredValue +import com.android.systemui.experimental.frp.FrpStateScope +import com.android.systemui.experimental.frp.FrpStateful +import com.android.systemui.experimental.frp.FrpTransactionScope +import com.android.systemui.experimental.frp.GroupedTFlow +import com.android.systemui.experimental.frp.TFlow +import com.android.systemui.experimental.frp.TFlowInit +import com.android.systemui.experimental.frp.TFlowLoop +import com.android.systemui.experimental.frp.TState +import com.android.systemui.experimental.frp.TStateInit +import com.android.systemui.experimental.frp.emptyTFlow +import com.android.systemui.experimental.frp.groupByKey +import com.android.systemui.experimental.frp.init +import com.android.systemui.experimental.frp.internal.util.mapValuesParallel +import com.android.systemui.experimental.frp.mapCheap +import com.android.systemui.experimental.frp.merge +import com.android.systemui.experimental.frp.switch +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.map +import kotlin.coroutines.Continuation +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.startCoroutine +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.completeWith +import kotlinx.coroutines.job + +internal class StateScopeImpl(val evalScope: EvalScope, override val endSignal: TFlow<Any>) : + StateScope, EvalScope by evalScope { + + private val endSignalOnce: TFlow<Any> = endSignal.nextOnlyInternal("StateScope.endSignal") + + private fun <A> TFlow<A>.truncateToScope(operatorName: String): TFlow<A> = + if (endSignalOnce === emptyTFlow) { + this + } else { + endSignalOnce.mapCheap { emptyTFlow }.toTStateInternal(operatorName, this).switch() + } + + private fun <A> TFlow<A>.nextOnlyInternal(operatorName: String): TFlow<A> = + if (this === emptyTFlow) { + this + } else { + TFlowLoop<A>().apply { + loopback = + mapCheap { emptyTFlow } + .toTStateInternal(operatorName, this@nextOnlyInternal) + .switch() + } + } + + private fun <A> TFlow<A>.toTStateInternal(operatorName: String, init: A): TState<A> = + toTStateInternalDeferred(operatorName, CompletableDeferred(init)) + + private fun <A> TFlow<A>.toTStateInternalDeferred( + operatorName: String, + init: Deferred<A>, + ): TState<A> { + val changes = this@toTStateInternalDeferred + val name = operatorName + val impl = + mkState(name, operatorName, evalScope, { changes.init.connect(evalScope = this) }, init) + return TStateInit(constInit(name, impl)) + } + + private fun <R> deferredInternal(block: suspend FrpStateScope.() -> R): FrpDeferredValue<R> = + FrpDeferredValue(deferAsync { runInStateScope(block) }) + + private fun <A> TFlow<A>.toTStateDeferredInternal( + initialValue: FrpDeferredValue<A> + ): TState<A> { + val operatorName = "toTStateDeferred" + // Ensure state is only collected until the end of this scope + return truncateToScope(operatorName) + .toTStateInternalDeferred(operatorName, initialValue.unwrapped) + } + + private fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyInternal( + storage: TState<Map<K, TFlow<V>>> + ): TFlow<Map<K, V>> { + val name = "mergeIncrementally" + return TFlowInit( + constInit( + name, + switchDeferredImpl( + getStorage = { + storage.init + .connect(this) + .getCurrentWithEpoch(this) + .first + .mapValuesParallel { (_, flow) -> flow.init.connect(this) } + }, + getPatches = { + mapImpl({ init.connect(this) }) { patch -> + patch.mapValuesParallel { (_, m) -> + m.map { flow -> flow.init.connect(this) } + } + } + }, + ), + ) + ) + } + + private fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptInternal( + storage: TState<Map<K, TFlow<V>>> + ): TFlow<Map<K, V>> { + val name = "mergeIncrementallyPrompt" + return TFlowInit( + constInit( + name, + switchPromptImpl( + getStorage = { + storage.init + .connect(this) + .getCurrentWithEpoch(this) + .first + .mapValuesParallel { (_, flow) -> flow.init.connect(this) } + }, + getPatches = { + mapImpl({ init.connect(this) }) { patch -> + patch.mapValuesParallel { (_, m) -> + m.map { flow -> flow.init.connect(this) } + } + } + }, + ), + ) + ) + } + + private fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKeyInternal( + init: FrpDeferredValue<Map<K, FrpStateful<B>>>, + numKeys: Int?, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> { + val eventsByKey: GroupedTFlow<K, Maybe<FrpStateful<A>>> = groupByKey(numKeys) + val initOut: Deferred<Map<K, B>> = deferAsync { + init.unwrapped.await().mapValuesParallel { (k, stateful) -> + val newEnd = with(frpScope) { eventsByKey[k].skipNext() } + val newScope = childStateScope(newEnd) + newScope.runInStateScope(stateful) + } + } + val changesNode: TFlowImpl<Map<K, Maybe<A>>> = + mapImpl( + upstream = { this@applyLatestStatefulForKeyInternal.init.connect(evalScope = this) } + ) { upstreamMap -> + upstreamMap.mapValuesParallel { (k: K, ma: Maybe<FrpStateful<A>>) -> + reenterStateScope(this@StateScopeImpl).run { + ma.map { stateful -> + val newEnd = with(frpScope) { eventsByKey[k].skipNext() } + val newScope = childStateScope(newEnd) + newScope.runInStateScope(stateful) + } + } + } + } + val operatorName = "applyLatestStatefulForKey" + val name = operatorName + val changes: TFlow<Map<K, Maybe<A>>> = TFlowInit(constInit(name, changesNode.cached())) + return changes to FrpDeferredValue(initOut) + } + + private fun <A> TFlow<FrpStateful<A>>.observeStatefulsInternal(): TFlow<A> { + val operatorName = "observeStatefuls" + val name = operatorName + return TFlowInit( + constInit( + name, + mapImpl( + upstream = { this@observeStatefulsInternal.init.connect(evalScope = this) } + ) { stateful -> + reenterStateScope(outerScope = this@StateScopeImpl) + .runInStateScope(stateful) + } + .cached(), + ) + ) + } + + override val frpScope: FrpStateScope = FrpStateScopeImpl() + + private inner class FrpStateScopeImpl : + FrpStateScope, FrpTransactionScope by evalScope.frpScope { + + override fun <A> deferredStateScope( + block: suspend FrpStateScope.() -> A + ): FrpDeferredValue<A> = deferredInternal(block) + + override fun <A> TFlow<A>.holdDeferred(initialValue: FrpDeferredValue<A>): TState<A> = + toTStateDeferredInternal(initialValue) + + override fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementally( + initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>> + ): TFlow<Map<K, V>> { + val storage: TState<Map<K, TFlow<V>>> = foldMapIncrementally(initialTFlows) + return mergeIncrementallyInternal(storage) + } + + override fun <K : Any, V> TFlow<Map<K, Maybe<TFlow<V>>>>.mergeIncrementallyPromptly( + initialTFlows: FrpDeferredValue<Map<K, TFlow<V>>> + ): TFlow<Map<K, V>> { + val storage: TState<Map<K, TFlow<V>>> = foldMapIncrementally(initialTFlows) + return mergeIncrementallyPromptInternal(storage) + } + + override fun <K, A, B> TFlow<Map<K, Maybe<FrpStateful<A>>>>.applyLatestStatefulForKey( + init: FrpDeferredValue<Map<K, FrpStateful<B>>>, + numKeys: Int?, + ): Pair<TFlow<Map<K, Maybe<A>>>, FrpDeferredValue<Map<K, B>>> = + applyLatestStatefulForKeyInternal(init, numKeys) + + override fun <A> TFlow<FrpStateful<A>>.applyStatefuls(): TFlow<A> = + observeStatefulsInternal() + } + + override suspend fun <R> runInStateScope(block: suspend FrpStateScope.() -> R): R { + val complete = CompletableDeferred<R>(parent = coroutineContext.job) + block.startCoroutine( + frpScope, + object : Continuation<R> { + override val context: CoroutineContext + get() = EmptyCoroutineContext + + override fun resumeWith(result: Result<R>) { + complete.completeWith(result) + } + }, + ) + return complete.await() + } + + override fun childStateScope(newEnd: TFlow<Any>) = + StateScopeImpl(evalScope, merge(newEnd, endSignal)) +} + +private fun EvalScope.reenterStateScope(outerScope: StateScopeImpl) = + StateScopeImpl(evalScope = this, endSignal = outerScope.endSignal) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt new file mode 100644 index 000000000000..79978640d5a8 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TFlowImpl.kt @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.util.Maybe + +/* Initialized TFlow */ +internal fun interface TFlowImpl<out A> { + suspend fun activate(evalScope: EvalScope, downstream: Schedulable): ActivationResult<A>? +} + +internal data class ActivationResult<out A>( + val connection: NodeConnection<A>, + val needsEval: Boolean, +) + +internal inline fun <A> TFlowCheap(crossinline cheap: CheapNodeSubscribe<A>) = + TFlowImpl { scope, ds -> + scope.cheap(ds) + } + +internal typealias CheapNodeSubscribe<A> = + suspend EvalScope.(downstream: Schedulable) -> ActivationResult<A>? + +internal data class NodeConnection<out A>( + val directUpstream: PullNode<A>, + val schedulerUpstream: PushNode<*>, +) + +internal suspend fun <A> NodeConnection<A>.hasCurrentValue( + transactionStore: TransactionStore +): Boolean = schedulerUpstream.hasCurrentValue(transactionStore) + +internal suspend fun <A> NodeConnection<A>.removeDownstreamAndDeactivateIfNeeded( + downstream: Schedulable +) = schedulerUpstream.removeDownstreamAndDeactivateIfNeeded(downstream) + +internal suspend fun <A> NodeConnection<A>.scheduleDeactivationIfNeeded(evalScope: EvalScope) = + schedulerUpstream.scheduleDeactivationIfNeeded(evalScope) + +internal suspend fun <A> NodeConnection<A>.removeDownstream(downstream: Schedulable) = + schedulerUpstream.removeDownstream(downstream) + +internal suspend fun <A> NodeConnection<A>.getPushEvent(evalScope: EvalScope): Maybe<A> = + directUpstream.getPushEvent(evalScope) + +internal val <A> NodeConnection<A>.depthTracker: DepthTracker + get() = schedulerUpstream.depthTracker diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt new file mode 100644 index 000000000000..d8b6dac000bb --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TStateImpl.kt @@ -0,0 +1,377 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.internal.util.associateByIndex +import com.android.systemui.experimental.frp.internal.util.hashString +import com.android.systemui.experimental.frp.internal.util.mapValuesParallel +import com.android.systemui.experimental.frp.util.Just +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.none +import java.util.concurrent.atomic.AtomicLong +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.ExperimentalCoroutinesApi + +internal sealed interface TStateImpl<out A> { + val name: String? + val operatorName: String + val changes: TFlowImpl<A> + + suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<A, Long> +} + +internal sealed class TStateDerived<A>(override val changes: TFlowImpl<A>) : + TStateImpl<A>, Key<Deferred<Pair<A, Long>>> { + + @Volatile + var invalidatedEpoch = Long.MIN_VALUE + private set + + @Volatile + protected var cache: Any? = EmptyCache + private set + + override suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<A, Long> = + evalScope.transactionStore + .getOrPut(this) { evalScope.deferAsync(CoroutineStart.LAZY) { pull(evalScope) } } + .await() + + suspend fun pull(evalScope: EvalScope): Pair<A, Long> { + @Suppress("UNCHECKED_CAST") + return recalc(evalScope)?.also { (a, epoch) -> setCache(a, epoch) } + ?: ((cache as A) to invalidatedEpoch) + } + + fun setCache(value: A, epoch: Long) { + if (epoch > invalidatedEpoch) { + cache = value + invalidatedEpoch = epoch + } + } + + fun getCachedUnsafe(): Maybe<A> { + @Suppress("UNCHECKED_CAST") + return if (cache == EmptyCache) none else just(cache as A) + } + + protected abstract suspend fun recalc(evalScope: EvalScope): Pair<A, Long>? + + private data object EmptyCache +} + +internal class TStateSource<A>( + override val name: String?, + override val operatorName: String, + init: Deferred<A>, + override val changes: TFlowImpl<A>, +) : TStateImpl<A> { + constructor( + name: String?, + operatorName: String, + init: A, + changes: TFlowImpl<A>, + ) : this(name, operatorName, CompletableDeferred(init), changes) + + lateinit var upstreamConnection: NodeConnection<A> + + // Note: Don't need to synchronize; we will never interleave reads and writes, since all writes + // are performed at the end of a network step, after any reads would have taken place. + + @Volatile private var _current: Deferred<A> = init + @Volatile + var writeEpoch = 0L + private set + + override suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<A, Long> = + _current.await() to writeEpoch + + /** called by network after eval phase has completed */ + suspend fun updateState(evalScope: EvalScope) { + // write the latch + val eventResult = upstreamConnection.getPushEvent(evalScope) + if (eventResult is Just) { + _current = CompletableDeferred(eventResult.value) + writeEpoch = evalScope.epoch + } + } + + override fun toString(): String = "TStateImpl(changes=$changes, current=$_current)" + + @OptIn(ExperimentalCoroutinesApi::class) + fun getStorageUnsafe(): Maybe<A> = + if (_current.isCompleted) just(_current.getCompleted()) else none +} + +internal fun <A> constS(name: String?, operatorName: String, init: A): TStateImpl<A> = + TStateSource(name, operatorName, init, neverImpl) + +internal inline fun <A> mkState( + name: String?, + operatorName: String, + evalScope: EvalScope, + crossinline getChanges: suspend EvalScope.() -> TFlowImpl<A>, + init: Deferred<A>, +): TStateImpl<A> { + lateinit var state: TStateSource<A> + val calm: TFlowImpl<A> = + filterNode(getChanges) { new -> new != state.getCurrentWithEpoch(evalScope = this).first } + .cached() + return TStateSource(name, operatorName, init, calm).also { + state = it + evalScope.scheduleOutput( + OneShot { + calm.activate(evalScope = this, downstream = Schedulable.S(state))?.let { + (connection, needsEval) -> + state.upstreamConnection = connection + if (needsEval) { + schedule(state) + } + } + } + ) + } +} + +private inline fun <A> TFlowImpl<A>.calm( + crossinline getState: () -> TStateDerived<A> +): TFlowImpl<A> = + filterNode({ this@calm }) { new -> + val state = getState() + val (current, _) = state.getCurrentWithEpoch(evalScope = this) + if (new != current) { + state.setCache(new, epoch) + true + } else { + false + } + } + .cached() + +internal fun <A, B> TStateImpl<A>.mapCheap( + name: String?, + operatorName: String, + transform: suspend EvalScope.(A) -> B, +): TStateImpl<B> = + DerivedMapCheap(name, operatorName, this, mapImpl({ changes }) { transform(it) }, transform) + +internal class DerivedMapCheap<A, B>( + override val name: String?, + override val operatorName: String, + val upstream: TStateImpl<A>, + override val changes: TFlowImpl<B>, + private val transform: suspend EvalScope.(A) -> B, +) : TStateImpl<B> { + + override suspend fun getCurrentWithEpoch(evalScope: EvalScope): Pair<B, Long> { + val (a, epoch) = upstream.getCurrentWithEpoch(evalScope) + return evalScope.transform(a) to epoch + } + + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +internal fun <A, B> TStateImpl<A>.map( + name: String?, + operatorName: String, + transform: suspend EvalScope.(A) -> B, +): TStateImpl<B> { + lateinit var state: TStateDerived<B> + val mappedChanges = mapImpl({ changes }) { transform(it) }.cached().calm { state } + state = DerivedMap(name, operatorName, transform, this, mappedChanges) + return state +} + +internal class DerivedMap<A, B>( + override val name: String?, + override val operatorName: String, + private val transform: suspend EvalScope.(A) -> B, + val upstream: TStateImpl<A>, + changes: TFlowImpl<B>, +) : TStateDerived<B>(changes) { + override fun toString(): String = "${this::class.simpleName}@$hashString" + + override suspend fun recalc(evalScope: EvalScope): Pair<B, Long>? { + val (a, epoch) = upstream.getCurrentWithEpoch(evalScope) + return if (epoch > invalidatedEpoch) { + evalScope.transform(a) to epoch + } else { + null + } + } +} + +internal fun <A> TStateImpl<TStateImpl<A>>.flatten(name: String?, operator: String): TStateImpl<A> { + // emits the current value of the new inner state, when that state is emitted + val switchEvents = mapImpl({ changes }) { newInner -> newInner.getCurrentWithEpoch(this).first } + // emits the new value of the new inner state when that state is emitted, or + // falls back to the current value if a new state is *not* being emitted this + // transaction + val innerChanges = + mapImpl({ changes }) { newInner -> + mergeNodes({ switchEvents }, { newInner.changes }) { _, new -> new } + } + val switchedChanges: TFlowImpl<A> = + mapImpl({ + switchPromptImpl( + getStorage = { + mapOf(Unit to this@flatten.getCurrentWithEpoch(evalScope = this).first.changes) + }, + getPatches = { mapImpl({ innerChanges }) { new -> mapOf(Unit to just(new)) } }, + ) + }) { map -> + map.getValue(Unit) + } + lateinit var state: DerivedFlatten<A> + state = DerivedFlatten(name, operator, this, switchedChanges.calm { state }) + return state +} + +internal class DerivedFlatten<A>( + override val name: String?, + override val operatorName: String, + val upstream: TStateImpl<TStateImpl<A>>, + changes: TFlowImpl<A>, +) : TStateDerived<A>(changes) { + override suspend fun recalc(evalScope: EvalScope): Pair<A, Long> { + val (inner, epoch0) = upstream.getCurrentWithEpoch(evalScope) + val (a, epoch1) = inner.getCurrentWithEpoch(evalScope) + return a to maxOf(epoch0, epoch1) + } + + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +@Suppress("NOTHING_TO_INLINE") +internal inline fun <A, B> TStateImpl<A>.flatMap( + name: String?, + operatorName: String, + noinline transform: suspend EvalScope.(A) -> TStateImpl<B>, +): TStateImpl<B> = map(null, operatorName, transform).flatten(name, operatorName) + +internal fun <A, B, Z> zipStates( + name: String?, + operatorName: String, + l1: TStateImpl<A>, + l2: TStateImpl<B>, + transform: suspend EvalScope.(A, B) -> Z, +): TStateImpl<Z> = + zipStates(null, operatorName, mapOf(0 to l1, 1 to l2)).map(name, operatorName) { + val a = it.getValue(0) + val b = it.getValue(1) + @Suppress("UNCHECKED_CAST") transform(a as A, b as B) + } + +internal fun <A, B, C, Z> zipStates( + name: String?, + operatorName: String, + l1: TStateImpl<A>, + l2: TStateImpl<B>, + l3: TStateImpl<C>, + transform: suspend EvalScope.(A, B, C) -> Z, +): TStateImpl<Z> = + zipStates(null, operatorName, mapOf(0 to l1, 1 to l2, 2 to l3)).map(name, operatorName) { + val a = it.getValue(0) + val b = it.getValue(1) + val c = it.getValue(2) + @Suppress("UNCHECKED_CAST") transform(a as A, b as B, c as C) + } + +internal fun <A, B, C, D, Z> zipStates( + name: String?, + operatorName: String, + l1: TStateImpl<A>, + l2: TStateImpl<B>, + l3: TStateImpl<C>, + l4: TStateImpl<D>, + transform: suspend EvalScope.(A, B, C, D) -> Z, +): TStateImpl<Z> = + zipStates(null, operatorName, mapOf(0 to l1, 1 to l2, 2 to l3, 3 to l4)).map( + name, + operatorName, + ) { + val a = it.getValue(0) + val b = it.getValue(1) + val c = it.getValue(2) + val d = it.getValue(3) + @Suppress("UNCHECKED_CAST") transform(a as A, b as B, c as C, d as D) + } + +internal fun <K : Any, A> zipStates( + name: String?, + operatorName: String, + states: Map<K, TStateImpl<A>>, +): TStateImpl<Map<K, A>> { + if (states.isEmpty()) return constS(name, operatorName, emptyMap()) + val stateChanges: Map<K, TFlowImpl<A>> = states.mapValues { it.value.changes } + lateinit var state: DerivedZipped<K, A> + // No need for calm; invariant ensures that changes will only emit when there's a difference + val changes: TFlowImpl<Map<K, A>> = + mapImpl({ + switchDeferredImpl(getStorage = { stateChanges }, getPatches = { neverImpl }) + }) { patch -> + states + .mapValues { (k, v) -> + if (k in patch) { + patch.getValue(k) + } else { + v.getCurrentWithEpoch(evalScope = this).first + } + } + .also { state.setCache(it, epoch) } + } + state = DerivedZipped(name, operatorName, states, changes) + return state +} + +internal class DerivedZipped<K : Any, A>( + override val name: String?, + override val operatorName: String, + val upstream: Map<K, TStateImpl<A>>, + changes: TFlowImpl<Map<K, A>>, +) : TStateDerived<Map<K, A>>(changes) { + override suspend fun recalc(evalScope: EvalScope): Pair<Map<K, A>, Long> { + val newEpoch = AtomicLong() + return upstream.mapValuesParallel { + val (a, epoch) = it.value.getCurrentWithEpoch(evalScope) + newEpoch.accumulateAndGet(epoch, ::maxOf) + a + } to newEpoch.get() + } + + override fun toString(): String = "${this::class.simpleName}@$hashString" +} + +@Suppress("NOTHING_TO_INLINE") +internal inline fun <A> zipStates( + name: String?, + operatorName: String, + states: List<TStateImpl<A>>, +): TStateImpl<List<A>> = + if (states.isEmpty()) { + constS(name, operatorName, emptyList()) + } else { + zipStates(null, operatorName, states.asIterable().associateByIndex()).mapCheap( + name, + operatorName, + ) { + it.values.toList() + } + } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt new file mode 100644 index 000000000000..c3f80a179684 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/TransactionalImpl.kt @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal + +import com.android.systemui.experimental.frp.internal.util.Key +import com.android.systemui.experimental.frp.internal.util.hashString +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Deferred + +internal sealed class TransactionalImpl<out A> { + data class Const<out A>(val value: Deferred<A>) : TransactionalImpl<A>() + + class Impl<A>(val block: suspend EvalScope.() -> A) : TransactionalImpl<A>(), Key<Deferred<A>> { + override fun toString(): String = "${this::class.simpleName}@$hashString" + } +} + +@Suppress("NOTHING_TO_INLINE") +internal inline fun <A> transactionalImpl( + noinline block: suspend EvalScope.() -> A +): TransactionalImpl<A> = TransactionalImpl.Impl(block) + +internal fun <A> TransactionalImpl<A>.sample(evalScope: EvalScope): Deferred<A> = + when (this) { + is TransactionalImpl.Const -> value + is TransactionalImpl.Impl -> + evalScope.transactionStore + .getOrPut(this) { + evalScope.deferAsync(start = CoroutineStart.LAZY) { evalScope.block() } + } + .also { it.start() } + } diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt new file mode 100644 index 000000000000..cc5538e5c87c --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Bag.kt @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal.util + +internal class Bag<T> private constructor(private val intMap: MutableMap<T, Int>) : + Set<T> by intMap.keys { + + constructor() : this(hashMapOf()) + + override fun toString(): String = intMap.toString() + + fun add(element: T): Boolean { + val entry = intMap[element] + return if (entry != null) { + intMap[element] = entry + 1 + false + } else { + intMap[element] = 1 + true + } + } + + fun remove(element: T): Boolean { + val entry = intMap[element] + return when { + entry == null -> { + false + } + entry <= 1 -> { + intMap.remove(element) + true + } + else -> { + intMap[element] = entry - 1 + false + } + } + } + + fun addAll(elements: Iterable<T>, butNot: T? = null): Set<T>? { + val newlyAdded = hashSetOf<T>() + for (value in elements) { + if (value != butNot) { + if (add(value)) { + newlyAdded.add(value) + } + } + } + return newlyAdded.ifEmpty { null } + } + + fun clear() { + intMap.clear() + } + + fun removeAll(elements: Collection<T>): Set<T>? { + val result = hashSetOf<T>() + for (element in elements) { + if (remove(element)) { + result.add(element) + } + } + return result.ifEmpty { null } + } +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt new file mode 100644 index 000000000000..449aa19be635 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/ConcurrentNullableHashMap.kt @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal.util + +import java.util.concurrent.ConcurrentHashMap + +internal class ConcurrentNullableHashMap<K : Any, V> +private constructor(private val inner: ConcurrentHashMap<K, Any>) { + constructor() : this(ConcurrentHashMap()) + + @Suppress("UNCHECKED_CAST") + operator fun get(key: K): V? = inner[key]?.takeIf { it !== NullValue } as V? + + @Suppress("UNCHECKED_CAST") + fun put(key: K, value: V?): V? = + inner.put(key, value ?: NullValue)?.takeIf { it !== NullValue } as V? + + operator fun set(key: K, value: V?) { + put(key, value) + } + + @Suppress("UNCHECKED_CAST") + fun toMap(): Map<K, V> = inner.mapValues { (_, v) -> v.takeIf { it !== NullValue } as V } + + fun clear() { + inner.clear() + } + + fun isNotEmpty(): Boolean = inner.isNotEmpty() +} + +private object NullValue diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt new file mode 100644 index 000000000000..14a567ca67c8 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/HeteroMap.kt @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal.util + +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.None +import com.android.systemui.experimental.frp.util.just +import java.util.concurrent.ConcurrentHashMap + +internal interface Key<A> + +private object NULL + +internal class HeteroMap { + + private val store = ConcurrentHashMap<Key<*>, Any>() + + @Suppress("UNCHECKED_CAST") + operator fun <A> get(key: Key<A>): Maybe<A> = + store[key]?.let { just((if (it === NULL) null else it) as A) } ?: None + + operator fun <A> set(key: Key<A>, value: A) { + store[key] = value ?: NULL + } + + operator fun contains(key: Key<*>): Boolean = store.containsKey(key) + + fun clear() { + store.clear() + } + + @Suppress("UNCHECKED_CAST") + fun <A> remove(key: Key<A>): Maybe<A> = + store.remove(key)?.let { just((if (it === NULL) null else it) as A) } ?: None + + @Suppress("UNCHECKED_CAST") + fun <A> getOrPut(key: Key<A>, defaultValue: () -> A): A = + store.compute(key) { _, value -> value ?: defaultValue() ?: NULL } as A +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt new file mode 100644 index 000000000000..6f19a76f8900 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/MapUtils.kt @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.internal.util + +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.yield + +// TODO: It's possible that this is less efficient than having each coroutine directly insert into a +// ConcurrentHashMap, but then we would lose ordering +internal suspend inline fun <K, A, B : Any, M : MutableMap<K, B>> Map<K, A> + .mapValuesNotNullParallelTo( + destination: M, + crossinline block: suspend (Map.Entry<K, A>) -> B?, +): M = + destination.also { + coroutineScope { + mapValues { + async { + yield() + block(it) + } + } + } + .mapValuesNotNullTo(it) { (_, deferred) -> deferred.await() } + } + +internal inline fun <K, A, B : Any, M : MutableMap<K, B>> Map<K, A>.mapValuesNotNullTo( + destination: M, + block: (Map.Entry<K, A>) -> B?, +): M = + destination.also { + for (entry in this@mapValuesNotNullTo) { + block(entry)?.let { destination.put(entry.key, it) } + } + } + +internal suspend fun <A, B> Iterable<A>.mapParallel(transform: suspend (A) -> B): List<B> = + coroutineScope { + map { async(start = CoroutineStart.LAZY) { transform(it) } }.awaitAll() + } + +internal suspend fun <K, A, B, M : MutableMap<K, B>> Map<K, A>.mapValuesParallelTo( + destination: M, + transform: suspend (Map.Entry<K, A>) -> B, +): Map<K, B> = entries.mapParallel { it.key to transform(it) }.toMap(destination) + +internal suspend fun <K, A, B> Map<K, A>.mapValuesParallel( + transform: suspend (Map.Entry<K, A>) -> B +): Map<K, B> = mapValuesParallelTo(mutableMapOf(), transform) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt new file mode 100644 index 000000000000..0a47429d4113 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/internal/util/Util.kt @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalCoroutinesApi::class) + +package com.android.systemui.experimental.frp.internal.util + +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.Job +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.launch +import kotlinx.coroutines.newCoroutineContext + +internal fun <A> CoroutineScope.asyncImmediate( + start: CoroutineStart = CoroutineStart.UNDISPATCHED, + context: CoroutineContext = EmptyCoroutineContext, + block: suspend CoroutineScope.() -> A, +): Deferred<A> = async(start = start, context = Dispatchers.Unconfined + context, block = block) + +internal fun CoroutineScope.launchImmediate( + start: CoroutineStart = CoroutineStart.UNDISPATCHED, + context: CoroutineContext = EmptyCoroutineContext, + block: suspend CoroutineScope.() -> Unit, +): Job = launch(start = start, context = Dispatchers.Unconfined + context, block = block) + +internal suspend fun awaitCancellationAndThen(block: suspend () -> Unit) { + try { + awaitCancellation() + } finally { + block() + } +} + +internal fun CoroutineScope.launchOnCancel( + context: CoroutineContext = EmptyCoroutineContext, + block: () -> Unit, +): Job = + launch(context = context, start = CoroutineStart.UNDISPATCHED) { + awaitCancellationAndThen(block) + } + +internal fun CoroutineScope.childScope( + context: CoroutineContext = EmptyCoroutineContext +): CoroutineScope { + val newContext = newCoroutineContext(context) + val newJob = Job(parent = newContext[Job]) + return CoroutineScope(newContext + newJob) +} + +internal fun <A> Iterable<A>.associateByIndex(): Map<Int, A> = buildMap { + forEachIndexed { index, a -> put(index, a) } +} + +internal fun <A, M : MutableMap<Int, A>> Iterable<A>.associateByIndexTo(destination: M): M = + destination.apply { forEachIndexed { index, a -> put(index, a) } } + +internal val Any.hashString: String + get() = Integer.toHexString(System.identityHashCode(this)) diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt new file mode 100644 index 000000000000..dca8364ed8ef --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Either.kt @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress("NOTHING_TO_INLINE") + +package com.android.systemui.experimental.frp.util + +/** + * Contains a value of two possibilities: `Left<A>` or `Right<B>` + * + * [Either] generalizes sealed classes the same way that [Pair] generalizes data classes; if a + * [Pair] is effectively an anonymous grouping of two instances, then an [Either] is an anonymous + * set of two options. + */ +sealed class Either<out A, out B> + +/** An [Either] that contains a [Left] value. */ +data class Left<out A>(val value: A) : Either<A, Nothing>() + +/** An [Either] that contains a [Right] value. */ +data class Right<out B>(val value: B) : Either<Nothing, B>() + +/** + * Returns an [Either] containing the result of applying [transform] to the [Left] value, or the + * [Right] value unchanged. + */ +inline fun <A, B, C> Either<A, C>.mapLeft(transform: (A) -> B): Either<B, C> = + when (this) { + is Left -> Left(transform(value)) + is Right -> this + } + +/** + * Returns an [Either] containing the result of applying [transform] to the [Right] value, or the + * [Left] value unchanged. + */ +inline fun <A, B, C> Either<A, B>.mapRight(transform: (B) -> C): Either<A, C> = + when (this) { + is Left -> this + is Right -> Right(transform(value)) + } + +/** Returns a [Maybe] containing the [Left] value held by this [Either], if present. */ +inline fun <A> Either<A, *>.leftMaybe(): Maybe<A> = + when (this) { + is Left -> just(value) + else -> None + } + +/** Returns the [Left] value held by this [Either], or `null` if this is a [Right] value. */ +inline fun <A> Either<A, *>.leftOrNull(): A? = + when (this) { + is Left -> value + else -> null + } + +/** Returns a [Maybe] containing the [Right] value held by this [Either], if present. */ +inline fun <B> Either<*, B>.rightMaybe(): Maybe<B> = + when (this) { + is Right -> just(value) + else -> None + } + +/** Returns the [Right] value held by this [Either], or `null` if this is a [Left] value. */ +inline fun <B> Either<*, B>.rightOrNull(): B? = + when (this) { + is Right -> value + else -> null + } + +/** + * Partitions this sequence of [Either] into two lists; [Pair.first] contains all [Left] values, and + * [Pair.second] contains all [Right] values. + */ +fun <A, B> Sequence<Either<A, B>>.partitionEithers(): Pair<List<A>, List<B>> { + val lefts = mutableListOf<A>() + val rights = mutableListOf<B>() + for (either in this) { + when (either) { + is Left -> lefts.add(either.value) + is Right -> rights.add(either.value) + } + } + return lefts to rights +} + +/** + * Partitions this map of [Either] values into two maps; [Pair.first] contains all [Left] values, + * and [Pair.second] contains all [Right] values. + */ +fun <K, A, B> Map<K, Either<A, B>>.partitionEithers(): Pair<Map<K, A>, Map<K, B>> { + val lefts = mutableMapOf<K, A>() + val rights = mutableMapOf<K, B>() + for ((k, e) in this) { + when (e) { + is Left -> lefts[k] = e.value + is Right -> rights[k] = e.value + } + } + return lefts to rights +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt new file mode 100644 index 000000000000..59c680e91a52 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/Maybe.kt @@ -0,0 +1,271 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress("NOTHING_TO_INLINE", "SuspendCoroutine") + +package com.android.systemui.experimental.frp.util + +import kotlin.coroutines.Continuation +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlin.coroutines.RestrictsSuspension +import kotlin.coroutines.resume +import kotlin.coroutines.startCoroutine +import kotlin.coroutines.suspendCoroutine + +/** Represents a value that may or may not be present. */ +sealed class Maybe<out A> + +/** A [Maybe] value that is present. */ +data class Just<out A> internal constructor(val value: A) : Maybe<A>() + +/** A [Maybe] value that is not present. */ +data object None : Maybe<Nothing>() + +/** Utilities to query [Maybe] instances from within a [maybe] block. */ +@RestrictsSuspension +object MaybeScope { + suspend operator fun <A> Maybe<A>.not(): A = suspendCoroutine { k -> + if (this is Just) k.resume(value) + } + + suspend inline fun guard(crossinline block: () -> Boolean): Unit = suspendCoroutine { k -> + if (block()) k.resume(Unit) + } +} + +/** + * Returns a [Maybe] value produced by evaluating [block]. + * + * [block] can use its [MaybeScope] receiver to query other [Maybe] values, automatically cancelling + * execution of [block] and producing [None] when attempting to query a [Maybe] that is not present. + * + * This can be used instead of Kotlin's built-in nullability (`?.` and `?:`) operators when dealing + * with complex combinations of nullables: + * ``` kotlin + * val aMaybe: Maybe<Any> = ... + * val bMaybe: Maybe<Any> = ... + * val result: String = maybe { + * val a = !aMaybe + * val b = !bMaybe + * "Got: $a and $b" + * } + * ``` + */ +fun <A> maybe(block: suspend MaybeScope.() -> A): Maybe<A> { + var maybeResult: Maybe<A> = None + val k = + object : Continuation<A> { + override val context: CoroutineContext = EmptyCoroutineContext + + override fun resumeWith(result: Result<A>) { + maybeResult = result.getOrNull()?.let { just(it) } ?: None + } + } + block.startCoroutine(MaybeScope, k) + return maybeResult +} + +/** Returns a [Just] containing this value, or [None] if `null`. */ +inline fun <A> (A?).toMaybe(): Maybe<A> = maybe(this) + +/** Returns a [Just] containing a non-null [value], or [None] if `null`. */ +inline fun <A> maybe(value: A?): Maybe<A> = value?.let(::just) ?: None + +/** Returns a [Just] containing [value]. */ +fun <A> just(value: A): Maybe<A> = Just(value) + +/** A [Maybe] that is not present. */ +val none: Maybe<Nothing> = None + +/** A [Maybe] that is not present. */ +inline fun <A> none(): Maybe<A> = None + +/** Returns the value present in this [Maybe], or `null` if not present. */ +inline fun <A> Maybe<A>.orNull(): A? = orElse(null) + +/** + * Returns a [Maybe] holding the result of applying [transform] to the value in the original + * [Maybe]. + */ +inline fun <A, B> Maybe<A>.map(transform: (A) -> B): Maybe<B> = + when (this) { + is Just -> just(transform(value)) + is None -> None + } + +/** Returns the result of applying [transform] to the value in the original [Maybe]. */ +inline fun <A, B> Maybe<A>.flatMap(transform: (A) -> Maybe<B>): Maybe<B> = + when (this) { + is Just -> transform(value) + is None -> None + } + +/** Returns the value present in this [Maybe], or the result of [defaultValue] if not present. */ +inline fun <A> Maybe<A>.orElseGet(defaultValue: () -> A): A = + when (this) { + is Just -> value + is None -> defaultValue() + } + +/** + * Returns the value present in this [Maybe], or invokes [error] with the message returned from + * [getMessage]. + */ +inline fun <A> Maybe<A>.orError(getMessage: () -> Any): A = orElseGet { error(getMessage()) } + +/** Returns the value present in this [Maybe], or [defaultValue] if not present. */ +inline fun <A> Maybe<A>.orElse(defaultValue: A): A = + when (this) { + is Just -> value + is None -> defaultValue + } + +/** + * Returns a [Maybe] that contains the present in the original [Maybe], only if it satisfies + * [predicate]. + */ +inline fun <A> Maybe<A>.filter(predicate: (A) -> Boolean): Maybe<A> = + when (this) { + is Just -> if (predicate(value)) this else None + else -> this + } + +/** Returns a [List] containing all values that are present in this [Iterable]. */ +fun <A> Iterable<Maybe<A>>.filterJust(): List<A> = asSequence().filterJust().toList() + +/** Returns a [List] containing all values that are present in this [Sequence]. */ +fun <A> Sequence<Maybe<A>>.filterJust(): Sequence<A> = filterIsInstance<Just<A>>().map { it.value } + +// Align + +/** + * Returns a [Maybe] containing the result of applying the values present in the original [Maybe] + * and other, applied to [transform] as a [These]. + */ +inline fun <A, B, C> Maybe<A>.alignWith(other: Maybe<B>, transform: (These<A, B>) -> C): Maybe<C> = + when (this) { + is Just -> { + val a = value + when (other) { + is Just -> { + val b = other.value + just(transform(These.both(a, b))) + } + None -> just(transform(These.thiz(a))) + } + } + None -> + when (other) { + is Just -> { + val b = other.value + just(transform(These.that(b))) + } + None -> none + } + } + +// Alt + +/** Returns a [Maybe] containing the value present in the original [Maybe], or [other]. */ +infix fun <A> Maybe<A>.orElseMaybe(other: Maybe<A>): Maybe<A> = orElseGetMaybe { other } + +/** + * Returns a [Maybe] containing the value present in the original [Maybe], or the result of [other]. + */ +inline fun <A> Maybe<A>.orElseGetMaybe(other: () -> Maybe<A>): Maybe<A> = + when (this) { + is Just -> this + else -> other() + } + +// Apply + +/** + * Returns a [Maybe] containing the value present in [argMaybe] applied to the function present in + * the original [Maybe]. + */ +fun <A, B> Maybe<(A) -> B>.apply(argMaybe: Maybe<A>): Maybe<B> = flatMap { f -> + argMaybe.map { a -> f(a) } +} + +/** + * Returns a [Maybe] containing the result of applying [transform] to the values present in the + * original [Maybe] and [other]. + */ +inline fun <A, B, C> Maybe<A>.zipWith(other: Maybe<B>, transform: (A, B) -> C) = flatMap { a -> + other.map { b -> transform(a, b) } +} + +// Bind + +/** + * Returns a [Maybe] containing the value present in the [Maybe] present in the original [Maybe]. + */ +fun <A> Maybe<Maybe<A>>.flatten(): Maybe<A> = flatMap { it } + +// Semigroup + +/** + * Returns a [Maybe] containing the result of applying the values present in the original [Maybe] + * and other, applied to [transform]. + */ +fun <A> Maybe<A>.mergeWith(other: Maybe<A>, transform: (A, A) -> A): Maybe<A> = + alignWith(other) { it.merge(transform) } + +/** + * Returns a list containing only the present results of applying [transform] to each element in the + * original iterable. + */ +fun <A, B> Iterable<A>.mapMaybe(transform: (A) -> Maybe<B>): List<B> = + asSequence().mapMaybe(transform).toList() + +/** + * Returns a sequence containing only the present results of applying [transform] to each element in + * the original sequence. + */ +fun <A, B> Sequence<A>.mapMaybe(transform: (A) -> Maybe<B>): Sequence<B> = + map(transform).filterIsInstance<Just<B>>().map { it.value } + +/** + * Returns a map with values of only the present results of applying [transform] to each entry in + * the original map. + */ +inline fun <K, A, B> Map<K, A>.mapMaybeValues( + crossinline p: (Map.Entry<K, A>) -> Maybe<B> +): Map<K, B> = asSequence().mapMaybe { entry -> p(entry).map { entry.key to it } }.toMap() + +/** Returns a map with all non-present values filtered out. */ +fun <K, A> Map<K, Maybe<A>>.filterJustValues(): Map<K, A> = + asSequence().mapMaybe { (key, mValue) -> mValue.map { key to it } }.toMap() + +/** + * Returns a pair of [Maybes][Maybe] that contain the [Pair.first] and [Pair.second] values present + * in the original [Maybe]. + */ +fun <A, B> Maybe<Pair<A, B>>.splitPair(): Pair<Maybe<A>, Maybe<B>> = + map { it.first } to map { it.second } + +/** Returns the value associated with [key] in this map as a [Maybe]. */ +fun <K, V> Map<K, V>.getMaybe(key: K): Maybe<V> { + val value = get(key) + if (value == null && !containsKey(key)) { + return none + } else { + @Suppress("UNCHECKED_CAST") + return just(value as V) + } +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt new file mode 100644 index 000000000000..5404c0795af8 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/These.kt @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.util + +/** Contains at least one of two potential values. */ +sealed class These<A, B> { + /** Contains a single potential value. */ + class This<A, B> internal constructor(val thiz: A) : These<A, B>() + + /** Contains a single potential value. */ + class That<A, B> internal constructor(val that: B) : These<A, B>() + + /** Contains both potential values. */ + class Both<A, B> internal constructor(val thiz: A, val that: B) : These<A, B>() + + companion object { + /** Constructs a [These] containing only [thiz]. */ + fun <A, B> thiz(thiz: A): These<A, B> = This(thiz) + + /** Constructs a [These] containing only [that]. */ + fun <A, B> that(that: B): These<A, B> = That(that) + + /** Constructs a [These] containing both [thiz] and [that]. */ + fun <A, B> both(thiz: A, that: B): These<A, B> = Both(thiz, that) + } +} + +/** + * Returns a single value from this [These]; either the single value held within, or the result of + * applying [f] to both values. + */ +inline fun <A> These<A, A>.merge(f: (A, A) -> A): A = + when (this) { + is These.This -> thiz + is These.That -> that + is These.Both -> f(thiz, that) + } + +/** Returns the [These.This] [value][These.This.thiz] present in this [These] as a [Maybe]. */ +fun <A> These<A, *>.maybeThis(): Maybe<A> = + when (this) { + is These.Both -> just(thiz) + is These.That -> None + is These.This -> just(thiz) + } + +/** + * Returns the [These.This] [value][These.This.thiz] present in this [These], or `null` if not + * present. + */ +fun <A : Any> These<A, *>.thisOrNull(): A? = + when (this) { + is These.Both -> thiz + is These.That -> null + is These.This -> thiz + } + +/** Returns the [These.That] [value][These.That.that] present in this [These] as a [Maybe]. */ +fun <A> These<*, A>.maybeThat(): Maybe<A> = + when (this) { + is These.Both -> just(that) + is These.That -> just(that) + is These.This -> None + } + +/** + * Returns the [These.That] [value][These.That.that] present in this [These], or `null` if not + * present. + */ +fun <A : Any> These<*, A>.thatOrNull(): A? = + when (this) { + is These.Both -> that + is These.That -> that + is These.This -> null + } + +/** Returns [These.Both] values present in this [These] as a [Maybe]. */ +fun <A, B> These<A, B>.maybeBoth(): Maybe<Pair<A, B>> = + when (this) { + is These.Both -> just(thiz to that) + else -> None + } + +/** Returns a [These] containing [thiz] and/or [that] if they are present. */ +fun <A, B> these(thiz: Maybe<A>, that: Maybe<B>): Maybe<These<A, B>> = + when (thiz) { + is Just -> + just( + when (that) { + is Just -> These.both(thiz.value, that.value) + else -> These.thiz(thiz.value) + } + ) + else -> + when (that) { + is Just -> just(These.that(that.value)) + else -> none + } + } + +/** + * Returns a [These] containing [thiz] and/or [that] if they are non-null, or `null` if both are + * `null`. + */ +fun <A : Any, B : Any> theseNull(thiz: A?, that: B?): These<A, B>? = + thiz?.let { that?.let { These.both(thiz, that) } ?: These.thiz(thiz) } + ?: that?.let { These.that(that) } + +/** + * Returns two maps, with [Pair.first] containing all [These.This] values and [Pair.second] + * containing all [These.That] values. + * + * If the value is [These.Both], then the associated key with appear in both output maps, bound to + * [These.Both.thiz] and [These.Both.that] in each respective output. + */ +fun <K, A, B> Map<K, These<A, B>>.partitionThese(): Pair<Map<K, A>, Map<K, B>> { + val a = mutableMapOf<K, A>() + val b = mutableMapOf<K, B>() + for ((k, t) in this) { + when (t) { + is These.Both -> { + a[k] = t.thiz + b[k] = t.that + } + is These.That -> { + b[k] = t.that + } + is These.This -> { + a[k] = t.thiz + } + } + } + return a to b +} diff --git a/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt new file mode 100644 index 000000000000..e52a6e166ec5 --- /dev/null +++ b/packages/SystemUI/frp/src/com/android/systemui/experimental/frp/util/WithPrev.kt @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.experimental.frp.util + +/** Holds a [newValue] emitted from a `TFlow`, along with the [previousValue] emitted value. */ +data class WithPrev<out S, out T : S>(val previousValue: S, val newValue: T) diff --git a/packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt b/packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt new file mode 100644 index 000000000000..a58f4995138a --- /dev/null +++ b/packages/SystemUI/frp/test/com/android/systemui/experimental/frp/FrpTests.kt @@ -0,0 +1,1370 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:OptIn(ExperimentalCoroutinesApi::class, ExperimentalFrpApi::class) + +package com.android.systemui.experimental.frp + +import com.android.systemui.experimental.frp.util.Either +import com.android.systemui.experimental.frp.util.Left +import com.android.systemui.experimental.frp.util.Maybe +import com.android.systemui.experimental.frp.util.None +import com.android.systemui.experimental.frp.util.Right +import com.android.systemui.experimental.frp.util.just +import com.android.systemui.experimental.frp.util.map +import com.android.systemui.experimental.frp.util.maybe +import com.android.systemui.experimental.frp.util.none +import kotlin.time.Duration +import kotlin.time.Duration.Companion.seconds +import kotlin.time.DurationUnit +import kotlin.time.measureTime +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitCancellation +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.stateIn +import kotlinx.coroutines.flow.toCollection +import kotlinx.coroutines.launch +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +class FrpTests { + + @Test + fun basic() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + var result: Int? = null + activateSpec(network) { emitter.observe { result = it } } + runCurrent() + emitter.emit(3) + runCurrent() + assertEquals(3, result) + runCurrent() + } + + @Test + fun basicTFlow() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + println("starting network") + val result = activateSpecWithResult(network) { emitter.nextDeferred() } + runCurrent() + println("emitting") + emitter.emit(3) + runCurrent() + println("awaiting") + assertEquals(3, result.await()) + runCurrent() + } + + @Test + fun basicTState() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + val result = activateSpecWithResult(network) { emitter.hold(0).stateChanges.nextDeferred() } + runCurrent() + + emitter.emit(3) + runCurrent() + + assertEquals(3, result.await()) + } + + @Test + fun basicEvent() = runFrpTest { network -> + val emitter = MutableSharedFlow<Int>() + val result = activateSpecWithResult(network) { async { emitter.first() } } + runCurrent() + emitter.emit(1) + runCurrent() + assertTrue("Result eventual has not completed.", result.isCompleted) + assertEquals(1, result.await()) + } + + @Test + fun basicTransactional() = runFrpTest { network -> + var value: Int? = null + var bSource = 1 + val emitter = network.mutableTFlow<Unit>() + // Sampling this transactional will increment the source count. + val transactional = transactionally { bSource++ } + measureTime { + activateSpecWithResult(network) { + // Two different flows that sample the same transactional. + (0 until 2).map { + val sampled = emitter.sample(transactional) { _, v -> v } + sampled.toSharedFlow() + } + } + .forEach { backgroundScope.launch { it.collect { value = it } } } + runCurrent() + } + .also { println("setup: ${it.toString(DurationUnit.MILLISECONDS, 2)}") } + + measureTime { + emitter.emit(Unit) + runCurrent() + } + .also { println("emit 1: ${it.toString(DurationUnit.MILLISECONDS, 2)}") } + + // Even though the transactional would be sampled twice, the first result is cached. + assertEquals(2, bSource) + assertEquals(1, value) + + measureTime { + bSource = 10 + emitter.emit(Unit) + runCurrent() + } + .also { println("emit 2: ${it.toString(DurationUnit.MILLISECONDS, 2)}") } + + assertEquals(11, bSource) + assertEquals(10, value) + } + + @Test + fun diamondGraph() = runFrpTest { network -> + val flow = network.mutableTFlow<Int>() + val outFlow = + activateSpecWithResult(network) { + // map TFlow like we map Flow + val left = flow.map { "left" to it }.onEach { println("left: $it") } + val right = flow.map { "right" to it }.onEach { println("right: $it") } + + // convert TFlows to TStates so that they can be combined + val combined = + left.hold("left" to 0).combineWith(right.hold("right" to 0)) { l, r -> l to r } + combined.stateChanges // get TState changes + .onEach { println("merged: $it") } + .toSharedFlow() // convert back to Flow + } + runCurrent() + + val results = mutableListOf<Pair<Pair<String, Int>, Pair<String, Int>>>() + backgroundScope.launch { outFlow.toCollection(results) } + runCurrent() + + flow.emit(1) + runCurrent() + + flow.emit(2) + runCurrent() + + assertEquals( + listOf(("left" to 1) to ("right" to 1), ("left" to 2) to ("right" to 2)), + results, + ) + } + + @Test + fun staticNetwork() = runFrpTest { network -> + var finalSum: Int? = null + + val intEmitter = network.mutableTFlow<Int>() + val sampleEmitter = network.mutableTFlow<Unit>() + + activateSpecWithResult(network) { + val updates = intEmitter.map { a -> { b: Int -> a + b } } + + val sumD = + TStateLoop<Int>().apply { + loopback = + updates + .sample(this) { f, sum -> f(sum) } + .onEach { println("sum update: $it") } + .hold(0) + } + sampleEmitter + .onEach { println("sampleEmitter emitted") } + .sample(sumD) { _, sum -> sum } + .onEach { println("sampled: $it") } + .nextDeferred() + } + .let { launch { finalSum = it.await() } } + + runCurrent() + + (1..5).forEach { i -> + println("emitting: $i") + intEmitter.emit(i) + runCurrent() + } + runCurrent() + + sampleEmitter.emit(Unit) + runCurrent() + + assertEquals(15, finalSum) + } + + @Test + fun recursiveDefinition() = runFrpTest { network -> + var wasSold = false + var currentAmt: Int? = null + + val coin = network.mutableTFlow<Unit>() + val price = 50 + val frpSpec = frpSpec { + val eSold = TFlowLoop<Unit>() + + val eInsert = + coin.map { + { runningTotal: Int -> + println("TEST: $runningTotal - 10 = ${runningTotal - 10}") + runningTotal - 10 + } + } + + val eReset = + eSold.map { + { _: Int -> + println("TEST: Resetting") + price + } + } + + val eUpdate = eInsert.mergeWith(eReset) { f, g -> { a -> g(f(a)) } } + + val dTotal = TStateLoop<Int>() + dTotal.loopback = eUpdate.sample(dTotal) { f, total -> f(total) }.hold(price) + + val eAmt = dTotal.stateChanges + val bAmt = transactionally { dTotal.sample() } + eSold.loopback = + coin + .sample(bAmt) { coin, total -> coin to total } + .mapMaybe { (_, total) -> maybe { guard { total <= 10 } } } + + val amts = eAmt.filter { amt -> amt >= 0 } + + amts.observe { currentAmt = it } + eSold.observe { wasSold = true } + + eSold.nextDeferred() + } + + activateSpec(network) { frpSpec.applySpec() } + + runCurrent() + + println() + println() + coin.emit(Unit) + runCurrent() + + assertEquals(40, currentAmt) + + println() + println() + coin.emit(Unit) + runCurrent() + + assertEquals(30, currentAmt) + + println() + println() + coin.emit(Unit) + runCurrent() + + assertEquals(20, currentAmt) + + println() + println() + coin.emit(Unit) + runCurrent() + + assertEquals(10, currentAmt) + assertEquals(false, wasSold) + + println() + println() + coin.emit(Unit) + runCurrent() + + assertEquals(true, wasSold) + assertEquals(50, currentAmt) + } + + @Test + fun promptCleanup() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + val stopper = network.mutableTFlow<Unit>() + + var result: Int? = null + + val flow = activateSpecWithResult(network) { emitter.takeUntil(stopper).toSharedFlow() } + backgroundScope.launch { flow.collect { result = it } } + runCurrent() + + emitter.emit(2) + runCurrent() + + assertEquals(2, result) + + stopper.emit(Unit) + runCurrent() + } + + @Test + fun switchTFlow() = runFrpTest { network -> + var currentSum: Int? = null + + val switchHandler = network.mutableTFlow<Pair<TFlow<Int>, String>>() + val aHandler = network.mutableTFlow<Int>() + val stopHandler = network.mutableTFlow<Unit>() + val bHandler = network.mutableTFlow<Int>() + + val sumFlow = + activateSpecWithResult(network) { + val switchE = TFlowLoop<TFlow<Int>>() + switchE.loopback = + switchHandler.mapStateful { (intFlow, name) -> + println("[onEach] Switching to: $name") + val nextSwitch = + switchE.skipNext().onEach { println("[onEach] switched-out") } + val stopEvent = + stopHandler + .onEach { println("[onEach] stopped") } + .mergeWith(nextSwitch) { _, b -> b } + intFlow.takeUntil(stopEvent) + } + + val adderE: TFlow<(Int) -> Int> = + switchE.hold(emptyTFlow).switch().map { a -> + println("[onEach] new number $a") + ({ sum: Int -> + println("$a+$sum=${a + sum}") + sum + a + }) + } + + val sumD = TStateLoop<Int>() + sumD.loopback = + adderE + .sample(sumD) { f, sum -> f(sum) } + .onEach { println("[onEach] writing sum: $it") } + .hold(0) + val sumE = sumD.stateChanges + + sumE.toSharedFlow() + } + + runCurrent() + + backgroundScope.launch { sumFlow.collect { currentSum = it } } + + runCurrent() + + switchHandler.emit(aHandler to "A") + runCurrent() + + aHandler.emit(1) + runCurrent() + + assertEquals(1, currentSum) + + aHandler.emit(2) + runCurrent() + + assertEquals(3, currentSum) + + aHandler.emit(3) + runCurrent() + + assertEquals(6, currentSum) + + aHandler.emit(4) + runCurrent() + + assertEquals(10, currentSum) + + aHandler.emit(5) + runCurrent() + + assertEquals(15, currentSum) + + switchHandler.emit(bHandler to "B") + runCurrent() + + aHandler.emit(6) + runCurrent() + + assertEquals(15, currentSum) + + bHandler.emit(6) + runCurrent() + + assertEquals(21, currentSum) + + bHandler.emit(7) + runCurrent() + + assertEquals(28, currentSum) + + bHandler.emit(8) + runCurrent() + + assertEquals(36, currentSum) + + bHandler.emit(9) + runCurrent() + + assertEquals(45, currentSum) + + bHandler.emit(10) + runCurrent() + + assertEquals(55, currentSum) + + println() + println("Stopping: B") + stopHandler.emit(Unit) // bHandler.complete() + runCurrent() + + bHandler.emit(20) + runCurrent() + + assertEquals(55, currentSum) + + println() + println("Switching to: A2") + switchHandler.emit(aHandler to "A2") + runCurrent() + + println("aHandler.emit(11)") + aHandler.emit(11) + runCurrent() + + assertEquals(66, currentSum) + + aHandler.emit(12) + runCurrent() + + assertEquals(78, currentSum) + + aHandler.emit(13) + runCurrent() + + assertEquals(91, currentSum) + + aHandler.emit(14) + runCurrent() + + assertEquals(105, currentSum) + + aHandler.emit(15) + runCurrent() + + assertEquals(120, currentSum) + + stopHandler.emit(Unit) + runCurrent() + + aHandler.emit(100) + runCurrent() + + assertEquals(120, currentSum) + } + + @Test + fun switchIndirect() = runFrpTest { network -> + val emitter = network.mutableTFlow<Unit>() + activateSpec(network) { + emptyTFlow.map { emitter.map { 1 } }.flatten().map { "$it" }.observe() + } + runCurrent() + } + + @Test + fun switchInWithResult() = runFrpTest { network -> + val emitter = network.mutableTFlow<Unit>() + val out = + activateSpecWithResult(network) { + emitter.map { emitter.map { 1 } }.flatten().toSharedFlow() + } + val result = out.stateIn(backgroundScope, SharingStarted.Eagerly, null) + runCurrent() + emitter.emit(Unit) + runCurrent() + assertEquals(null, result.value) + } + + @Test + fun switchInCompleted() = runFrpTest { network -> + val outputs = mutableListOf<Int>() + + val switchAH = network.mutableTFlow<Unit>() + val intAH = network.mutableTFlow<Int>() + val stopEmitter = network.mutableTFlow<Unit>() + + val top = frpSpec { + val intS = intAH.takeUntil(stopEmitter) + val switched = switchAH.map { intS }.flatten() + switched.toSharedFlow() + } + val flow = activateSpecWithResult(network) { top.applySpec() } + backgroundScope.launch { flow.collect { outputs.add(it) } } + runCurrent() + + switchAH.emit(Unit) + runCurrent() + + stopEmitter.emit(Unit) + runCurrent() + + // assertEquals(0, intAH.subscriptionCount.value) + intAH.emit(10) + runCurrent() + + assertEquals(true, outputs.isEmpty()) + + switchAH.emit(Unit) + runCurrent() + + // assertEquals(0, intAH.subscriptionCount.value) + intAH.emit(10) + runCurrent() + + assertEquals(true, outputs.isEmpty()) + } + + @Test + fun switchTFlow_outerCompletesFirst() = runFrpTest { network -> + var stepResult: Int? = null + + val switchAH = network.mutableTFlow<Unit>() + val switchStopEmitter = network.mutableTFlow<Unit>() + val intStopEmitter = network.mutableTFlow<Unit>() + val intAH = network.mutableTFlow<Int>() + val flow = + activateSpecWithResult(network) { + val intS = intAH.takeUntil(intStopEmitter) + val switchS = switchAH.takeUntil(switchStopEmitter) + + val switched = switchS.map { intS }.flatten() + switched.toSharedFlow() + } + backgroundScope.launch { flow.collect { stepResult = it } } + runCurrent() + + // assertEquals(0, intAH.subscriptionCount.value) + intAH.emit(100) + runCurrent() + + assertEquals(null, stepResult) + + switchAH.emit(Unit) + runCurrent() + + // assertEquals(1, intAH.subscriptionCount.value) + + intAH.emit(5) + runCurrent() + + assertEquals(5, stepResult) + + println("stop outer") + switchStopEmitter.emit(Unit) // switchAH.complete() + runCurrent() + + // assertEquals(1, intAH.subscriptionCount.value) + // assertEquals(0, switchAH.subscriptionCount.value) + + intAH.emit(10) + runCurrent() + + assertEquals(10, stepResult) + + println("stop inner") + intStopEmitter.emit(Unit) // intAH.complete() + runCurrent() + + // assertEquals(just(10), network.await()) + } + + @Test + fun mapTFlow() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + var stepResult: Int? = null + + val flow = + activateSpecWithResult(network) { + val mappedS = emitter.map { it * it } + mappedS.toSharedFlow() + } + + backgroundScope.launch { flow.collect { stepResult = it } } + runCurrent() + + emitter.emit(1) + runCurrent() + + assertEquals(1, stepResult) + + emitter.emit(2) + runCurrent() + + assertEquals(4, stepResult) + + emitter.emit(10) + runCurrent() + + assertEquals(100, stepResult) + } + + @Test + fun mapTransactional() = runFrpTest { network -> + var doubledResult: Int? = null + var pullValue = 0 + val a = transactionally { pullValue } + val b = transactionally { a.sample() * 2 } + val emitter = network.mutableTFlow<Unit>() + val flow = + activateSpecWithResult(network) { + val sampleB = emitter.sample(b) { _, b -> b } + sampleB.toSharedFlow() + } + + backgroundScope.launch { flow.collect { doubledResult = it } } + + runCurrent() + + emitter.emit(Unit) + runCurrent() + + assertEquals(0, doubledResult) + + pullValue = 5 + emitter.emit(Unit) + runCurrent() + + assertEquals(10, doubledResult) + } + + @Test + fun mapTState() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + var stepResult: Int? = null + val flow = + activateSpecWithResult(network) { + val state = emitter.hold(0).map { it + 2 } + val stateCurrent = transactionally { state.sample() } + val stateChanges = state.stateChanges + val sampleState = emitter.sample(stateCurrent) { _, b -> b } + val merge = stateChanges.mergeWith(sampleState) { a, b -> a + b } + merge.toSharedFlow() + } + backgroundScope.launch { flow.collect { stepResult = it } } + runCurrent() + + emitter.emit(1) + runCurrent() + + assertEquals(5, stepResult) + + emitter.emit(10) + runCurrent() + + assertEquals(15, stepResult) + } + + @Test + fun partitionEither() = runFrpTest { network -> + val emitter = network.mutableTFlow<Either<Int, Int>>() + val result = + activateSpecWithResult(network) { + val (l, r) = emitter.partitionEither() + val pDiamond = + l.map { it * 2 } + .mergeWith(r.map { it * -1 }) { _, _ -> error("unexpected coincidence") } + pDiamond.hold(null).toStateFlow() + } + runCurrent() + + emitter.emit(Left(10)) + runCurrent() + + assertEquals(20, result.value) + + emitter.emit(Right(30)) + runCurrent() + + assertEquals(-30, result.value) + } + + @Test + fun accumTState() = runFrpTest { network -> + val emitter = network.mutableTFlow<Int>() + val sampler = network.mutableTFlow<Unit>() + var stepResult: Int? = null + val flow = + activateSpecWithResult(network) { + val sumState = emitter.map { a -> { b: Int -> a + b } }.fold(0) { f, a -> f(a) } + + sumState.stateChanges + .mergeWith(sampler.sample(sumState) { _, sum -> sum }) { _, _ -> + error("Unexpected coincidence") + } + .toSharedFlow() + } + + backgroundScope.launch { flow.collect { stepResult = it } } + runCurrent() + + emitter.emit(5) + runCurrent() + assertEquals(5, stepResult) + + emitter.emit(10) + runCurrent() + assertEquals(15, stepResult) + + sampler.emit(Unit) + runCurrent() + assertEquals(15, stepResult) + } + + @Test + fun mergeTFlows() = runFrpTest { network -> + val first = network.mutableTFlow<Int>() + val stopFirst = network.mutableTFlow<Unit>() + val second = network.mutableTFlow<Int>() + val stopSecond = network.mutableTFlow<Unit>() + var stepResult: Int? = null + + val flow: SharedFlow<Int> + val setupDuration = measureTime { + flow = + activateSpecWithResult(network) { + val firstS = first.takeUntil(stopFirst) + val secondS = second.takeUntil(stopSecond) + val mergedS = + firstS.mergeWith(secondS) { _, _ -> error("Unexpected coincidence") } + mergedS.toSharedFlow() + // mergedS.last("onComplete") + } + backgroundScope.launch { flow.collect { stepResult = it } } + runCurrent() + } + + // assertEquals(1, first.subscriptionCount.value) + // assertEquals(1, second.subscriptionCount.value) + + val firstEmitDuration = measureTime { + first.emit(1) + runCurrent() + } + + assertEquals(1, stepResult) + + val secondEmitDuration = measureTime { + second.emit(2) + runCurrent() + } + + assertEquals(2, stepResult) + + val stopFirstDuration = measureTime { + stopFirst.emit(Unit) + runCurrent() + } + + // assertEquals(0, first.subscriptionCount.value) + val testDeadEmitFirstDuration = measureTime { + first.emit(10) + runCurrent() + } + + assertEquals(2, stepResult) + + // assertEquals(1, second.subscriptionCount.value) + + val secondEmitDuration2 = measureTime { + second.emit(3) + runCurrent() + } + + assertEquals(3, stepResult) + + val stopSecondDuration = measureTime { + stopSecond.emit(Unit) + runCurrent() + } + + // assertEquals(0, second.subscriptionCount.value) + val testDeadEmitSecondDuration = measureTime { + second.emit(10) + runCurrent() + } + + assertEquals(3, stepResult) + + println( + """ + setupDuration: ${setupDuration.toString(DurationUnit.MILLISECONDS, 2)} + firstEmitDuration: ${firstEmitDuration.toString(DurationUnit.MILLISECONDS, 2)} + secondEmitDuration: ${secondEmitDuration.toString(DurationUnit.MILLISECONDS, 2)} + stopFirstDuration: ${stopFirstDuration.toString(DurationUnit.MILLISECONDS, 2)} + testDeadEmitFirstDuration: ${ + testDeadEmitFirstDuration.toString( + DurationUnit.MILLISECONDS, + 2, + ) + } + secondEmitDuration2: ${secondEmitDuration2.toString(DurationUnit.MILLISECONDS, 2)} + stopSecondDuration: ${stopSecondDuration.toString(DurationUnit.MILLISECONDS, 2)} + testDeadEmitSecondDuration: ${ + testDeadEmitSecondDuration.toString( + DurationUnit.MILLISECONDS, + 2, + ) + } + """ + .trimIndent() + ) + } + + @Test + fun sampleCancel() = runFrpTest { network -> + val updater = network.mutableTFlow<Int>() + val stopUpdater = network.mutableTFlow<Unit>() + val sampler = network.mutableTFlow<Unit>() + val stopSampler = network.mutableTFlow<Unit>() + var stepResult: Int? = null + val flow = + activateSpecWithResult(network) { + val stopSamplerFirst = stopSampler + val samplerS = sampler.takeUntil(stopSamplerFirst) + val stopUpdaterFirst = stopUpdater + val updaterS = updater.takeUntil(stopUpdaterFirst) + val sampledS = samplerS.sample(updaterS.hold(0)) { _, b -> b } + sampledS.toSharedFlow() + } + + backgroundScope.launch { flow.collect { stepResult = it } } + runCurrent() + + updater.emit(1) + runCurrent() + + sampler.emit(Unit) + runCurrent() + + assertEquals(1, stepResult) + + stopSampler.emit(Unit) + runCurrent() + + // assertEquals(0, updater.subscriptionCount.value) + // assertEquals(0, sampler.subscriptionCount.value) + updater.emit(10) + runCurrent() + + sampler.emit(Unit) + runCurrent() + + assertEquals(1, stepResult) + } + + @Test + fun combineStates_differentUpstreams() = runFrpTest { network -> + val a = network.mutableTFlow<Int>() + val b = network.mutableTFlow<Int>() + var observed: Pair<Int, Int>? = null + val tState = + activateSpecWithResult(network) { + val state = combine(a.hold(0), b.hold(0)) { a, b -> Pair(a, b) } + state.stateChanges.observe { observed = it } + state + } + assertEquals(0 to 0, network.transact { tState.sample() }) + assertEquals(null, observed) + a.emit(5) + assertEquals(5 to 0, observed) + assertEquals(5 to 0, network.transact { tState.sample() }) + b.emit(3) + assertEquals(5 to 3, observed) + assertEquals(5 to 3, network.transact { tState.sample() }) + } + + @Test + fun sampleCombinedStates() = runFrpTest { network -> + val updater = network.mutableTFlow<Int>() + val emitter = network.mutableTFlow<Unit>() + + val result = + activateSpecWithResult(network) { + val bA = updater.map { it * 2 }.hold(0) + val bB = updater.hold(0) + val combineD: TState<Pair<Int, Int>> = bA.combineWith(bB) { a, b -> a to b } + val sampleS = emitter.sample(combineD) { _, b -> b } + sampleS.nextDeferred() + } + println("launching") + runCurrent() + + println("emitting update") + updater.emit(10) + runCurrent() + + println("emitting sampler") + emitter.emit(Unit) + runCurrent() + + println("asserting") + assertEquals(20 to 10, result.await()) + } + + @Test + fun switchMapPromptly() = runFrpTest { network -> + val emitter = network.mutableTFlow<Unit>() + val result = + activateSpecWithResult(network) { + emitter + .map { emitter.map { 1 }.map { it + 1 }.map { it * 2 } } + .hold(emptyTFlow) + .switchPromptly() + .nextDeferred() + } + runCurrent() + + emitter.emit(Unit) + runCurrent() + + assertTrue("Not complete", result.isCompleted) + assertEquals(4, result.await()) + } + + @Test + fun switchDeeper() = runFrpTest { network -> + val emitter = network.mutableTFlow<Unit>() + val e2 = network.mutableTFlow<Unit>() + val result = + activateSpecWithResult(network) { + val tres = + merge(e2.map { 1 }, e2.map { 2 }, transformCoincidence = { a, b -> a + b }) + tres.observeBuild() + val switch = emitter.map { tres }.flatten() + merge(switch, e2.map { null }, transformCoincidence = { a, _ -> a }) + .filterNotNull() + .nextDeferred() + } + runCurrent() + + emitter.emit(Unit) + runCurrent() + + e2.emit(Unit) + runCurrent() + + assertTrue("Not complete", result.isCompleted) + assertEquals(3, result.await()) + } + + @Test + fun recursionBasic() = runFrpTest { network -> + val add1 = network.mutableTFlow<Unit>() + val sub1 = network.mutableTFlow<Unit>() + val stepResult: StateFlow<Int> = + activateSpecWithResult(network) { + val dSum = TStateLoop<Int>() + val sAdd1 = add1.sample(dSum) { _, sum -> sum + 1 } + val sMinus1 = sub1.sample(dSum) { _, sum -> sum - 1 } + dSum.loopback = sAdd1.mergeWith(sMinus1) { a, _ -> a }.hold(0) + dSum.toStateFlow() + } + runCurrent() + + add1.emit(Unit) + runCurrent() + + assertEquals(1, stepResult.value) + + add1.emit(Unit) + runCurrent() + + assertEquals(2, stepResult.value) + + sub1.emit(Unit) + runCurrent() + + assertEquals(1, stepResult.value) + } + + @Test + fun recursiveTState() = runFrpTest { network -> + val e = network.mutableTFlow<Unit>() + var changes = 0 + val state = + activateSpecWithResult(network) { + val s = TFlowLoop<Unit>() + val deferred = s.map { tStateOf(null) } + val e3 = e.map { tStateOf(Unit) } + val flattened = e3.mergeWith(deferred) { a, _ -> a }.hold(tStateOf(null)).flatten() + s.loopback = emptyTFlow + flattened.toStateFlow() + } + + backgroundScope.launch { state.collect { changes++ } } + runCurrent() + } + + @Test + fun fanOut() = runFrpTest { network -> + val e = network.mutableTFlow<Map<String, Int>>() + val (fooFlow, barFlow) = + activateSpecWithResult(network) { + val selector = e.groupByKey() + val foos = selector.eventsForKey("foo") + val bars = selector.eventsForKey("bar") + foos.toSharedFlow() to bars.toSharedFlow() + } + val stateFlow = fooFlow.stateIn(backgroundScope, SharingStarted.Eagerly, null) + backgroundScope.launch { barFlow.collect { error("unexpected bar") } } + runCurrent() + + assertEquals(null, stateFlow.value) + + e.emit(mapOf("foo" to 1)) + runCurrent() + + assertEquals(1, stateFlow.value) + } + + @Test + fun fanOutLateSubscribe() = runFrpTest { network -> + val e = network.mutableTFlow<Map<String, Int>>() + val barFlow = + activateSpecWithResult(network) { + val selector = e.groupByKey() + selector + .eventsForKey("foo") + .map { selector.eventsForKey("bar") } + .hold(emptyTFlow) + .switchPromptly() + .toSharedFlow() + } + val stateFlow = barFlow.stateIn(backgroundScope, SharingStarted.Eagerly, null) + runCurrent() + + assertEquals(null, stateFlow.value) + + e.emit(mapOf("foo" to 0, "bar" to 1)) + runCurrent() + + assertEquals(1, stateFlow.value) + } + + @Test + fun inputFlowCompleted() = runFrpTest { network -> + val results = mutableListOf<Int>() + val e = network.mutableTFlow<Int>() + activateSpec(network) { e.nextOnly().observe { results.add(it) } } + runCurrent() + + e.emit(10) + runCurrent() + + assertEquals(listOf(10), results) + + e.emit(20) + runCurrent() + assertEquals(listOf(10), results) + } + + @Test + fun fanOutThenMergeIncrementally() = runFrpTest { network -> + // A tflow of group updates, where a group is a tflow of child updates, where a child is a + // stateflow + val e = network.mutableTFlow<Map<Int, Maybe<TFlow<Map<Int, Maybe<StateFlow<String>>>>>>>() + println("fanOutMergeInc START") + val state = + activateSpecWithResult(network) { + // Convert nested Flows to nested TFlow/TState + val emitter: TFlow<Map<Int, Maybe<TFlow<Map<Int, Maybe<TState<String>>>>>>> = + e.mapBuild { m -> + m.mapValues { (_, mFlow) -> + mFlow.map { + it.mapBuild { m2 -> + m2.mapValues { (_, mState) -> + mState.map { stateFlow -> stateFlow.toTState() } + } + } + } + } + } + // Accumulate all of our updates into a single TState + val accState: TState<Map<Int, Map<Int, String>>> = + emitter + .mapStateful { + changeMap: Map<Int, Maybe<TFlow<Map<Int, Maybe<TState<String>>>>>> -> + changeMap.mapValues { (groupId, mGroupChanges) -> + mGroupChanges.map { + groupChanges: TFlow<Map<Int, Maybe<TState<String>>>> -> + // New group + val childChangeById = groupChanges.groupByKey() + val map: TFlow<Map<Int, Maybe<TFlow<Maybe<TState<String>>>>>> = + groupChanges.mapStateful { + gChangeMap: Map<Int, Maybe<TState<String>>> -> + gChangeMap.mapValues { (childId, mChild) -> + mChild.map { child: TState<String> -> + println("new child $childId in the house") + // New child + val eRemoved = + childChangeById + .eventsForKey(childId) + .filter { it === None } + .nextOnly() + + val addChild: TFlow<Maybe<TState<String>>> = + now.map { mChild } + .onEach { + println( + "addChild (groupId=$groupId, childId=$childId) ${child.sample()}" + ) + } + + val removeChild: TFlow<Maybe<TState<String>>> = + eRemoved + .onEach { + println( + "removeChild (groupId=$groupId, childId=$childId)" + ) + } + .map { none() } + + addChild.mergeWith(removeChild) { _, _ -> + error("unexpected coincidence") + } + } + } + } + val mergeIncrementally: TFlow<Map<Int, Maybe<TState<String>>>> = + map.onEach { println("merge patch: $it") } + .mergeIncrementallyPromptly() + mergeIncrementally + .onEach { println("patch: $it") } + .foldMapIncrementally() + .flatMap { it.combineValues() } + } + } + } + .foldMapIncrementally() + .flatMap { it.combineValues() } + + accState.toStateFlow() + } + runCurrent() + + assertEquals(emptyMap(), state.value) + + val emitter2 = network.mutableTFlow<Map<Int, Maybe<StateFlow<String>>>>() + println() + println("init outer 0") + e.emit(mapOf(0 to just(emitter2.onEach { println("emitter2 emit: $it") }))) + runCurrent() + + assertEquals(mapOf(0 to emptyMap()), state.value) + + println() + println("init inner 10") + emitter2.emit(mapOf(10 to just(MutableStateFlow("(0, 10)")))) + runCurrent() + + assertEquals(mapOf(0 to mapOf(10 to "(0, 10)")), state.value) + + // replace + println() + println("replace inner 10") + emitter2.emit(mapOf(10 to just(MutableStateFlow("(1, 10)")))) + runCurrent() + + assertEquals(mapOf(0 to mapOf(10 to "(1, 10)")), state.value) + + // remove + emitter2.emit(mapOf(10 to none())) + runCurrent() + + assertEquals(mapOf(0 to emptyMap()), state.value) + + // add again + emitter2.emit(mapOf(10 to just(MutableStateFlow("(2, 10)")))) + runCurrent() + + assertEquals(mapOf(0 to mapOf(10 to "(2, 10)")), state.value) + + // batch update + emitter2.emit( + mapOf( + 10 to none(), + 11 to just(MutableStateFlow("(0, 11)")), + 12 to just(MutableStateFlow("(0, 12)")), + ) + ) + runCurrent() + + assertEquals(mapOf(0 to mapOf(11 to "(0, 11)", 12 to "(0, 12)")), state.value) + } + + @Test + fun applyLatestNetworkChanges() = runFrpTest { network -> + val newCount = network.mutableTFlow<FrpSpec<Flow<Int>>>() + val flowOfFlows: Flow<Flow<Int>> = + activateSpecWithResult(network) { newCount.applyLatestSpec().toSharedFlow() } + runCurrent() + + val incCount = network.mutableTFlow<Unit>() + fun newFlow(): FrpSpec<SharedFlow<Int>> = frpSpec { + launchEffect { + try { + println("new flow!") + awaitCancellation() + } finally { + println("cancelling old flow") + } + } + lateinit var count: TState<Int> + count = + incCount + .onEach { println("incrementing ${count.sample()}") } + .fold(0) { _, c -> c + 1 } + count.stateChanges.toSharedFlow() + } + + var outerCount = 0 + val lastFlows: StateFlow<Pair<StateFlow<Int?>, StateFlow<Int?>>> = + flowOfFlows + .map { it.stateIn(backgroundScope, SharingStarted.Eagerly, null) } + .pairwise(MutableStateFlow(null)) + .onEach { outerCount++ } + .stateIn( + backgroundScope, + SharingStarted.Eagerly, + MutableStateFlow(null) to MutableStateFlow(null), + ) + + runCurrent() + + newCount.emit(newFlow()) + runCurrent() + + assertEquals(1, outerCount) + // assertEquals(1, incCount.subscriptionCount) + assertNull(lastFlows.value.second.value) + + incCount.emit(Unit) + runCurrent() + + println("checking") + assertEquals(1, lastFlows.value.second.value) + + incCount.emit(Unit) + runCurrent() + + assertEquals(2, lastFlows.value.second.value) + + newCount.emit(newFlow()) + runCurrent() + incCount.emit(Unit) + runCurrent() + + // verify old flow is not getting updates + assertEquals(2, lastFlows.value.first.value) + // but the new one is + assertEquals(1, lastFlows.value.second.value) + } + + @Test + fun effect() = runFrpTest { network -> + val input = network.mutableTFlow<Unit>() + var effectRunning = false + var count = 0 + activateSpec(network) { + val j = launchEffect { + effectRunning = true + try { + awaitCancellation() + } finally { + effectRunning = false + } + } + merge(emptyTFlow, input.nextOnly()).observe { + count++ + j.cancel() + } + } + runCurrent() + assertEquals(true, effectRunning) + assertEquals(0, count) + + println("1") + input.emit(Unit) + assertEquals(false, effectRunning) + assertEquals(1, count) + + println("2") + input.emit(Unit) + assertEquals(1, count) + println("3") + input.emit(Unit) + assertEquals(1, count) + } + + private fun runFrpTest( + timeout: Duration = 3.seconds, + block: suspend TestScope.(FrpNetwork) -> Unit, + ) { + runTest(timeout = timeout) { + val network = backgroundScope.newFrpNetwork() + runCurrent() + block(network) + } + } + + private fun TestScope.activateSpec(network: FrpNetwork, spec: FrpSpec<*>) = + backgroundScope.launch { network.activateSpec(spec) } + + private suspend fun <R> TestScope.activateSpecWithResult( + network: FrpNetwork, + spec: FrpSpec<R>, + ): R = + CompletableDeferred<R>() + .apply { activateSpec(network) { complete(spec.applySpec()) } } + .await() +} + +private fun <T> assertEquals(expected: T, actual: T) = + org.junit.Assert.assertEquals(expected, actual) + +private fun <A> Flow<A>.pairwise(init: A): Flow<Pair<A, A>> = flow { + var prev = init + collect { + emit(prev to it) + prev = it + } +} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt index 75a77cf781d2..194b41fbeaea 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/BiometricTestExtensions.kt @@ -27,12 +27,23 @@ import android.hardware.face.FaceSensorProperties import android.hardware.face.FaceSensorPropertiesInternal import android.hardware.fingerprint.FingerprintSensorProperties import android.hardware.fingerprint.FingerprintSensorPropertiesInternal +import com.android.keyguard.keyguardUpdateMonitor +import com.android.systemui.SysuiTestableContext +import com.android.systemui.biometrics.data.repository.biometricStatusRepository +import com.android.systemui.biometrics.shared.model.AuthenticationReason +import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository +import com.android.systemui.kosmos.Kosmos +import com.android.systemui.res.R +import com.android.systemui.util.mockito.whenever +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.TestScope +import kotlinx.coroutines.test.runCurrent /** Create [FingerprintSensorPropertiesInternal] for a test. */ internal fun fingerprintSensorPropertiesInternal( ids: List<Int> = listOf(0), strong: Boolean = true, - sensorType: Int = FingerprintSensorProperties.TYPE_REAR + sensorType: Int = FingerprintSensorProperties.TYPE_REAR, ): List<FingerprintSensorPropertiesInternal> { val componentInfo = listOf( @@ -41,15 +52,15 @@ internal fun fingerprintSensorPropertiesInternal( "vendor/model/revision" /* hardwareVersion */, "1.01" /* firmwareVersion */, "00000001" /* serialNumber */, - "" /* softwareVersion */ + "", /* softwareVersion */ ), ComponentInfoInternal( "matchingAlgorithm" /* componentId */, "" /* hardwareVersion */, "" /* firmwareVersion */, "" /* serialNumber */, - "vendor/version/revision" /* softwareVersion */ - ) + "vendor/version/revision", /* softwareVersion */ + ), ) return ids.map { id -> FingerprintSensorPropertiesInternal( @@ -58,7 +69,7 @@ internal fun fingerprintSensorPropertiesInternal( 5 /* maxEnrollmentsPerUser */, componentInfo, sensorType, - false /* resetLockoutRequiresHardwareAuthToken */ + false, /* resetLockoutRequiresHardwareAuthToken */ ) } } @@ -75,15 +86,15 @@ internal fun faceSensorPropertiesInternal( "vendor/model/revision" /* hardwareVersion */, "1.01" /* firmwareVersion */, "00000001" /* serialNumber */, - "" /* softwareVersion */ + "", /* softwareVersion */ ), ComponentInfoInternal( "matchingAlgorithm" /* componentId */, "" /* hardwareVersion */, "" /* firmwareVersion */, "" /* serialNumber */, - "vendor/version/revision" /* softwareVersion */ - ) + "vendor/version/revision", /* softwareVersion */ + ), ) return ids.map { id -> FaceSensorPropertiesInternal( @@ -94,7 +105,7 @@ internal fun faceSensorPropertiesInternal( FaceSensorProperties.TYPE_RGB, true /* supportsFaceDetection */, true /* supportsSelfIllumination */, - false /* resetLockoutRequiresHardwareAuthToken */ + false, /* resetLockoutRequiresHardwareAuthToken */ ) } } @@ -145,3 +156,67 @@ internal fun promptInfo( info.negativeButtonText = negativeButton return info } + +@OptIn(ExperimentalCoroutinesApi::class) +internal fun TestScope.updateSfpsIndicatorRequests( + kosmos: Kosmos, + mContext: SysuiTestableContext, + primaryBouncerRequest: Boolean? = null, + alternateBouncerRequest: Boolean? = null, + biometricPromptRequest: Boolean? = null, + // TODO(b/365182034): update when rest to unlock feature is implemented + // progressBarShowing: Boolean? = null +) { + biometricPromptRequest?.let { hasBiometricPromptRequest -> + if (hasBiometricPromptRequest) { + kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( + AuthenticationReason.BiometricPromptAuthentication + ) + } else { + kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( + AuthenticationReason.NotRunning + ) + } + } + + primaryBouncerRequest?.let { hasPrimaryBouncerRequest -> + updatePrimaryBouncer( + kosmos, + mContext, + isShowing = hasPrimaryBouncerRequest, + isAnimatingAway = false, + fpsDetectionRunning = true, + isUnlockingWithFpAllowed = true, + ) + } + + alternateBouncerRequest?.let { hasAlternateBouncerRequest -> + kosmos.keyguardBouncerRepository.setAlternateVisible(hasAlternateBouncerRequest) + } + + // TODO(b/365182034): set progress bar visibility when rest to unlock feature is implemented + + runCurrent() +} + +internal fun updatePrimaryBouncer( + kosmos: Kosmos, + mContext: SysuiTestableContext, + isShowing: Boolean, + isAnimatingAway: Boolean, + fpsDetectionRunning: Boolean, + isUnlockingWithFpAllowed: Boolean, +) { + kosmos.keyguardBouncerRepository.setPrimaryShow(isShowing) + kosmos.keyguardBouncerRepository.setPrimaryStartingToHide(false) + val primaryStartDisappearAnimation = if (isAnimatingAway) Runnable {} else null + kosmos.keyguardBouncerRepository.setPrimaryStartDisappearAnimation( + primaryStartDisappearAnimation + ) + + whenever(kosmos.keyguardUpdateMonitor.isFingerprintDetectionRunning) + .thenReturn(fpsDetectionRunning) + whenever(kosmos.keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed) + .thenReturn(isUnlockingWithFpAllowed) + mContext.orCreateTestableResources.addOverride(R.bool.config_show_sidefps_hint_on_bouncer, true) +} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt index 7fa165c19f60..57df66207380 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt @@ -16,64 +16,48 @@ package com.android.systemui.biometrics.ui.binder -import android.animation.Animator -import android.graphics.Rect -import android.hardware.biometrics.SensorLocationInternal -import android.hardware.display.DisplayManager -import android.hardware.display.DisplayManagerGlobal import android.testing.TestableLooper -import android.view.Display -import android.view.DisplayInfo import android.view.LayoutInflater import android.view.View -import android.view.ViewPropertyAnimator -import android.view.WindowInsets import android.view.WindowManager -import android.view.WindowMetrics import android.view.layoutInflater import android.view.windowManager import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.airbnb.lottie.LottieAnimationView -import com.android.keyguard.keyguardUpdateMonitor import com.android.systemui.SysuiTestCase -import com.android.systemui.biometrics.FingerprintInteractiveToAuthProvider -import com.android.systemui.biometrics.data.repository.biometricStatusRepository import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository -import com.android.systemui.biometrics.shared.model.AuthenticationReason import com.android.systemui.biometrics.shared.model.DisplayRotation import com.android.systemui.biometrics.shared.model.FingerprintSensorType import com.android.systemui.biometrics.shared.model.SensorStrength -import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository +import com.android.systemui.biometrics.updateSfpsIndicatorRequests import com.android.systemui.display.data.repository.displayRepository import com.android.systemui.display.data.repository.displayStateRepository -import com.android.systemui.keyguard.ui.viewmodel.sideFpsProgressBarViewModel import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.testKosmos import com.android.systemui.util.mockito.eq -import com.android.systemui.util.mockito.whenever import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import org.mockito.ArgumentCaptor +import org.mockito.Captor import org.mockito.Mock -import org.mockito.Mockito import org.mockito.Mockito.any import org.mockito.Mockito.inOrder import org.mockito.Mockito.mock import org.mockito.Mockito.never -import org.mockito.Mockito.spy import org.mockito.Mockito.verify import org.mockito.Mockito.`when` import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoRule -import org.mockito.kotlin.argumentCaptor +import org.mockito.kotlin.firstValue @OptIn(ExperimentalCoroutinesApi::class) @SmallTest @@ -83,84 +67,25 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() { private val kosmos = testKosmos() @JvmField @Rule var mockitoRule: MockitoRule = MockitoJUnit.rule() - @Mock private lateinit var displayManager: DisplayManager - @Mock - private lateinit var fingerprintInteractiveToAuthProvider: FingerprintInteractiveToAuthProvider @Mock private lateinit var layoutInflater: LayoutInflater @Mock private lateinit var sideFpsView: View - - private val contextDisplayInfo = DisplayInfo() - - private var displayWidth: Int = 0 - private var displayHeight: Int = 0 - private var boundsWidth: Int = 0 - private var boundsHeight: Int = 0 - - private lateinit var deviceConfig: DeviceConfig - private lateinit var sensorLocation: SensorLocationInternal - - enum class DeviceConfig { - X_ALIGNED, - Y_ALIGNED, - } + @Captor private lateinit var viewCaptor: ArgumentCaptor<View> @Before fun setup() { allowTestableLooperAsMainThread() // repeatWhenAttached requires the main thread - - mContext = spy(mContext) - - val resources = mContext.resources - whenever(mContext.display) - .thenReturn( - Display(mock(DisplayManagerGlobal::class.java), 1, contextDisplayInfo, resources) - ) - kosmos.layoutInflater = layoutInflater - - whenever(fingerprintInteractiveToAuthProvider.enabledForCurrentUser) - .thenReturn(MutableStateFlow(false)) - - context.addMockSystemService(DisplayManager::class.java, displayManager) context.addMockSystemService(WindowManager::class.java, kosmos.windowManager) - `when`(layoutInflater.inflate(R.layout.sidefps_view, null, false)).thenReturn(sideFpsView) `when`(sideFpsView.requireViewById<LottieAnimationView>(eq(R.id.sidefps_animation))) .thenReturn(mock(LottieAnimationView::class.java)) - with(mock(ViewPropertyAnimator::class.java)) { - `when`(sideFpsView.animate()).thenReturn(this) - `when`(alpha(Mockito.anyFloat())).thenReturn(this) - `when`(setStartDelay(Mockito.anyLong())).thenReturn(this) - `when`(setDuration(Mockito.anyLong())).thenReturn(this) - `when`(setListener(any())).thenAnswer { - (it.arguments[0] as Animator.AnimatorListener).onAnimationEnd( - mock(Animator::class.java) - ) - this - } - } } @Test fun verifyIndicatorNotAdded_whenInRearDisplayMode() { kosmos.testScope.runTest { - setupTestConfiguration( - DeviceConfig.X_ALIGNED, - rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = true - ) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.NotRunning - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - updatePrimaryBouncer( - isShowing = true, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) - runCurrent() - + setupTestConfiguration(isInRearDisplayMode = true) + updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true) verify(kosmos.windowManager, never()).addView(any(), any()) } } @@ -168,33 +93,14 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() { @Test fun verifyIndicatorShowAndHide_onPrimaryBouncerShowAndHide() { kosmos.testScope.runTest { - setupTestConfiguration( - DeviceConfig.X_ALIGNED, - rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false - ) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.NotRunning - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - // Show primary bouncer - updatePrimaryBouncer( - isShowing = true, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) + setupTestConfiguration(isInRearDisplayMode = false) + updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true) runCurrent() verify(kosmos.windowManager).addView(any(), any()) // Hide primary bouncer - updatePrimaryBouncer( - isShowing = false, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) + updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = false) runCurrent() verify(kosmos.windowManager).removeView(any()) @@ -204,30 +110,19 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() { @Test fun verifyIndicatorShowAndHide_onAlternateBouncerShowAndHide() { kosmos.testScope.runTest { - setupTestConfiguration( - DeviceConfig.X_ALIGNED, - rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false - ) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.NotRunning - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - // Show alternate bouncer - kosmos.keyguardBouncerRepository.setAlternateVisible(true) + setupTestConfiguration(isInRearDisplayMode = false) + updateSfpsIndicatorRequests(kosmos, mContext, alternateBouncerRequest = true) runCurrent() verify(kosmos.windowManager).addView(any(), any()) - var viewCaptor = argumentCaptor<View>() verify(kosmos.windowManager).addView(viewCaptor.capture(), any()) verify(viewCaptor.firstValue) .announceForAccessibility( mContext.getText(R.string.accessibility_side_fingerprint_indicator_label) ) - // Hide alternate bouncer - kosmos.keyguardBouncerRepository.setAlternateVisible(false) + updateSfpsIndicatorRequests(kosmos, mContext, alternateBouncerRequest = false) runCurrent() verify(kosmos.windowManager).removeView(any()) @@ -237,30 +132,14 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() { @Test fun verifyIndicatorShownAndHidden_onSystemServerAuthenticationStartedAndStopped() { kosmos.testScope.runTest { - setupTestConfiguration( - DeviceConfig.X_ALIGNED, - rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - updatePrimaryBouncer( - isShowing = false, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) - // System server authentication started - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.BiometricPromptAuthentication - ) + setupTestConfiguration(isInRearDisplayMode = false) + updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = true) runCurrent() verify(kosmos.windowManager).addView(any(), any()) // System server authentication stopped - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.NotRunning - ) + updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = false) runCurrent() verify(kosmos.windowManager).removeView(any()) @@ -269,45 +148,37 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() { // On progress bar shown - hide indicator // On progress bar hidden - show indicator + // TODO(b/365182034): update + enable when rest to unlock feature is implemented + @Ignore("b/365182034") @Test fun verifyIndicatorProgressBarInteraction() { kosmos.testScope.runTest { // Pre-auth conditions - setupTestConfiguration( - DeviceConfig.X_ALIGNED, - rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false - ) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.NotRunning - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - - // Show primary bouncer - updatePrimaryBouncer( - isShowing = true, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) + setupTestConfiguration(isInRearDisplayMode = false) + updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true) runCurrent() val inOrder = inOrder(kosmos.windowManager) - // Verify indicator shown inOrder.verify(kosmos.windowManager).addView(any(), any()) // Set progress bar visible - kosmos.sideFpsProgressBarViewModel.setVisible(true) - + updateSfpsIndicatorRequests( + kosmos, + mContext, + primaryBouncerRequest = true, + ) // , progressBarShowing = true) runCurrent() // Verify indicator hidden inOrder.verify(kosmos.windowManager).removeView(any()) // Set progress bar invisible - kosmos.sideFpsProgressBarViewModel.setVisible(false) - + updateSfpsIndicatorRequests( + kosmos, + mContext, + primaryBouncerRequest = true, + ) // , progressBarShowing = false) runCurrent() // Verify indicator shown @@ -315,78 +186,18 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() { } } - private fun updatePrimaryBouncer( - isShowing: Boolean, - isAnimatingAway: Boolean, - fpsDetectionRunning: Boolean, - isUnlockingWithFpAllowed: Boolean, - ) { - kosmos.keyguardBouncerRepository.setPrimaryShow(isShowing) - kosmos.keyguardBouncerRepository.setPrimaryStartingToHide(false) - val primaryStartDisappearAnimation = if (isAnimatingAway) Runnable {} else null - kosmos.keyguardBouncerRepository.setPrimaryStartDisappearAnimation( - primaryStartDisappearAnimation - ) - - whenever(kosmos.keyguardUpdateMonitor.isFingerprintDetectionRunning) - .thenReturn(fpsDetectionRunning) - whenever(kosmos.keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed) - .thenReturn(isUnlockingWithFpAllowed) - mContext.orCreateTestableResources.addOverride( - R.bool.config_show_sidefps_hint_on_bouncer, - true - ) - } - - private suspend fun TestScope.setupTestConfiguration( - deviceConfig: DeviceConfig, - rotation: DisplayRotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode: Boolean, - ) { - this@SideFpsOverlayViewBinderTest.deviceConfig = deviceConfig - - when (deviceConfig) { - DeviceConfig.X_ALIGNED -> { - displayWidth = 3000 - displayHeight = 1500 - boundsWidth = 200 - boundsHeight = 100 - sensorLocation = SensorLocationInternal("", 2500, 0, boundsWidth / 2) - } - DeviceConfig.Y_ALIGNED -> { - displayWidth = 2500 - displayHeight = 2000 - boundsWidth = 100 - boundsHeight = 200 - sensorLocation = SensorLocationInternal("", displayWidth, 300, boundsHeight / 2) - } - } - - whenever(kosmos.windowManager.maximumWindowMetrics) - .thenReturn( - WindowMetrics( - Rect(0, 0, displayWidth, displayHeight), - mock(WindowInsets::class.java), - ) - ) - - contextDisplayInfo.uniqueId = DISPLAY_ID - + private suspend fun TestScope.setupTestConfiguration(isInRearDisplayMode: Boolean) { kosmos.fingerprintPropertyRepository.setProperties( sensorId = 1, strength = SensorStrength.STRONG, sensorType = FingerprintSensorType.POWER_BUTTON, - sensorLocations = mapOf(DISPLAY_ID to sensorLocation) + sensorLocations = emptyMap(), ) kosmos.displayStateRepository.setIsInRearDisplayMode(isInRearDisplayMode) - kosmos.displayStateRepository.setCurrentRotation(rotation) + kosmos.displayStateRepository.setCurrentRotation(DisplayRotation.ROTATION_0) kosmos.displayRepository.emitDisplayChangeEvent(0) kosmos.sideFpsOverlayViewBinder.start() runCurrent() } - - companion object { - private const val DISPLAY_ID = "displayId" - } } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt index 0db7b62b8ef1..84d062a3e7be 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModelTest.kt @@ -30,23 +30,19 @@ import android.view.windowManager import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.airbnb.lottie.model.KeyPath -import com.android.keyguard.keyguardUpdateMonitor import com.android.settingslib.Utils import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.FingerprintInteractiveToAuthProvider -import com.android.systemui.biometrics.data.repository.biometricStatusRepository import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository import com.android.systemui.biometrics.domain.interactor.displayStateInteractor -import com.android.systemui.biometrics.shared.model.AuthenticationReason import com.android.systemui.biometrics.shared.model.DisplayRotation import com.android.systemui.biometrics.shared.model.FingerprintSensorType import com.android.systemui.biometrics.shared.model.LottieCallback import com.android.systemui.biometrics.shared.model.SensorStrength -import com.android.systemui.bouncer.data.repository.keyguardBouncerRepository +import com.android.systemui.biometrics.updateSfpsIndicatorRequests import com.android.systemui.coroutines.collectLastValue import com.android.systemui.display.data.repository.displayRepository import com.android.systemui.display.data.repository.displayStateRepository -import com.android.systemui.keyguard.ui.viewmodel.sideFpsProgressBarViewModel import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.testKosmos @@ -84,17 +80,17 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { private val indicatorColor = Utils.getColorAttrDefaultColor( context, - com.android.internal.R.attr.materialColorPrimaryFixed + com.android.internal.R.attr.materialColorPrimaryFixed, ) private val outerRimColor = Utils.getColorAttrDefaultColor( context, - com.android.internal.R.attr.materialColorPrimaryFixedDim + com.android.internal.R.attr.materialColorPrimaryFixedDim, ) private val chevronFill = Utils.getColorAttrDefaultColor( context, - com.android.internal.R.attr.materialColorOnPrimaryFixed + com.android.internal.R.attr.materialColorOnPrimaryFixed, ) private val color_blue400 = context.getColor(com.android.settingslib.color.R.color.settingslib_color_blue400) @@ -133,7 +129,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { setupTestConfiguration( DeviceConfig.X_ALIGNED, rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false + isInRearDisplayMode = false, ) val overlayViewProperties by @@ -167,7 +163,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { setupTestConfiguration( DeviceConfig.Y_ALIGNED, rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false + isInRearDisplayMode = false, ) val overlayViewProperties by @@ -201,7 +197,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { setupTestConfiguration( DeviceConfig.X_ALIGNED, rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false + isInRearDisplayMode = false, ) val overlayViewParams by @@ -243,7 +239,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { setupTestConfiguration( DeviceConfig.Y_ALIGNED, rotation = DisplayRotation.ROTATION_0, - isInRearDisplayMode = false + isInRearDisplayMode = false, ) val overlayViewParams by @@ -284,17 +280,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { kosmos.testScope.runTest { val lottieCallbacks by collectLastValue(kosmos.sideFpsOverlayViewModel.lottieCallbacks) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.NotRunning - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - - updatePrimaryBouncer( - isShowing = true, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) + updateSfpsIndicatorRequests(kosmos, mContext, primaryBouncerRequest = true) runCurrent() assertThat(lottieCallbacks) @@ -312,17 +298,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { val lottieCallbacks by collectLastValue(kosmos.sideFpsOverlayViewModel.lottieCallbacks) setDarkMode(true) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.BiometricPromptAuthentication - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - - updatePrimaryBouncer( - isShowing = false, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) + updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = true) runCurrent() assertThat(lottieCallbacks) @@ -338,17 +314,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { val lottieCallbacks by collectLastValue(kosmos.sideFpsOverlayViewModel.lottieCallbacks) setDarkMode(false) - kosmos.biometricStatusRepository.setFingerprintAuthenticationReason( - AuthenticationReason.BiometricPromptAuthentication - ) - kosmos.sideFpsProgressBarViewModel.setVisible(false) - - updatePrimaryBouncer( - isShowing = false, - isAnimatingAway = false, - fpsDetectionRunning = true, - isUnlockingWithFpAllowed = true - ) + updateSfpsIndicatorRequests(kosmos, mContext, biometricPromptRequest = true) runCurrent() assertThat(lottieCallbacks) @@ -371,29 +337,6 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { mContext.resources.configuration.uiMode = uiMode } - private fun updatePrimaryBouncer( - isShowing: Boolean, - isAnimatingAway: Boolean, - fpsDetectionRunning: Boolean, - isUnlockingWithFpAllowed: Boolean, - ) { - kosmos.keyguardBouncerRepository.setPrimaryShow(isShowing) - kosmos.keyguardBouncerRepository.setPrimaryStartingToHide(false) - val primaryStartDisappearAnimation = if (isAnimatingAway) Runnable {} else null - kosmos.keyguardBouncerRepository.setPrimaryStartDisappearAnimation( - primaryStartDisappearAnimation - ) - - whenever(kosmos.keyguardUpdateMonitor.isFingerprintDetectionRunning) - .thenReturn(fpsDetectionRunning) - whenever(kosmos.keyguardUpdateMonitor.isUnlockingWithFingerprintAllowed) - .thenReturn(isUnlockingWithFpAllowed) - mContext.orCreateTestableResources.addOverride( - R.bool.config_show_sidefps_hint_on_bouncer, - true - ) - } - private suspend fun TestScope.setupTestConfiguration( deviceConfig: DeviceConfig, rotation: DisplayRotation = DisplayRotation.ROTATION_0, @@ -432,7 +375,7 @@ class SideFpsOverlayViewModelTest : SysuiTestCase() { sensorId = 1, strength = SensorStrength.STRONG, sensorType = FingerprintSensorType.POWER_BUTTON, - sensorLocations = mapOf(DISPLAY_ID to sensorLocation) + sensorLocations = mapOf(DISPLAY_ID to sensorLocation), ) kosmos.displayStateRepository.setIsInRearDisplayMode(isInRearDisplayMode) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt index 1ec78742f0dd..4d81317b7755 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractorTest.kt @@ -30,6 +30,7 @@ import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.keyguardOcclusionRepository import com.android.systemui.keyguard.shared.model.KeyguardState +import com.android.systemui.keyguard.shared.model.StatusBarState.KEYGUARD import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.keyguard.util.KeyguardTransitionRepositorySpySubject.Companion.assertThat as assertThatRepository @@ -81,7 +82,7 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { assertThat(values) .containsExactly( - null, // LOCKSCREEN -> AOD does not have any specific surface visibility. + null // LOCKSCREEN -> AOD does not have any specific surface visibility. ) transitionRepository.sendTransitionStep( @@ -118,6 +119,53 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { } @Test + fun draggingToPrimaryBouncerUpdateIsSent() = + testScope.runTest { + underTest.start() + transitionRepository.sendTransitionSteps( + from = KeyguardState.OFF, + to = KeyguardState.LOCKSCREEN, + testScope, + ) + + val steps by collectValues(transitionRepository.transitions) + + shadeRepository.setLegacyShadeExpansion(0f) + shadeRepository.setLegacyShadeTracking(true) + keyguardRepository.setKeyguardDismissible(false) + keyguardRepository.setStatusBarState(KEYGUARD) + runCurrent() + + // User starts dragging up + shadeRepository.setLegacyShadeExpansion(0.1f) + runCurrent() + + assertThatRepository(transitionRepository) + .startedTransition( + from = KeyguardState.LOCKSCREEN, + to = KeyguardState.PRIMARY_BOUNCER, + ) + + // FakeKeyguardRepository doesn't send the step, so do that + transitionRepository.sendTransitionStep( + TransitionStep( + transitionState = TransitionState.STARTED, + from = KeyguardState.LOCKSCREEN, + to = KeyguardState.PRIMARY_BOUNCER, + value = 0f, + ) + ) + runCurrent() + + // Update is sent + shadeRepository.setLegacyShadeExpansion(0.2f) + runCurrent() + + assertThatRepository(transitionRepository) + .updatedTransition(value = 1f, state = TransitionState.RUNNING) + } + + @Test @EnableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) fun testTransitionsToGone_whenDismissFlingWhileDismissable_flagEnabled() = testScope.runTest { @@ -132,10 +180,7 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { runCurrent() assertThatRepository(transitionRepository) - .startedTransition( - from = KeyguardState.LOCKSCREEN, - to = KeyguardState.GONE, - ) + .startedTransition(from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE) } @Test @@ -184,15 +229,12 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { true, ActivityManager.RunningTaskInfo().apply { topActivityType = WindowConfiguration.ACTIVITY_TYPE_STANDARD - } + }, ) runCurrent() assertThatRepository(transitionRepository) - .startedTransition( - from = KeyguardState.LOCKSCREEN, - to = KeyguardState.OCCLUDED, - ) + .startedTransition(from = KeyguardState.LOCKSCREEN, to = KeyguardState.OCCLUDED) } @Test @@ -207,14 +249,11 @@ class FromLockscreenTransitionInteractorTest : SysuiTestCase() { true, ActivityManager.RunningTaskInfo().apply { topActivityType = WindowConfiguration.ACTIVITY_TYPE_DREAM - } + }, ) runCurrent() assertThatRepository(transitionRepository) - .startedTransition( - from = KeyguardState.LOCKSCREEN, - to = KeyguardState.DREAMING, - ) + .startedTransition(from = KeyguardState.LOCKSCREEN, to = KeyguardState.DREAMING) } } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt index 7da2e9a8a283..fc9e595945dd 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoaderTest.kt @@ -408,6 +408,40 @@ class MediaDataLoaderTest : SysuiTestCase() { verify(mockImageLoader, times(1)).loadBitmap(any(), anyInt(), anyInt(), anyInt()) } + @OptIn(ExperimentalCoroutinesApi::class) + @Test + fun testLoadMediaDataInBg_fromResumeToActive_doesNotCancelResumeToActiveTask() = + testScope.runTest { + val mockImageLoader = mock<ImageLoader>() + val mediaDataLoader = + MediaDataLoader( + context, + testDispatcher, + testScope, + mediaControllerFactory, + mediaFlags, + mockImageLoader, + statusBarManager, + ) + metadataBuilder.putString( + MediaMetadata.METADATA_KEY_ALBUM_ART_URI, + "content://album_art_uri", + ) + + testScope.launch { + mediaDataLoader.loadMediaData( + KEY, + createMediaNotification(), + isConvertingToActive = true, + ) + } + testScope.launch { mediaDataLoader.loadMediaData(KEY, createMediaNotification()) } + testScope.launch { mediaDataLoader.loadMediaData(KEY, createMediaNotification()) } + testScope.advanceUntilIdle() + + verify(mockImageLoader, times(2)).loadBitmap(any(), anyInt(), anyInt(), anyInt()) + } + private fun createMediaNotification( mediaSession: MediaSession? = session, applicationInfo: ApplicationInfo? = null, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt index d12d6f6b885d..f40bfbdeb54b 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/stack/ui/viewmodel/NotificationListViewModelTest.kt @@ -21,6 +21,7 @@ package com.android.systemui.statusbar.notification.stack.ui.viewmodel import android.platform.test.annotations.EnableFlags import android.platform.test.flag.junit.FlagsParameterization import androidx.test.filters.SmallTest +import com.android.app.tracing.coroutines.flow.map import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.DisableSceneContainer @@ -40,6 +41,7 @@ import com.android.systemui.statusbar.data.repository.fakeRemoteInputRepository import com.android.systemui.statusbar.notification.data.repository.FakeHeadsUpRowRepository import com.android.systemui.statusbar.notification.data.repository.activeNotificationListRepository import com.android.systemui.statusbar.notification.data.repository.setActiveNotifs +import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyShadeFix import com.android.systemui.statusbar.notification.footer.shared.FooterViewRefactor import com.android.systemui.statusbar.notification.stack.data.repository.headsUpNotificationRepository import com.android.systemui.statusbar.policy.data.repository.fakeUserSetupRepository @@ -150,7 +152,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_trueWhenNoNotifs() = testScope.runTest { - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() val shouldIncludeFooterView by collectFooterViewVisibility() // WHEN has no notifs @@ -165,7 +167,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_falseWhenNotifs() = testScope.runTest { - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() // WHEN has notifs activeNotificationListRepository.setActiveNotifs(count = 2) @@ -178,7 +180,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_falseWhenQsExpandedDefault() = testScope.runTest { - val shouldShow by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShow by collectEmptyShadeViewVisibility() // WHEN has no notifs activeNotificationListRepository.setActiveNotifs(count = 0) @@ -193,7 +195,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_trueWhenQsExpandedInSplitShade() = testScope.runTest { - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() val shouldIncludeFooterView by collectFooterViewVisibility() // WHEN has no notifs @@ -214,7 +216,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_trueWhenLockedShade() = testScope.runTest { - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() val shouldIncludeFooterView by collectFooterViewVisibility() // WHEN has no notifs @@ -231,7 +233,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_falseWhenKeyguard() = testScope.runTest { - val shouldShow by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShow by collectEmptyShadeViewVisibility() // WHEN has no notifs activeNotificationListRepository.setActiveNotifs(count = 0) @@ -246,7 +248,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas @Test fun shouldShowEmptyShadeView_falseWhenStartingToSleep() = testScope.runTest { - val shouldShow by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShow by collectEmptyShadeViewVisibility() // WHEN has no notifs activeNotificationListRepository.setActiveNotifs(count = 0) @@ -264,7 +266,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas fun shouldIncludeFooterView_trueWhenShade() = testScope.runTest { val shouldIncludeFooterView by collectFooterViewVisibility() - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() // WHEN has notifs activeNotificationListRepository.setActiveNotifs(count = 2) @@ -282,7 +284,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas fun shouldIncludeFooterView_trueWhenLockedShade() = testScope.runTest { val shouldIncludeFooterView by collectFooterViewVisibility() - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() // WHEN has notifs activeNotificationListRepository.setActiveNotifs(count = 2) @@ -370,7 +372,7 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas fun shouldIncludeFooterView_trueWhenQsExpandedSplitShade() = testScope.runTest { val shouldIncludeFooterView by collectFooterViewVisibility() - val shouldShowEmptyShadeView by collectLastValue(underTest.shouldShowEmptyShadeView) + val shouldShowEmptyShadeView by collectEmptyShadeViewVisibility() // WHEN has notifs activeNotificationListRepository.setActiveNotifs(count = 2) @@ -614,4 +616,11 @@ class NotificationListViewModelTest(flags: FlagsParameterization) : SysuiTestCas if (SceneContainerFlag.isEnabled) underTest.shouldShowFooterView else underTest.shouldIncludeFooterView ) + + private fun TestScope.collectEmptyShadeViewVisibility() = + collectLastValue( + if (ModesEmptyShadeFix.isEnabled) + underTest.shouldShowEmptyShadeViewAnimated.map { it.value } + else underTest.shouldShowEmptyShadeView + ) } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt index 305367213571..1915e8ede7e7 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/policy/HeadsUpManagerPhoneTest.kt @@ -47,6 +47,7 @@ import com.android.systemui.util.kotlin.JavaAdapter import com.android.systemui.util.mockito.mock import com.android.systemui.util.settings.GlobalSettings import com.android.systemui.util.time.SystemClock +import com.google.common.truth.Truth.assertThat import junit.framework.Assert import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow @@ -244,35 +245,37 @@ class HeadsUpManagerPhoneTest(flags: FlagsParameterization) : BaseHeadsUpManager mSystemClock.advanceTime((TEST_AUTO_DISMISS_TIME + hmp.mExtensionTime / 2).toLong()) Assert.assertTrue(hmp.isHeadsUpEntry(entry.key)) } + @Test + @EnableFlags(NotificationThrottleHun.FLAG_NAME) + fun testShowNotification_removeWhenReorderingAllowedTrue() { + whenever(mVSProvider.isReorderingAllowed).thenReturn(true) + val hmp = createHeadsUpManagerPhone() + + val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) + hmp.showNotification(notifEntry) + assertThat(hmp.mEntriesToRemoveWhenReorderingAllowed.contains(notifEntry)).isTrue(); + } @Test @EnableFlags(NotificationThrottleHun.FLAG_NAME) - fun testShowNotification_reorderNotAllowed_notPulsing_seenInShadeTrue() { + fun testShowNotification_reorderNotAllowed_seenInShadeTrue() { whenever(mVSProvider.isReorderingAllowed).thenReturn(false) val hmp = createHeadsUpManagerPhone() val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) - val row = mock<ExpandableNotificationRow>() - whenever(row.showingPulsing()).thenReturn(false) - notifEntry.row = row - hmp.showNotification(notifEntry) - Assert.assertTrue(notifEntry.isSeenInShade) + assertThat(notifEntry.isSeenInShade).isTrue(); } @Test @EnableFlags(NotificationThrottleHun.FLAG_NAME) - fun testShowNotification_reorderAllowed_notPulsing_seenInShadeFalse() { + fun testShowNotification_reorderAllowed_seenInShadeFalse() { whenever(mVSProvider.isReorderingAllowed).thenReturn(true) val hmp = createHeadsUpManagerPhone() val notifEntry = HeadsUpManagerTestUtil.createEntry(/* id= */ 0, mContext) - val row = mock<ExpandableNotificationRow>() - whenever(row.showingPulsing()).thenReturn(false) - notifEntry.row = row - hmp.showNotification(notifEntry) - Assert.assertFalse(notifEntry.isSeenInShade) + assertThat(notifEntry.isSeenInShade).isFalse(); } @Test diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt new file mode 100644 index 000000000000..a83ed5649889 --- /dev/null +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureTest.kt @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.touchpad.tutorial.ui.gesture + +import android.view.MotionEvent +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import com.android.systemui.touchpad.tutorial.ui.gesture.MultiFingerGesture.Companion.SWIPE_DISTANCE +import com.google.common.truth.Truth.assertThat +import kotlin.math.cos +import kotlin.math.sin +import org.junit.Test +import org.junit.runner.RunWith + +@SmallTest +@RunWith(AndroidJUnit4::class) +class EasterEggGestureTest : SysuiTestCase() { + + private data class Point(val x: Float, val y: Float) + + private var triggered = false + private val handler = + TouchpadGestureHandler( + BackGestureMonitor( + gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), + gestureStateChangedCallback = {}, + ), + EasterEggGestureMonitor(callback = { triggered = true }), + ) + + @Test + fun easterEggTriggeredAfterThreeCircles() { + assertStateAfterTwoFingerGesture( + gesturePath = generateCircularGesturePoints(circlesCount = 3), + wasTriggered = true, + ) + } + + @Test + fun easterEggTriggeredAfterThreeImperfectCircles() { + assertStateAfterTwoFingerGesture( + gesturePath = + generateCircularGesturePoints(circlesCount = 3, radiusNoiseFraction = 0.2), + wasTriggered = true, + ) + } + + @Test + fun easterEggTriggeredAfterFiveCircles() { + assertStateAfterTwoFingerGesture( + gesturePath = generateCircularGesturePoints(circlesCount = 5), + wasTriggered = true, + ) + } + + @Test + fun easterEggNotTriggeredAfterTwoCircles() { + assertStateAfterTwoFingerGesture( + gesturePath = generateCircularGesturePoints(circlesCount = 2), + wasTriggered = false, + ) + } + + @Test + fun easterEggNotTriggeredAfterVariousSwipes() { + val allSwipeGestures = + listOf( + // two finger gestures + TwoFingerGesture.swipeUp(), + TwoFingerGesture.swipeDown(), + TwoFingerGesture.swipeLeft(), + TwoFingerGesture.swipeRight(), + // three finger gestures + ThreeFingerGesture.swipeUp(), + ThreeFingerGesture.swipeDown(), + ThreeFingerGesture.swipeLeft(), + ThreeFingerGesture.swipeRight(), + // four finger gestures + FourFingerGesture.swipeUp(), + FourFingerGesture.swipeDown(), + FourFingerGesture.swipeLeft(), + FourFingerGesture.swipeRight(), + ) + allSwipeGestures.forEach { gesture -> + assertStateAfterEvents(events = gesture, wasTriggered = false) + } + } + + private fun assertStateAfterEvents(events: List<MotionEvent>, wasTriggered: Boolean) { + events.forEach { handler.onMotionEvent(it) } + assertThat(triggered).isEqualTo(wasTriggered) + } + + private fun assertStateAfterTwoFingerGesture(gesturePath: List<Point>, wasTriggered: Boolean) { + val events = TwoFingerGesture.createEvents { gesturePath.forEach { (x, y) -> move(x, y) } } + assertStateAfterEvents(events = events, wasTriggered = wasTriggered) + } + + /** + * Generates list of points that would make up clockwise circular motion with given [radius]. + * [circlesCount] determines how many full circles gesture should perform. [radiusNoiseFraction] + * can introduce noise to mimic real-world gesture which is not perfect - shape will be still + * circular but radius at any given point can be deviate from given radius by + * [radiusNoiseFraction]. + */ + private fun generateCircularGesturePoints( + circlesCount: Int, + radiusNoiseFraction: Double? = null, + radius: Float = 100f, + ): List<Point> { + val pointsPerCircle = 50 + val angleStep = 360 / pointsPerCircle + val angleBuffer = 20 // buffer to make sure we're doing a bit more than 360 degree + val totalAngle = circlesCount * (360 + angleBuffer) + // Because all gestures in tests should start at (DEFAULT_X, DEFAULT_Y) we need to shift + // circle center x coordinate by radius + val centerX = -radius + val centerY = 0f + + val events = mutableListOf<Point>() + val randomNoise: (Double) -> Double = + if (radiusNoiseFraction == null) { + { 0.0 } + } else { + { radianAngle -> sin(radianAngle * 2) * radiusNoiseFraction } + } + + var currentAngle = 0f + // as cos(0) == 1 and sin(0) == 0 we start gesture at position of (radius, 0) and go + // clockwise - first Y increases and X decreases + while (currentAngle < totalAngle) { + val radianAngle = Math.toRadians(currentAngle.toDouble()) + val radiusWithNoise = radius * (1 + randomNoise(radianAngle).toFloat()) + val x = centerX + radiusWithNoise * cos(radianAngle).toFloat() + val y = centerY + radiusWithNoise * sin(radianAngle).toFloat() + events.add(Point(x, y)) + currentAngle += angleStep + } + return events + } +} diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt index 3a01d4f5a500..466ddbe25c54 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandlerTest.kt @@ -41,8 +41,9 @@ class TouchpadGestureHandlerTest : SysuiTestCase() { TouchpadGestureHandler( BackGestureMonitor( gestureDistanceThresholdPx = SWIPE_DISTANCE.toInt(), - gestureStateChangedCallback = { gestureState = it } - ) + gestureStateChangedCallback = { gestureState = it }, + ), + EasterEggGestureMonitor {}, ) @Test diff --git a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml index 3b3ed39c8993..91cd019c85d1 100644 --- a/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml +++ b/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml @@ -215,17 +215,4 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="1.0" tools:srcCompat="@tools:sample/avatars" /> - - <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper - android:id="@+id/biometric_icon_overlay" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_gravity="center" - android:contentDescription="@null" - android:scaleType="fitXY" - android:importantForAccessibility="no" - app:layout_constraintBottom_toBottomOf="@+id/biometric_icon" - app:layout_constraintEnd_toEndOf="@+id/biometric_icon" - app:layout_constraintStart_toStartOf="@+id/biometric_icon" - app:layout_constraintTop_toTopOf="@+id/biometric_icon" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml b/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml index 2a00495e9d01..51117a7845df 100644 --- a/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml +++ b/packages/SystemUI/res/layout/biometric_prompt_two_pane_layout.xml @@ -40,19 +40,6 @@ android:layout_height="match_parent"> app:layout_constraintTop_toTopOf="parent" tools:srcCompat="@tools:sample/avatars" /> - <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper - android:id="@+id/biometric_icon_overlay" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_gravity="center" - android:contentDescription="@null" - android:scaleType="fitXY" - android:importantForAccessibility="no" - app:layout_constraintBottom_toBottomOf="@+id/biometric_icon" - app:layout_constraintEnd_toEndOf="@+id/biometric_icon" - app:layout_constraintStart_toStartOf="@+id/biometric_icon" - app:layout_constraintTop_toTopOf="@+id/biometric_icon" /> - <ScrollView android:id="@+id/scrollView" android:layout_width="0dp" diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 9b7ae5da01ed..cea405b7d18d 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -573,8 +573,7 @@ <string name="notification_section_header_conversations" msgid="821834744538345661">"Conversations"</string> <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Clear all silent notifications"</string> <string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Notifications paused by Do Not Disturb"</string> - <!-- no translation found for modes_suppressing_shade_text (6037581130837903239) --> - <skip /> + <string name="modes_suppressing_shade_text" msgid="6037581130837903239">"{count,plural,offset:1 =0{No notifications}=1{Notifications paused by {mode}}=2{Notifications paused by {mode} and one other mode}other{Notifications paused by {mode} and # other modes}}"</string> <string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string> <string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string> <string name="no_unseen_notif_text" msgid="395512586119868682">"No new notifications"</string> @@ -1436,6 +1435,8 @@ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"To view all your apps, press the action key on your keyboard"</string> <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Redacted"</string> <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Unlock to view"</string> + <!-- no translation found for contextual_education_dialog_title (4630392552837487324) --> + <skip /> <string name="back_edu_notification_title" msgid="5624780717751357278">"Use your touchpad to go back"</string> <string name="back_edu_notification_content" msgid="2497557451540954068">"Swipe left or right using three fingers. Tap to learn more gestures."</string> <string name="home_edu_notification_title" msgid="6097902076909654045">"Use your touchpad to go home"</string> diff --git a/packages/SystemUI/res/values-night/styles.xml b/packages/SystemUI/res/values-night/styles.xml index e9dd039f38c2..7bd4ca8b940b 100644 --- a/packages/SystemUI/res/values-night/styles.xml +++ b/packages/SystemUI/res/values-night/styles.xml @@ -64,4 +64,9 @@ <item name="android:windowLightNavigationBar">false</item> </style> + <style name="ContextualEduDialog" parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar"> + <!-- To make the dialog wrap to content when the education text is short --> + <item name="windowMinWidthMajor">0%</item> + <item name="windowMinWidthMinor">0%</item> + </style> </resources> diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml index 5c9679d73d41..399523e1aba2 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings.xml @@ -1436,6 +1436,8 @@ <string name="all_apps_edu_toast_content" msgid="8807496014667211562">"Para ver todos os apps, pressione a tecla de ação no teclado"</string> <string name="redacted_notification_single_line_title" msgid="212019960919261670">"Encoberto"</string> <string name="redacted_notification_single_line_text" msgid="8684166405005242945">"Desbloquear para visualizar"</string> + <!-- no translation found for contextual_education_dialog_title (4630392552837487324) --> + <skip /> <string name="back_edu_notification_title" msgid="5624780717751357278">"Use o touchpad para voltar"</string> <string name="back_edu_notification_content" msgid="2497557451540954068">"Deslize para a esquerda ou direita usando três dedos. Toque para aprender outros gestos."</string> <string name="home_edu_notification_title" msgid="6097902076909654045">"Use o touchpad para acessar a tela inicial"</string> diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index b34d6e4067b6..1c09f84b6fd0 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -1721,7 +1721,7 @@ <item name="android:windowLightNavigationBar">true</item> </style> - <style name="ContextualEduDialog" parent="@android:style/Theme.DeviceDefault.Dialog.NoActionBar"> + <style name="ContextualEduDialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar"> <!-- To make the dialog wrap to content when the education text is short --> <item name="windowMinWidthMajor">0%</item> <item name="windowMinWidthMinor">0%</item> diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java index 78cd02fed9eb..ab611901328d 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/QuickStepContract.java @@ -347,7 +347,12 @@ public class QuickStepContract { } // Disable back gesture on the hub, but not when the shade is showing. if ((sysuiStateFlags & SYSUI_STATE_COMMUNAL_HUB_SHOWING) != 0) { - return (sysuiStateFlags & SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE) == 0; + // Use QS expanded signal as the notification panel is always considered visible + // expanded when on the lock screen and when opening hub over lock screen. This does + // mean that back gesture is disabled when opening shade over hub while in portrait + // mode, since QS is not expanded. + // TODO(b/370108274): allow back gesture on shade over hub in portrait + return (sysuiStateFlags & SYSUI_STATE_QUICK_SETTINGS_EXPANDED) == 0; } if ((sysuiStateFlags & SYSUI_STATE_ALLOW_GESTURE_IGNORING_BAR_VISIBILITY) != 0) { sysuiStateFlags &= ~SYSUI_STATE_NAV_BAR_HIDDEN; diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 22130f827841..8e01e04c155e 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -114,6 +114,7 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.util.LatencyTracker; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.logging.KeyguardUpdateMonitorLogger; +import com.android.keyguard.logging.SimLogger; import com.android.settingslib.Utils; import com.android.settingslib.WirelessUtils; import com.android.settingslib.fuelgauge.BatteryStatus; @@ -285,6 +286,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private final Context mContext; private final UserTracker mUserTracker; private final KeyguardUpdateMonitorLogger mLogger; + private final SimLogger mSimLogger; private final boolean mIsSystemUser; private final Provider<JavaAdapter> mJavaAdapter; private final Provider<SceneInteractor> mSceneInteractor; @@ -582,14 +584,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private void handleSimSubscriptionInfoChanged() { Assert.isMainThread(); - mLogger.v("onSubscriptionInfoChanged()"); + mSimLogger.v("onSubscriptionInfoChanged()"); List<SubscriptionInfo> subscriptionInfos = getSubscriptionInfo(true /* forceReload */); if (!subscriptionInfos.isEmpty()) { for (SubscriptionInfo subInfo : subscriptionInfos) { - mLogger.logSubInfo(subInfo); + mSimLogger.logSubInfo(subInfo); } } else { - mLogger.v("onSubscriptionInfoChanged: list is null"); + mSimLogger.v("onSubscriptionInfoChanged: list is null"); } // Hack level over 9000: Because the subscription id is not yet valid when we see the @@ -612,7 +614,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab while (iter.hasNext()) { Map.Entry<Integer, SimData> simData = iter.next(); if (!activeSubIds.contains(simData.getKey())) { - mLogger.logInvalidSubId(simData.getKey()); + mSimLogger.logInvalidSubId(simData.getKey()); iter.remove(); SimData data = simData.getValue(); @@ -1700,7 +1702,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } return; } - mLogger.logSimStateFromIntent(action, + mSimLogger.logSimStateFromIntent(action, intent.getStringExtra(Intent.EXTRA_SIM_STATE), args.slotId, args.subId); @@ -1720,7 +1722,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab ServiceState serviceState = ServiceState.newFromBundle(intent.getExtras()); int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, SubscriptionManager.INVALID_SUBSCRIPTION_ID); - mLogger.logServiceStateIntent(action, serviceState, subId); + mSimLogger.logServiceStateIntent(action, serviceState, subId); mHandler.sendMessage( mHandler.obtainMessage(MSG_SERVICE_STATE_CHANGE, subId, 0, serviceState)); } else if (TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED.equals(action)) { @@ -2154,6 +2156,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab LatencyTracker latencyTracker, ActiveUnlockConfig activeUnlockConfiguration, KeyguardUpdateMonitorLogger logger, + SimLogger simLogger, UiEventLogger uiEventLogger, // This has to be a provider because SessionTracker depends on KeyguardUpdateMonitor :( Provider<SessionTracker> sessionTrackerProvider, @@ -2196,6 +2199,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab mSensorPrivacyManager = sensorPrivacyManager; mActiveUnlockConfig = activeUnlockConfiguration; mLogger = logger; + mSimLogger = simLogger; mUiEventLogger = uiEventLogger; mSessionTrackerProvider = sessionTrackerProvider; mTrustManager = trustManager; @@ -3369,36 +3373,39 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } /** + * Removes all valid subscription info from the map for the given slotId. + */ + private void invalidateSlot(int slotId) { + Iterator<Map.Entry<Integer, SimData>> iter = mSimDatas.entrySet().iterator(); + while (iter.hasNext()) { + SimData data = iter.next().getValue(); + if (data.slotId == slotId && SubscriptionManager.isValidSubscriptionId(data.subId)) { + mSimLogger.logInvalidSubId(data.subId); + iter.remove(); + } + } + } + + /** * Handle {@link #MSG_SIM_STATE_CHANGE} */ @VisibleForTesting void handleSimStateChange(int subId, int slotId, int state) { Assert.isMainThread(); - mLogger.logSimState(subId, slotId, state); + mSimLogger.logSimState(subId, slotId, state); - boolean becameAbsent = false; + boolean becameAbsent = ABSENT_SIM_STATE_LIST.contains(state); if (!SubscriptionManager.isValidSubscriptionId(subId)) { - mLogger.w("invalid subId in handleSimStateChange()"); + mSimLogger.w("invalid subId in handleSimStateChange()"); /* Only handle No SIM(ABSENT) and Card Error(CARD_IO_ERROR) due to * handleServiceStateChange() handle other case */ - if (state == TelephonyManager.SIM_STATE_ABSENT) { - updateTelephonyCapable(true); - // Even though the subscription is not valid anymore, we need to notify that the - // SIM card was removed so we can update the UI. - becameAbsent = true; - for (SimData data : mSimDatas.values()) { - // Set the SIM state of all SimData associated with that slot to ABSENT se we - // do not move back into PIN/PUK locked and not detect the change below. - if (data.slotId == slotId) { - data.simState = TelephonyManager.SIM_STATE_ABSENT; - } - } - } else if (state == TelephonyManager.SIM_STATE_CARD_IO_ERROR) { + if (state == TelephonyManager.SIM_STATE_ABSENT + || state == TelephonyManager.SIM_STATE_CARD_IO_ERROR) { updateTelephonyCapable(true); } - } - becameAbsent |= ABSENT_SIM_STATE_LIST.contains(state); + invalidateSlot(slotId); + } // TODO(b/327476182): Preserve SIM_STATE_CARD_IO_ERROR sims in a separate data source. SimData data = mSimDatas.get(subId); @@ -3428,10 +3435,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab */ @VisibleForTesting void handleServiceStateChange(int subId, ServiceState serviceState) { - mLogger.logServiceStateChange(subId, serviceState); + mSimLogger.logServiceStateChange(subId, serviceState); if (!SubscriptionManager.isValidSubscriptionId(subId)) { - mLogger.w("invalid subId in handleServiceStateChange()"); + mSimLogger.w("invalid subId in handleServiceStateChange()"); return; } else { updateTelephonyCapable(true); @@ -3711,7 +3718,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab */ @MainThread public void reportSimUnlocked(int subId) { - mLogger.logSimUnlocked(subId); + mSimLogger.logSimUnlocked(subId); handleSimStateChange(subId, getSlotId(subId), TelephonyManager.SIM_STATE_READY); } @@ -3870,6 +3877,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean refreshSimState(int subId, int slotId) { int state = mTelephonyManager.getSimState(slotId); SimData data = mSimDatas.get(subId); + + if (!SubscriptionManager.isValidSubscriptionId(subId)) { + invalidateSlot(slotId); + } + final boolean changed; if (data == null) { data = new SimData(state, slotId, subId); diff --git a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt index 0b58f06e0d5d..12fc3c262367 100644 --- a/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt +++ b/packages/SystemUI/src/com/android/keyguard/logging/KeyguardUpdateMonitorLogger.kt @@ -20,8 +20,6 @@ import android.content.Intent import android.hardware.biometrics.BiometricConstants.LockoutMode import android.hardware.biometrics.BiometricSourceType import android.os.PowerManager -import android.telephony.ServiceState -import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID import android.telephony.TelephonyManager @@ -34,7 +32,6 @@ import com.android.systemui.log.LogBuffer import com.android.systemui.log.core.LogLevel import com.android.systemui.log.core.LogLevel.DEBUG import com.android.systemui.log.core.LogLevel.ERROR -import com.android.systemui.log.core.LogLevel.INFO import com.android.systemui.log.core.LogLevel.VERBOSE import com.android.systemui.log.core.LogLevel.WARNING import com.android.systemui.log.dagger.KeyguardUpdateMonitorLog @@ -63,7 +60,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { "ActiveUnlock", DEBUG, { str1 = reason }, - { "initiate active unlock triggerReason=$str1" } + { "initiate active unlock triggerReason=$str1" }, ) } @@ -75,7 +72,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "Skip requesting active unlock from wake reason that doesn't trigger face auth" + " reason=${PowerManager.wakeReasonToString(int1)}" - } + }, ) } @@ -92,7 +89,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, DEBUG, { bool1 = deviceProvisioned }, - { "DEVICE_PROVISIONED state = $bool1" } + { "DEVICE_PROVISIONED state = $bool1" }, ) } @@ -108,7 +105,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { str1 = originalErrMsg int1 = msgId }, - { "Face error received: $str1 msgId= $int1" } + { "Face error received: $str1 msgId= $int1" }, ) } @@ -117,7 +114,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, DEBUG, { int1 = authUserId }, - { "Face authenticated for wrong user: $int1" } + { "Face authenticated for wrong user: $int1" }, ) } @@ -130,7 +127,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { FP_LOG_TAG, DEBUG, { int1 = authUserId }, - { "Fingerprint authenticated for wrong user: $int1" } + { "Fingerprint authenticated for wrong user: $int1" }, ) } @@ -139,7 +136,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { FP_LOG_TAG, DEBUG, { int1 = userId }, - { "Fingerprint disabled by DPM for userId: $int1" } + { "Fingerprint disabled by DPM for userId: $int1" }, ) } @@ -148,7 +145,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { FP_LOG_TAG, DEBUG, { int1 = mode }, - { "handleFingerprintLockoutReset: $int1" } + { "handleFingerprintLockoutReset: $int1" }, ) } @@ -157,7 +154,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { FP_LOG_TAG, DEBUG, { int1 = fingerprintRunningState }, - { "fingerprintRunningState: $int1" } + { "fingerprintRunningState: $int1" }, ) } @@ -169,7 +166,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId bool1 = isStrongBiometric }, - { "Fingerprint auth successful: userId: $int1, isStrongBiometric: $bool1" } + { "Fingerprint auth successful: userId: $int1, isStrongBiometric: $bool1" }, ) } @@ -181,7 +178,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId bool1 = isStrongBiometric }, - { "Face detected: userId: $int1, isStrongBiometric: $bool1" } + { "Face detected: userId: $int1, isStrongBiometric: $bool1" }, ) } @@ -193,7 +190,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId bool1 = isStrongBiometric }, - { "Fingerprint detected: userId: $int1, isStrongBiometric: $bool1" } + { "Fingerprint detected: userId: $int1, isStrongBiometric: $bool1" }, ) } @@ -205,22 +202,13 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { str1 = originalErrMsg int1 = msgId }, - { "Fingerprint error received: $str1 msgId= $int1" } - ) - } - - fun logInvalidSubId(subId: Int) { - logBuffer.log( - TAG, - INFO, - { int1 = subId }, - { "Previously active sub id $int1 is now invalid, will remove" } + { "Fingerprint error received: $str1 msgId= $int1" }, ) } fun logPrimaryKeyguardBouncerChanged( primaryBouncerIsOrWillBeShowing: Boolean, - primaryBouncerFullyShown: Boolean + primaryBouncerFullyShown: Boolean, ) { logBuffer.log( TAG, @@ -232,7 +220,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "handlePrimaryBouncerChanged " + "primaryBouncerIsOrWillBeShowing=$bool1 primaryBouncerFullyShown=$bool2" - } + }, ) } @@ -249,7 +237,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { bool2 = occluded bool3 = visible }, - { "keyguardShowingChanged(showing=$bool1 occluded=$bool2 visible=$bool3)" } + { "keyguardShowingChanged(showing=$bool1 occluded=$bool2 visible=$bool3)" }, ) } @@ -258,7 +246,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, ERROR, { int1 = userId }, - { "No Profile Owner or Device Owner supervision app found for User $int1" } + { "No Profile Owner or Device Owner supervision app found for User $int1" }, ) } @@ -279,7 +267,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int2 = delay str1 = "$errString" }, - { "Fingerprint scheduling retry auth after $int2 ms due to($int1) -> $str1" } + { "Fingerprint scheduling retry auth after $int2 ms due to($int1) -> $str1" }, ) } @@ -288,7 +276,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, WARNING, { int1 = retryCount }, - { "Retrying fingerprint attempt: $int1" } + { "Retrying fingerprint attempt: $int1" }, ) } @@ -306,32 +294,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "sendPrimaryBouncerChanged primaryBouncerIsOrWillBeShowing=$bool1 " + "primaryBouncerFullyShown=$bool2" - } - ) - } - - fun logServiceStateChange(subId: Int, serviceState: ServiceState?) { - logBuffer.log( - TAG, - DEBUG, - { - int1 = subId - str1 = "$serviceState" - }, - { "handleServiceStateChange(subId=$int1, serviceState=$str1)" } - ) - } - - fun logServiceStateIntent(action: String?, serviceState: ServiceState?, subId: Int) { - logBuffer.log( - TAG, - VERBOSE, - { - str1 = action - str2 = "$serviceState" - int1 = subId }, - { "action $str1 serviceState=$str2 subId=$int1" } ) } @@ -344,51 +307,16 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { str1 = intent.getStringExtra(TelephonyManager.EXTRA_SPN) str2 = intent.getStringExtra(TelephonyManager.EXTRA_PLMN) }, - { "action SERVICE_PROVIDERS_UPDATED subId=$int1 spn=$str1 plmn=$str2" } + { "action SERVICE_PROVIDERS_UPDATED subId=$int1 spn=$str1 plmn=$str2" }, ) } - fun logSimState(subId: Int, slotId: Int, state: Int) { - logBuffer.log( - TAG, - DEBUG, - { - int1 = subId - int2 = slotId - long1 = state.toLong() - }, - { "handleSimStateChange(subId=$int1, slotId=$int2, state=$long1)" } - ) - } - - fun logSimStateFromIntent(action: String?, extraSimState: String?, slotId: Int, subId: Int) { - logBuffer.log( - TAG, - VERBOSE, - { - str1 = action - str2 = extraSimState - int1 = slotId - int2 = subId - }, - { "action $str1 state: $str2 slotId: $int1 subid: $int2" } - ) - } - - fun logSimUnlocked(subId: Int) { - logBuffer.log(TAG, VERBOSE, { int1 = subId }, { "reportSimUnlocked(subId=$int1)" }) - } - - fun logSubInfo(subInfo: SubscriptionInfo?) { - logBuffer.log(TAG, DEBUG, { str1 = "$subInfo" }, { "SubInfo:$str1" }) - } - fun logTimeFormatChanged(newTimeFormat: String?) { logBuffer.log( TAG, DEBUG, { str1 = newTimeFormat }, - { "handleTimeFormatUpdate timeFormat=$str1" } + { "handleTimeFormatUpdate timeFormat=$str1" }, ) } @@ -402,7 +330,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { fun logUnexpectedFpCancellationSignalState( fingerprintRunningState: Int, - unlockPossible: Boolean + unlockPossible: Boolean, ) { logBuffer.log( TAG, @@ -414,7 +342,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "Cancellation signal is not null, high chance of bug in " + "fp auth lifecycle management. FP state: $int1, unlockPossible: $bool1" - } + }, ) } @@ -425,7 +353,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { fun logUserRequestedUnlock( requestOrigin: ActiveUnlockConfig.ActiveUnlockRequestOrigin, reason: String?, - dismissKeyguard: Boolean + dismissKeyguard: Boolean, ) { logBuffer.log( "ActiveUnlock", @@ -435,7 +363,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { str2 = reason bool1 = dismissKeyguard }, - { "reportUserRequestedUnlock origin=$str1 reason=$str2 dismissKeyguard=$bool1" } + { "reportUserRequestedUnlock origin=$str1 reason=$str2 dismissKeyguard=$bool1" }, ) } @@ -443,7 +371,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { flags: Int, newlyUnlocked: Boolean, userId: Int, - message: String? + message: String?, ) { logBuffer.log( TAG, @@ -457,7 +385,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "trustGrantedWithFlags[user=$int2] newlyUnlocked=$bool1 " + "flags=${TrustGrantFlags(int1)} message=$str1" - } + }, ) } @@ -470,7 +398,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { bool2 = isNowTrusted int1 = userId }, - { "onTrustChanged[user=$int1] wasTrusted=$bool1 isNowTrusted=$bool2" } + { "onTrustChanged[user=$int1] wasTrusted=$bool1 isNowTrusted=$bool2" }, ) } @@ -478,7 +406,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { secure: Boolean, canDismissLockScreen: Boolean, trusted: Boolean, - trustManaged: Boolean + trustManaged: Boolean, ) { logBuffer.log( "KeyguardState", @@ -492,7 +420,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "#update secure=$bool1 canDismissKeyguard=$bool2" + " trusted=$bool3 trustManaged=$bool4" - } + }, ) } @@ -501,7 +429,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, VERBOSE, { bool1 = assistantVisible }, - { "TaskStackChanged for ACTIVITY_TYPE_ASSISTANT, assistant visible: $bool1" } + { "TaskStackChanged for ACTIVITY_TYPE_ASSISTANT, assistant visible: $bool1" }, ) } @@ -510,7 +438,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, VERBOSE, { bool1 = allow }, - { "allowFingerprintOnCurrentOccludingActivityChanged: $bool1" } + { "allowFingerprintOnCurrentOccludingActivityChanged: $bool1" }, ) } @@ -519,7 +447,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, VERBOSE, { bool1 = assistantVisible }, - { "Updating mAssistantVisible to new value: $bool1" } + { "Updating mAssistantVisible to new value: $bool1" }, ) } @@ -531,7 +459,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { bool1 = isStrongBiometric int1 = userId }, - { "reporting successful biometric unlock: isStrongBiometric: $bool1, userId: $int1" } + { "reporting successful biometric unlock: isStrongBiometric: $bool1, userId: $int1" }, ) } @@ -543,7 +471,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { { "MSG_BIOMETRIC_AUTHENTICATION_CONTINUE already queued up, " + "ignoring updating FP listening state to $int1" - } + }, ) } @@ -551,7 +479,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { userId: Int, oldValue: Boolean, newValue: Boolean, - context: String + context: String, ) { logBuffer.log( TAG, @@ -568,7 +496,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { "old: $bool1, " + "new: $bool2 " + "context: $str1" - } + }, ) } @@ -591,7 +519,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { "plugged=$str1, " + "chargingStatus=$int2, " + "maxChargingWattage= $long2}" - } + }, ) } @@ -604,7 +532,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, DEBUG, { str1 = "$biometricSourceType" }, - { "notifying about enrollments changed: $str1" } + { "notifying about enrollments changed: $str1" }, ) } @@ -616,7 +544,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId str1 = context }, - { "userCurrentlySwitching: $str1, userId: $int1" } + { "userCurrentlySwitching: $str1, userId: $int1" }, ) } @@ -628,7 +556,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId str1 = context }, - { "userSwitchComplete: $str1, userId: $int1" } + { "userSwitchComplete: $str1, userId: $int1" }, ) } @@ -637,7 +565,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { FP_LOG_TAG, DEBUG, { int1 = acquireInfo }, - { "fingerprint acquire message: $int1" } + { "fingerprint acquire message: $int1" }, ) } @@ -646,7 +574,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { TAG, DEBUG, { bool1 = keepUnlocked }, - { "keepUnlockedOnFold changed to: $bool1" } + { "keepUnlockedOnFold changed to: $bool1" }, ) } @@ -662,7 +590,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId bool1 = isUnlocked }, - { "userStopped userId: $int1 isUnlocked: $bool1" } + { "userStopped userId: $int1 isUnlocked: $bool1" }, ) } @@ -678,7 +606,7 @@ constructor(@KeyguardUpdateMonitorLog private val logBuffer: LogBuffer) { int1 = userId bool1 = isUnlocked }, - { "userUnlockedInitialState userId: $int1 isUnlocked: $bool1" } + { "userUnlockedInitialState userId: $int1 isUnlocked: $bool1" }, ) } } diff --git a/packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt b/packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt new file mode 100644 index 000000000000..a81698ba3387 --- /dev/null +++ b/packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.keyguard.logging + +import android.content.Intent +import android.telephony.ServiceState +import android.telephony.SubscriptionInfo +import android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX +import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID +import android.telephony.TelephonyManager +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel +import com.android.systemui.log.core.LogLevel.DEBUG +import com.android.systemui.log.core.LogLevel.ERROR +import com.android.systemui.log.core.LogLevel.INFO +import com.android.systemui.log.core.LogLevel.VERBOSE +import com.android.systemui.log.core.LogLevel.WARNING +import com.android.systemui.log.dagger.SimLog +import com.google.errorprone.annotations.CompileTimeConstant +import javax.inject.Inject + +private const val TAG = "SimLog" + +/** Helper class for logging for SIM events */ +class SimLogger @Inject constructor(@SimLog private val logBuffer: LogBuffer) { + fun d(@CompileTimeConstant msg: String) = log(msg, DEBUG) + + fun e(@CompileTimeConstant msg: String) = log(msg, ERROR) + + fun v(@CompileTimeConstant msg: String) = log(msg, VERBOSE) + + fun w(@CompileTimeConstant msg: String) = log(msg, WARNING) + + fun log(@CompileTimeConstant msg: String, level: LogLevel) = logBuffer.log(TAG, level, msg) + + fun logInvalidSubId(subId: Int) { + logBuffer.log( + TAG, + INFO, + { int1 = subId }, + { "Previously active sub id $int1 is now invalid, will remove" }, + ) + } + + fun logServiceStateChange(subId: Int, serviceState: ServiceState?) { + logBuffer.log( + TAG, + DEBUG, + { + int1 = subId + str1 = "$serviceState" + }, + { "handleServiceStateChange(subId=$int1, serviceState=$str1)" }, + ) + } + + fun logServiceStateIntent(action: String?, serviceState: ServiceState?, subId: Int) { + logBuffer.log( + TAG, + VERBOSE, + { + str1 = action + str2 = "$serviceState" + int1 = subId + }, + { "action $str1 serviceState=$str2 subId=$int1" }, + ) + } + + fun logServiceProvidersUpdated(intent: Intent) { + logBuffer.log( + TAG, + VERBOSE, + { + int1 = intent.getIntExtra(EXTRA_SUBSCRIPTION_INDEX, INVALID_SUBSCRIPTION_ID) + str1 = intent.getStringExtra(TelephonyManager.EXTRA_SPN) + str2 = intent.getStringExtra(TelephonyManager.EXTRA_PLMN) + }, + { "action SERVICE_PROVIDERS_UPDATED subId=$int1 spn=$str1 plmn=$str2" }, + ) + } + + fun logSimState(subId: Int, slotId: Int, state: Int) { + logBuffer.log( + TAG, + DEBUG, + { + int1 = subId + int2 = slotId + long1 = state.toLong() + }, + { "handleSimStateChange(subId=$int1, slotId=$int2, state=$long1)" }, + ) + } + + fun logSimStateFromIntent(action: String?, extraSimState: String?, slotId: Int, subId: Int) { + logBuffer.log( + TAG, + VERBOSE, + { + str1 = action + str2 = extraSimState + int1 = slotId + int2 = subId + }, + { "action $str1 state: $str2 slotId: $int1 subid: $int2" }, + ) + } + + fun logSimUnlocked(subId: Int) { + logBuffer.log(TAG, VERBOSE, { int1 = subId }, { "reportSimUnlocked(subId=$int1)" }) + } + + fun logSubInfo(subInfo: SubscriptionInfo?) { + logBuffer.log(TAG, DEBUG, { str1 = "$subInfo" }, { "SubInfo:$str1" }) + } +} diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt index 73f75a4ff639..18446f02778a 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt @@ -18,13 +18,11 @@ package com.android.systemui.biometrics.ui.binder import android.animation.Animator import android.animation.AnimatorSet -import android.animation.ValueAnimator import android.graphics.Outline import android.graphics.Rect import android.transition.AutoTransition import android.transition.TransitionManager import android.util.TypedValue -import android.view.Surface import android.view.View import android.view.ViewGroup import android.view.ViewOutlineProvider @@ -52,7 +50,6 @@ import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.res.R import kotlin.math.abs import kotlinx.coroutines.flow.combine -import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch /** Helper for [BiometricViewBinder] to handle resize transitions. */ @@ -98,7 +95,7 @@ object BiometricViewSizeBinder { TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 1f, - view.resources.displayMetrics + view.resources.displayMetrics, ) val cornerRadiusPx = (pxToDp * cornerRadius).toInt() @@ -114,7 +111,7 @@ object BiometricViewSizeBinder { 0, view.width + cornerRadiusPx, view.height, - cornerRadiusPx.toFloat() + cornerRadiusPx.toFloat(), ) } PromptPosition.Left -> { @@ -123,7 +120,7 @@ object BiometricViewSizeBinder { 0, view.width, view.height, - cornerRadiusPx.toFloat() + cornerRadiusPx.toFloat(), ) } PromptPosition.Bottom, @@ -133,7 +130,7 @@ object BiometricViewSizeBinder { 0, view.width, view.height + cornerRadiusPx, - cornerRadiusPx.toFloat() + cornerRadiusPx.toFloat(), ) } } @@ -160,16 +157,13 @@ object BiometricViewSizeBinder { fun setVisibilities(hideSensorIcon: Boolean, size: PromptSize) { viewsToHideWhenSmall.forEach { it.showContentOrHide(forceHide = size.isSmall) } largeConstraintSet.setVisibility(iconHolderView.id, View.GONE) - largeConstraintSet.setVisibility(R.id.biometric_icon_overlay, View.GONE) largeConstraintSet.setVisibility(R.id.indicator, View.GONE) largeConstraintSet.setVisibility(R.id.scrollView, View.GONE) if (hideSensorIcon) { smallConstraintSet.setVisibility(iconHolderView.id, View.GONE) - smallConstraintSet.setVisibility(R.id.biometric_icon_overlay, View.GONE) smallConstraintSet.setVisibility(R.id.indicator, View.GONE) mediumConstraintSet.setVisibility(iconHolderView.id, View.GONE) - mediumConstraintSet.setVisibility(R.id.biometric_icon_overlay, View.GONE) mediumConstraintSet.setVisibility(R.id.indicator, View.GONE) } } @@ -189,24 +183,24 @@ object BiometricViewSizeBinder { R.id.biometric_icon, ConstraintSet.LEFT, ConstraintSet.PARENT_ID, - ConstraintSet.LEFT + ConstraintSet.LEFT, ) mediumConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.LEFT, - position.left + position.left, ) smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.RIGHT) smallConstraintSet.connect( R.id.biometric_icon, ConstraintSet.LEFT, ConstraintSet.PARENT_ID, - ConstraintSet.LEFT + ConstraintSet.LEFT, ) smallConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.LEFT, - position.left + position.left, ) } if (position.top != 0) { @@ -216,13 +210,13 @@ object BiometricViewSizeBinder { mediumConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.TOP, - position.top + position.top, ) smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.BOTTOM) smallConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.TOP, - position.top + position.top, ) } if (position.right != 0) { @@ -233,24 +227,24 @@ object BiometricViewSizeBinder { R.id.biometric_icon, ConstraintSet.RIGHT, ConstraintSet.PARENT_ID, - ConstraintSet.RIGHT + ConstraintSet.RIGHT, ) mediumConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.RIGHT, - position.right + position.right, ) smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.LEFT) smallConstraintSet.connect( R.id.biometric_icon, ConstraintSet.RIGHT, ConstraintSet.PARENT_ID, - ConstraintSet.RIGHT + ConstraintSet.RIGHT, ) smallConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.RIGHT, - position.right + position.right, ) } if (position.bottom != 0) { @@ -260,13 +254,13 @@ object BiometricViewSizeBinder { mediumConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.BOTTOM, - position.bottom + position.bottom, ) smallConstraintSet.clear(R.id.biometric_icon, ConstraintSet.TOP) smallConstraintSet.setMargin( R.id.biometric_icon, ConstraintSet.BOTTOM, - position.bottom + position.bottom, ) } iconHolderView.layoutParams = iconParams @@ -305,11 +299,11 @@ object BiometricViewSizeBinder { } else if (bounds.right < 0) { mediumConstraintSet.setGuidelineBegin( rightGuideline.id, - abs(bounds.right) + abs(bounds.right), ) smallConstraintSet.setGuidelineBegin( rightGuideline.id, - abs(bounds.right) + abs(bounds.right), ) } @@ -362,13 +356,13 @@ object BiometricViewSizeBinder { R.id.scrollView, ConstraintSet.LEFT, R.id.midGuideline, - ConstraintSet.LEFT + ConstraintSet.LEFT, ) flipConstraintSet.connect( R.id.scrollView, ConstraintSet.RIGHT, R.id.rightGuideline, - ConstraintSet.RIGHT + ConstraintSet.RIGHT, ) } else if (position.isTop) { // Top position is only used for 180 rotation Udfps @@ -377,24 +371,24 @@ object BiometricViewSizeBinder { R.id.scrollView, ConstraintSet.TOP, R.id.indicator, - ConstraintSet.BOTTOM + ConstraintSet.BOTTOM, ) mediumConstraintSet.connect( R.id.scrollView, ConstraintSet.BOTTOM, R.id.button_bar, - ConstraintSet.TOP + ConstraintSet.TOP, ) mediumConstraintSet.connect( R.id.panel, ConstraintSet.TOP, R.id.biometric_icon, - ConstraintSet.TOP + ConstraintSet.TOP, ) mediumConstraintSet.setMargin( R.id.panel, ConstraintSet.TOP, - (-24 * pxToDp).toInt() + (-24 * pxToDp).toInt(), ) mediumConstraintSet.setVerticalBias(R.id.scrollView, 0f) } diff --git a/packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt b/packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt new file mode 100644 index 000000000000..08a79c92919f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/bouncer/util/BouncerTestUtils.kt @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.bouncer.util + +import android.app.ActivityManager +import android.content.res.Resources +import com.android.systemui.res.R +import java.io.File + +private const val ENABLE_MENU_KEY_FILE = "/data/local/enable_menu_key" + +/** + * In general, we enable unlocking the insecure keyguard with the menu key. However, there are some + * cases where we wish to disable it, notably when the menu button placement or technology is prone + * to false positives. + * + * @return true if the menu key should be enabled + */ +fun Resources.shouldEnableMenuKey(): Boolean { + val configDisabled = getBoolean(R.bool.config_disableMenuKeyInLockScreen) + val isTestHarness = ActivityManager.isRunningInTestHarness() + val fileOverride = File(ENABLE_MENU_KEY_FILE).exists() + return !configDisabled || isTestHarness || fileOverride +} diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java index 1ada56dea45a..7033e641dc2c 100644 --- a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardListener.java @@ -19,6 +19,7 @@ package com.android.systemui.clipboardoverlay; import static android.content.ClipDescription.CLASSIFICATION_COMPLETE; import static com.android.systemui.Flags.clipboardNoninteractiveOnLockscreen; +import static com.android.systemui.Flags.overrideSuppressOverlayCondition; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_UPDATED; import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN; @@ -63,6 +64,7 @@ public class ClipboardListener implements private final ClipboardManager mClipboardManager; private final KeyguardManager mKeyguardManager; private final UiEventLogger mUiEventLogger; + private final ClipboardOverlaySuppressionController mClipboardOverlaySuppressionController; private ClipboardOverlay mClipboardOverlay; @Inject @@ -71,13 +73,15 @@ public class ClipboardListener implements ClipboardToast clipboardToast, UserScopedService<ClipboardManager> clipboardManager, KeyguardManager keyguardManager, - UiEventLogger uiEventLogger) { + UiEventLogger uiEventLogger, + ClipboardOverlaySuppressionController clipboardOverlaySuppressionController) { mContext = context; mOverlayProvider = clipboardOverlayControllerProvider; mClipboardToast = clipboardToast; mClipboardManager = clipboardManager.forUser(UserHandle.CURRENT); mKeyguardManager = keyguardManager; mUiEventLogger = uiEventLogger; + mClipboardOverlaySuppressionController = clipboardOverlaySuppressionController; } @Override @@ -94,9 +98,17 @@ public class ClipboardListener implements String clipSource = mClipboardManager.getPrimaryClipSource(); ClipData clipData = mClipboardManager.getPrimaryClip(); - if (shouldSuppressOverlay(clipData, clipSource, Build.IS_EMULATOR)) { - Log.i(TAG, "Clipboard overlay suppressed."); - return; + if (overrideSuppressOverlayCondition()) { + if (mClipboardOverlaySuppressionController.shouldSuppressOverlay(clipData, clipSource, + Build.IS_EMULATOR)) { + Log.i(TAG, "Clipboard overlay suppressed."); + return; + } + } else { + if (shouldSuppressOverlay(clipData, clipSource, Build.IS_EMULATOR)) { + Log.i(TAG, "Clipboard overlay suppressed."); + return; + } } // user should not access intents before setup or while device is locked diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirectionClass.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionController.kt index bee9222ae5eb..be592daccc1e 100644 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRedirectionClass.java +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionController.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023 The Android Open Source Project + * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,24 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.ravenwood.annotation; +package com.android.systemui.clipboardoverlay -import static java.lang.annotation.ElementType.TYPE; +import android.content.ClipData -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; +/** Interface to control the clipboard overlay suppression behavior. */ +interface ClipboardOverlaySuppressionController { -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * - * @hide - */ -@Target({TYPE}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodRedirectionClass { - String value(); + /** Decides if the clipboard overlay should be suppressed. */ + fun shouldSuppressOverlay( + clipData: ClipData?, + clipSource: String?, + isEmulator: Boolean, + ): Boolean } diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt new file mode 100644 index 000000000000..814341d6e242 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImpl.kt @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.clipboardoverlay + +import android.content.ClipData +import com.android.internal.annotations.VisibleForTesting +import com.android.systemui.dagger.SysUISingleton +import javax.inject.Inject + +@SysUISingleton +open class ClipboardOverlaySuppressionControllerImpl @Inject constructor() : + ClipboardOverlaySuppressionController { + + // The overlay is suppressed if EXTRA_SUPPRESS_OVERLAY is true and the device is an emulator or + // the source package is SHELL_PACKAGE. This is meant to suppress the overlay when the emulator + // or a mirrored device is syncing the clipboard. + override fun shouldSuppressOverlay( + clipData: ClipData?, + clipSource: String?, + isEmulator: Boolean, + ): Boolean { + if (!(isEmulator || SHELL_PACKAGE == clipSource)) { + return false + } + if (clipData == null || clipData.description.extras == null) { + return false + } + return clipData.description.extras.getBoolean(EXTRA_SUPPRESS_OVERLAY, false) + } + + companion object { + @VisibleForTesting const val SHELL_PACKAGE = "com.android.shell" + + @VisibleForTesting + const val EXTRA_SUPPRESS_OVERLAY = "com.android.systemui.SUPPRESS_CLIPBOARD_OVERLAY" + } +} diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt new file mode 100644 index 000000000000..527819c73e2f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/dagger/ClipboardOverlaySuppressionModule.kt @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.clipboardoverlay.dagger + +import com.android.systemui.clipboardoverlay.ClipboardOverlaySuppressionController +import com.android.systemui.clipboardoverlay.ClipboardOverlaySuppressionControllerImpl +import dagger.Binds +import dagger.Module + +/** Dagger Module for code in the clipboard overlay package. */ +@Module +interface ClipboardOverlaySuppressionModule { + + /** Provides implementation for [ClipboardOverlaySuppressionController]. */ + @Binds + fun provideClipboardOverlaySuppressionController( + clipboardOverlaySuppressionControllerImpl: ClipboardOverlaySuppressionControllerImpl + ): ClipboardOverlaySuppressionController +} diff --git a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java index 5c075c240caf..a94fbd937afc 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java @@ -29,6 +29,7 @@ import com.android.systemui.accessibility.AccessibilityModule; import com.android.systemui.accessibility.SystemActionsModule; import com.android.systemui.accessibility.data.repository.AccessibilityRepositoryModule; import com.android.systemui.battery.BatterySaverModule; +import com.android.systemui.clipboardoverlay.dagger.ClipboardOverlaySuppressionModule; import com.android.systemui.display.ui.viewmodel.ConnectingDisplayViewModel; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; @@ -116,6 +117,7 @@ import javax.inject.Named; AccessibilityRepositoryModule.class, AospPolicyModule.class, BatterySaverModule.class, + ClipboardOverlaySuppressionModule.class, CollapsedStatusBarFragmentStartableModule.class, ConnectingDisplayViewModel.StartableModule.class, DefaultBlueprintModule.class, diff --git a/packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt b/packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt new file mode 100644 index 000000000000..dc07cca08d7b --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/display/data/repository/FocusedDisplayRepository.kt @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.display.data.repository + +import android.annotation.MainThread +import android.view.Display.DEFAULT_DISPLAY +import com.android.systemui.dagger.SysUISingleton +import com.android.systemui.dagger.qualifiers.Application +import com.android.systemui.dagger.qualifiers.Main +import com.android.systemui.log.LogBuffer +import com.android.systemui.log.core.LogLevel +import com.android.systemui.log.dagger.FocusedDisplayRepoLog +import com.android.systemui.utils.coroutines.flow.conflatedCallbackFlow +import com.android.wm.shell.shared.FocusTransitionListener +import com.android.wm.shell.shared.ShellTransitions +import java.util.concurrent.Executor +import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.stateIn + +/** Repository tracking display focus. */ +@SysUISingleton +@MainThread +class FocusedDisplayRepository +@Inject +constructor( + @Application val scope: CoroutineScope, + @Main private val mainExecutor: Executor, + transitions: ShellTransitions, + @FocusedDisplayRepoLog logBuffer: LogBuffer, +) { + val focusedTask: Flow<Int> = + conflatedCallbackFlow { + val listener = FocusTransitionListener { displayId -> trySend(displayId) } + transitions.setFocusTransitionListener(listener, mainExecutor) + awaitClose { transitions.unsetFocusTransitionListener(listener) } + } + .onEach { + logBuffer.log( + "FocusedDisplayRepository", + LogLevel.INFO, + { str1 = it.toString() }, + { "Newly focused display: $str1" }, + ) + } + + /** Provides the currently focused display. */ + val focusedDisplayId: StateFlow<Int> + get() = focusedTask.stateIn(scope, SharingStarted.Eagerly, DEFAULT_DISPLAY) +} diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt index cd5daf9a99f0..1e9541e1923e 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt @@ -210,13 +210,18 @@ constructor( } else { TransitionState.RUNNING } - transitionRepository.updateTransition( - id, - // This maps the shadeExpansion to a much faster curve, to match - // the existing logic - 1f - MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion), - nextState, - ) + + // startTransition below will issue the CANCELED directly + if (nextState != TransitionState.CANCELED) { + transitionRepository.updateTransition( + id, + // This maps the shadeExpansion to a much faster curve, to match + // the existing logic + 1f - + MathUtils.constrainedMap(0f, 1f, 0.95f, 1f, shadeExpansion), + nextState, + ) + } if ( nextState == TransitionState.CANCELED || @@ -234,11 +239,12 @@ constructor( ownerName = name, from = KeyguardState.PRIMARY_BOUNCER, to = KeyguardState.LOCKSCREEN, + modeOnCanceled = TransitionModeOnCanceled.REVERSE, animator = getDefaultAnimatorForTransitionsToState( KeyguardState.LOCKSCREEN ) - .apply { duration = 0 }, + .apply { duration = 100L }, ) ) } diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepPartialClass.java b/packages/SystemUI/src/com/android/systemui/log/dagger/FocusedDisplayRepoLog.kt index 784727410188..302f9624b056 100644 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepPartialClass.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/FocusedDisplayRepoLog.kt @@ -13,22 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package android.ravenwood.annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; +package com.android.systemui.log.dagger -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * - * @hide - */ -@Target(ElementType.TYPE) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodKeepPartialClass { -} +import javax.inject.Qualifier + +/** A [com.android.systemui.log.LogBuffer] for display metrics related logging. */ +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class FocusedDisplayRepoLog diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java index 2053b53dba63..4e975ff27361 100644 --- a/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java @@ -480,6 +480,16 @@ public class LogModule { } /** + * Provides a {@link LogBuffer} for use by SIM events. + */ + @Provides + @SysUISingleton + @SimLog + public static LogBuffer provideSimLogBuffer(LogBufferFactory factory) { + return factory.create("SimLog", 500); + } + + /** * Provides a {@link LogBuffer} for use by {@link com.android.keyguard.KeyguardUpdateMonitor}. */ @Provides @@ -655,6 +665,14 @@ public class LogModule { return factory.create("DisplayMetricsRepo", 50); } + /** Provides a {@link LogBuffer} for focus related logs. */ + @Provides + @SysUISingleton + @FocusedDisplayRepoLog + public static LogBuffer provideFocusedDisplayRepoLogBuffer(LogBufferFactory factory) { + return factory.create("FocusedDisplayRepo", 50); + } + /** Provides a {@link LogBuffer} for the scene framework. */ @Provides @SysUISingleton diff --git a/packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt b/packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt new file mode 100644 index 000000000000..64fc6e70f47f --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/log/dagger/SimLog.kt @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.log.dagger + +import javax.inject.Qualifier + +/** A [com.android.systemui.log.LogBuffer] for SIM events. */ +@Qualifier @MustBeDocumented @Retention(AnnotationRetention.RUNTIME) annotation class SimLog diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt index 222d783ab79a..4528b047375a 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/LegacyMediaDataManagerImpl.kt @@ -417,6 +417,7 @@ class LegacyMediaDataManagerImpl( override fun onNotificationAdded(key: String, sbn: StatusBarNotification) { if (useQsMediaPlayer && isMediaNotification(sbn)) { var isNewlyActiveEntry = false + var isConvertingToActive = false Assert.isMainThread() val oldKey = findExistingEntry(key, sbn.packageName) if (oldKey == null) { @@ -433,9 +434,10 @@ class LegacyMediaDataManagerImpl( // Resume -> active conversion; move to new key val oldData = mediaEntries.remove(oldKey)!! isNewlyActiveEntry = true + isConvertingToActive = true mediaEntries.put(key, oldData) } - loadMediaData(key, sbn, oldKey, isNewlyActiveEntry) + loadMediaData(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive) } else { onNotificationRemoved(key) } @@ -535,10 +537,11 @@ class LegacyMediaDataManagerImpl( sbn: StatusBarNotification, oldKey: String?, isNewlyActiveEntry: Boolean = false, + isConvertingToActive: Boolean = false, ) { if (Flags.mediaLoadMetadataViaMediaDataLoader()) { applicationScope.launch { - loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry) + loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive) } } else { backgroundExecutor.execute { loadMediaDataInBg(key, sbn, oldKey, isNewlyActiveEntry) } @@ -550,10 +553,11 @@ class LegacyMediaDataManagerImpl( sbn: StatusBarNotification, oldKey: String?, isNewlyActiveEntry: Boolean = false, + isConvertingToActive: Boolean = false, ) = withContext(backgroundDispatcher) { val lastActive = systemClock.elapsedRealtime() - val result = mediaDataLoader.get().loadMediaData(key, sbn) + val result = mediaDataLoader.get().loadMediaData(key, sbn, isConvertingToActive) if (result == null) { Log.d(TAG, "No result from loadMediaData") return@withContext diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt index 7b55dac8eee1..7b8703dfbe4f 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataLoader.kt @@ -111,16 +111,26 @@ constructor( * If a new [loadMediaData] is issued while existing load is in progress, the existing (old) * load will be cancelled. */ - suspend fun loadMediaData(key: String, sbn: StatusBarNotification): MediaDataLoaderResult? { - val loadMediaJob = backgroundScope.async { loadMediaDataInBackground(key, sbn) } + suspend fun loadMediaData( + key: String, + sbn: StatusBarNotification, + isConvertingToActive: Boolean = false, + ): MediaDataLoaderResult? { + val loadMediaJob = + backgroundScope.async { loadMediaDataInBackground(key, sbn, isConvertingToActive) } loadMediaJob.invokeOnCompletion { // We need to make sure we're removing THIS job after cancellation, not // a job that we created later. mediaProcessingJobs.remove(key, loadMediaJob) } - val existingJob = mediaProcessingJobs.put(key, loadMediaJob) + var existingJob: Job? = null + // Do not cancel loading jobs that convert resume players to active. + if (!isConvertingToActive) { + existingJob = mediaProcessingJobs.put(key, loadMediaJob) + existingJob?.cancel("New processing job incoming.") + } logD(TAG) { "Loading media data for $key... / existing job: $existingJob" } - existingJob?.cancel("New processing job incoming.") + return loadMediaJob.await() } @@ -129,12 +139,16 @@ constructor( private suspend fun loadMediaDataInBackground( key: String, sbn: StatusBarNotification, + isConvertingToActive: Boolean = false, ): MediaDataLoaderResult? = traceCoroutine("MediaDataLoader#loadMediaData") { // We have apps spamming us with quick notification updates which can cause // us to spend significant CPU time loading duplicate data. This debounces // those requests at the cost of a bit of latency. - delay(DEBOUNCE_DELAY_MS) + // No delay needed to load jobs converting resume players to active. + if (!isConvertingToActive) { + delay(DEBOUNCE_DELAY_MS) + } val token = sbn.notification.extras.getParcelable( diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt index fd7b6dcfebbc..affc7b741b2a 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessor.kt @@ -330,6 +330,7 @@ class MediaDataProcessor( fun onNotificationAdded(key: String, sbn: StatusBarNotification) { if (useQsMediaPlayer && isMediaNotification(sbn)) { var isNewlyActiveEntry = false + var isConvertingToActive = false Assert.isMainThread() val oldKey = findExistingEntry(key, sbn.packageName) if (oldKey == null) { @@ -347,9 +348,10 @@ class MediaDataProcessor( // Resume -> active conversion; move to new key val oldData = mediaDataRepository.removeMediaEntry(oldKey)!! isNewlyActiveEntry = true + isConvertingToActive = true mediaDataRepository.addMediaEntry(key, oldData) } - loadMediaData(key, sbn, oldKey, isNewlyActiveEntry) + loadMediaData(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive) } else { onNotificationRemoved(key) } @@ -488,10 +490,11 @@ class MediaDataProcessor( sbn: StatusBarNotification, oldKey: String?, isNewlyActiveEntry: Boolean = false, + isConvertingToActive: Boolean = false, ) { if (Flags.mediaLoadMetadataViaMediaDataLoader()) { applicationScope.launch { - loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry) + loadMediaDataWithLoader(key, sbn, oldKey, isNewlyActiveEntry, isConvertingToActive) } } else { backgroundExecutor.execute { loadMediaDataInBg(key, sbn, oldKey, isNewlyActiveEntry) } @@ -835,10 +838,11 @@ class MediaDataProcessor( sbn: StatusBarNotification, oldKey: String?, isNewlyActiveEntry: Boolean = false, + isConvertingToActive: Boolean = false, ) = withContext(backgroundDispatcher) { val lastActive = systemClock.elapsedRealtime() - val result = mediaDataLoader.get().loadMediaData(key, sbn) + val result = mediaDataLoader.get().loadMediaData(key, sbn, isConvertingToActive) if (result == null) { Log.d(TAG, "No result from loadMediaData") return@withContext diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt index 078d534833d1..f563f875a29f 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverLogger.kt @@ -26,18 +26,11 @@ import javax.inject.Inject /** A logger for all events related to the media tap-to-transfer receiver experience. */ @SysUISingleton -class MediaTttReceiverLogger -@Inject -constructor( - @MediaTttReceiverLogBuffer buffer: LogBuffer, -) : TemporaryViewLogger<ChipReceiverInfo>(buffer, TAG) { +class MediaTttReceiverLogger @Inject constructor(@MediaTttReceiverLogBuffer buffer: LogBuffer) : + TemporaryViewLogger<ChipReceiverInfo>(buffer, TAG) { /** Logs a change in the chip state for the given [mediaRouteId]. */ - fun logStateChange( - stateName: String, - mediaRouteId: String, - packageName: String?, - ) { + fun logStateChange(stateName: String, mediaRouteId: String, packageName: String?) { MediaTttLoggerUtils.logStateChange(buffer, TAG, stateName, mediaRouteId, packageName) } @@ -51,12 +44,27 @@ constructor( MediaTttLoggerUtils.logPackageNotFound(buffer, TAG, packageName) } - fun logRippleAnimationEnd(id: Int) { + fun logRippleAnimationEnd(id: Int, type: String) { buffer.log( tag, LogLevel.DEBUG, - { int1 = id }, - { "ripple animation for view with id: $int1 is ended" } + { + int1 = id + str1 = type + }, + { "ripple animation for view with id=$int1 is ended, animation type=$str1" }, + ) + } + + fun logRippleAnimationStart(id: Int, type: String) { + buffer.log( + tag, + LogLevel.DEBUG, + { + int1 = id + str1 = type + }, + { "ripple animation for view with id=$int1 is started, animation type=$str1" }, ) } diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt index a232971c4e3f..9d004352e893 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttReceiverRippleController.kt @@ -69,7 +69,9 @@ constructor( ) rippleView.addOnAttachStateChangeListener( object : View.OnAttachStateChangeListener { - override fun onViewDetachedFromWindow(view: View) {} + override fun onViewDetachedFromWindow(view: View) { + view.visibility = View.GONE + } override fun onViewAttachedToWindow(view: View) { if (view == null) { @@ -81,7 +83,7 @@ constructor( } else { layoutRipple(attachedRippleView) } - attachedRippleView.expandRipple() + attachedRippleView.expandRipple(mediaTttReceiverLogger) attachedRippleView.removeOnAttachStateChangeListener(this) } } @@ -126,7 +128,7 @@ constructor( iconRippleView.setMaxSize(radius * 0.8f, radius * 0.8f) iconRippleView.setCenter( width * 0.5f, - height - getReceiverIconSize() * 0.5f - getReceiverIconBottomMargin() + height - getReceiverIconSize() * 0.5f - getReceiverIconBottomMargin(), ) iconRippleView.setColor(getRippleColor(), RIPPLE_OPACITY) } diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt index 81059e31f3c1..cd733ec7bf94 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/ReceiverChipRippleView.kt @@ -37,10 +37,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi isStarted = false } - fun expandRipple(onAnimationEnd: Runnable? = null) { + fun expandRipple(logger: MediaTttReceiverLogger, onAnimationEnd: Runnable? = null) { duration = DEFAULT_DURATION isStarted = true - super.startRipple(onAnimationEnd) + super.startRipple { + logger.logRippleAnimationEnd(id, EXPAND) + onAnimationEnd?.run() + } + logger.logRippleAnimationStart(id, EXPAND) } /** Used to animate out the ripple. No-op if the ripple was never started via [startRipple]. */ @@ -53,10 +57,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi animator.removeAllListeners() animator.addListener( object : AnimatorListenerAdapter() { + override fun onAnimationCancel(animation: Animator) { + onAnimationEnd(animation) + } + override fun onAnimationEnd(animation: Animator) { animation?.let { visibility = GONE - logger.logRippleAnimationEnd(id) + logger.logRippleAnimationEnd(id, COLLAPSE) } onAnimationEnd?.run() isStarted = false @@ -64,13 +72,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi } ) animator.reverse() + logger.logRippleAnimationStart(id, COLLAPSE) } // Expands the ripple to cover full screen. fun expandToFull( newHeight: Float, logger: MediaTttReceiverLogger, - onAnimationEnd: Runnable? = null + onAnimationEnd: Runnable? = null, ) { if (!isStarted) { return @@ -95,10 +104,14 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi } animator.addListener( object : AnimatorListenerAdapter() { + override fun onAnimationCancel(animation: Animator) { + onAnimationEnd(animation) + } + override fun onAnimationEnd(animation: Animator) { animation?.let { visibility = GONE - logger.logRippleAnimationEnd(id) + logger.logRippleAnimationEnd(id, EXPAND_TO_FULL) } onAnimationEnd?.run() isStarted = false @@ -106,6 +119,7 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi } ) animator.start() + logger.logRippleAnimationStart(id, EXPAND_TO_FULL) } // Calculates the actual starting percentage according to ripple shader progress set method. @@ -151,5 +165,8 @@ class ReceiverChipRippleView(context: Context?, attrs: AttributeSet?) : RippleVi companion object { const val DEFAULT_DURATION = 333L const val EXPAND_TO_FULL_DURATION = 1000L + private const val COLLAPSE = "collapse" + private const val EXPAND_TO_FULL = "expand to full" + private const val EXPAND = "expand" } } diff --git a/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt b/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt index 0d748a1cf077..0bf4c7e8d9f9 100644 --- a/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt +++ b/packages/SystemUI/src/com/android/systemui/model/SceneContainerPlugin.kt @@ -84,7 +84,10 @@ constructor( */ val EvaluatorByFlag = mapOf<Long, (SceneContainerPluginState) -> Boolean>( - SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE to { it.scene != Scenes.Gone }, + SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE to + { + it.scene != Scenes.Gone || it.overlays.isNotEmpty() + }, SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED to { when { diff --git a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt index 66ac01ab95a0..51d232946b97 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/composefragment/QSFragmentCompose.kt @@ -52,7 +52,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.onPlaced import androidx.compose.ui.layout.onSizeChanged import androidx.compose.ui.layout.positionInRoot @@ -62,7 +61,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.CustomAccessibilityAction import androidx.compose.ui.semantics.customActions import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.round import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -191,58 +189,22 @@ constructor( val context = inflater.context val composeView = ComposeView(context).apply { - setBackPressedDispatcher() - setContent { - PlatformTheme { - val visible by viewModel.qsVisible.collectAsStateWithLifecycle() - - AnimatedVisibility( - visible = visible, - modifier = - Modifier.windowInsetsPadding(WindowInsets.navigationBars) - .thenIf(notificationScrimClippingParams.isEnabled) { - Modifier.notificationScrimClip( - notificationScrimClippingParams.leftInset, - notificationScrimClippingParams.top, - notificationScrimClippingParams.rightInset, - notificationScrimClippingParams.bottom, - notificationScrimClippingParams.radius, + repeatWhenAttached { + repeatOnLifecycle(Lifecycle.State.CREATED) { + setViewTreeOnBackPressedDispatcherOwner( + object : OnBackPressedDispatcherOwner { + override val onBackPressedDispatcher = + OnBackPressedDispatcher().apply { + setOnBackInvokedDispatcher( + it.viewRootImpl.onBackInvokedDispatcher ) } - .graphicsLayer { elevation = 4.dp.toPx() }, - ) { - val isEditing by - viewModel.containerViewModel.editModeViewModel.isEditing - .collectAsStateWithLifecycle() - val animationSpecEditMode = tween<Float>(EDIT_MODE_TIME_MILLIS) - AnimatedContent( - targetState = isEditing, - transitionSpec = { - fadeIn(animationSpecEditMode) togetherWith - fadeOut(animationSpecEditMode) - }, - label = "EditModeAnimatedContent", - ) { editing -> - if (editing) { - val qqsPadding by - viewModel.qqsHeaderHeight.collectAsStateWithLifecycle() - EditMode( - viewModel = viewModel.containerViewModel.editModeViewModel, - modifier = - Modifier.fillMaxWidth() - .padding(top = { qqsPadding }) - .padding( - horizontal = { - QuickSettingsShade.Dimensions.Padding - .roundToPx() - } - ), - ) - } else { - CollapsableQuickSettingsSTL() - } + + override val lifecycle: Lifecycle = + this@repeatWhenAttached.lifecycle } - } + ) + setContent { this@QSFragmentCompose.Content() } } } } @@ -261,6 +223,58 @@ constructor( return frame } + @Composable + private fun Content() { + PlatformTheme { + val visible by viewModel.qsVisible.collectAsStateWithLifecycle() + + AnimatedVisibility( + visible = visible, + modifier = + Modifier.windowInsetsPadding(WindowInsets.navigationBars).thenIf( + notificationScrimClippingParams.isEnabled + ) { + Modifier.notificationScrimClip( + notificationScrimClippingParams.leftInset, + notificationScrimClippingParams.top, + notificationScrimClippingParams.rightInset, + notificationScrimClippingParams.bottom, + notificationScrimClippingParams.radius, + ) + }, + ) { + val isEditing by + viewModel.containerViewModel.editModeViewModel.isEditing + .collectAsStateWithLifecycle() + val animationSpecEditMode = tween<Float>(EDIT_MODE_TIME_MILLIS) + AnimatedContent( + targetState = isEditing, + transitionSpec = { + fadeIn(animationSpecEditMode) togetherWith fadeOut(animationSpecEditMode) + }, + label = "EditModeAnimatedContent", + ) { editing -> + if (editing) { + val qqsPadding by viewModel.qqsHeaderHeight.collectAsStateWithLifecycle() + EditMode( + viewModel = viewModel.containerViewModel.editModeViewModel, + modifier = + Modifier.fillMaxWidth() + .padding(top = { qqsPadding }) + .padding( + horizontal = { + QuickSettingsShade.Dimensions.Padding.roundToPx() + } + ), + ) + } else { + CollapsableQuickSettingsSTL() + } + } + } + } + } + /** * STL that contains both QQS (tiles) and QS (brightness, tiles, footer actions), but no Edit * mode. It tracks [QSFragmentComposeViewModel.expansionState] to drive the transition between @@ -649,23 +663,6 @@ constructor( } } -private fun View.setBackPressedDispatcher() { - repeatWhenAttached { - repeatOnLifecycle(Lifecycle.State.CREATED) { - setViewTreeOnBackPressedDispatcherOwner( - object : OnBackPressedDispatcherOwner { - override val onBackPressedDispatcher = - OnBackPressedDispatcher().apply { - setOnBackInvokedDispatcher(it.viewRootImpl.onBackInvokedDispatcher) - } - - override val lifecycle: Lifecycle = this@repeatWhenAttached.lifecycle - } - ) - } - } -} - private suspend inline fun <Listener : Any, Data> setListenerJob( listenerFlow: MutableStateFlow<Listener?>, dataFlow: Flow<Data>, diff --git a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt index 30bafaece923..45c1e48840ee 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/panels/ui/compose/infinitegrid/EditTile.kt @@ -606,6 +606,7 @@ private fun AvailableTileGridCell( SmallTileContent( icon = cell.tile.icon, color = colors.icon, + animateToEnd = true, modifier = Modifier.align(Alignment.Center), ) } @@ -652,6 +653,7 @@ fun EditTile( SmallTileContent( icon = tileViewModel.icon, color = colors.icon, + animateToEnd = true, modifier = Modifier.align(Alignment.Center), ) } diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt index 4fdd90bdcded..b5d45a488997 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotData.kt @@ -4,10 +4,10 @@ import android.content.ComponentName import android.graphics.Bitmap import android.graphics.Insets import android.graphics.Rect -import android.net.Uri import android.os.Process import android.os.UserHandle import android.view.Display +import android.view.WindowManager import android.view.WindowManager.ScreenshotSource import android.view.WindowManager.ScreenshotType import androidx.annotation.VisibleForTesting @@ -26,11 +26,9 @@ data class ScreenshotData( var insets: Insets, var bitmap: Bitmap?, var displayId: Int, - /** App-provided URL representing the content the user was looking at in the screenshot. */ - var contextUrl: Uri? = null, ) { - val packageNameString: String - get() = if (topComponent == null) "" else topComponent!!.packageName + val packageNameString + get() = topComponent?.packageName ?: "" fun getUserOrDefault(): UserHandle { return userHandle ?: Process.myUserHandle() @@ -54,8 +52,8 @@ data class ScreenshotData( @VisibleForTesting fun forTesting() = ScreenshotData( - type = 0, - source = 0, + type = WindowManager.TAKE_SCREENSHOT_FULLSCREEN, + source = ScreenshotSource.SCREENSHOT_KEY_CHORD, userHandle = null, topComponent = null, screenBounds = null, diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt index 448f7c4d7e95..38608d0e793a 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotExecutor.kt @@ -20,9 +20,11 @@ import android.net.Uri import android.os.Trace import android.util.Log import android.view.Display +import android.view.WindowManager.ScreenshotSource import android.view.WindowManager.TAKE_SCREENSHOT_PROVIDED_IMAGE import com.android.internal.logging.UiEventLogger import com.android.internal.util.ScreenshotRequest +import com.android.systemui.Flags.screenshotMultidisplayFocusChange import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.display.data.repository.DisplayRepository @@ -40,7 +42,7 @@ interface TakeScreenshotExecutor { suspend fun executeScreenshots( screenshotRequest: ScreenshotRequest, onSaved: (Uri?) -> Unit, - requestCallback: RequestCallback + requestCallback: RequestCallback, ) fun onCloseSystemDialogsReceived() @@ -52,7 +54,7 @@ interface TakeScreenshotExecutor { fun executeScreenshotsAsync( screenshotRequest: ScreenshotRequest, onSaved: Consumer<Uri?>, - requestCallback: RequestCallback + requestCallback: RequestCallback, ) } @@ -60,7 +62,7 @@ interface ScreenshotHandler { fun handleScreenshot( screenshot: ScreenshotData, finisher: Consumer<Uri?>, - requestCallback: RequestCallback + requestCallback: RequestCallback, ) } @@ -75,7 +77,7 @@ class TakeScreenshotExecutorImpl @Inject constructor( private val interactiveScreenshotHandlerFactory: InteractiveScreenshotHandler.Factory, - displayRepository: DisplayRepository, + private val displayRepository: DisplayRepository, @Application private val mainScope: CoroutineScope, private val screenshotRequestProcessor: ScreenshotRequestProcessor, private val uiEventLogger: UiEventLogger, @@ -95,31 +97,44 @@ constructor( override suspend fun executeScreenshots( screenshotRequest: ScreenshotRequest, onSaved: (Uri?) -> Unit, - requestCallback: RequestCallback + requestCallback: RequestCallback, ) { - val displays = getDisplaysToScreenshot(screenshotRequest.type) - val resultCallbackWrapper = MultiResultCallbackWrapper(requestCallback) - if (displays.isEmpty()) { - Log.wtf(TAG, "No displays found for screenshot.") - } - displays.forEach { display -> - val displayId = display.displayId - var screenshotHandler: ScreenshotHandler = - if (displayId == Display.DEFAULT_DISPLAY) { - getScreenshotController(display) - } else { - headlessScreenshotHandler - } - Log.d(TAG, "Executing screenshot for display $displayId") + if (screenshotMultidisplayFocusChange()) { + val display = getDisplayToScreenshot(screenshotRequest) + val screenshotHandler = getScreenshotController(display) dispatchToController( screenshotHandler, - rawScreenshotData = ScreenshotData.fromRequest(screenshotRequest, displayId), - onSaved = - if (displayId == Display.DEFAULT_DISPLAY) { - onSaved - } else { _ -> }, - callback = resultCallbackWrapper.createCallbackForId(displayId) + ScreenshotData.fromRequest(screenshotRequest, display.displayId), + onSaved, + requestCallback, ) + } else { + val displays = getDisplaysToScreenshot(screenshotRequest.type) + val resultCallbackWrapper = MultiResultCallbackWrapper(requestCallback) + if (displays.isEmpty()) { + Log.e(TAG, "No displays found for screenshot.") + } + + displays.forEach { display -> + val displayId = display.displayId + var screenshotHandler: ScreenshotHandler = + if (displayId == Display.DEFAULT_DISPLAY) { + getScreenshotController(display) + } else { + headlessScreenshotHandler + } + + Log.d(TAG, "Executing screenshot for display $displayId") + dispatchToController( + screenshotHandler, + rawScreenshotData = ScreenshotData.fromRequest(screenshotRequest, displayId), + onSaved = + if (displayId == Display.DEFAULT_DISPLAY) { + onSaved + } else { _ -> }, + callback = resultCallbackWrapper.createCallbackForId(displayId), + ) + } } } @@ -128,7 +143,7 @@ constructor( screenshotHandler: ScreenshotHandler, rawScreenshotData: ScreenshotData, onSaved: (Uri?) -> Unit, - callback: RequestCallback + callback: RequestCallback, ) { // Let's wait before logging "screenshot requested", as we should log the processed // ScreenshotData. @@ -160,13 +175,13 @@ constructor( uiEventLogger.log( ScreenshotEvent.getScreenshotSource(screenshotData.source), 0, - screenshotData.packageNameString + screenshotData.packageNameString, ) } private fun onFailedScreenshotRequest( screenshotData: ScreenshotData, - callback: RequestCallback + callback: RequestCallback, ) { uiEventLogger.log(SCREENSHOT_CAPTURE_FAILED, 0, screenshotData.packageNameString) getNotificationController(screenshotData.displayId) @@ -184,6 +199,31 @@ constructor( } } + // Return the single display to be screenshot based upon the request. + private suspend fun getDisplayToScreenshot(screenshotRequest: ScreenshotRequest): Display { + return when (screenshotRequest.source) { + // TODO(b/367394043): Overview requests should use a display ID provided in + // ScreenshotRequest. + ScreenshotSource.SCREENSHOT_OVERVIEW -> + displayRepository.getDisplay(Display.DEFAULT_DISPLAY) + ?: error("Can't find default display") + + // Key chord and vendor gesture occur on the device itself, so screenshot the device's + // display + ScreenshotSource.SCREENSHOT_KEY_CHORD, + ScreenshotSource.SCREENSHOT_VENDOR_GESTURE -> + displayRepository.getDisplay(Display.DEFAULT_DISPLAY) + ?: error("Can't find default display") + + // All other invocations use the focused display + else -> focusedDisplay() + } + } + + // TODO(b/367394043): Determine the focused display here. + private suspend fun focusedDisplay() = + displayRepository.getDisplay(Display.DEFAULT_DISPLAY) ?: error("Can't find default display") + /** Propagates the close system dialog signal to the ScreenshotController. */ override fun onCloseSystemDialogsReceived() { if (screenshotController?.isPendingSharedTransition() == false) { @@ -214,7 +254,7 @@ constructor( override fun executeScreenshotsAsync( screenshotRequest: ScreenshotRequest, onSaved: Consumer<Uri?>, - requestCallback: RequestCallback + requestCallback: RequestCallback, ) { mainScope.launch { executeScreenshots(screenshotRequest, { uri -> onSaved.accept(uri) }, requestCallback) @@ -235,9 +275,7 @@ constructor( * - If any finished with an error, [reportError] of [originalCallback] is called * - Otherwise, [onFinish] is called. */ - private class MultiResultCallbackWrapper( - private val originalCallback: RequestCallback, - ) { + private class MultiResultCallbackWrapper(private val originalCallback: RequestCallback) { private val idsPending = mutableSetOf<Int>() private val idsWithErrors = mutableSetOf<Int>() @@ -290,7 +328,7 @@ constructor( Display.TYPE_EXTERNAL, Display.TYPE_INTERNAL, Display.TYPE_OVERLAY, - Display.TYPE_WIFI + Display.TYPE_WIFI, ) } } diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java index 5473af3b3fb5..cae141d014a8 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java @@ -736,7 +736,9 @@ public class NotificationShadeWindowViewController implements Dumpable { event.recycle(); mTouchCancelled = true; } - mAmbientState.setSwipingUp(false); + if (!SceneContainerFlag.isEnabled()) { + mAmbientState.setSwipingUp(false); + } if (MigrateClocksToBlueprint.isEnabled()) { mDragDownHelper.stopDragging(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java index 1c840e08f748..fb42bad7033d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/HeadsUpManagerPhone.java @@ -103,7 +103,8 @@ public class HeadsUpManagerPhone extends BaseHeadsUpManager implements private boolean mTrackingHeadsUp; private final HashSet<String> mSwipedOutKeys = new HashSet<>(); private final HashSet<NotificationEntry> mEntriesToRemoveAfterExpand = new HashSet<>(); - private final ArraySet<NotificationEntry> mEntriesToRemoveWhenReorderingAllowed + @VisibleForTesting + public final ArraySet<NotificationEntry> mEntriesToRemoveWhenReorderingAllowed = new ArraySet<>(); private boolean mIsShadeOrQsExpanded; private boolean mIsQsExpanded; @@ -630,11 +631,8 @@ public class HeadsUpManagerPhone extends BaseHeadsUpManager implements super.setEntry(entry, removeRunnable); if (NotificationThrottleHun.isEnabled()) { - if (!mVisualStabilityProvider.isReorderingAllowed() - // We don't want to allow reordering while pulsing, but headsup need to - // time out anyway - && !entry.showingPulsing()) { - mEntriesToRemoveWhenReorderingAllowed.add(entry); + mEntriesToRemoveWhenReorderingAllowed.add(entry); + if (!mVisualStabilityProvider.isReorderingAllowed()) { entry.setSeenInShade(true); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 1ea26e5727ac..5ae24f76a9bf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -63,6 +63,7 @@ import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInte import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor; import com.android.systemui.bouncer.shared.flag.ComposeBouncerFlags; import com.android.systemui.bouncer.ui.BouncerView; +import com.android.systemui.bouncer.util.BouncerTestUtilsKt; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.deviceentry.domain.interactor.DeviceEntryInteractor; @@ -1552,8 +1553,10 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } public boolean shouldDismissOnMenuPressed() { - return mPrimaryBouncerView.getDelegate() != null - && mPrimaryBouncerView.getDelegate().shouldDismissOnMenuPressed(); + return (mPrimaryBouncerView.getDelegate() != null + && mPrimaryBouncerView.getDelegate().shouldDismissOnMenuPressed()) || ( + ComposeBouncerFlags.INSTANCE.isEnabled() && BouncerTestUtilsKt.shouldEnableMenuKey( + mContext.getResources())); } public boolean interceptMediaKey(KeyEvent event) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt index 674cbb7c3c0d..d406ed4e49c7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/AvalancheController.kt @@ -46,6 +46,8 @@ constructor( private val tag = "AvalancheController" private val debug = Compile.IS_DEBUG && Log.isLoggable(tag, Log.DEBUG) + var baseEntryMapStr : () -> String = { "baseEntryMapStr not initialized" } + var enableAtRuntime = true set(value) { if (!value) { @@ -116,17 +118,25 @@ constructor( val key = getKey(entry) if (runnable == null) { - headsUpManagerLogger.logAvalancheUpdate(caller, isEnabled, key, "Runnable NULL, stop") + headsUpManagerLogger.logAvalancheUpdate( + caller, isEnabled, key, + "Runnable NULL, stop. ${getStateStr()}" + ) return } if (!isEnabled) { - headsUpManagerLogger.logAvalancheUpdate(caller, isEnabled, key, - "NOT ENABLED, run runnable") + headsUpManagerLogger.logAvalancheUpdate( + caller, isEnabled, key, + "NOT ENABLED, run runnable. ${getStateStr()}" + ) runnable.run() return } if (entry == null) { - headsUpManagerLogger.logAvalancheUpdate(caller, isEnabled, key, "Entry NULL, stop") + headsUpManagerLogger.logAvalancheUpdate( + caller, isEnabled, key, + "Entry NULL, stop. ${getStateStr()}" + ) return } if (debug) { @@ -181,32 +191,40 @@ constructor( val key = getKey(entry) if (runnable == null) { - headsUpManagerLogger.logAvalancheDelete(caller, isEnabled, key, "Runnable NULL, stop") + headsUpManagerLogger.logAvalancheDelete( + caller, isEnabled, key, + "Runnable NULL, stop. ${getStateStr()}" + ) return } if (!isEnabled) { - headsUpManagerLogger.logAvalancheDelete(caller, isEnabled, key, - "NOT ENABLED, run runnable") runnable.run() + headsUpManagerLogger.logAvalancheDelete( + caller, isEnabled = false, key, + "NOT ENABLED, run runnable. ${getStateStr()}" + ) return } if (entry == null) { - headsUpManagerLogger.logAvalancheDelete(caller, isEnabled, key, - "Entry NULL, run runnable") runnable.run() + headsUpManagerLogger.logAvalancheDelete( + caller, isEnabled = true, key, + "Entry NULL, run runnable. ${getStateStr()}" + ) return } val outcome: String if (entry in nextMap) { - outcome = "remove from next" if (entry in nextMap) nextMap.remove(entry) if (entry in nextList) nextList.remove(entry) uiEventLogger.log(ThrottleEvent.AVALANCHE_THROTTLING_HUN_REMOVED) + outcome = "remove from next. ${getStateStr()}" + } else if (entry in debugDropSet) { - outcome = "remove from dropset" debugDropSet.remove(entry) + outcome = "remove from dropset. ${getStateStr()}" + } else if (isShowing(entry)) { - outcome = "remove showing" previousHunKey = getKey(headsUpEntryShowing) // Show the next HUN before removing this one, so that we don't tell listeners // onHeadsUpPinnedModeChanged, which causes @@ -214,9 +232,11 @@ constructor( // HUN is animating out, resulting in a flicker. showNext() runnable.run() + outcome = "remove showing. ${getStateStr()}" + } else { - outcome = "run runnable for untracked shown" runnable.run() + outcome = "run runnable for untracked shown HUN. ${getStateStr()}" } headsUpManagerLogger.logAvalancheDelete(caller, isEnabled(), getKey(entry), outcome) } @@ -405,7 +425,9 @@ constructor( "\n\tprevious: [$previousHunKey]" + "\n\tnext list: $nextListStr" + "\n\tnext map: $nextMapStr" + - "\n\tdropped: $dropSetStr" + "\n\tdropped: $dropSetStr" + + "\nBHUM.mHeadsUpEntryMap: " + + baseEntryMapStr() } private val dropSetStr: String diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java index f37393ac6729..4284c1911b33 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BaseHeadsUpManager.java @@ -116,6 +116,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { mAccessibilityMgr = accessibilityManagerWrapper; mUiEventLogger = uiEventLogger; mAvalancheController = avalancheController; + mAvalancheController.setBaseEntryMapStr(this::getEntryMapStr); Resources resources = context.getResources(); mMinimumDisplayTime = NotificationThrottleHun.isEnabled() ? 500 : resources.getInteger(R.integer.heads_up_notification_minimum_time); @@ -583,6 +584,18 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { return mUser; } + private String getEntryMapStr() { + if (mHeadsUpEntryMap.isEmpty()) { + return "EMPTY"; + } + StringBuilder entryMapStr = new StringBuilder(); + for (HeadsUpEntry entry: mHeadsUpEntryMap.values()) { + entryMapStr.append("\n\t").append( + entry.mEntry == null ? "null" : entry.mEntry.getKey()); + } + return entryMapStr.toString(); + } + @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println("HeadsUpManager state:"); @@ -992,7 +1005,6 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { * Clear any pending removal runnables. */ public void cancelAutoRemovalCallbacks(@Nullable String reason) { - mLogger.logAutoRemoveCancelRequest(this.mEntry, reason); Runnable runnable = () -> { final boolean removed = cancelAutoRemovalCallbackInternal(); @@ -1001,6 +1013,7 @@ public abstract class BaseHeadsUpManager implements HeadsUpManager { } }; if (mEntry != null && isHeadsUpEntry(mEntry.getKey())) { + mLogger.logAutoRemoveCancelRequest(this.mEntry, reason); mAvalancheController.update(this, runnable, reason + " cancelAutoRemovalCallbacks"); } else { // Just removed diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt index 0ecbf70f85c3..e1b89da392ea 100644 --- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt +++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/composable/GestureTutorialScreen.kt @@ -18,20 +18,25 @@ package com.android.systemui.touchpad.tutorial.ui.composable import android.content.res.Resources import androidx.activity.compose.BackHandler +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.input.pointer.pointerInteropFilter import androidx.compose.ui.platform.LocalContext import com.android.systemui.inputdevice.tutorial.ui.composable.ActionTutorialContent import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialActionState import com.android.systemui.inputdevice.tutorial.ui.composable.TutorialScreenConfig +import com.android.systemui.touchpad.tutorial.ui.gesture.EasterEggGestureMonitor import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.FINISHED import com.android.systemui.touchpad.tutorial.ui.gesture.GestureState.IN_PROGRESS @@ -44,7 +49,7 @@ interface GestureMonitorProvider { @Composable fun rememberGestureMonitor( resources: Resources, - gestureStateChangedCallback: (GestureState) -> Unit + gestureStateChangedCallback: (GestureState) -> Unit, ): TouchpadGestureMonitor } @@ -57,7 +62,7 @@ class DistanceBasedGestureMonitorProvider( @Composable override fun rememberGestureMonitor( resources: Resources, - gestureStateChangedCallback: (GestureState) -> Unit + gestureStateChangedCallback: (GestureState) -> Unit, ): TouchpadGestureMonitor { val distanceThresholdPx = resources.getDimensionPixelSize( @@ -86,17 +91,25 @@ fun GestureTutorialScreen( ) { BackHandler(onBack = onBack) var gestureState by remember { mutableStateOf(NOT_STARTED) } + var easterEggTriggered by remember { mutableStateOf(false) } val gestureMonitor = gestureMonitorProvider.rememberGestureMonitor( resources = LocalContext.current.resources, - gestureStateChangedCallback = { gestureState = it } + gestureStateChangedCallback = { gestureState = it }, ) - val gestureHandler = remember(gestureMonitor) { TouchpadGestureHandler(gestureMonitor) } - TouchpadGesturesHandlingBox(gestureHandler, gestureState) { + val easterEggMonitor = EasterEggGestureMonitor { easterEggTriggered = true } + val gestureHandler = + remember(gestureMonitor) { TouchpadGestureHandler(gestureMonitor, easterEggMonitor) } + TouchpadGesturesHandlingBox( + gestureHandler, + gestureState, + easterEggTriggered, + resetEasterEggFlag = { easterEggTriggered = false }, + ) { ActionTutorialContent( gestureState.toTutorialActionState(), onDoneButtonClicked, - screenConfig + screenConfig, ) } } @@ -105,9 +118,22 @@ fun GestureTutorialScreen( private fun TouchpadGesturesHandlingBox( gestureHandler: TouchpadGestureHandler, gestureState: GestureState, + easterEggTriggered: Boolean, + resetEasterEggFlag: () -> Unit, modifier: Modifier = Modifier, - content: @Composable BoxScope.() -> Unit + content: @Composable BoxScope.() -> Unit, ) { + val rotationAnimation = remember { Animatable(0f) } + LaunchedEffect(easterEggTriggered) { + if (easterEggTriggered || rotationAnimation.isRunning) { + rotationAnimation.snapTo(0f) + rotationAnimation.animateTo( + targetValue = 360f, + animationSpec = tween(durationMillis = 2000), + ) + resetEasterEggFlag() + } + } Box( modifier = modifier @@ -124,6 +150,7 @@ private fun TouchpadGesturesHandlingBox( } } ) + .graphicsLayer { rotationZ = rotationAnimation.value } ) { content() } diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt new file mode 100644 index 000000000000..7483840d1933 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/EasterEggGestureMonitor.kt @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.touchpad.tutorial.ui.gesture + +import android.view.MotionEvent +import com.android.systemui.touchpad.tutorial.ui.gesture.EasterEggGestureMonitor.Companion.CIRCLES_COUNT_THRESHOLD +import kotlin.math.abs +import kotlin.math.atan2 +import kotlin.math.pow +import kotlin.math.sqrt + +/** + * Monitor recognizing easter egg gesture, that is at least [CIRCLES_COUNT_THRESHOLD] circles + * clockwise within one gesture. It tries to be on the safer side of not triggering gesture if we're + * not sure if full circle was done. + */ +class EasterEggGestureMonitor(private val callback: () -> Unit) { + + private var last: Point = Point(0f, 0f) + private var cumulativeAngle: Float = 0f + private var lastAngle: Float? = null + private var circleCount: Int = 0 + + private class Point(val x: Float, val y: Float) + + private val points = mutableListOf<Point>() + + fun processTouchpadEvent(event: MotionEvent) { + when (event.action) { + MotionEvent.ACTION_DOWN -> { + reset() + last = Point(event.x, event.y) + points.add(Point(event.x, event.y)) + } + MotionEvent.ACTION_MOVE -> { + val current = Point(event.x, event.y) + points.add(current) + + if (distanceBetween(last, current) > MIN_MOTION_EVENT_DISTANCE_PX) { + val currentAngle = calculateAngle(last, current) + if (lastAngle == null) { + // we can't start calculating angle changes before having calculated first + // angle which serves as a reference point + lastAngle = currentAngle + } else { + val deltaAngle = currentAngle - lastAngle!! + + cumulativeAngle += normalizeAngleDelta(deltaAngle) + lastAngle = currentAngle + last = current + + val fullCircleCompleted = cumulativeAngle >= 2 * Math.PI + if (fullCircleCompleted) { + cumulativeAngle = 0f + circleCount += 1 + } + } + } + } + MotionEvent.ACTION_UP -> { + // without checking if gesture is circular we can have gesture doing arches back and + // forth that finally reaches full circle angle + if (circleCount >= CIRCLES_COUNT_THRESHOLD && wasGestureCircular(points)) { + callback() + } + reset() + } + MotionEvent.ACTION_CANCEL -> { + reset() + } + } + } + + private fun reset() { + cumulativeAngle = 0f + lastAngle = null + circleCount = 0 + points.clear() + } + + private fun normalizeAngleDelta(deltaAngle: Float): Float { + // Normalize the deltaAngle to [-PI, PI] range + val normalizedDelta = + if (deltaAngle > Math.PI) { + deltaAngle - (2 * Math.PI).toFloat() + } else if (deltaAngle < -Math.PI) { + deltaAngle + (2 * Math.PI).toFloat() + } else { + deltaAngle + } + return normalizedDelta + } + + private fun wasGestureCircular(points: List<Point>): Boolean { + val center = + Point( + x = points.map { it.x }.average().toFloat(), + y = points.map { it.y }.average().toFloat(), + ) + val radius = points.map { distanceBetween(it, center) }.average().toFloat() + for (point in points) { + val distance = distanceBetween(point, center) + if (abs(distance - radius) > RADIUS_DEVIATION_TOLERANCE * radius) { + return false + } + } + return true + } + + private fun distanceBetween(point: Point, center: Point) = + sqrt((point.x - center.x).toDouble().pow(2.0) + (point.y - center.y).toDouble().pow(2.0)) + + private fun calculateAngle(point1: Point, point2: Point): Float { + return atan2(point2.y - point1.y, point2.x - point1.x) + } + + companion object { + /** + * How much we allow any one point to deviate from average radius. In other words it's a + * modifier of how difficult is to trigger the gesture. The smaller value the harder it is + * to trigger. 0.6f seems quite high but: + * 1. this is just extra check after circles were verified with movement angle + * 2. it's because of how touchpad events work - they're approximating movement, so doing + * smooth circle is ~impossible. Rounded corners square is probably the best thing that + * user can do + */ + private const val RADIUS_DEVIATION_TOLERANCE: Float = 0.7f + private const val CIRCLES_COUNT_THRESHOLD = 3 + + /** + * Min distance required between motion events to have angular difference calculated. This + * value is a tradeoff between: minimizing the noise and delaying circle recognition (high + * value) versus performing calculations very/too often (low value). + */ + private const val MIN_MOTION_EVENT_DISTANCE_PX = 10 + } +} diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt index bf85b0a899ea..88671d41f1cd 100644 --- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt +++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureHandler.kt @@ -25,6 +25,7 @@ import android.view.MotionEvent */ class TouchpadGestureHandler( private val gestureMonitor: TouchpadGestureMonitor, + private val easterEggGestureMonitor: EasterEggGestureMonitor, ) { fun onMotionEvent(event: MotionEvent): Boolean { @@ -36,7 +37,11 @@ class TouchpadGestureHandler( event.actionMasked == MotionEvent.ACTION_DOWN && event.isButtonPressed(MotionEvent.BUTTON_PRIMARY) return if (isFromTouchpad && !buttonClick) { - gestureMonitor.processTouchpadEvent(event) + if (isTwoFingerSwipe(event)) { + easterEggGestureMonitor.processTouchpadEvent(event) + } else { + gestureMonitor.processTouchpadEvent(event) + } true } else { false diff --git a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt index 1d2097d56088..8774a9286022 100644 --- a/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt +++ b/packages/SystemUI/src/com/android/systemui/touchpad/tutorial/ui/gesture/TouchpadGestureMonitor.kt @@ -38,3 +38,7 @@ private fun isNFingerTouchpadSwipe(event: MotionEvent, fingerCount: Int): Boolea return event.classification == MotionEvent.CLASSIFICATION_MULTI_FINGER_SWIPE && event.getAxisValue(MotionEvent.AXIS_GESTURE_SWIPE_FINGER_COUNT) == fingerCount.toFloat() } + +fun isTwoFingerSwipe(event: MotionEvent): Boolean { + return event.classification == MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE +} diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java index e609d5f93626..34ebba844926 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java @@ -127,6 +127,7 @@ import com.android.internal.widget.ILockSettings; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor.BiometricAuthenticated; import com.android.keyguard.logging.KeyguardUpdateMonitorLogger; +import com.android.keyguard.logging.SimLogger; import com.android.settingslib.fuelgauge.BatteryStatus; import com.android.systemui.SysuiTestCase; import com.android.systemui.biometrics.AuthController; @@ -267,6 +268,8 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { @Mock private KeyguardUpdateMonitorLogger mKeyguardUpdateMonitorLogger; @Mock + private SimLogger mSimLogger; + @Mock private SessionTracker mSessionTracker; @Mock private UiEventLogger mUiEventLogger; @@ -2234,6 +2237,36 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { } @Test + public void testOnSimStateChanged_LockedToNotReadyToLocked() { + int validSubId = 10; + int slotId = 0; + + KeyguardUpdateMonitorCallback keyguardUpdateMonitorCallback = spy( + KeyguardUpdateMonitorCallback.class); + mKeyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback); + // Initially locked + mKeyguardUpdateMonitor.handleSimStateChange(validSubId, slotId, + TelephonyManager.SIM_STATE_PIN_REQUIRED); + verify(keyguardUpdateMonitorCallback).onSimStateChanged(validSubId, slotId, + TelephonyManager.SIM_STATE_PIN_REQUIRED); + + reset(keyguardUpdateMonitorCallback); + // Not ready, with invalid sub id + mKeyguardUpdateMonitor.handleSimStateChange(SubscriptionManager.INVALID_SUBSCRIPTION_ID, + slotId, TelephonyManager.SIM_STATE_NOT_READY); + verify(keyguardUpdateMonitorCallback).onSimStateChanged( + SubscriptionManager.INVALID_SUBSCRIPTION_ID, slotId, + TelephonyManager.SIM_STATE_NOT_READY); + + reset(keyguardUpdateMonitorCallback); + // Back to PIN required, which notifies listeners + mKeyguardUpdateMonitor.handleSimStateChange(validSubId, slotId, + TelephonyManager.SIM_STATE_PIN_REQUIRED); + verify(keyguardUpdateMonitorCallback).onSimStateChanged(validSubId, slotId, + TelephonyManager.SIM_STATE_PIN_REQUIRED); + } + + @Test public void onAuthEnrollmentChangesCallbacksAreNotified() { KeyguardUpdateMonitorCallback callback = mock(KeyguardUpdateMonitorCallback.class); ArgumentCaptor<AuthController.Callback> authCallback = ArgumentCaptor.forClass( @@ -2487,7 +2520,7 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase { mStatusBarStateController, mLockPatternUtils, mAuthController, mTelephonyListenerManager, mInteractionJankMonitor, mLatencyTracker, mActiveUnlockConfig, - mKeyguardUpdateMonitorLogger, mUiEventLogger, () -> mSessionTracker, + mKeyguardUpdateMonitorLogger, mSimLogger, mUiEventLogger, () -> mSessionTracker, mTrustManager, mSubscriptionManager, mUserManager, mDreamManager, mDevicePolicyManager, mSensorPrivacyManager, mTelephonyManager, mPackageManager, mFingerprintManager, mBiometricManager, diff --git a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java index ccdaa45513bd..d8d53e006ab6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardListenerTest.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; +import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -31,6 +32,7 @@ import android.app.KeyguardManager; import android.content.ClipData; import android.content.ClipDescription; import android.content.ClipboardManager; +import android.os.Build; import android.os.PersistableBundle; import android.os.UserHandle; import android.platform.test.annotations.DisableFlags; @@ -71,6 +73,8 @@ public class ClipboardListenerTest extends SysuiTestCase { private ClipboardToast mClipboardToast; @Mock private UiEventLogger mUiEventLogger; + @Mock + private ClipboardOverlaySuppressionController mClipboardOverlaySuppressionController; private ClipData mSampleClipData; private String mSampleSource = "Example source"; @@ -113,7 +117,8 @@ public class ClipboardListenerTest extends SysuiTestCase { return null; }, mKeyguardManager, - mUiEventLogger); + mUiEventLogger, + mClipboardOverlaySuppressionController); } @@ -155,6 +160,7 @@ public class ClipboardListenerTest extends SysuiTestCase { } @Test + @DisableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION) public void test_shouldSuppressOverlay() { // Regardless of the package or emulator, nothing should be suppressed without the flag assertFalse(ClipboardListener.shouldSuppressOverlay(mSampleClipData, mSampleSource, @@ -236,6 +242,64 @@ public class ClipboardListenerTest extends SysuiTestCase { } @Test + @EnableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION) + public void test_onPrimaryClipChanged_notSuppressOverlay() { + when(mClipboardOverlaySuppressionController.shouldSuppressOverlay(any(), any(), + anyBoolean())).thenReturn(false); + + mClipboardListener.start(); + mClipboardListener.onPrimaryClipChanged(); + + verify(mClipboardOverlaySuppressionController).shouldSuppressOverlay(mSampleClipData, + mSampleSource, Build.IS_EMULATOR); + verify(mUiEventLogger, times(1)).log( + ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED, 0, mSampleSource); + verify(mOverlayController).setClipData(mSampleClipData, mSampleSource); + } + + @Test + @EnableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION) + public void test_onPrimaryClipChanged_suppressOverlay() { + when(mClipboardOverlaySuppressionController.shouldSuppressOverlay(any(), any(), + anyBoolean())).thenReturn(true); + + mClipboardListener.start(); + mClipboardListener.onPrimaryClipChanged(); + + verify(mClipboardOverlaySuppressionController).shouldSuppressOverlay(mSampleClipData, + mSampleSource, Build.IS_EMULATOR); + verifyNoMoreInteractions(mOverlayControllerProvider); + } + + @Test + @DisableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION) + public void test_onPrimaryClipChanged_legacyBehavior_notSuppressOverlay() { + mClipboardListener.start(); + mClipboardListener.onPrimaryClipChanged(); + + verify(mUiEventLogger, times(1)).log( + ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ENTERED, 0, mSampleSource); + verify(mOverlayController).setClipData(mSampleClipData, mSampleSource); + } + + @Test + @DisableFlags(Flags.FLAG_OVERRIDE_SUPPRESS_OVERLAY_CONDITION) + public void test_onPrimaryClipChanged_legacyBehavior_suppressOverlay() { + ClipDescription desc = new ClipDescription("Test", new String[]{"text/plain"}); + PersistableBundle bundle = new PersistableBundle(); + bundle.putBoolean(ClipboardListener.EXTRA_SUPPRESS_OVERLAY, true); + desc.setExtras(bundle); + ClipData suppressableClipData = new ClipData(desc, new ClipData.Item("Test Item")); + when(mClipboardManager.getPrimaryClip()).thenReturn(suppressableClipData); + when(mClipboardManager.getPrimaryClipSource()).thenReturn(ClipboardListener.SHELL_PACKAGE); + + mClipboardListener.start(); + mClipboardListener.onPrimaryClipChanged(); + + verifyNoMoreInteractions(mOverlayControllerProvider); + } + + @Test public void test_nullClipData_showsNothing() { when(mClipboardManager.getPrimaryClip()).thenReturn(null); diff --git a/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt new file mode 100644 index 000000000000..86788d35a670 --- /dev/null +++ b/packages/SystemUI/tests/src/com/android/systemui/clipboardoverlay/ClipboardOverlaySuppressionControllerImplTest.kt @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.systemui.clipboardoverlay + +import android.content.ClipData +import android.content.ClipDescription +import android.os.PersistableBundle +import androidx.test.filters.SmallTest +import androidx.test.runner.AndroidJUnit4 +import com.android.systemui.SysuiTestCase +import org.junit.Assert +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@SmallTest +@RunWith(AndroidJUnit4::class) +class ClipboardOverlaySuppressionControllerImplTest : SysuiTestCase() { + private lateinit var mSampleClipData: ClipData + private lateinit var mSuppressableClipData: ClipData + private lateinit var mClipboardOverlaySuppressionControllerImpl: + ClipboardOverlaySuppressionControllerImpl + + @Before + fun setup() { + mSampleClipData = ClipData("Test", arrayOf("text/plain"), ClipData.Item("Test Item")) + + val desc = ClipDescription("Test", arrayOf("text/plain")) + val bundle = PersistableBundle() + bundle.putBoolean(ClipboardOverlaySuppressionControllerImpl.EXTRA_SUPPRESS_OVERLAY, true) + desc.extras = bundle + mSuppressableClipData = ClipData(desc, ClipData.Item("Test Item")) + + mClipboardOverlaySuppressionControllerImpl = ClipboardOverlaySuppressionControllerImpl() + } + + @Test + fun shouldSuppressOverlay_notEmulatorOrShellPackage_returnFalse() { + Assert.assertFalse( + mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay( + mSuppressableClipData, + EXAMPLE_PACKAGE, + false, + ) + ) + } + + @Test + fun shouldSuppressOverlay_nullClipData_returnFalse() { + Assert.assertFalse( + mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay( + null, + ClipboardOverlaySuppressionControllerImpl.SHELL_PACKAGE, + true, + ) + ) + } + + @Test + fun shouldSuppressOverlay_noSuppressOverlayExtra_returnFalse() { + // Regardless of the package or emulator, nothing should be suppressed without the flag. + Assert.assertFalse( + mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay( + mSampleClipData, + EXAMPLE_PACKAGE, + true, + ) + ) + Assert.assertFalse( + mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay( + mSampleClipData, + ClipboardOverlaySuppressionControllerImpl.SHELL_PACKAGE, + false, + ) + ) + } + + @Test + fun shouldSuppressOverlay_hasSuppressOverlayExtra_returnTrue() { + // Clip data with the suppression extra is only honored in the emulator or with the shell + // package. + Assert.assertTrue( + mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay( + mSuppressableClipData, + EXAMPLE_PACKAGE, + true, + ) + ) + Assert.assertTrue( + mClipboardOverlaySuppressionControllerImpl.shouldSuppressOverlay( + mSuppressableClipData, + ClipboardOverlaySuppressionControllerImpl.SHELL_PACKAGE, + false, + ) + ) + } + + companion object { + const val EXAMPLE_PACKAGE = "com.example" + } +} diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt index a2959811cd0a..15705fbfec33 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/screenshot/TakeScreenshotExecutorTest.kt @@ -3,6 +3,8 @@ package com.android.systemui.screenshot import android.content.ComponentName import android.graphics.Bitmap import android.net.Uri +import android.platform.test.annotations.DisableFlags +import android.platform.test.annotations.EnableFlags import android.view.Display import android.view.Display.TYPE_EXTERNAL import android.view.Display.TYPE_INTERNAL @@ -15,6 +17,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.logging.testing.UiEventLoggerFake import com.android.internal.util.ScreenshotRequest +import com.android.systemui.Flags import com.android.systemui.SysuiTestCase import com.android.systemui.display.data.repository.FakeDisplayRepository import com.android.systemui.display.data.repository.display @@ -75,6 +78,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_severalDisplays_callsControllerForEachOne() = testScope.runTest { val internalDisplay = display(TYPE_INTERNAL, id = 0) @@ -106,6 +110,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_providedImageType_callsOnlyDefaultDisplayController() = testScope.runTest { val internalDisplay = display(TYPE_INTERNAL, id = 0) @@ -115,7 +120,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { screenshotExecutor.executeScreenshots( createScreenshotRequest(TAKE_SCREENSHOT_PROVIDED_IMAGE), onSaved, - callback + callback, ) verify(controllerFactory).create(eq(internalDisplay)) @@ -137,6 +142,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_onlyVirtualDisplays_noInteractionsWithControllers() = testScope.runTest { setDisplays(display(TYPE_VIRTUAL, id = 0), display(TYPE_VIRTUAL, id = 1)) @@ -149,6 +155,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_allowedTypes_allCaptured() = testScope.runTest { whenever(controllerFactory.create(any())).thenReturn(controller) @@ -157,7 +164,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1), display(TYPE_OVERLAY, id = 2), - display(TYPE_WIFI, id = 3) + display(TYPE_WIFI, id = 3), ) val onSaved = { _: Uri? -> } screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback) @@ -168,6 +175,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_reportsOnFinishedOnlyWhenBothFinished() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) @@ -193,6 +201,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_oneFinishesOtherFails_reportFailsOnlyAtTheEnd() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) @@ -220,6 +229,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_allDisplaysFail_reportsFail() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) @@ -319,6 +329,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_errorFromProcessor_logsScreenshotRequested() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) @@ -336,6 +347,7 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) fun executeScreenshots_errorFromProcessor_logsUiError() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) @@ -379,7 +391,8 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test - fun executeScreenshots_errorFromScreenshotController_reportsRequested() = + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) + fun executeScreenshots_errorFromScreenshotController_multidisplay_reportsRequested() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) val onSaved = { _: Uri? -> } @@ -399,7 +412,27 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test - fun executeScreenshots_errorFromScreenshotController_reportsError() = + @EnableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) + fun executeScreenshots_errorFromScreenshotController_reportsRequested() = + testScope.runTest { + setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) + val onSaved = { _: Uri? -> } + whenever(controller.handleScreenshot(any(), any(), any())) + .thenThrow(IllegalStateException::class.java) + + screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback) + + val screenshotRequested = + eventLogger.logs.filter { + it.eventId == ScreenshotEvent.SCREENSHOT_REQUESTED_KEY_OTHER.id + } + assertThat(screenshotRequested).hasSize(1) + screenshotExecutor.onDestroy() + } + + @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) + fun executeScreenshots_errorFromScreenshotController_multidisplay_reportsError() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) val onSaved = { _: Uri? -> } @@ -419,7 +452,27 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test - fun executeScreenshots_errorFromScreenshotController_showsErrorNotification() = + @EnableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) + fun executeScreenshots_errorFromScreenshotController_reportsError() = + testScope.runTest { + setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) + val onSaved = { _: Uri? -> } + whenever(controller.handleScreenshot(any(), any(), any())) + .thenThrow(IllegalStateException::class.java) + + screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback) + + val screenshotRequested = + eventLogger.logs.filter { + it.eventId == ScreenshotEvent.SCREENSHOT_CAPTURE_FAILED.id + } + assertThat(screenshotRequested).hasSize(1) + screenshotExecutor.onDestroy() + } + + @Test + @DisableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) + fun executeScreenshots_errorFromScreenshotController_multidisplay_showsErrorNotification() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) val onSaved = { _: Uri? -> } @@ -436,6 +489,21 @@ class TakeScreenshotExecutorTest : SysuiTestCase() { } @Test + @EnableFlags(Flags.FLAG_SCREENSHOT_MULTIDISPLAY_FOCUS_CHANGE) + fun executeScreenshots_errorFromScreenshotController_showsErrorNotification() = + testScope.runTest { + setDisplays(display(TYPE_INTERNAL, id = 0), display(TYPE_EXTERNAL, id = 1)) + val onSaved = { _: Uri? -> } + whenever(controller.handleScreenshot(any(), any(), any())) + .thenThrow(IllegalStateException::class.java) + + screenshotExecutor.executeScreenshots(createScreenshotRequest(), onSaved, callback) + + verify(notificationsController0).notifyScreenshotError(any()) + screenshotExecutor.onDestroy() + } + + @Test fun executeScreenshots_finisherCalledWithNullUri_succeeds() = testScope.runTest { setDisplays(display(TYPE_INTERNAL, id = 0)) diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt index 6254fb128859..ef03fab95778 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/shared/system/QuickStepContractTest.kt @@ -21,7 +21,7 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_COMMUNAL_HUB_SHOWING -import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE +import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED import com.google.common.truth.Truth.assertThat import kotlin.test.Test import org.junit.runner.RunWith @@ -41,9 +41,9 @@ class QuickStepContractTest : SysuiTestCase() { } @Test - fun isBackGestureDisabled_hubAndShadeShowing() { + fun isBackGestureDisabled_hubAndQSExpanded() { val sysuiStateFlags = - SYSUI_STATE_COMMUNAL_HUB_SHOWING and SYSUI_STATE_NOTIFICATION_PANEL_VISIBLE + SYSUI_STATE_COMMUNAL_HUB_SHOWING and SYSUI_STATE_QUICK_SETTINGS_EXPANDED // Gestures are enabled because the shade shows over the hub. assertThat( diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java index bb9f12b4de31..8a3e5510b561 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java @@ -88,6 +88,7 @@ import com.android.systemui.statusbar.SysuiStatusBarStateController; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManager; import com.android.systemui.statusbar.notification.collection.render.GroupMembershipManager; +import com.android.systemui.statusbar.notification.emptyshade.shared.ModesEmptyShadeFix; import com.android.systemui.statusbar.notification.emptyshade.ui.view.EmptyShadeView; import com.android.systemui.statusbar.notification.footer.shared.FooterViewRefactor; import com.android.systemui.statusbar.notification.footer.ui.view.FooterView; @@ -383,6 +384,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { } @Test + @DisableFlags(ModesEmptyShadeFix.FLAG_NAME) public void updateEmptyView_dndSuppressing() { when(mEmptyShadeView.willBeGone()).thenReturn(true); @@ -394,6 +396,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { } @Test + @DisableFlags(ModesEmptyShadeFix.FLAG_NAME) public void updateEmptyView_dndNotSuppressing() { mStackScroller.setEmptyShadeView(mEmptyShadeView); when(mEmptyShadeView.willBeGone()).thenReturn(true); @@ -406,6 +409,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { } @Test + @DisableFlags(ModesEmptyShadeFix.FLAG_NAME) public void updateEmptyView_noNotificationsToDndSuppressing() { mStackScroller.setEmptyShadeView(mEmptyShadeView); when(mEmptyShadeView.willBeGone()).thenReturn(true); @@ -717,7 +721,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { } @Test - @DisableFlags(FooterViewRefactor.FLAG_NAME) + @DisableFlags({FooterViewRefactor.FLAG_NAME, ModesEmptyShadeFix.FLAG_NAME}) public void testReInflatesFooterViews() { when(mEmptyShadeView.getTextResource()).thenReturn(R.string.empty_shade_text); clearInvocations(mStackScroller); @@ -728,6 +732,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { @Test @EnableFlags(FooterViewRefactor.FLAG_NAME) + @DisableFlags(ModesEmptyShadeFix.FLAG_NAME) public void testReInflatesEmptyShadeView() { when(mEmptyShadeView.getTextResource()).thenReturn(R.string.empty_shade_text); clearInvocations(mStackScroller); @@ -1189,7 +1194,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { } @Test - @DisableFlags(FooterViewRefactor.FLAG_NAME) + @DisableFlags({FooterViewRefactor.FLAG_NAME, ModesEmptyShadeFix.FLAG_NAME}) public void hasFilteredOutSeenNotifs_updateEmptyShadeView() { mStackScroller.setHasFilteredOutSeenNotifications(true); mStackScroller.updateEmptyShadeView(true, false); diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt index 450f08f1fe3f..11f0c19ffa67 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/util/KeyguardTransitionRepositorySpySubject.kt @@ -21,17 +21,20 @@ import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepositor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionInfo import com.android.systemui.keyguard.shared.model.TransitionModeOnCanceled -import com.android.systemui.util.mockito.any +import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.util.mockito.withArgCaptor import com.google.common.truth.FailureMetadata import com.google.common.truth.Subject import com.google.common.truth.Truth import com.google.common.truth.Truth.assertAbout +import com.google.common.truth.Truth.assertThat import junit.framework.Assert.assertEquals import org.junit.Assert.fail import org.mockito.Mockito import org.mockito.Mockito.never import org.mockito.Mockito.verify +import org.mockito.kotlin.any +import org.mockito.kotlin.argumentCaptor /** [Subject] used to make assertions about a [Mockito.spy] KeyguardTransitionRepository. */ class KeyguardTransitionRepositorySpySubject @@ -89,6 +92,20 @@ private constructor( } } + /** + * Asserts that we started a transition to the given state, optionally verifying additional + * params. + */ + suspend fun updatedTransition(value: Float, state: TransitionState) { + val valueCaptor = argumentCaptor<Float>() + val stateCaptor = argumentCaptor<TransitionState>() + + verify(repository).updateTransition(any(), valueCaptor.capture(), stateCaptor.capture()) + + assertThat(value).isEqualTo(valueCaptor.firstValue) + assertThat(state).isEqualTo(stateCaptor.firstValue) + } + /** Verifies that [KeyguardTransitionRepository.startTransition] was never called. */ suspend fun noTransitionsStarted() { verify(repository, never()).startTransition(any()) diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt new file mode 100644 index 000000000000..e4c793dae950 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRule.kt @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package com.android.systemui.util + +import android.testing.UiThreadTest +import org.junit.Assert.fail +import org.junit.rules.MethodRule +import org.junit.runners.model.FrameworkMethod +import org.junit.runners.model.Statement + +/** + * A Test rule which prevents us from using the UiThreadTest annotation. See + * go/android_junit4_uithreadtest (b/352170965) + */ +public class NoUiThreadTestRule : MethodRule { + override fun apply(base: Statement, method: FrameworkMethod, target: Any): Statement? { + if (hasUiThreadAnnotation(method, target)) { + fail("UiThreadTest doesn't actually run on the UiThread") + } + return base + } + + private fun hasUiThreadAnnotation(method: FrameworkMethod, target: Any): Boolean { + if (method.getAnnotation(UiThreadTest::class.java) != null) { + return true + } else { + return target.javaClass.getAnnotation(UiThreadTest::class.java) != null + } + } +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt new file mode 100644 index 000000000000..70dd10384db6 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/NoUiThreadTestRuleTest.kt @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package com.android.systemui.util + +import android.testing.UiThreadTest +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.systemui.SysuiTestCase +import java.lang.AssertionError +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.model.FrameworkMethod +import org.junit.runners.model.Statement + +/** + * Test that NoUiThreadTestRule asserts when it finds a framework method with a UiThreadTest + * annotation. + */ +@RunWith(AndroidJUnit4::class) +@SmallTest +public class NoUiThreadTestRuleTest : SysuiTestCase() { + + class TestStatement : Statement() { + override fun evaluate() {} + } + + inner class TestInner { + @Test @UiThreadTest fun simpleUiTest() {} + + @Test fun simpleTest() {} + } + + /** + * Test that NoUiThreadTestRule throws an asserts false if a test is annotated + * with @UiThreadTest + */ + @Test(expected = AssertionError::class) + fun testNoUiThreadFail() { + val method = TestInner::class.java.getDeclaredMethod("simpleUiTest") + val frameworkMethod = FrameworkMethod(method) + val noUiThreadTestRule = NoUiThreadTestRule() + val testStatement = TestStatement() + // target needs to be non-null + val obj = Object() + noUiThreadTestRule.apply(testStatement, frameworkMethod, obj) + } + + /** + * Test that NoUiThreadTestRule throws an asserts false if a test is annotated + * with @UiThreadTest + */ + fun testNoUiThreadOK() { + val method = TestInner::class.java.getDeclaredMethod("simpleUiTest") + val frameworkMethod = FrameworkMethod(method) + val noUiThreadTestRule = NoUiThreadTestRule() + val testStatement = TestStatement() + + // because target needs to be non-null + val obj = Object() + val newStatement = noUiThreadTestRule.apply(testStatement, frameworkMethod, obj) + Assert.assertEquals(newStatement, testStatement) + } +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java new file mode 100644 index 000000000000..f81b7de86d00 --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThread.java @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.util; + +import android.os.Looper; +import android.util.Log; + +import androidx.test.platform.app.InstrumentationRegistry; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.FutureTask; + +/** + * A class to launch runnables on the UI thread explicitly. + */ +public class UiThread { + private static final String TAG = "UiThread"; + + /** + * Run a runnable on the UI thread using instrumentation.runOnMainSync. + * + * @param runnable code to run on the UI thread. + * @throws Throwable if the code threw an exception, so it can be reported + * to the test. + */ + public static void runOnUiThread(final Runnable runnable) throws Throwable { + if (Looper.myLooper() == Looper.getMainLooper()) { + Log.w( + TAG, + "UiThread.runOnUiThread() should not be called from the " + + "main application thread"); + runnable.run(); + } else { + FutureTask<Void> task = new FutureTask<>(runnable, null); + InstrumentationRegistry.getInstrumentation().runOnMainSync(task); + try { + task.get(); + } catch (ExecutionException e) { + // Expose the original exception + throw e.getCause(); + } + } + } +} diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java new file mode 100644 index 000000000000..abf2e8d04d7e --- /dev/null +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/util/UiThreadRunTest.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.util; + +import android.os.Looper; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.filters.SmallTest; + +import com.android.systemui.SysuiTestCase; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + + +/** + * Test that UiThread.runOnUiThread() actually runs on the UI Thread. + */ +@RunWith(AndroidJUnit4.class) +@SmallTest +public class UiThreadRunTest extends SysuiTestCase { + + @Test + public void testUiThread() throws Throwable { + UiThread.runOnUiThread(() -> { + Assert.assertEquals(Looper.getMainLooper().getThread(), Thread.currentThread()); + }); + } +} diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp index 6b1197ad4c18..11b66fc3f1e5 100644 --- a/ravenwood/Android.bp +++ b/ravenwood/Android.bp @@ -12,15 +12,6 @@ package { } filegroup { - name: "ravenwood-annotations", - srcs: [ - "annotations-src/**/*.java", - ], - path: "annotations-src", - visibility: ["//visibility:public"], -} - -filegroup { name: "ravenwood-services-policies", srcs: [ "texts/ravenwood-services-policies.txt", @@ -52,14 +43,6 @@ filegroup { visibility: ["//visibility:public"], } -java_library { - name: "ravenwood-annotations-lib", - srcs: [":ravenwood-annotations"], - sdk_version: "core_current", - host_supported: true, - visibility: ["//visibility:public"], -} - // This and the next module contain the same classes with different implementations. // "ravenwood-runtime-common-device" will be statically linked in device side tests. // "ravenwood-runtime-common-ravenwood" will only exist in ravenwood-runtime, which will take diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java deleted file mode 100644 index 7a3142b041d1..000000000000 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodClassLoadHook.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.ravenwood.annotation; - -import static java.lang.annotation.ElementType.TYPE; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * Add this with a fully-specified method name (e.g. {@code "com.package.Class.methodName"}) - * of a callback to get a callback at the class load time. - * - * The method must be {@code public static} with a single argument that takes {@link Class}. - * - * Typically, this is used with {@link #LIBANDROID_LOADING_HOOK}, which will load the necessary - * native libraries. - * - * @hide - */ -@Target({TYPE}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodClassLoadHook { - String value(); - - /** - * Class load hook that loads <code>libandroid_runtime</code>. - */ - public static String LIBANDROID_LOADING_HOOK - = "com.android.platform.test.ravenwood.runtimehelper.ClassLoadHook.onClassLoaded"; -} diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java deleted file mode 100644 index f02f06c056bd..000000000000 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeep.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.ravenwood.annotation; - -import static java.lang.annotation.ElementType.CONSTRUCTOR; -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * - * @hide - */ -@Target({FIELD, METHOD, CONSTRUCTOR}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodKeep { -} diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java deleted file mode 100644 index d2c77c1b8566..000000000000 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodKeepWholeClass.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.ravenwood.annotation; - -import static java.lang.annotation.ElementType.CONSTRUCTOR; -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.TYPE; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * TODO: Create "whole-class-throw"? - * - * @hide - */ -@Target({TYPE, FIELD, METHOD, CONSTRUCTOR}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodKeepWholeClass { -} diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java deleted file mode 100644 index b69c63748d81..000000000000 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodRemove.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.ravenwood.annotation; - -import static java.lang.annotation.ElementType.CONSTRUCTOR; -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.TYPE; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * - * @hide - */ -@Target({TYPE, FIELD, METHOD, CONSTRUCTOR}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodRemove { - /** - * One or more classes that aren't yet supported by Ravenwood, which is why this method throws. - */ - Class<?>[] blockedBy() default {}; - - /** - * General free-form description of why this method throws. - */ - String reason() default ""; - - /** - * Tracking bug number, if any. - */ - long bug() default 0; -} diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java deleted file mode 100644 index 57cdfd2240d0..000000000000 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodReplace.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.ravenwood.annotation; - -import static java.lang.annotation.ElementType.METHOD; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * - * @hide - */ -@Target({METHOD}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodReplace { - /** - * One or more classes that aren't yet supported by Ravenwood, which is why this method is - * being replaced. - */ - Class<?>[] blockedBy() default {}; - - /** - * General free-form description of why this method is being replaced. - */ - String reason() default ""; - - /** - * Tracking bug number, if any. - */ - long bug() default 0; -} diff --git a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java b/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java deleted file mode 100644 index 19e6af1c478d..000000000000 --- a/ravenwood/annotations-src/android/ravenwood/annotation/RavenwoodThrow.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package android.ravenwood.annotation; - -import static java.lang.annotation.ElementType.CONSTRUCTOR; -import static java.lang.annotation.ElementType.METHOD; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * THIS ANNOTATION IS EXPERIMENTAL. REACH OUT TO g/ravenwood BEFORE USING IT, OR YOU HAVE ANY - * QUESTIONS ABOUT IT. - * - * TODO: Javadoc - * TODO: Create "whole-class-throw"? - * - * @hide - */ -@Target({METHOD, CONSTRUCTOR}) -@Retention(RetentionPolicy.CLASS) -public @interface RavenwoodThrow { - /** - * One or more classes that aren't yet supported by Ravenwood, which is why this method throws. - */ - Class<?>[] blockedBy() default {}; - - /** - * General free-form description of why this method throws. - */ - String reason() default ""; - - /** - * Tracking bug number, if any. - */ - long bug() default 0; -} diff --git a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java index b6c8fc7b80c7..c87d516d2ab4 100644 --- a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java +++ b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionManagerServiceImpl.java @@ -53,6 +53,7 @@ import android.content.Context; import android.content.Intent; import android.os.Binder; import android.os.CancellationSignal; +import android.os.IBinder; import android.os.ICancellationSignal; import android.os.OutcomeReceiver; import android.os.ParcelableException; @@ -160,7 +161,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { callingUid, callingPid, localCancelTransport, - safeExecuteAppFunctionCallback); + safeExecuteAppFunctionCallback, + executeAppFunctionCallback.asBinder()); } catch (Exception e) { safeExecuteAppFunctionCallback.onResult( mapExceptionToExecuteAppFunctionResponse(e)); @@ -171,11 +173,12 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { @WorkerThread private void executeAppFunctionInternal( - ExecuteAppFunctionAidlRequest requestInternal, + @NonNull ExecuteAppFunctionAidlRequest requestInternal, int callingUid, int callingPid, - ICancellationSignal localCancelTransport, - SafeOneTimeExecuteAppFunctionCallback safeExecuteAppFunctionCallback) { + @NonNull ICancellationSignal localCancelTransport, + @NonNull SafeOneTimeExecuteAppFunctionCallback safeExecuteAppFunctionCallback, + @NonNull IBinder callerBinder) { UserHandle targetUser = requestInternal.getUserHandle(); // TODO(b/354956319): Add and honor the new enterprise policies. if (mCallerValidator.isUserOrganizationManaged(targetUser)) { @@ -250,7 +253,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { localCancelTransport, safeExecuteAppFunctionCallback, /* bindFlags= */ Context.BIND_AUTO_CREATE - | Context.BIND_FOREGROUND_SERVICE); + | Context.BIND_FOREGROUND_SERVICE, + callerBinder); }) .exceptionally( ex -> { @@ -326,8 +330,9 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { /** * Sets the enabled status of a specified app function. - * <p> - * Required to hold a lock to call this function to avoid document changes during the process. + * + * <p>Required to hold a lock to call this function to avoid document changes during the + * process. */ @WorkerThread @GuardedBy("mLock") @@ -370,8 +375,7 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { newMetadata.setEnabled(false); } default -> - throw new IllegalArgumentException( - "Value of EnabledState is unsupported."); + throw new IllegalArgumentException("Value of EnabledState is unsupported."); } AppSearchBatchResult<String, Void> putDocumentBatchResult = runtimeMetadataSearchSession @@ -381,8 +385,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { .build()) .get(); if (!putDocumentBatchResult.isSuccess()) { - throw new IllegalStateException("Failed writing updated doc to AppSearch due to " - + putDocumentBatchResult); + throw new IllegalStateException( + "Failed writing updated doc to AppSearch due to " + putDocumentBatchResult); } } } @@ -414,7 +418,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { @NonNull UserHandle targetUser, @NonNull ICancellationSignal cancellationSignalTransport, @NonNull SafeOneTimeExecuteAppFunctionCallback safeExecuteAppFunctionCallback, - int bindFlags) { + int bindFlags, + @NonNull IBinder callerBinder) { CancellationSignal cancellationSignal = CancellationSignal.fromTransport(cancellationSignalTransport); ICancellationCallback cancellationCallback = @@ -430,6 +435,8 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { serviceIntent, bindFlags, targetUser, + mServiceConfig.getExecuteAppFunctionCancellationTimeoutMillis(), + cancellationSignal, new RunServiceCallCallback<IAppFunctionService>() { @Override public void onServiceConnected( @@ -470,7 +477,16 @@ public class AppFunctionManagerServiceImpl extends IAppFunctionManager.Stub { "Failed to connect to AppFunctionService", /* extras= */ null)); } - }); + + @Override + public void onCancelled() { + // Do not forward the result back to the caller once it has been + // canceled. The caller does not need a notification and should + // proceed after initiating a cancellation. + safeExecuteAppFunctionCallback.disable(); + } + }, + callerBinder); if (!bindServiceResult) { Slog.e(TAG, "Failed to bind to the AppFunctionService"); diff --git a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java index cd5c3831bc0d..d0e858e71de4 100644 --- a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java +++ b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCaller.java @@ -17,41 +17,56 @@ package com.android.server.appfunctions; import android.annotation.NonNull; import android.content.Intent; +import android.os.CancellationSignal; +import android.os.IBinder; import android.os.UserHandle; /** - * Defines a contract for establishing temporary connections to services and executing operations - * within a specified timeout. Implementations of this interface provide mechanisms to ensure that - * services are properly unbound after the operation completes or a timeout occurs. + * Defines a contract for establishing temporary connections to services and executing operations. + * Implementations of this interface provide mechanisms to ensure that services are properly unbound + * after the operation completes or a cancellation timeout occurs. * * @param <T> Class of wrapped service. */ public interface RemoteServiceCaller<T> { /** - * Initiates service binding and executes a provided method when the service connects. Unbinds - * the service after execution or upon timeout. Returns the result of the bindService API. + * Initiates service binding and executes a provided method when the service connects. + * + * <p>Unbinds the service after execution or upon cancellation timeout or calling process death. + * Returns the result of the bindService API. * * <p>When the service connection was made successfully, it's the caller responsibility to * report the usage is completed and can be unbound by calling {@link * ServiceUsageCompleteListener#onCompleted()}. * - * <p>This method includes a timeout mechanism to prevent the system from being stuck in a state - * where a service is bound indefinitely (for example, if the binder method never returns). This - * helps ensure that the calling app does not remain alive unnecessarily. + * <p>This method includes a timeout mechanism for cancellation to prevent the system from being + * stuck in a state where a service is bound indefinitely. If the app to be bound does not + * return the result within `cancellationTimeoutMillis` after the cancellation signal is sent, + * this method will unbind the service connection. + * + * <p>This method will also unbind the service after the calling process dies (because a + * cancellation signal cannot be sent and system server can become bound forever if otherwise). * * @param intent An Intent object that describes the service that should be bound. * @param bindFlags Flags used to control the binding process See {@link * android.content.Context#bindService}. * @param userHandle The UserHandle of the user for which the service should be bound. + * @param cancellationTimeoutMillis The timeout before the service is unbound after a + * cancellation signal is issued. + * @param cancellationSignal The cancellation signal forwarded to the service. * @param callback A callback to be invoked for various events. See {@link * RunServiceCallCallback}. + * @param callerBinder The binder of the caller. */ boolean runServiceCall( @NonNull Intent intent, int bindFlags, @NonNull UserHandle userHandle, - @NonNull RunServiceCallCallback<T> callback); + long cancellationTimeoutMillis, + @NonNull CancellationSignal cancellationSignal, + @NonNull RunServiceCallCallback<T> callback, + @NonNull IBinder callerBinder); /** An interface for clients to signal that they have finished using a bound service. */ interface ServiceUsageCompleteListener { @@ -73,5 +88,8 @@ public interface RemoteServiceCaller<T> { /** Called when the service connection was failed to establish. */ void onFailedToConnect(); + + /** Called when the caller has cancelled this remote service call. */ + void onCancelled(); } } diff --git a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java index ffca8491abcd..15081598c301 100644 --- a/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java +++ b/services/appfunctions/java/com/android/server/appfunctions/RemoteServiceCallerImpl.java @@ -16,15 +16,19 @@ package com.android.server.appfunctions; import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.os.CancellationSignal; import android.os.Handler; import android.os.IBinder; import android.os.Looper; +import android.os.RemoteException; import android.os.UserHandle; import android.util.Log; +import android.util.Slog; import java.util.concurrent.Executor; import java.util.function.Function; @@ -63,9 +67,19 @@ public class RemoteServiceCallerImpl<T> implements RemoteServiceCaller<T> { @NonNull Intent intent, int bindFlags, @NonNull UserHandle userHandle, - @NonNull RunServiceCallCallback<T> callback) { + long cancellationTimeoutMillis, + @NonNull CancellationSignal cancellationSignal, + @NonNull RunServiceCallCallback<T> callback, + @NonNull IBinder callerBinder) { OneOffServiceConnection serviceConnection = - new OneOffServiceConnection(intent, bindFlags, userHandle, callback); + new OneOffServiceConnection( + intent, + bindFlags, + userHandle, + cancellationTimeoutMillis, + cancellationSignal, + callback, + callerBinder); return serviceConnection.bindAndRun(); } @@ -76,23 +90,52 @@ public class RemoteServiceCallerImpl<T> implements RemoteServiceCaller<T> { private final int mFlags; private final UserHandle mUserHandle; private final RunServiceCallCallback<T> mCallback; + private final long mCancellationTimeoutMillis; + private final CancellationSignal mCancellationSignal; + private final Runnable mCancellationTimeoutRunnable; + private final IBinder mCallerBinder; + @Nullable private IBinder.DeathRecipient mDirectServiceVulture; OneOffServiceConnection( @NonNull Intent intent, int flags, @NonNull UserHandle userHandle, - @NonNull RunServiceCallCallback<T> callback) { + long cancellationTimeoutMillis, + @NonNull CancellationSignal cancellationSignal, + @NonNull RunServiceCallCallback<T> callback, + @NonNull IBinder callerBinder) { mIntent = intent; mFlags = flags; mCallback = callback; mUserHandle = userHandle; + mCancellationTimeoutMillis = cancellationTimeoutMillis; + mCancellationSignal = cancellationSignal; + mCancellationTimeoutRunnable = this::safeUnbind; + mCallerBinder = callerBinder; } public boolean bindAndRun() { boolean bindServiceResult = mContext.bindServiceAsUser(mIntent, this, mFlags, mUserHandle); - if (!bindServiceResult) { + if (bindServiceResult) { + mCancellationSignal.setOnCancelListener( + () -> { + mCallback.onCancelled(); + mHandler.postDelayed( + mCancellationTimeoutRunnable, mCancellationTimeoutMillis); + }); + mDirectServiceVulture = + () -> { + Slog.w(TAG, "Caller process onDeath signal received"); + mCancellationSignal.cancel(); + }; + try { + mCallerBinder.linkToDeath(mDirectServiceVulture, /* flags= */ 0); + } catch (RemoteException e) { + Slog.w(TAG, "Failed to link to death on " + mCallerBinder + ": ", e); + } + } else { safeUnbind(); } @@ -126,7 +169,11 @@ public class RemoteServiceCallerImpl<T> implements RemoteServiceCaller<T> { private void safeUnbind() { try { + mHandler.removeCallbacks(mCancellationTimeoutRunnable); mContext.unbindService(this); + if (mDirectServiceVulture != null) { + mCallerBinder.unlinkToDeath(mDirectServiceVulture, 0); + } } catch (Exception ex) { Log.w(TAG, "Failed to unbind", ex); } diff --git a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java index caa4bf0e9d27..8d2d1b2dfd00 100644 --- a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java +++ b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfig.java @@ -21,6 +21,9 @@ public interface ServiceConfig { // TODO(b/357551503): Obtain namespace from DeviceConfig. String NAMESPACE_APP_FUNCTIONS = "appfunctions"; - /** Returns the maximum time to wait for an app function execution to be complete. */ - long getExecuteAppFunctionTimeoutMillis(); + /** + * Returns the timeout for which the system server waits for the app function service to + * successfully cancel the execution of an app function before forcefully unbinding the service. + */ + long getExecuteAppFunctionCancellationTimeoutMillis(); } diff --git a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java index f18789be5ce8..787f52afda4b 100644 --- a/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java +++ b/services/appfunctions/java/com/android/server/appfunctions/ServiceConfigImpl.java @@ -20,15 +20,16 @@ import android.provider.DeviceConfig; /** Implementation of {@link ServiceConfig} */ public class ServiceConfigImpl implements ServiceConfig { - static final String DEVICE_CONFIG_PROPERTY_EXECUTION_TIMEOUT = - "execute_app_function_timeout_millis"; - static final long DEFAULT_EXECUTE_APP_FUNCTION_TIMEOUT_MS = 5000L; + static final String DEVICE_CONFIG_PROPERTY_EXECUTION_CANCELLATION_TIMEOUT = + "execute_app_function_cancellation_timeout_millis"; + static final long DEFAULT_EXECUTE_APP_FUNCTION_CANCELLATION_TIMEOUT_MS = 5000L; + @Override - public long getExecuteAppFunctionTimeoutMillis() { + public long getExecuteAppFunctionCancellationTimeoutMillis() { return DeviceConfig.getLong( NAMESPACE_APP_FUNCTIONS, - DEVICE_CONFIG_PROPERTY_EXECUTION_TIMEOUT, - DEFAULT_EXECUTE_APP_FUNCTION_TIMEOUT_MS); + DEVICE_CONFIG_PROPERTY_EXECUTION_CANCELLATION_TIMEOUT, + DEFAULT_EXECUTE_APP_FUNCTION_CANCELLATION_TIMEOUT_MS); } } diff --git a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java index 71a182225013..dbeca82ade89 100644 --- a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java +++ b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java @@ -16,8 +16,6 @@ package com.android.server.companion.securechannel; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS; - import android.annotation.NonNull; import android.content.Context; import android.os.Build; @@ -498,7 +496,7 @@ public class SecureChannel { private void exchangeAttestation() throws IOException, GeneralSecurityException, BadHandleException, CryptoException { - if (mVerificationResult == RESULT_SUCCESS) { + if (mVerificationResult == 0) { Slog.d(TAG, "Remote attestation was already verified."); return; } @@ -530,11 +528,11 @@ public class SecureChannel { sendMessage(MessageType.AVF_RESULT, verificationResult); byte[] remoteVerificationResult = readMessage(MessageType.AVF_RESULT); - if (ByteBuffer.wrap(remoteVerificationResult).getInt() != RESULT_SUCCESS) { + if (ByteBuffer.wrap(remoteVerificationResult).getInt() != 0) { throw new SecureChannelException("Remote device failed to verify local attestation."); } - if (mVerificationResult != RESULT_SUCCESS) { + if (mVerificationResult != 0) { throw new SecureChannelException("Failed to verify remote attestation."); } @@ -549,7 +547,7 @@ public class SecureChannel { return false; } // Is authenticated - return mPskVerified || mVerificationResult == RESULT_SUCCESS; + return mPskVerified || mVerificationResult == 0; } // First byte indicates message type; 0 = CLIENT INIT, 1 = SERVER INIT diff --git a/services/core/Android.bp b/services/core/Android.bp index c6e599e8edee..c73846350b40 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -60,7 +60,7 @@ genrule { tools: ["protologtool"], cmd: "$(location protologtool) transform-protolog-calls " + "--protolog-class com.android.internal.protolog.ProtoLog " + - "--loggroups-class com.android.internal.protolog.ProtoLogGroup " + + "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " + "--loggroups-jar $(location :protolog-groups) " + "--viewer-config-file-path /etc/core.protolog.pb " + "--legacy-viewer-config-file-path /system/etc/protolog.conf.json.gz " + @@ -79,7 +79,7 @@ genrule { tools: ["protologtool"], cmd: "$(location protologtool) generate-viewer-config " + "--protolog-class com.android.internal.protolog.ProtoLog " + - "--loggroups-class com.android.internal.protolog.ProtoLogGroup " + + "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " + "--loggroups-jar $(location :protolog-groups) " + "--viewer-config-type json " + "--viewer-config $(out) " + @@ -96,7 +96,7 @@ genrule { tools: ["protologtool"], cmd: "$(location protologtool) generate-viewer-config " + "--protolog-class com.android.internal.protolog.ProtoLog " + - "--loggroups-class com.android.internal.protolog.ProtoLogGroup " + + "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " + "--loggroups-jar $(location :protolog-groups) " + "--viewer-config-type proto " + "--viewer-config $(out) " + diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java index 682eb768a23e..9060250d9869 100644 --- a/services/core/java/com/android/server/PackageWatchdog.java +++ b/services/core/java/com/android/server/PackageWatchdog.java @@ -1292,6 +1292,16 @@ public class PackageWatchdog { /** Dump status of every observer in mAllObservers. */ public void dump(@NonNull PrintWriter pw) { + if (Flags.synchronousRebootInRescueParty() && RescueParty.isRecoveryTriggeredReboot()) { + dumpInternal(pw); + } else { + synchronized (mLock) { + dumpInternal(pw); + } + } + } + + private void dumpInternal(@NonNull PrintWriter pw) { IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " "); ipw.println("Package Watchdog status"); ipw.increaseIndent(); diff --git a/services/core/java/com/android/server/RescueParty.java b/services/core/java/com/android/server/RescueParty.java index a6e21fccd294..ada19530abfb 100644 --- a/services/core/java/com/android/server/RescueParty.java +++ b/services/core/java/com/android/server/RescueParty.java @@ -631,7 +631,8 @@ public class RescueParty { // Request the reboot from a separate thread to avoid deadlock on PackageWatchdog // when device shutting down. setRebootProperty(true); - Runnable runnable = () -> { + + if (Flags.synchronousRebootInRescueParty()) { try { PowerManager pm = context.getSystemService(PowerManager.class); if (pm != null) { @@ -640,9 +641,20 @@ public class RescueParty { } catch (Throwable t) { logRescueException(level, failedPackage, t); } - }; - Thread thread = new Thread(runnable); - thread.start(); + } else { + Runnable runnable = () -> { + try { + PowerManager pm = context.getSystemService(PowerManager.class); + if (pm != null) { + pm.reboot(TAG); + } + } catch (Throwable t) { + logRescueException(level, failedPackage, t); + } + }; + Thread thread = new Thread(runnable); + thread.start(); + } } private static void executeFactoryReset(Context context, int level, @@ -655,18 +667,28 @@ public class RescueParty { setFactoryResetProperty(true); long now = System.currentTimeMillis(); setLastFactoryResetTimeMs(now); - Runnable runnable = new Runnable() { - @Override - public void run() { - try { - RecoverySystem.rebootPromptAndWipeUserData(context, TAG + "," + failedPackage); - } catch (Throwable t) { - logRescueException(level, failedPackage, t); - } + + if (Flags.synchronousRebootInRescueParty()) { + try { + RecoverySystem.rebootPromptAndWipeUserData(context, TAG + "," + failedPackage); + } catch (Throwable t) { + logRescueException(level, failedPackage, t); } - }; - Thread thread = new Thread(runnable); - thread.start(); + } else { + Runnable runnable = new Runnable() { + @Override + public void run() { + try { + RecoverySystem.rebootPromptAndWipeUserData(context, + TAG + "," + failedPackage); + } catch (Throwable t) { + logRescueException(level, failedPackage, t); + } + } + }; + Thread thread = new Thread(runnable); + thread.start(); + } } diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index e64a4803b14f..9d27731cecd4 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -2751,7 +2751,8 @@ class StorageManagerService extends IStorageManager.Stub boolean smartIdleMaintEnabled = DeviceConfig.getBoolean( DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT, "smart_idle_maint_enabled", - DEFAULT_SMART_IDLE_MAINT_ENABLED); + DEFAULT_SMART_IDLE_MAINT_ENABLED) + && !SystemProperties.getBoolean("ro.boot.zufs_provisioned", false); if (smartIdleMaintEnabled) { mLifetimePercentThreshold = DeviceConfig.getInt( DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT, diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 3499a3a5edde..0ca3b56486e3 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -5062,6 +5062,8 @@ public class AccountManagerService Log.e(TAG, String.format(tmpl, activityName, pkgName, mAccountType)); return false; } + intent.setComponent(targetActivityInfo.getComponentName()); + bundle.putParcelable(AccountManager.KEY_INTENT, intent); return true; } finally { Binder.restoreCallingIdentity(bid); @@ -5083,14 +5085,15 @@ public class AccountManagerService Bundle simulateBundle = p.readBundle(); p.recycle(); Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT, Intent.class); - if (intent != null && intent.getClass() != Intent.class) { - return false; - } Intent simulateIntent = simulateBundle.getParcelable(AccountManager.KEY_INTENT, Intent.class); if (intent == null) { return (simulateIntent == null); } + if (intent.getClass() != Intent.class || simulateIntent.getClass() != Intent.class) { + return false; + } + if (!intent.filterEquals(simulateIntent)) { return false; } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 35323d6cb391..83bc75e9f66f 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -133,7 +133,7 @@ import static android.provider.Settings.Global.WAIT_FOR_DEBUGGER; import static android.util.FeatureFlagUtils.SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS; import static android.view.Display.INVALID_DISPLAY; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; import static com.android.internal.util.FrameworkStatsLog.UNSAFE_INTENT_EVENT_REPORTED__EVENT_TYPE__NEW_MUTABLE_IMPLICIT_PENDING_INTENT_RETRIEVED; import static com.android.sdksandbox.flags.Flags.sdkSandboxInstrumentationInfo; import static com.android.server.am.ActiveServices.FGS_SAW_RESTRICTIONS; diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index ef82c7477558..4ac42ecd8f50 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -25,6 +25,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED; import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK; +import static android.os.BatteryConsumer.POWER_COMPONENT_BASE; import static android.os.BatteryStats.POWER_DATA_UNAVAILABLE; import static com.android.internal.util.ConcurrentUtils.DIRECT_EXECUTOR; @@ -432,7 +433,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub mPowerStatsStore = new PowerStatsStore(systemDir, mHandler); mPowerAttributor = new MultiStatePowerAttributor(mContext, mPowerStatsStore, mPowerProfile, - mCpuScalingPolicies, mPowerStatsUidResolver); + mCpuScalingPolicies, () -> mStats.getBatteryCapacity(), + mPowerStatsUidResolver); mPowerStatsScheduler = createPowerStatsScheduler(mContext); mBatteryUsageStatsProvider = new BatteryUsageStatsProvider(context, mPowerAttributor, mPowerProfile, mCpuScalingPolicies, @@ -513,6 +515,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub BatteryConsumer.POWER_COMPONENT_CPU, Flags.streamlinedBatteryStats()); + mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_WAKELOCK, + Flags.streamlinedMiscBatteryStats()); + attributor.setPowerComponentSupported( + BatteryConsumer.POWER_COMPONENT_WAKELOCK, + Flags.streamlinedMiscBatteryStats()); + mStats.setPowerStatsCollectorEnabled(BatteryConsumer.POWER_COMPONENT_SCREEN, Flags.streamlinedMiscBatteryStats()); attributor.setPowerComponentSupported( @@ -1224,8 +1232,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub final float totalDeviceConsumedPowerMah = (float) deviceConsumer.getConsumedPower(); - for (@BatteryConsumer.PowerComponentId int componentIndex : + for (@BatteryConsumer.PowerComponentId int powerComponentId : deviceConsumer.getPowerComponentIds()) { + if (powerComponentId == POWER_COMPONENT_BASE) { + continue; + } for (@BatteryConsumer.ProcessState int processState : UID_PROCESS_STATES) { @@ -1237,7 +1248,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub totalDeviceConsumedPowerMah, 0, deviceConsumer, - componentIndex)) { + powerComponentId)) { return StatsManager.PULL_SUCCESS; } } @@ -1253,8 +1264,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub final int uid = uidConsumer.getUid(); final float totalConsumedPowerMah = (float) uidConsumer.getConsumedPower(); - for (@BatteryConsumer.PowerComponentId int componentIndex : + for (@BatteryConsumer.PowerComponentId int powerComponentId : uidConsumer.getPowerComponentIds()) { + if (powerComponentId == POWER_COMPONENT_BASE) { + continue; + } for (@BatteryConsumer.ProcessState int processState : UID_PROCESS_STATES) { @@ -1268,7 +1282,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub totalConsumedPowerMah, timeInProcessStateMs, uidConsumer, - componentIndex)) { + powerComponentId)) { return StatsManager.PULL_SUCCESS; } } diff --git a/services/core/java/com/android/server/biometrics/OWNERS b/services/core/java/com/android/server/biometrics/OWNERS index 4703efbcd7be..13bba9dfa4ce 100644 --- a/services/core/java/com/android/server/biometrics/OWNERS +++ b/services/core/java/com/android/server/biometrics/OWNERS @@ -1,14 +1,12 @@ set noparent graciecheng@google.com -ilyamaty@google.com jbolinger@google.com jeffpu@google.com joshmccloskey@google.com diyab@google.com austindelgado@google.com spdonghao@google.com -wenhuiy@google.com firewall@google.com jasonsfchang@google.com diff --git a/services/core/java/com/android/server/display/DisplayGroup.java b/services/core/java/com/android/server/display/DisplayGroup.java index 2dcd5ccaf557..f73b66c78fce 100644 --- a/services/core/java/com/android/server/display/DisplayGroup.java +++ b/services/core/java/com/android/server/display/DisplayGroup.java @@ -87,4 +87,14 @@ public class DisplayGroup { int getIdLocked(int index) { return mDisplays.get(index).getDisplayIdLocked(); } + + /** Returns the IDs of the {@link LogicalDisplay}s belonging to the DisplayGroup. */ + int[] getIdsLocked() { + final int numDisplays = mDisplays.size(); + final int[] displayIds = new int[numDisplays]; + for (int i = 0; i < numDisplays; i++) { + displayIds[i] = mDisplays.get(i).getDisplayIdLocked(); + } + return displayIds; + } } diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 67e2ca2b312c..4152ec9e26e3 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -45,6 +45,7 @@ import static android.hardware.display.HdrConversionMode.HDR_CONVERSION_UNSUPPOR import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_CRITICAL; import static android.os.Process.FIRST_APPLICATION_UID; import static android.os.Process.ROOT_UID; +import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS; import static android.provider.Settings.Secure.RESOLUTION_MODE_FULL; import static android.provider.Settings.Secure.RESOLUTION_MODE_HIGH; import static android.provider.Settings.Secure.RESOLUTION_MODE_UNKNOWN; @@ -655,12 +656,14 @@ public final class DisplayManagerService extends SystemService { mExtraDisplayLoggingPackageName = DisplayProperties.debug_vri_package().orElse(null); mExtraDisplayEventLogging = !TextUtils.isEmpty(mExtraDisplayLoggingPackageName); - mExternalDisplayStatsService = new ExternalDisplayStatsService(mContext, mHandler); + mExternalDisplayStatsService = new ExternalDisplayStatsService(mContext, mHandler, + this::isExtendedDisplayEnabled); mDisplayNotificationManager = new DisplayNotificationManager(mFlags, mContext, mExternalDisplayStatsService); mExternalDisplayPolicy = new ExternalDisplayPolicy(new ExternalDisplayPolicyInjector()); if (mFlags.isDisplayTopologyEnabled()) { - mDisplayTopologyCoordinator = new DisplayTopologyCoordinator(); + mDisplayTopologyCoordinator = + new DisplayTopologyCoordinator(this::isExtendedDisplayEnabled); } else { mDisplayTopologyCoordinator = null; } @@ -2262,6 +2265,17 @@ public final class DisplayManagerService extends SystemService { updateLogicalDisplayState(display); } + private boolean isExtendedDisplayEnabled() { + try { + return 0 != Settings.Global.getInt( + mContext.getContentResolver(), + DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, 0); + } catch (Throwable e) { + // Some services might not be initialised yet to be able to call getInt + return false; + } + } + @SuppressLint("AndroidFrameworkRequiresPermission") private void handleLogicalDisplayAddedLocked(LogicalDisplay display) { final int displayId = display.getDisplayIdLocked(); @@ -5575,6 +5589,20 @@ public final class DisplayManagerService extends SystemService { } @Override + public int[] getDisplayIdsForGroup(int groupId) { + synchronized (mSyncRoot) { + return mLogicalDisplayMapper.getDisplayIdsForGroupLocked(groupId); + } + } + + @Override + public SparseArray<int[]> getDisplayIdsByGroupsIds() { + synchronized (mSyncRoot) { + return mLogicalDisplayMapper.getDisplayIdsByGroupIdLocked(); + } + } + + @Override public IntArray getDisplayIds() { IntArray displayIds = new IntArray(); synchronized (mSyncRoot) { diff --git a/services/core/java/com/android/server/display/DisplayTopology.java b/services/core/java/com/android/server/display/DisplayTopology.java new file mode 100644 index 000000000000..90038a09850f --- /dev/null +++ b/services/core/java/com/android/server/display/DisplayTopology.java @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.display; + +import android.annotation.Nullable; +import android.util.IndentingPrintWriter; +import android.util.Pair; +import android.util.Slog; + +import com.android.internal.annotations.VisibleForTesting; + +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +/** + * Represents the relative placement of extended displays. + */ +class DisplayTopology { + private static final String TAG = "DisplayTopology"; + + /** + * The topology tree + */ + @Nullable + @VisibleForTesting + TreeNode mRoot; + + /** + * The logical display ID of the primary display that will show certain UI elements. + * This is not necessarily the same as the default display. + */ + @VisibleForTesting + int mPrimaryDisplayId; + + /** + * Add a display to the topology. + * If this is the second display in the topology, it will be placed above the first display. + * Subsequent displays will be places to the left or right of the second display. + * @param displayId The ID of the display + * @param width The width of the display + * @param height The height of the display + */ + void addDisplay(int displayId, double width, double height) { + if (mRoot == null) { + mRoot = new TreeNode(displayId, width, height, /* position= */ null, /* offset= */ 0); + mPrimaryDisplayId = displayId; + Slog.i(TAG, "First display added: " + mRoot); + } else if (mRoot.mChildren.isEmpty()) { + // This is the 2nd display. Align the middles of the top and bottom edges. + double offset = mRoot.mWidth / 2 - width / 2; + TreeNode display = new TreeNode(displayId, width, height, + TreeNode.Position.POSITION_TOP, offset); + mRoot.mChildren.add(display); + Slog.i(TAG, "Second display added: " + display + ", parent ID: " + mRoot.mDisplayId); + } else { + TreeNode rightMostDisplay = findRightMostDisplay(mRoot, mRoot.mWidth).first; + TreeNode newDisplay = new TreeNode(displayId, width, height, + TreeNode.Position.POSITION_RIGHT, /* offset= */ 0); + rightMostDisplay.mChildren.add(newDisplay); + Slog.i(TAG, "Display added: " + newDisplay + ", parent ID: " + + rightMostDisplay.mDisplayId); + } + } + + /** + * Print the object's state and debug information into the given stream. + * @param pw The stream to dump information to. + */ + void dump(PrintWriter pw) { + pw.println("DisplayTopology:"); + pw.println("--------------------"); + IndentingPrintWriter ipw = new IndentingPrintWriter(pw); + ipw.increaseIndent(); + + ipw.println("mPrimaryDisplayId: " + mPrimaryDisplayId); + + ipw.println("Topology tree:"); + if (mRoot != null) { + ipw.increaseIndent(); + mRoot.dump(ipw); + ipw.decreaseIndent(); + } + } + + /** + * @param display The display from which the search should start. + * @param xPos The x position of the right edge of that display. + * @return The display that is the furthest to the right and the x position of the right edge + * of that display + */ + private Pair<TreeNode, Double> findRightMostDisplay(TreeNode display, double xPos) { + Pair<TreeNode, Double> result = new Pair<>(display, xPos); + for (TreeNode child : display.mChildren) { + // The x position of the right edge of the child + double childXPos; + switch (child.mPosition) { + case POSITION_LEFT -> childXPos = xPos - display.mWidth; + case POSITION_TOP, POSITION_BOTTOM -> + childXPos = xPos - display.mWidth + child.mOffset + child.mWidth; + case POSITION_RIGHT -> childXPos = xPos + child.mWidth; + default -> throw new IllegalStateException("Unexpected value: " + child.mPosition); + } + + // Recursive call - find the rightmost display starting from the child + Pair<TreeNode, Double> childResult = findRightMostDisplay(child, childXPos); + // Check if the one found is further right + if (childResult.second > result.second) { + result = new Pair<>(childResult.first, childResult.second); + } + } + return result; + } + + @VisibleForTesting + static class TreeNode { + + /** + * The logical display ID + */ + @VisibleForTesting + final int mDisplayId; + + /** + * The width of the display in density-independent pixels (dp). + */ + @VisibleForTesting + double mWidth; + + /** + * The height of the display in density-independent pixels (dp). + */ + @VisibleForTesting + double mHeight; + + /** + * The position of this display relative to its parent. + */ + @VisibleForTesting + Position mPosition; + + /** + * The distance from the top edge of the parent display to the top edge of this display (in + * case of POSITION_LEFT or POSITION_RIGHT) or from the left edge of the parent display + * to the left edge of this display (in case of POSITION_TOP or POSITION_BOTTOM). The unit + * used is density-independent pixels (dp). + */ + @VisibleForTesting + double mOffset; + + @VisibleForTesting + final List<TreeNode> mChildren = new ArrayList<>(); + + TreeNode(int displayId, double width, double height, Position position, + double offset) { + mDisplayId = displayId; + mWidth = width; + mHeight = height; + mPosition = position; + mOffset = offset; + } + + /** + * Print the object's state and debug information into the given stream. + * @param ipw The stream to dump information to. + */ + void dump(IndentingPrintWriter ipw) { + ipw.println(this); + ipw.increaseIndent(); + for (TreeNode child : mChildren) { + child.dump(ipw); + } + ipw.decreaseIndent(); + } + + @Override + public String toString() { + return "Display {id=" + mDisplayId + ", width=" + mWidth + ", height=" + mHeight + + ", position=" + mPosition + ", offset=" + mOffset + "}"; + } + + @VisibleForTesting + enum Position { + POSITION_LEFT, POSITION_TOP, POSITION_RIGHT, POSITION_BOTTOM + } + } +} diff --git a/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java b/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java index 631f14755b12..cbd224c3d842 100644 --- a/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java +++ b/services/core/java/com/android/server/display/DisplayTopologyCoordinator.java @@ -16,89 +16,91 @@ package com.android.server.display; -import android.annotation.Nullable; -import android.util.IndentingPrintWriter; +import android.util.DisplayMetrics; +import android.view.Display; +import android.view.DisplayInfo; + +import com.android.internal.annotations.GuardedBy; +import com.android.internal.annotations.VisibleForTesting; import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; +import java.util.function.BooleanSupplier; /** - * This class manages the relative placement (topology) of extended displays. It is responsible for - * updating and persisting the topology. + * Manages the relative placement (topology) of extended displays. Responsible for updating and + * persisting the topology. */ class DisplayTopologyCoordinator { + @GuardedBy("mLock") + private final DisplayTopology mTopology; + /** - * The topology tree + * Check if extended displays are enabled. If not, a topology is not needed. */ - @Nullable - private TopologyTreeNode mRoot; + private final BooleanSupplier mIsExtendedDisplayEnabled; + + private final Object mLock = new Object(); + + DisplayTopologyCoordinator(BooleanSupplier isExtendedDisplayEnabled) { + this(new Injector(), isExtendedDisplayEnabled); + } + + @VisibleForTesting + DisplayTopologyCoordinator(Injector injector, BooleanSupplier isExtendedDisplayEnabled) { + mTopology = injector.getTopology(); + mIsExtendedDisplayEnabled = isExtendedDisplayEnabled; + } /** - * The logical display ID of the primary display that will show certain UI elements. - * This is not necessarily the same as the default display. + * Add a display to the topology. + * @param info The display info */ - private int mPrimaryDisplayId; + void onDisplayAdded(DisplayInfo info) { + if (!isDisplayAllowedInTopology(info)) { + return; + } + synchronized (mLock) { + mTopology.addDisplay(info.displayId, getWidth(info), getHeight(info)); + } + } /** * Print the object's state and debug information into the given stream. * @param pw The stream to dump information to. */ - public void dump(PrintWriter pw) { - pw.println("DisplayTopologyCoordinator:"); - pw.println("--------------------"); - IndentingPrintWriter ipw = new IndentingPrintWriter(pw); - ipw.increaseIndent(); - - ipw.println("mPrimaryDisplayId: " + mPrimaryDisplayId); - - ipw.println("Topology tree:"); - if (mRoot != null) { - ipw.increaseIndent(); - mRoot.dump(ipw); - ipw.decreaseIndent(); + void dump(PrintWriter pw) { + synchronized (mLock) { + mTopology.dump(pw); } } - private static class TopologyTreeNode { - - /** - * The logical display ID - */ - private int mDisplayId; - - private final List<TopologyTreeNode> mChildren = new ArrayList<>(); - - /** - * The position of this display relative to its parent. - */ - private Position mPosition; - - /** - * The distance from the top edge of the parent display to the top edge of this display (in - * case of POSITION_LEFT or POSITION_RIGHT) or from the left edge of the parent display - * to the left edge of this display (in case of POSITION_TOP or POSITION_BOTTOM). The unit - * used is density-independent pixels (dp). - */ - private double mOffset; - - /** - * Print the object's state and debug information into the given stream. - * @param ipw The stream to dump information to. - */ - void dump(IndentingPrintWriter ipw) { - ipw.println("Display {id=" + mDisplayId + ", position=" + mPosition - + ", offset=" + mOffset + "}"); - ipw.increaseIndent(); - for (TopologyTreeNode child : mChildren) { - child.dump(ipw); - } - ipw.decreaseIndent(); - } + /** + * @param info The display info + * @return The width of the display in dp + */ + private double getWidth(DisplayInfo info) { + return info.logicalWidth * (double) DisplayMetrics.DENSITY_DEFAULT + / info.logicalDensityDpi; + } + + /** + * @param info The display info + * @return The height of the display in dp + */ + private double getHeight(DisplayInfo info) { + return info.logicalHeight * (double) DisplayMetrics.DENSITY_DEFAULT + / info.logicalDensityDpi; + } + + private boolean isDisplayAllowedInTopology(DisplayInfo info) { + return mIsExtendedDisplayEnabled.getAsBoolean() + && info.displayGroupId == Display.DEFAULT_DISPLAY_GROUP; + } - private enum Position { - POSITION_LEFT, POSITION_TOP, POSITION_RIGHT, POSITION_BOTTOM + static class Injector { + DisplayTopology getTopology() { + return new DisplayTopology(); } } } diff --git a/services/core/java/com/android/server/display/ExternalDisplayStatsService.java b/services/core/java/com/android/server/display/ExternalDisplayStatsService.java index 608fb35cea9a..666bd26db340 100644 --- a/services/core/java/com/android/server/display/ExternalDisplayStatsService.java +++ b/services/core/java/com/android/server/display/ExternalDisplayStatsService.java @@ -19,7 +19,6 @@ package com.android.server.display; import static android.media.AudioDeviceInfo.TYPE_HDMI; import static android.media.AudioDeviceInfo.TYPE_HDMI_ARC; import static android.media.AudioDeviceInfo.TYPE_USB_DEVICE; -import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS; import android.annotation.NonNull; import android.annotation.Nullable; @@ -32,7 +31,6 @@ import android.media.AudioManager.AudioPlaybackCallback; import android.media.AudioPlaybackConfiguration; import android.os.Handler; import android.os.PowerManager; -import android.provider.Settings; import android.util.Slog; import android.util.SparseIntArray; import android.view.Display; @@ -44,6 +42,7 @@ import com.android.internal.util.FrameworkStatsLog; import com.android.server.display.utils.DebugUtils; import java.util.List; +import java.util.function.BooleanSupplier; /** @@ -203,8 +202,9 @@ public final class ExternalDisplayStatsService { } }; - ExternalDisplayStatsService(Context context, Handler handler) { - this(new Injector(context, handler)); + ExternalDisplayStatsService(Context context, Handler handler, + BooleanSupplier isExtendedDisplayEnabled) { + this(new Injector(context, handler, isExtendedDisplayEnabled)); } @VisibleForTesting @@ -599,25 +599,21 @@ public final class ExternalDisplayStatsService { private final Context mContext; @NonNull private final Handler mHandler; + private final BooleanSupplier mIsExtendedDisplayEnabled; @Nullable private AudioManager mAudioManager; @Nullable private PowerManager mPowerManager; - Injector(@NonNull Context context, @NonNull Handler handler) { + Injector(@NonNull Context context, @NonNull Handler handler, + BooleanSupplier isExtendedDisplayEnabled) { mContext = context; mHandler = handler; + mIsExtendedDisplayEnabled = isExtendedDisplayEnabled; } boolean isExtendedDisplayEnabled() { - try { - return 0 != Settings.Global.getInt( - mContext.getContentResolver(), - DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, 0); - } catch (Throwable e) { - // Some services might not be initialised yet to be able to call getInt - return false; - } + return mIsExtendedDisplayEnabled.getAsBoolean(); } void registerInteractivityReceiver(BroadcastReceiver interactivityReceiver, diff --git a/services/core/java/com/android/server/display/LogicalDisplayMapper.java b/services/core/java/com/android/server/display/LogicalDisplayMapper.java index c3f6a5285ae3..bcb600d0f91c 100644 --- a/services/core/java/com/android/server/display/LogicalDisplayMapper.java +++ b/services/core/java/com/android/server/display/LogicalDisplayMapper.java @@ -344,6 +344,23 @@ class LogicalDisplayMapper implements DisplayDeviceRepository.Listener { return displayIds; } + public int[] getDisplayIdsForGroupLocked(int groupId) { + DisplayGroup displayGroup = mDisplayGroups.get(groupId); + if (displayGroup == null) { + return new int[]{}; + } + return displayGroup.getIdsLocked(); + } + + public SparseArray<int[]> getDisplayIdsByGroupIdLocked() { + SparseArray<int[]> displayIdsByGroupIds = new SparseArray<>(); + for (int i = 0; i < mDisplayGroups.size(); i++) { + int groupId = mDisplayGroups.get(i).getGroupId(); + displayIdsByGroupIds.put(groupId, getDisplayIdsForGroupLocked(groupId)); + } + return displayIdsByGroupIds; + } + public void forEachLocked(Consumer<LogicalDisplay> consumer) { forEachLocked(consumer, /* includeDisabled= */ true); } diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java b/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java index 91a4d6f1707f..598901e33305 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubClientBroker.java @@ -764,6 +764,7 @@ public class ContextHubClientBroker extends IContextHubClient.Stub boolean hasPermissions(List<String> permissions) { for (String permission : permissions) { if (mContext.checkPermission(permission, mPid, mUid) != PERMISSION_GRANTED) { + Log.e(TAG, "no permission for " + permission); return false; } } @@ -919,6 +920,14 @@ public class ContextHubClientBroker extends IContextHubClient.Stub } } if (curAuthState != newAuthState) { + if (newAuthState == AUTHORIZATION_DENIED + || newAuthState == AUTHORIZATION_DENIED_GRACE_PERIOD) { + Log.e(TAG, "updateNanoAppAuthState auth error: " + + Long.toHexString(nanoAppId) + ", " + + nanoappPermissions + ", " + + gracePeriodExpired + ", " + + forceDenied); + } // Don't send the callback in the synchronized block or it could end up in a deadlock. sendAuthStateCallback(nanoAppId, newAuthState); } diff --git a/services/core/java/com/android/server/notification/GroupHelper.java b/services/core/java/com/android/server/notification/GroupHelper.java index 9d30c565bd96..e8d14cbde516 100644 --- a/services/core/java/com/android/server/notification/GroupHelper.java +++ b/services/core/java/com/android/server/notification/GroupHelper.java @@ -1435,6 +1435,10 @@ public class GroupHelper { return false; } + if (record.getSbn().getNotification().isMediaNotification()) { + return false; + } + return true; } } diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 655f2e4596aa..56e0a8929772 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -4117,6 +4117,34 @@ public class NotificationManagerService extends SystemService { } @Override + @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public void setAdjustmentTypeSupportedState(INotificationListener token, + @Adjustment.Keys String key, boolean supported) { + final long identity = Binder.clearCallingIdentity(); + try { + synchronized (mNotificationLock) { + final ManagedServiceInfo info = mAssistants.checkServiceTokenLocked(token); + if (key == null) { + return; + } + mAssistants.setAdjustmentTypeSupportedState(info, key, supported); + } + } finally { + Binder.restoreCallingIdentity(identity); + } + } + + @Override + @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public @NonNull List<String> getUnsupportedAdjustmentTypes() { + checkCallerIsSystemOrSystemUiOrShell(); + synchronized (mNotificationLock) { + return new ArrayList(mAssistants.mNasUnsupported.getOrDefault( + UserHandle.getUserId(Binder.getCallingUid()), new HashSet<>())); + } + } + + @Override @FlaggedApi(android.app.Flags.FLAG_API_RICH_ONGOING) public boolean appCanBePromoted(String pkg, int uid) { checkCallerIsSystemOrSystemUiOrShell(); @@ -7435,7 +7463,7 @@ public class NotificationManagerService extends SystemService { NotificationRecord r = findNotificationLocked(pkg, null, notificationId, userId); if (r != null) { if (DBG) { - final String type = (flag == FLAG_FOREGROUND_SERVICE) ? "FGS" : "UIJ"; + final String type = (flag == FLAG_FOREGROUND_SERVICE) ? "FGS" : "UIJ"; Slog.d(TAG, "Remove " + type + " flag not allow. " + "Cancel " + type + " notification"); } @@ -7452,7 +7480,11 @@ public class NotificationManagerService extends SystemService { // strip flag from all enqueued notifications. listeners will be informed // in post runnable. StatusBarNotification sbn = r.getSbn(); - sbn.getNotification().flags = (r.mOriginalFlags & ~flag); + if (notificationForceGrouping()) { + sbn.getNotification().flags = (r.getFlags() & ~flag); + } else { + sbn.getNotification().flags = (r.mOriginalFlags & ~flag); + } } } @@ -7461,7 +7493,11 @@ public class NotificationManagerService extends SystemService { if (r != null) { // if posted notification exists, strip its flag and tell listeners StatusBarNotification sbn = r.getSbn(); - sbn.getNotification().flags = (r.mOriginalFlags & ~flag); + if (notificationForceGrouping()) { + sbn.getNotification().flags = (r.getFlags() & ~flag); + } else { + sbn.getNotification().flags = (r.mOriginalFlags & ~flag); + } mRankingHelper.sort(mNotificationList); mListeners.notifyPostedLocked(r, r); } @@ -9459,6 +9495,28 @@ public class NotificationManagerService extends SystemService { } /** + * Check if the notification was a summary that has been auto-grouped + * @param r the current notification record + * @param old the previous notification record + * @return true if the notification record was a summary that was auto-grouped + */ + @GuardedBy("mNotificationLock") + private boolean wasSummaryAutogrouped(NotificationRecord r, NotificationRecord old) { + boolean wasAutogrouped = false; + if (old != null) { + boolean wasSummary = (old.mOriginalFlags & FLAG_GROUP_SUMMARY) != 0; + boolean wasForcedGrouped = (old.getFlags() & FLAG_GROUP_SUMMARY) == 0 + && old.getSbn().getOverrideGroupKey() != null; + boolean isNotAutogroupSummary = (r.getFlags() & FLAG_AUTOGROUP_SUMMARY) == 0 + && (r.getFlags() & FLAG_GROUP_SUMMARY) != 0; + if ((wasSummary && wasForcedGrouped) || (wasForcedGrouped && isNotAutogroupSummary)) { + wasAutogrouped = true; + } + } + return wasAutogrouped; + } + + /** * Ensures that grouped notification receive their special treatment. * * <p>Cancels group children if the new notification causes a group to lose @@ -9478,14 +9536,9 @@ public class NotificationManagerService extends SystemService { } if (notificationForceGrouping()) { - if (old != null) { - // If this is an update to a summary that was forced grouped => remove summary flag - boolean wasSummary = (old.mOriginalFlags & FLAG_GROUP_SUMMARY) != 0; - boolean wasForcedGrouped = (old.getFlags() & FLAG_GROUP_SUMMARY) == 0 - && old.getSbn().getOverrideGroupKey() != null; - if (n.isGroupSummary() && wasSummary && wasForcedGrouped) { - n.flags &= ~FLAG_GROUP_SUMMARY; - } + // If this is an update to a summary that was forced grouped => remove summary flag + if (wasSummaryAutogrouped(r, old)) { + n.flags &= ~FLAG_GROUP_SUMMARY; } } @@ -11333,12 +11386,16 @@ public class NotificationManagerService extends SystemService { static final String TAG_ENABLED_NOTIFICATION_ASSISTANTS = "enabled_assistants"; private static final String ATT_TYPES = "types"; + private static final String ATT_NAS_UNSUPPORTED = "unsupported_adjustments"; private final Object mLock = new Object(); @GuardedBy("mLock") private Set<String> mAllowedAdjustments = new ArraySet<>(); + @GuardedBy("mLock") + private Map<Integer, HashSet<String>> mNasUnsupported = new ArrayMap<>(); + protected ComponentName mDefaultFromConfig = null; @Override @@ -11831,6 +11888,10 @@ public class NotificationManagerService extends SystemService { setNotificationAssistantAccessGrantedForUserInternal( currentComponent, userId, false, userSet); } + } else { + if (android.service.notification.Flags.notificationClassification()) { + mNasUnsupported.put(userId, new HashSet<>()); + } } super.setPackageOrComponentEnabled(pkgOrComponent, userId, isPrimary, enabled, userSet); } @@ -11838,6 +11899,63 @@ public class NotificationManagerService extends SystemService { private boolean isVerboseLogEnabled() { return Log.isLoggable("notification_assistant", Log.VERBOSE); } + + @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + @GuardedBy("mNotificationLock") + public void setAdjustmentTypeSupportedState(ManagedServiceInfo info, + @Adjustment.Keys String key, boolean supported) { + if (!android.service.notification.Flags.notificationClassification()) { + return; + } + HashSet<String> disabledAdjustments = + mNasUnsupported.getOrDefault(info.userid, new HashSet<>()); + if (supported) { + disabledAdjustments.remove(key); + } else { + disabledAdjustments.add(key); + } + mNasUnsupported.put(info.userid, disabledAdjustments); + handleSavePolicyFile(); + } + + @FlaggedApi(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + @GuardedBy("mNotificationLock") + public @NonNull Set<String> getUnsupportedAdjustments(@UserIdInt int userId) { + if (!android.service.notification.Flags.notificationClassification()) { + return new HashSet<>(); + } + return mNasUnsupported.getOrDefault(userId, new HashSet<>()); + } + + @Override + protected void writeExtraAttributes(TypedXmlSerializer out, @UserIdInt int approvedUserId) + throws IOException { + if (!android.service.notification.Flags.notificationClassification()) { + return; + } + synchronized (mLock) { + if (mNasUnsupported.containsKey(approvedUserId)) { + out.attribute(null, ATT_NAS_UNSUPPORTED, + TextUtils.join(",", mNasUnsupported.get(approvedUserId))); + } + } + } + + @Override + protected void readExtraAttributes(String tag, TypedXmlPullParser parser, + @UserIdInt int approvedUserId) throws IOException { + if (!android.service.notification.Flags.notificationClassification()) { + return; + } + if (ManagedServices.TAG_MANAGED_SERVICES.equals(tag)) { + final String types = XmlUtils.readStringAttribute(parser, ATT_NAS_UNSUPPORTED); + synchronized (mLock) { + if (!TextUtils.isEmpty(types)) { + mNasUnsupported.put(approvedUserId, new HashSet(List.of(types.split(",")))); + } + } + } + } } /** diff --git a/services/core/java/com/android/server/pm/TEST_MAPPING b/services/core/java/com/android/server/pm/TEST_MAPPING index 21a6df203015..94b49e538621 100644 --- a/services/core/java/com/android/server/pm/TEST_MAPPING +++ b/services/core/java/com/android/server/pm/TEST_MAPPING @@ -101,6 +101,22 @@ ] }, { + "name": "CtsPackageInstallerCUJDeviceAdminTestCases", + "file_patterns": [ + "core/java/.*Install.*", + "services/core/.*Install.*", + "services/core/java/com/android/server/pm/.*" + ], + "options":[ + { + "exclude-annotation":"androidx.test.filters.FlakyTest" + }, + { + "exclude-annotation":"org.junit.Ignore" + } + ] + }, + { "name": "CtsPackageInstallerCUJInstallationTestCases", "file_patterns": [ "core/java/.*Install.*", @@ -117,6 +133,22 @@ ] }, { + "name": "CtsPackageInstallerCUJMultiUsersTestCases", + "file_patterns": [ + "core/java/.*Install.*", + "services/core/.*Install.*", + "services/core/java/com/android/server/pm/.*" + ], + "options":[ + { + "exclude-annotation":"androidx.test.filters.FlakyTest" + }, + { + "exclude-annotation":"org.junit.Ignore" + } + ] + }, + { "name": "CtsPackageInstallerCUJUninstallationTestCases", "file_patterns": [ "core/java/.*Install.*", diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 228405074dbb..197f0070b553 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3204,8 +3204,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { return ADD_OKAY; } - // Allow virtual device owners to add overlays on the displays they own. + // Allow virtual device owners to add overlays on the trusted displays they own. if (mWindowManagerFuncs.isCallerVirtualDeviceOwner(displayId, callingUid) + && mWindowManagerFuncs.isDisplayTrusted(displayId) && mContext.checkCallingOrSelfPermission(CREATE_VIRTUAL_DEVICE) == PERMISSION_GRANTED) { return ADD_OKAY; diff --git a/services/core/java/com/android/server/policy/WindowManagerPolicy.java b/services/core/java/com/android/server/policy/WindowManagerPolicy.java index ad116578ae41..cc31bb17dc9d 100644 --- a/services/core/java/com/android/server/policy/WindowManagerPolicy.java +++ b/services/core/java/com/android/server/policy/WindowManagerPolicy.java @@ -368,6 +368,11 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants { * belongs to. */ boolean isCallerVirtualDeviceOwner(int displayId, int callingUid); + + /** + * Returns whether the display with the given ID is trusted. + */ + boolean isDisplayTrusted(int displayId); } /** diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java index 0cdf537b3455..4fae798f0cef 100644 --- a/services/core/java/com/android/server/power/Notifier.java +++ b/services/core/java/com/android/server/power/Notifier.java @@ -164,6 +164,7 @@ public class Notifier { } private final SparseArray<Interactivity> mInteractivityByGroupId = new SparseArray<>(); + private SparseBooleanArray mDisplayInteractivities = new SparseBooleanArray(); // The current global interactive state. This is set as soon as an interactive state // transition begins so as to capture the reason that it happened. At some point @@ -690,6 +691,42 @@ public class Notifier { } /** + * Update the interactivities of the displays in given DisplayGroup. + * + * @param groupId The group id of the DisplayGroup to update display interactivities for. + */ + private void updateDisplayInteractivities(int groupId, boolean interactive) { + final int[] displayIds = mDisplayManagerInternal.getDisplayIdsForGroup(groupId); + for (int displayId : displayIds) { + mDisplayInteractivities.put(displayId, interactive); + } + + } + + private void resetDisplayInteractivities() { + final SparseArray<int[]> displaysByGroupId = + mDisplayManagerInternal.getDisplayIdsByGroupsIds(); + SparseBooleanArray newDisplayInteractivities = new SparseBooleanArray(); + for (int i = 0; i < displaysByGroupId.size(); i++) { + final int groupId = displaysByGroupId.keyAt(i); + for (int displayId : displaysByGroupId.get(i)) { + // If we already know display interactivity, use that + if (mDisplayInteractivities.indexOfKey(displayId) > 0) { + newDisplayInteractivities.put( + displayId, mDisplayInteractivities.get(displayId)); + } else { // If display is new to Notifier, use the power group's interactive value + final Interactivity groupInteractivity = mInteractivityByGroupId.get(groupId); + // If group Interactivity hasn't been initialized, assume group is interactive + final boolean groupInteractive = + groupInteractivity == null || groupInteractivity.isInteractive; + newDisplayInteractivities.put(displayId, groupInteractive); + } + } + } + mDisplayInteractivities = newDisplayInteractivities; + } + + /** * Called when an individual PowerGroup changes wakefulness. */ public void onGroupWakefulnessChangeStarted(int groupId, int wakefulness, int changeReason, @@ -717,6 +754,12 @@ public class Notifier { handleEarlyInteractiveChange(groupId); mWakefulnessSessionObserver.onWakefulnessChangeStarted(groupId, wakefulness, changeReason, eventTime); + + // Update input on which displays are interactive + if (mFlags.isPerDisplayWakeByTouchEnabled()) { + updateDisplayInteractivities(groupId, isInteractive); + mInputManagerInternal.setDisplayInteractivities(mDisplayInteractivities); + } } } @@ -731,6 +774,16 @@ public class Notifier { } /** + * Called when a PowerGroup has been changed. + */ + public void onGroupChanged() { + if (mFlags.isPerDisplayWakeByTouchEnabled()) { + resetDisplayInteractivities(); + mInputManagerInternal.setDisplayInteractivities(mDisplayInteractivities); + } + } + + /** * Called when there has been user activity. */ public void onUserActivity(int displayGroupId, @PowerManager.UserActivityEvent int event, diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index e0539647d061..21ab7812e604 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -125,7 +125,6 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.LatencyTracker; import com.android.internal.util.Preconditions; -import com.android.server.crashrecovery.CrashRecoveryHelper; import com.android.server.EventLogTags; import com.android.server.LockGuard; import com.android.server.ServiceThread; @@ -133,6 +132,7 @@ import com.android.server.SystemService; import com.android.server.UiThread; import com.android.server.Watchdog; import com.android.server.am.BatteryStatsService; +import com.android.server.crashrecovery.CrashRecoveryHelper; import com.android.server.display.feature.DeviceConfigParameterProvider; import com.android.server.lights.LightsManager; import com.android.server.lights.LogicalLight; @@ -2445,6 +2445,8 @@ public final class PowerManagerService extends SystemService mClock.uptimeMillis()); } else if (event == DisplayGroupPowerChangeListener.DISPLAY_GROUP_REMOVED) { mNotifier.onGroupRemoved(groupId); + } else if (event == DisplayGroupPowerChangeListener.DISPLAY_GROUP_CHANGED) { + mNotifier.onGroupChanged(); } if (oldWakefulness != newWakefulness) { diff --git a/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java b/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java index c2e230ec8058..cc05630d037e 100644 --- a/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java +++ b/services/core/java/com/android/server/power/stats/BatteryChargeCalculator.java @@ -38,13 +38,7 @@ public class BatteryChargeCalculator extends PowerCalculator { builder.setDischargePercentage( batteryStats.getDischargeAmount(BatteryStats.STATS_SINCE_CHARGED)); - int batteryCapacityMah = batteryStats.getLearnedBatteryCapacity() / 1000; - if (batteryCapacityMah <= 0) { - batteryCapacityMah = batteryStats.getMinLearnedBatteryCapacity() / 1000; - if (batteryCapacityMah <= 0) { - batteryCapacityMah = batteryStats.getEstimatedBatteryCapacity(); - } - } + int batteryCapacityMah = batteryStats.getBatteryCapacity(); builder.setBatteryCapacity(batteryCapacityMah); final double dischargedPowerLowerBoundMah = diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java index 3f1d9a3b87a0..936fadf0b12a 100644 --- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java @@ -294,6 +294,7 @@ public class BatteryStatsImpl extends BatteryStats { private final LongSparseArray<SamplingTimer> mKernelMemoryStats = new LongSparseArray<>(); private int[] mCpuPowerBracketMap; private final CpuPowerStatsCollector mCpuPowerStatsCollector; + private final WakelockPowerStatsCollector mWakelockPowerStatsCollector; private final ScreenPowerStatsCollector mScreenPowerStatsCollector; private final MobileRadioPowerStatsCollector mMobileRadioPowerStatsCollector; private final WifiPowerStatsCollector mWifiPowerStatsCollector; @@ -400,6 +401,48 @@ public class BatteryStatsImpl extends BatteryStats { } } + private final WakelockPowerStatsCollector.WakelockDurationRetriever mWakelockDurationRetriever = + new WakelockPowerStatsCollector.WakelockDurationRetriever() { + + @Override + public long getWakelockDurationMillis() { + synchronized (BatteryStatsImpl.this) { + long rawRealtimeUs = mClock.uptimeMillis() * 1000; + long batteryUptimeUs = getBatteryUptime(rawRealtimeUs); + long screenOnTimeUs = getScreenOnTime(rawRealtimeUs, + BatteryStats.STATS_SINCE_CHARGED); + return (batteryUptimeUs - screenOnTimeUs) / 1000; + } + } + + @Override + public void retrieveUidWakelockDuration(Callback callback) { + synchronized (BatteryStatsImpl.this) { + long rawRealtimeUs = mClock.elapsedRealtime() * 1000; + for (int i = mUidStats.size() - 1; i >= 0; i--) { + Uid u = mUidStats.valueAt(i); + long wakeLockTimeUs = 0; + ArrayMap<String, ? extends BatteryStats.Uid.Wakelock> wakelockStats = + u.getWakelockStats(); + final int wakelockStatsCount = wakelockStats.size(); + for (int j = 0; j < wakelockStatsCount; j++) { + final BatteryStats.Uid.Wakelock wakelock = wakelockStats.valueAt(j); + BatteryStats.Timer timer = wakelock.getWakeTime( + BatteryStats.WAKE_TYPE_PARTIAL); + if (timer != null) { + wakeLockTimeUs += timer.getTotalTimeLocked(rawRealtimeUs, + BatteryStats.STATS_SINCE_CHARGED); + } + } + + if (wakeLockTimeUs != 0) { + callback.onUidWakelockDuration(u.getUid(), wakeLockTimeUs / 1000); + } + } + } + } + }; + public LongSparseArray<SamplingTimer> getKernelMemoryStats() { return mKernelMemoryStats; } @@ -2015,7 +2058,7 @@ public class BatteryStatsImpl extends BatteryStats { private class PowerStatsCollectorInjector implements CpuPowerStatsCollector.Injector, ScreenPowerStatsCollector.Injector, MobileRadioPowerStatsCollector.Injector, WifiPowerStatsCollector.Injector, BluetoothPowerStatsCollector.Injector, - EnergyConsumerPowerStatsCollector.Injector { + EnergyConsumerPowerStatsCollector.Injector, WakelockPowerStatsCollector.Injector { private PackageManager mPackageManager; private PowerStatsCollector.ConsumedEnergyRetriever mConsumedEnergyRetriever; private NetworkStatsManager mNetworkStatsManager; @@ -2132,6 +2175,12 @@ public class BatteryStatsImpl extends BatteryStats { return () -> mPhoneSignalScanningTimer.getTotalTimeLocked( mClock.elapsedRealtime() * 1000, STATS_SINCE_CHARGED) / 1000; } + + @Override + public WakelockPowerStatsCollector.WakelockDurationRetriever + getWakelockDurationRetriever() { + return mWakelockDurationRetriever; + } } private final PowerStatsCollectorInjector mPowerStatsCollectorInjector = @@ -10910,7 +10959,6 @@ public class BatteryStatsImpl extends BatteryStats { // Make special note of Foreground Services final boolean userAwareService = ActivityManager.isForegroundService(procState); uidRunningState = BatteryStats.mapToInternalProcessState(procState); - if (mProcessState == uidRunningState && userAwareService == mInForegroundService) { return; } @@ -10949,8 +10997,7 @@ public class BatteryStatsImpl extends BatteryStats { final int batteryConsumerProcessState = mapUidProcessStateToBatteryConsumerProcessState(uidRunningState); - if (mBsi.mSystemReady && mBsi.mPowerStatsCollectorEnabled.get( - BatteryConsumer.POWER_COMPONENT_CPU)) { + if (mBsi.mSystemReady) { mBsi.mHistory.recordProcessStateChange(elapsedRealtimeMs, uptimeMs, mUid, batteryConsumerProcessState); } @@ -11351,6 +11398,10 @@ public class BatteryStatsImpl extends BatteryStats { mCpuPowerStatsCollector = new CpuPowerStatsCollector(mPowerStatsCollectorInjector); mCpuPowerStatsCollector.addConsumer(this::recordPowerStats); + mWakelockPowerStatsCollector = new WakelockPowerStatsCollector( + mPowerStatsCollectorInjector); + mWakelockPowerStatsCollector.addConsumer(this::recordPowerStats); + mScreenPowerStatsCollector = new ScreenPowerStatsCollector(mPowerStatsCollectorInjector); mScreenPowerStatsCollector.addConsumer(this::recordPowerStats); @@ -14821,6 +14872,10 @@ public class BatteryStatsImpl extends BatteryStats { mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_CPU)); mCpuPowerStatsCollector.schedule(); + mWakelockPowerStatsCollector.setEnabled( + mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_WAKELOCK)); + mWakelockPowerStatsCollector.schedule(); + mScreenPowerStatsCollector.setEnabled( mPowerStatsCollectorEnabled.get(BatteryConsumer.POWER_COMPONENT_SCREEN)); mScreenPowerStatsCollector.schedule(); @@ -14861,6 +14916,8 @@ public class BatteryStatsImpl extends BatteryStats { switch (powerComponent) { case BatteryConsumer.POWER_COMPONENT_CPU: return mCpuPowerStatsCollector; + case BatteryConsumer.POWER_COMPONENT_WAKELOCK: + return mWakelockPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_SCREEN: return mScreenPowerStatsCollector; case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO: @@ -16402,6 +16459,7 @@ public class BatteryStatsImpl extends BatteryStats { } mCpuPowerStatsCollector.forceSchedule(); + mWakelockPowerStatsCollector.forceSchedule(); mScreenPowerStatsCollector.forceSchedule(); mMobileRadioPowerStatsCollector.forceSchedule(); mWifiPowerStatsCollector.forceSchedule(); @@ -16426,6 +16484,7 @@ public class BatteryStatsImpl extends BatteryStats { */ public void dumpStatsSample(PrintWriter pw) { mCpuPowerStatsCollector.collectAndDump(pw); + mWakelockPowerStatsCollector.collectAndDump(pw); mScreenPowerStatsCollector.collectAndDump(pw); mMobileRadioPowerStatsCollector.collectAndDump(pw); mWifiPowerStatsCollector.collectAndDump(pw); diff --git a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java index d66e05bd6f2a..b466dd2d8721 100644 --- a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +++ b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java @@ -52,6 +52,7 @@ public class BatteryUsageStatsProvider { private final Clock mClock; private final Object mLock = new Object(); private List<PowerCalculator> mPowerCalculators; + private UserPowerCalculator mUserPowerCalculator; public BatteryUsageStatsProvider(@NonNull Context context, @NonNull PowerAttributor powerAttributor, @@ -63,6 +64,7 @@ public class BatteryUsageStatsProvider { mPowerProfile = powerProfile; mCpuScalingPolicies = cpuScalingPolicies; mClock = clock; + mUserPowerCalculator = new UserPowerCalculator(); mPowerStatsStore.addSectionReader(new BatteryUsageStatsSection.Reader()); mPowerStatsStore.addSectionReader(new AccumulatedBatteryUsageStatsSection.Reader()); @@ -74,14 +76,20 @@ public class BatteryUsageStatsProvider { mPowerCalculators = new ArrayList<>(); // Power calculators are applied in the order of registration - mPowerCalculators.add(new BatteryChargeCalculator()); + if (!mPowerAttributor.isPowerComponentSupported( + BatteryConsumer.POWER_COMPONENT_BASE)) { + mPowerCalculators.add(new BatteryChargeCalculator()); + } if (!mPowerAttributor.isPowerComponentSupported( BatteryConsumer.POWER_COMPONENT_CPU)) { mPowerCalculators.add( new CpuPowerCalculator(mCpuScalingPolicies, mPowerProfile)); } mPowerCalculators.add(new MemoryPowerCalculator(mPowerProfile)); - mPowerCalculators.add(new WakelockPowerCalculator(mPowerProfile)); + if (!mPowerAttributor.isPowerComponentSupported( + BatteryConsumer.POWER_COMPONENT_WAKELOCK)) { + mPowerCalculators.add(new WakelockPowerCalculator(mPowerProfile)); + } if (!BatteryStats.checkWifiOnly(mContext)) { if (!mPowerAttributor.isPowerComponentSupported( BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)) { @@ -138,8 +146,6 @@ public class BatteryUsageStatsProvider { BatteryConsumer.POWER_COMPONENT_ANY)) { mPowerCalculators.add(new CustomEnergyConsumerPowerCalculator(mPowerProfile)); } - mPowerCalculators.add(new UserPowerCalculator()); - if (!com.android.server.power.optimization.Flags.disableSystemServicePowerAttr()) { // It is important that SystemServicePowerCalculator be applied last, // because it re-attributes some of the power estimated by the other @@ -317,58 +323,54 @@ public class BatteryUsageStatsProvider { & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_VIRTUAL_UIDS) != 0); final double minConsumedPowerThreshold = query.getMinConsumedPowerThreshold(); - final BatteryUsageStats.Builder batteryUsageStatsBuilder; + String[] customEnergyConsumerNames; long monotonicStartTime, monotonicEndTime; synchronized (stats) { + customEnergyConsumerNames = stats.getCustomEnergyConsumerNames(); monotonicStartTime = stats.getMonotonicStartTime(); monotonicEndTime = stats.getMonotonicEndTime(); + } - batteryUsageStatsBuilder = new BatteryUsageStats.Builder( - stats.getCustomEnergyConsumerNames(), includePowerModels, - includeProcessStateData, query.isScreenStateDataNeeded(), - query.isPowerStateDataNeeded(), minConsumedPowerThreshold); + final BatteryUsageStats.Builder batteryUsageStatsBuilder = new BatteryUsageStats.Builder( + customEnergyConsumerNames, includePowerModels, + includeProcessStateData, query.isScreenStateDataNeeded(), + query.isPowerStateDataNeeded(), minConsumedPowerThreshold); + synchronized (stats) { // TODO(b/188068523): use a monotonic clock to ensure resilience of order and duration // of batteryUsageStats sessions to wall-clock adjustments batteryUsageStatsBuilder.setStatsStartTimestamp(stats.getStartClockTime()); batteryUsageStatsBuilder.setStatsEndTimestamp(currentTimeMs); - SparseArray<? extends BatteryStats.Uid> uidStats = stats.getUidStats(); - for (int i = uidStats.size() - 1; i >= 0; i--) { - final BatteryStats.Uid uid = uidStats.valueAt(i); - if (!includeVirtualUids && uid.getUid() == Process.SDK_SANDBOX_VIRTUAL_UID) { - continue; - } - - batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uid) - .setTimeInProcessStateMs(UidBatteryConsumer.PROCESS_STATE_BACKGROUND, - getProcessBackgroundTimeMs(uid, realtimeUs)) - .setTimeInProcessStateMs(UidBatteryConsumer.PROCESS_STATE_FOREGROUND, - getProcessForegroundTimeMs(uid, realtimeUs)) - .setTimeInProcessStateMs( - UidBatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE, - getProcessForegroundServiceTimeMs(uid, realtimeUs)); - } - - final int[] powerComponents = query.getPowerComponents(); final List<PowerCalculator> powerCalculators = getPowerCalculators(); - for (int i = 0, count = powerCalculators.size(); i < count; i++) { - PowerCalculator powerCalculator = powerCalculators.get(i); - if (powerComponents != null) { - boolean include = false; - for (int powerComponent : powerComponents) { - if (powerCalculator.isPowerComponentSupported(powerComponent)) { - include = true; - break; - } - } - if (!include) { + if (!powerCalculators.isEmpty()) { + final int[] powerComponents = query.getPowerComponents(); + SparseArray<? extends BatteryStats.Uid> uidStats = stats.getUidStats(); + for (int i = uidStats.size() - 1; i >= 0; i--) { + final BatteryStats.Uid uid = uidStats.valueAt(i); + if (!includeVirtualUids && uid.getUid() == Process.SDK_SANDBOX_VIRTUAL_UID) { continue; } + + batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uid); + } + for (int i = 0, count = powerCalculators.size(); i < count; i++) { + PowerCalculator powerCalculator = powerCalculators.get(i); + if (powerComponents != null) { + boolean include = false; + for (int powerComponent : powerComponents) { + if (powerCalculator.isPowerComponentSupported(powerComponent)) { + include = true; + break; + } + } + if (!include) { + continue; + } + } + powerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs, + query); } - powerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs, - query); } - if ((query.getFlags() & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY) != 0) { batteryUsageStatsBuilder.setBatteryHistory(stats.copyHistory()); @@ -378,9 +380,28 @@ public class BatteryUsageStatsProvider { mPowerAttributor.estimatePowerConsumption(batteryUsageStatsBuilder, stats.getHistory(), monotonicStartTime, monotonicEndTime); + // Combine apps by the user if necessary + mUserPowerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs, + query); + + populateGeneralInfo(batteryUsageStatsBuilder, stats); return batteryUsageStatsBuilder; } + private void populateGeneralInfo(BatteryUsageStats.Builder builder, BatteryStatsImpl stats) { + builder.setBatteryCapacity(stats.getEstimatedBatteryCapacity()); + final long batteryTimeRemainingMs = stats.computeBatteryTimeRemaining( + mClock.elapsedRealtime() * 1000); + if (batteryTimeRemainingMs != -1) { + builder.setBatteryTimeRemainingMs(batteryTimeRemainingMs / 1000); + } + final long chargeTimeRemainingMs = stats.computeChargeTimeRemaining( + mClock.elapsedRealtime() * 1000); + if (chargeTimeRemainingMs != -1) { + builder.setChargeTimeRemainingMs(chargeTimeRemainingMs / 1000); + } + } + // STOPSHIP(b/229906525): remove verification before shipping private static boolean sErrorReported; @@ -423,39 +444,6 @@ public class BatteryUsageStatsProvider { } } - private long getProcessForegroundTimeMs(BatteryStats.Uid uid, long realtimeUs) { - final long topStateDurationUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_TOP, - realtimeUs, BatteryStats.STATS_SINCE_CHARGED); - long foregroundActivityDurationUs = 0; - final BatteryStats.Timer foregroundActivityTimer = uid.getForegroundActivityTimer(); - if (foregroundActivityTimer != null) { - foregroundActivityDurationUs = foregroundActivityTimer.getTotalTimeLocked(realtimeUs, - BatteryStats.STATS_SINCE_CHARGED); - } - - // Use the min value of STATE_TOP time and foreground activity time, since both of these - // times are imprecise - long totalForegroundDurationUs = Math.min(topStateDurationUs, foregroundActivityDurationUs); - - totalForegroundDurationUs += uid.getProcessStateTime( - BatteryStats.Uid.PROCESS_STATE_FOREGROUND, realtimeUs, - BatteryStats.STATS_SINCE_CHARGED); - - return totalForegroundDurationUs / 1000; - } - - private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, long realtimeUs) { - return uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_BACKGROUND, - realtimeUs, BatteryStats.STATS_SINCE_CHARGED) - / 1000; - } - - private long getProcessForegroundServiceTimeMs(BatteryStats.Uid uid, long realtimeUs) { - return uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE, - realtimeUs, BatteryStats.STATS_SINCE_CHARGED) - / 1000; - } - private BatteryUsageStats getAggregatedBatteryUsageStats(BatteryStatsImpl stats, BatteryUsageStatsQuery query) { final boolean includePowerModels = (query.getFlags() diff --git a/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java index 539c41537f8e..d7aa9876fe0d 100644 --- a/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/BluetoothPowerStatsCollector.java @@ -30,6 +30,7 @@ import com.android.internal.os.Clock; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.BluetoothPowerStatsLayout; +import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; @@ -142,6 +143,7 @@ public class BluetoothPowerStatsCollector extends PowerStatsCollector { return null; } + Arrays.fill(mDeviceStats, 0); mPowerStats.uidStats.clear(); collectBluetoothActivityInfo(); diff --git a/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java index 128f14a31898..dd6484dad812 100644 --- a/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/CpuPowerStatsCollector.java @@ -34,6 +34,7 @@ import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.CpuPowerStatsLayout; import java.io.PrintWriter; +import java.util.Arrays; import java.util.Locale; /** @@ -330,7 +331,9 @@ public class CpuPowerStatsCollector extends PowerStatsCollector { return null; } + Arrays.fill(mCpuPowerStats.stats, 0); mCpuPowerStats.uidStats.clear(); + // TODO(b/305120724): additionally retrieve time-in-cluster for each CPU cluster long newTimestampNanos = mKernelCpuStatsReader.readCpuStats(this::processUidStats, mLayout.getScalingStepToPowerBracketMap(), mLastUpdateTimestampNanos, diff --git a/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java index 1d2e38849708..079fc3c026f9 100644 --- a/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/EnergyConsumerPowerStatsCollector.java @@ -24,6 +24,8 @@ import com.android.internal.os.Clock; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.EnergyConsumerPowerStatsLayout; +import java.util.Arrays; + public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector { public interface Injector { @@ -105,6 +107,7 @@ public class EnergyConsumerPowerStatsCollector extends PowerStatsCollector { return null; } + Arrays.fill(mPowerStats.stats, 0); mPowerStats.uidStats.clear(); if (!mConsumedEnergyHelper.collectConsumedEnergy(mPowerStats, mLayout)) { diff --git a/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java index 8371e6681747..c38904fe2873 100644 --- a/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/ScreenPowerStatsCollector.java @@ -27,6 +27,8 @@ import com.android.internal.os.Clock; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.ScreenPowerStatsLayout; +import java.util.Arrays; + public class ScreenPowerStatsCollector extends PowerStatsCollector { private static final String TAG = "ScreenPowerStatsCollector"; @@ -115,6 +117,9 @@ public class ScreenPowerStatsCollector extends PowerStatsCollector { return null; } + Arrays.fill(mPowerStats.stats, 0); + mPowerStats.uidStats.clear(); + mConsumedEnergyHelper.collectConsumedEnergy(mPowerStats, mLayout); for (int display = 0; display < mDisplayCount; display++) { @@ -142,8 +147,6 @@ public class ScreenPowerStatsCollector extends PowerStatsCollector { mLastDozeTime[display] = screenDozeTimeMs; } - mPowerStats.uidStats.clear(); - mScreenUsageTimeRetriever.retrieveTopActivityTimes((uid, topActivityTimeMs) -> { long topActivityDuration = topActivityTimeMs - mLastTopActivityTime.get(uid); if (topActivityDuration == 0) { diff --git a/services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java new file mode 100644 index 000000000000..e36c9946531e --- /dev/null +++ b/services/core/java/com/android/server/power/stats/WakelockPowerStatsCollector.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.server.power.stats; + +import android.annotation.Nullable; +import android.os.BatteryConsumer; +import android.os.Handler; +import android.os.PersistableBundle; +import android.util.SparseLongArray; + +import com.android.internal.os.Clock; +import com.android.internal.os.PowerStats; +import com.android.server.power.stats.format.WakelockPowerStatsLayout; + +import java.util.Arrays; + +class WakelockPowerStatsCollector extends PowerStatsCollector { + + public interface WakelockDurationRetriever { + interface Callback { + void onUidWakelockDuration(int uid, long wakelockDurationMs); + } + + long getWakelockDurationMillis(); + void retrieveUidWakelockDuration(Callback callback); + } + + public interface Injector { + Handler getHandler(); + Clock getClock(); + PowerStatsUidResolver getUidResolver(); + long getPowerStatsCollectionThrottlePeriod(String powerComponentName); + WakelockDurationRetriever getWakelockDurationRetriever(); + } + + private final WakelockDurationRetriever mWakelockDurationRetriever; + private WakelockPowerStatsLayout mStatsLayout; + private PowerStats.Descriptor mDescriptor; + private PowerStats mPowerStats; + private boolean mIsInitialized; + private boolean mFirstCollection = true; + private long mLastCollectionTime; + private long mLastWakelockDurationMs; + private final SparseLongArray mLastUidWakelockDurations = new SparseLongArray(); + + WakelockPowerStatsCollector(Injector injector) { + super(injector.getHandler(), injector.getPowerStatsCollectionThrottlePeriod( + BatteryConsumer.powerComponentIdToString( + BatteryConsumer.POWER_COMPONENT_WAKELOCK)), + injector.getUidResolver(), injector.getClock()); + mWakelockDurationRetriever = injector.getWakelockDurationRetriever(); + } + + private boolean ensureInitialized() { + if (mIsInitialized) { + return true; + } + + if (!isEnabled()) { + return false; + } + + mStatsLayout = new WakelockPowerStatsLayout(); + PersistableBundle extras = new PersistableBundle(); + mStatsLayout.toExtras(extras); + mDescriptor = new PowerStats.Descriptor(BatteryConsumer.POWER_COMPONENT_WAKELOCK, + mStatsLayout.getDeviceStatsArrayLength(), null, 0, + mStatsLayout.getUidStatsArrayLength(), extras); + mPowerStats = new PowerStats(mDescriptor); + mIsInitialized = true; + return true; + } + + @Nullable + @Override + protected PowerStats collectStats() { + if (!ensureInitialized()) { + return null; + } + + Arrays.fill(mPowerStats.stats, 0); + mPowerStats.uidStats.clear(); + + long elapsedRealtime = mClock.elapsedRealtime(); + mPowerStats.durationMs = elapsedRealtime - mLastCollectionTime; + + long wakelockDurationMillis = mWakelockDurationRetriever.getWakelockDurationMillis(); + + if (!mFirstCollection) { + mStatsLayout.setUsageDuration(mPowerStats.stats, + Math.max(0, wakelockDurationMillis - mLastWakelockDurationMs)); + } + + mLastWakelockDurationMs = wakelockDurationMillis; + + mWakelockDurationRetriever.retrieveUidWakelockDuration((uid, durationMs) -> { + if (!mFirstCollection) { + long[] uidStats = mPowerStats.uidStats.get(uid); + if (uidStats == null) { + uidStats = new long[mDescriptor.uidStatsArrayLength]; + mPowerStats.uidStats.put(uid, uidStats); + } + + mStatsLayout.setUidUsageDuration(uidStats, + Math.max(0, durationMs - mLastUidWakelockDurations.get(uid))); + } + mLastUidWakelockDurations.put(uid, durationMs); + }); + + mLastCollectionTime = elapsedRealtime; + mFirstCollection = false; + + return mPowerStats; + } +} diff --git a/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java b/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java index 7a84b05823a4..1fdeac9816d0 100644 --- a/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java +++ b/services/core/java/com/android/server/power/stats/WifiPowerStatsCollector.java @@ -30,6 +30,7 @@ import com.android.internal.os.Clock; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.WifiPowerStatsLayout; +import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; @@ -151,6 +152,9 @@ public class WifiPowerStatsCollector extends PowerStatsCollector { return null; } + Arrays.fill(mDeviceStats, 0); + mPowerStats.uidStats.clear(); + WifiActivityEnergyInfo activityInfo = null; if (mPowerReportingSupported) { activityInfo = collectWifiActivityInfo(); @@ -224,8 +228,6 @@ public class WifiPowerStatsCollector extends PowerStatsCollector { } private List<BatteryStatsImpl.NetworkStatsDelta> collectNetworkStats() { - mPowerStats.uidStats.clear(); - NetworkStats networkStats = mNetworkStatsSupplier.get(); if (networkStats == null) { return null; diff --git a/services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java b/services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java new file mode 100644 index 000000000000..a9c856cfdf0b --- /dev/null +++ b/services/core/java/com/android/server/power/stats/format/BasePowerStatsLayout.java @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.power.stats.format; + +import android.annotation.NonNull; +import android.os.PersistableBundle; + +import com.android.internal.os.PowerStats; + +public class BasePowerStatsLayout extends PowerStatsLayout { + private static final String EXTRA_DEVICE_BATTERY_DISCHARGE = "d-bd"; + private static final String EXTRA_DEVICE_BATTERY_DISCHARGE_PCT = "d-bdp"; + private static final String EXTRA_DEVICE_BATTERY_DISCHARGE_DURATION = "d-bdd"; + private final int mDeviceBatteryDischargePosition; + private final int mDeviceBatteryDischargePercentPosition; + private final int mDeviceBatteryDischargeDurationPosition; + + public BasePowerStatsLayout() { + addDeviceSectionUsageDuration(); + addUidSectionUsageDuration(); + mDeviceBatteryDischargePosition = addDeviceSection(1, "discharge"); + // Stored with a 1000000 multiplier for precision + mDeviceBatteryDischargePercentPosition = addDeviceSection(1, "discharge-pct", + FLAG_FORMAT_AS_POWER); + mDeviceBatteryDischargeDurationPosition = addDeviceSection(1, "discharge-duration"); + } + + public BasePowerStatsLayout(@NonNull PowerStats.Descriptor descriptor) { + super(descriptor); + PersistableBundle extras = descriptor.extras; + mDeviceBatteryDischargePosition = extras.getInt(EXTRA_DEVICE_BATTERY_DISCHARGE); + mDeviceBatteryDischargePercentPosition = extras.getInt(EXTRA_DEVICE_BATTERY_DISCHARGE_PCT); + mDeviceBatteryDischargeDurationPosition = + extras.getInt(EXTRA_DEVICE_BATTERY_DISCHARGE_DURATION); + } + + /** + * Copies the elements of the stats array layout into <code>extras</code> + */ + public void toExtras(PersistableBundle extras) { + super.toExtras(extras); + extras.putInt(EXTRA_DEVICE_BATTERY_DISCHARGE, mDeviceBatteryDischargePosition); + extras.putInt(EXTRA_DEVICE_BATTERY_DISCHARGE_PCT, mDeviceBatteryDischargePercentPosition); + extras.putInt(EXTRA_DEVICE_BATTERY_DISCHARGE_DURATION, + mDeviceBatteryDischargeDurationPosition); + } + + /** + * Accumulates battery discharge amount. + */ + public void addBatteryDischargeUah(long[] stats, long dischargeUah) { + stats[mDeviceBatteryDischargePosition] += dischargeUah; + } + + /** + * Returns accumulated battery discharge amount. + */ + public long getBatteryDischargeUah(long[] stats) { + return stats[mDeviceBatteryDischargePosition]; + } + + /** + * Accumulates battery discharge in percentage points. + */ + public void addBatteryDischargePercent(long[] stats, int dischargePct) { + // store pct * 1000000 for better rounding precision + stats[mDeviceBatteryDischargePercentPosition] += dischargePct * 1000000L; + } + + /** + * Returns battery discharge amount as percentage of battery capacity. May exceed 100% if + * the battery was recharged/discharged during the power stats collection session. + */ + public double getBatteryDischargePercent(long[] stats) { + return (int) stats[mDeviceBatteryDischargePercentPosition] / 1000000.0; + } + + /** + * Accumulates battery discharge duration. + */ + public void addBatteryDischargeDuration(long[] stats, long durationMs) { + stats[mDeviceBatteryDischargeDurationPosition] += durationMs; + } + + /** + * Returns accumulated battery discharge duration. + */ + public long getBatteryDischargeDuration(long[] stats) { + return (int) stats[mDeviceBatteryDischargeDurationPosition]; + } +} diff --git a/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java b/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java index d070919f4c18..26c8ed18e667 100644 --- a/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java +++ b/services/core/java/com/android/server/power/stats/format/PowerStatsLayout.java @@ -181,6 +181,9 @@ public class PowerStatsLayout { * Extracts the usage duration from the corresponding <code>stats</code> element. */ public long getUsageDuration(long[] stats) { + if (mDeviceDurationPosition == UNSUPPORTED) { + return 0; + } return stats[mDeviceDurationPosition]; } @@ -234,6 +237,9 @@ public class PowerStatsLayout { * Extracts the power estimate from a device stats array and converts it to mAh. */ public double getDevicePowerEstimate(long[] stats) { + if (mDevicePowerEstimatePosition == UNSUPPORTED) { + return 0; + } return stats[mDevicePowerEstimatePosition] / MILLI_TO_NANO_MULTIPLIER; } @@ -255,7 +261,7 @@ public class PowerStatsLayout { * Returns true if power for this component is attributed to UIDs (apps). */ public boolean isUidPowerAttributionSupported() { - return mUidPowerEstimatePosition != UNSUPPORTED; + return mUidPowerEstimatePosition != UNSUPPORTED || mUidDurationPosition != UNSUPPORTED; } /** @@ -269,6 +275,9 @@ public class PowerStatsLayout { * Extracts the usage duration from a UID stats array. */ public long getUidUsageDuration(long[] stats) { + if (mUidDurationPosition == UNSUPPORTED) { + return 0; + } return stats[mUidDurationPosition]; } @@ -314,6 +323,9 @@ public class PowerStatsLayout { * Extracts the power estimate from a UID stats array and converts it to mAh. */ public double getUidPowerEstimate(long[] stats) { + if (mUidPowerEstimatePosition == UNSUPPORTED) { + return 0; + } return stats[mUidPowerEstimatePosition] / MILLI_TO_NANO_MULTIPLIER; } diff --git a/services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java b/services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java new file mode 100644 index 000000000000..c11cf5685f2d --- /dev/null +++ b/services/core/java/com/android/server/power/stats/format/WakelockPowerStatsLayout.java @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.server.power.stats.format; + +import com.android.internal.os.PowerStats; + +public class WakelockPowerStatsLayout extends PowerStatsLayout { + public WakelockPowerStatsLayout() { + addDeviceSectionUsageDuration(); + addDeviceSectionPowerEstimate(); + addUidSectionUsageDuration(); + addUidSectionPowerEstimate(); + } + + public WakelockPowerStatsLayout(PowerStats.Descriptor descriptor) { + super(descriptor); + } +} diff --git a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java index a4758dd78914..a783d543559f 100644 --- a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java +++ b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStats.java @@ -224,6 +224,13 @@ class AggregatedPowerStats { } } + public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) { + for (int i = 0; i < mPowerComponentStats.size(); i++) { + mPowerComponentStats.valueAt(i).noteBatteryLevel(batteryLevel, batteryChargeUah, + timestampMs); + } + } + void finish(long timestampMs) { for (int i = 0; i < mPowerComponentStats.size(); i++) { PowerComponentAggregatedPowerStats component = mPowerComponentStats.valueAt(i); diff --git a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java index eaeda43ef6af..945960148770 100644 --- a/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java +++ b/services/core/java/com/android/server/power/stats/processor/AggregatedPowerStatsConfig.java @@ -174,36 +174,36 @@ class AggregatedPowerStatsConfig { * standard power component IDs, e.g. {@link BatteryConsumer#POWER_COMPONENT_CPU}, or * a custom power component. */ - PowerComponent trackPowerComponent(int powerComponentId) { + PowerComponent trackPowerComponent(@BatteryConsumer.PowerComponentId int powerComponentId) { PowerComponent builder = new PowerComponent(powerComponentId); mPowerComponents.add(builder); return builder; } /** - * Creates a configuration for the specified power component, which is a subcomponent - * of a different power component. The tracked states will be the same as the parent - * component's. + * Creates a configuration for the specified power component, whose attribution calculation + * depends on a different power component. The tracked states will be the same as the + * "dependsOn" component's. */ - PowerComponent trackPowerComponent(int powerComponentId, - int parentPowerComponentId) { - PowerComponent parent = null; + PowerComponent trackPowerComponent(@BatteryConsumer.PowerComponentId int powerComponentId, + @BatteryConsumer.PowerComponentId int dependsOnPowerComponentId) { + PowerComponent dependsOnPowerComponent = null; for (int i = 0; i < mPowerComponents.size(); i++) { PowerComponent powerComponent = mPowerComponents.get(i); - if (powerComponent.getPowerComponentId() == parentPowerComponentId) { - parent = powerComponent; + if (powerComponent.getPowerComponentId() == dependsOnPowerComponentId) { + dependsOnPowerComponent = powerComponent; break; } } - if (parent == null) { + if (dependsOnPowerComponent == null) { throw new IllegalArgumentException( - "Parent component " + parentPowerComponentId + " is not configured"); + "Required component " + dependsOnPowerComponentId + " is not configured"); } PowerComponent powerComponent = trackPowerComponent(powerComponentId); - powerComponent.mTrackedDeviceStates = parent.mTrackedDeviceStates; - powerComponent.mTrackedUidStates = parent.mTrackedUidStates; + powerComponent.mTrackedDeviceStates = dependsOnPowerComponent.mTrackedDeviceStates; + powerComponent.mTrackedUidStates = dependsOnPowerComponent.mTrackedUidStates; return powerComponent; } diff --git a/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java new file mode 100644 index 000000000000..1459ff55aceb --- /dev/null +++ b/services/core/java/com/android/server/power/stats/processor/BasePowerStatsProcessor.java @@ -0,0 +1,173 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.power.stats.processor; + +import static android.os.BatteryConsumer.PROCESS_STATE_UNSPECIFIED; + +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_POWER; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_PROCESS_STATE; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_SCREEN; + +import android.os.BatteryConsumer; +import android.os.PersistableBundle; +import android.util.SparseLongArray; + +import com.android.internal.os.PowerStats; +import com.android.server.power.stats.format.BasePowerStatsLayout; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.DoubleSupplier; + +class BasePowerStatsProcessor extends PowerStatsProcessor { + private final DoubleSupplier mBatteryCapacitySupplier; + private PowerEstimationPlan mPlan; + private long mStartTimestamp; + private final SparseLongArray mUidStartTimestamps = new SparseLongArray(); + private static final BasePowerStatsLayout sStatsLayout = new BasePowerStatsLayout(); + private final PowerStats.Descriptor mPowerStatsDescriptor; + private final long[] mTmpUidStatsArray; + private double mBatteryCapacityUah; + private int mBatteryLevel; + private int mBatteryChargeUah; + private long mBatteryLevelTimestampMs; + private int mCumulativeDischargePct; + private long mCumulativeDischargeUah; + private long mCumulativeDischargeDurationMs; + + private static final int UNSPECIFIED = -1; + + BasePowerStatsProcessor(DoubleSupplier batteryCapacitySupplier) { + mBatteryCapacitySupplier = batteryCapacitySupplier; + PersistableBundle extras = new PersistableBundle(); + sStatsLayout.toExtras(extras); + mPowerStatsDescriptor = new PowerStats.Descriptor(BatteryConsumer.POWER_COMPONENT_BASE, + sStatsLayout.getDeviceStatsArrayLength(), null, 0, + sStatsLayout.getUidStatsArrayLength(), extras); + mTmpUidStatsArray = new long[sStatsLayout.getUidStatsArrayLength()]; + } + + @Override + void start(PowerComponentAggregatedPowerStats stats, long timestampMs) { + mStartTimestamp = timestampMs; + mUidStartTimestamps.clear(); + stats.setPowerStatsDescriptor(mPowerStatsDescriptor); + mBatteryCapacityUah = mBatteryCapacitySupplier.getAsDouble() * 1000; + mBatteryLevel = UNSPECIFIED; + mBatteryChargeUah = UNSPECIFIED; + mBatteryLevelTimestampMs = UNSPECIFIED; + mCumulativeDischargeUah = 0; + mCumulativeDischargePct = 0; + mCumulativeDischargeDurationMs = 0; + } + + @Override + public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) { + boolean discharging = false; + if (mBatteryLevel != UNSPECIFIED && batteryLevel < mBatteryLevel) { + mCumulativeDischargePct += mBatteryLevel - batteryLevel; + discharging = true; + } + + if (mBatteryChargeUah != UNSPECIFIED && batteryChargeUah != 0 + && batteryChargeUah < mBatteryChargeUah) { + mCumulativeDischargeUah += mBatteryChargeUah - batteryChargeUah; + discharging = true; + } + + if (discharging) { + if (mBatteryLevelTimestampMs != UNSPECIFIED) { + mCumulativeDischargeDurationMs += timestampMs - mBatteryLevelTimestampMs; + } + } + + mBatteryLevel = batteryLevel; + mBatteryChargeUah = batteryChargeUah; + mBatteryLevelTimestampMs = timestampMs; + } + + @Override + public void setUidState(PowerComponentAggregatedPowerStats stats, int uid, + @AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) { + super.setUidState(stats, uid, stateId, state, timestampMs); + if (stateId == STATE_PROCESS_STATE && mUidStartTimestamps.indexOfKey(uid) < 0) { + mUidStartTimestamps.put(uid, timestampMs); + } + } + + @Override + void finish(PowerComponentAggregatedPowerStats stats, long timestampMs) { + if (mPlan == null) { + mPlan = new PowerEstimationPlan(stats.getConfig()); + } + + PowerStats powerStats = new PowerStats(mPowerStatsDescriptor); + sStatsLayout.setUsageDuration(powerStats.stats, timestampMs - mStartTimestamp); + + sStatsLayout.addBatteryDischargePercent(powerStats.stats, mCumulativeDischargePct); + if (mCumulativeDischargeUah != 0) { + sStatsLayout.addBatteryDischargeUah(powerStats.stats, + mCumulativeDischargeUah); + } else { + sStatsLayout.addBatteryDischargeUah(powerStats.stats, + (long) (mCumulativeDischargePct * mBatteryCapacityUah / 100.0)); + } + sStatsLayout.addBatteryDischargeDuration(powerStats.stats, mCumulativeDischargeDurationMs); + mCumulativeDischargePct = 0; + mCumulativeDischargeUah = 0; + mCumulativeDischargeDurationMs = 0; + + List<Integer> uids = new ArrayList<>(); + stats.collectUids(uids); + + if (!uids.isEmpty()) { + for (int i = uids.size() - 1; i >= 0; i--) { + Integer uid = uids.get(i); + long durationMs = timestampMs - mUidStartTimestamps.get(uid, mStartTimestamp); + mUidStartTimestamps.put(uid, timestampMs); + + long[] uidStats = new long[sStatsLayout.getUidStatsArrayLength()]; + sStatsLayout.setUidUsageDuration(uidStats, durationMs); + powerStats.uidStats.put(uid, uidStats); + } + } + + stats.addPowerStats(powerStats, timestampMs); + + for (int i = mPlan.uidStateEstimates.size() - 1; i >= 0; i--) { + UidStateEstimate uidStateEstimate = mPlan.uidStateEstimates.get(i); + int[] uidStateValues = new int[stats.getConfig().getUidStateConfig().length]; + uidStateValues[STATE_PROCESS_STATE] = PROCESS_STATE_UNSPECIFIED; + + for (int j = uids.size() - 1; j >= 0; j--) { + int uid = uids.get(j); + int[] stateValues = uidStateEstimate.combinedDeviceStateEstimate.stateValues; + uidStateValues[STATE_SCREEN] = stateValues[STATE_SCREEN]; + uidStateValues[STATE_POWER] = stateValues[STATE_POWER]; + // Erase usage duration for UNSPECIFIED proc state - the app was not running + if (stats.getUidStats(mTmpUidStatsArray, uid, uidStateValues)) { + if (sStatsLayout.getUidUsageDuration(mTmpUidStatsArray) != 0) { + sStatsLayout.setUidUsageDuration(mTmpUidStatsArray, 0); + stats.setUidStats(uid, uidStateValues, mTmpUidStatsArray); + } + } + } + } + + mStartTimestamp = timestampMs; + } +} diff --git a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java index 5f7a3dad99e8..17ceca6e3dc1 100644 --- a/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java +++ b/services/core/java/com/android/server/power/stats/processor/CpuPowerStatsProcessor.java @@ -16,6 +16,8 @@ package com.android.server.power.stats.processor; +import android.annotation.Nullable; +import android.os.BatteryConsumer; import android.util.ArraySet; import android.util.Log; @@ -23,6 +25,7 @@ import com.android.internal.os.CpuScalingPolicies; import com.android.internal.os.PowerProfile; import com.android.internal.os.PowerStats; import com.android.server.power.stats.format.CpuPowerStatsLayout; +import com.android.server.power.stats.format.WakelockPowerStatsLayout; import java.util.ArrayList; import java.util.Arrays; @@ -73,6 +76,11 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { // Temp array for retrieval of UID power stats, to avoid repeated allocations private long[] mTmpUidStatsArray; + private PowerStats.Descriptor mWakelockDescriptor; + private WakelockPowerStatsLayout mWakelockPowerStatsLayout; + private long[] mTmpWakelockDeviceStats; + private long[] mTmpWakelockUidStats; + CpuPowerStatsProcessor(PowerProfile powerProfile, CpuScalingPolicies scalingPolicies) { mCpuScalingPolicies = scalingPolicies; mCpuScalingStepCount = scalingPolicies.getScalingStepCount(); @@ -109,6 +117,8 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { mTmpDeviceStatsArray = new long[descriptor.statsArrayLength]; mTmpUidStatsArray = new long[descriptor.uidStatsArrayLength]; + + mWakelockDescriptor = null; } /** @@ -174,7 +184,9 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { } estimatePowerByScalingStep(intermediates); - estimatePowerByDeviceState(stats, intermediates); + + PowerComponentAggregatedPowerStats wakelockStats = getWakelockStats(stats); + estimatePowerByDeviceState(stats, intermediates, wakelockStats); combineDeviceStateEstimates(); ArrayList<Integer> uids = new ArrayList<>(); @@ -182,13 +194,45 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { if (!uids.isEmpty()) { for (int uid : uids) { for (int i = 0; i < mPlan.uidStateEstimates.size(); i++) { - estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(i)); + estimateUidPowerConsumption(stats, uid, mPlan.uidStateEstimates.get(i), + wakelockStats); } } } mPlan.resetIntermediates(); } + @Nullable + private PowerComponentAggregatedPowerStats getWakelockStats( + PowerComponentAggregatedPowerStats stats) { + // Wakelock power estimates are only relevant when the CPU power estimates are derived from + // EnergyConsumers. + if (mStatsLayout.getEnergyConsumerCount() == 0) { + return null; + } + + PowerComponentAggregatedPowerStats wakelockStats = + stats.getAggregatedPowerStats().getPowerComponentStats( + BatteryConsumer.POWER_COMPONENT_WAKELOCK); + if (wakelockStats == null) { + return null; + } + + PowerStats.Descriptor descriptor = wakelockStats.getPowerStatsDescriptor(); + if (descriptor == null) { + return null; + } + + if (mWakelockDescriptor == null || !mWakelockDescriptor.equals(descriptor)) { + mWakelockDescriptor = descriptor; + mWakelockPowerStatsLayout = new WakelockPowerStatsLayout(mWakelockDescriptor); + mTmpWakelockDeviceStats = new long[mWakelockDescriptor.statsArrayLength]; + mTmpWakelockUidStats = new long[mWakelockDescriptor.uidStatsArrayLength]; + } + + return wakelockStats; + } + /* * Populate data structures (two maps) needed to use power rail data, aka energy consumers, * to attribute power usage to apps. @@ -345,7 +389,8 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { } private void estimatePowerByDeviceState(PowerComponentAggregatedPowerStats stats, - Intermediates intermediates) { + Intermediates intermediates, + @Nullable PowerComponentAggregatedPowerStats wakelockStats) { int cpuScalingStepCount = mStatsLayout.getCpuScalingStepCount(); int powerBracketCount = mStatsLayout.getCpuPowerBracketCount(); int[] scalingStepToBracketMap = mStatsLayout.getScalingStepToPowerBracketMap(); @@ -382,6 +427,15 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { for (int i = deviceStatsIntermediates.powerByBracket.length - 1; i >= 0; i--) { power += deviceStatsIntermediates.powerByBracket[i]; } + + if (wakelockStats != null) { + wakelockStats.getDeviceStats(mTmpWakelockDeviceStats, + deviceStateEstimation.stateValues); + double wakelockPowerEstimate = mWakelockPowerStatsLayout.getDevicePowerEstimate( + mTmpWakelockDeviceStats); + power = Math.max(0, power - wakelockPowerEstimate); + } + deviceStatsIntermediates.power = power; mStatsLayout.setDevicePowerEstimate(mTmpDeviceStatsArray, power); stats.setDeviceStats(deviceStateEstimation.stateValues, mTmpDeviceStatsArray); @@ -454,7 +508,8 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { } private void estimateUidPowerConsumption(PowerComponentAggregatedPowerStats stats, int uid, - UidStateEstimate uidStateEstimate) { + UidStateEstimate uidStateEstimate, + @Nullable PowerComponentAggregatedPowerStats wakelockStats) { CombinedDeviceStateEstimate combinedDeviceStateEstimate = uidStateEstimate.combinedDeviceStateEstimate; DeviceStatsIntermediates cdsIntermediates = @@ -482,6 +537,14 @@ class CpuPowerStatsProcessor extends PowerStatsProcessor { / cdsIntermediates.timeByBracket[bracket]; } + if (wakelockStats != null) { + wakelockStats.getUidStats(mTmpWakelockUidStats, uid, + proportionalEstimate.stateValues); + double wakelockPowerEstimate = mWakelockPowerStatsLayout.getUidPowerEstimate( + mTmpWakelockUidStats); + power = Math.max(0, power - wakelockPowerEstimate); + } + mStatsLayout.setUidPowerEstimate(mTmpUidStatsArray, power); stats.setUidStats(uid, proportionalEstimate.stateValues, mTmpUidStatsArray); } diff --git a/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java b/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java index 2ba4a5254c5a..25d50f7a045b 100644 --- a/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java +++ b/services/core/java/com/android/server/power/stats/processor/MultiStatePowerAttributor.java @@ -35,6 +35,7 @@ import com.android.server.power.stats.PowerStatsStore; import com.android.server.power.stats.PowerStatsUidResolver; import java.util.List; +import java.util.function.DoubleSupplier; public class MultiStatePowerAttributor implements PowerAttributor { private static final String TAG = "MultiStatePowerAttributor"; @@ -48,10 +49,11 @@ public class MultiStatePowerAttributor implements PowerAttributor { // attribution isolates UIDs are supposed to be long forgotten. public MultiStatePowerAttributor(Context context, PowerStatsStore powerStatsStore, @NonNull PowerProfile powerProfile, @NonNull CpuScalingPolicies cpuScalingPolicies, + @NonNull DoubleSupplier batteryCapacitySupplier, @NonNull PowerStatsUidResolver powerStatsUidResolver) { this(powerStatsStore, new PowerStatsAggregator( createAggregatedPowerStatsConfig(context, powerProfile, cpuScalingPolicies, - powerStatsUidResolver))); + batteryCapacitySupplier, powerStatsUidResolver))); } @VisibleForTesting @@ -62,13 +64,14 @@ public class MultiStatePowerAttributor implements PowerAttributor { mPowerStatsStore.addSectionReader( new AggregatedPowerStatsSection.Reader(mPowerStatsAggregator.getConfig())); mPowerStatsExporter = new PowerStatsExporter(mPowerStatsStore, mPowerStatsAggregator); + setPowerComponentSupported(BatteryConsumer.POWER_COMPONENT_BASE, true); } private static AggregatedPowerStatsConfig createAggregatedPowerStatsConfig(Context context, PowerProfile powerProfile, CpuScalingPolicies cpuScalingPolicies, - PowerStatsUidResolver powerStatsUidResolver) { + DoubleSupplier batteryCapacitySupplier, PowerStatsUidResolver powerStatsUidResolver) { AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig(); - config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU) + config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_BASE) .trackDeviceStates( AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN) @@ -76,6 +79,21 @@ public class MultiStatePowerAttributor implements PowerAttributor { AggregatedPowerStatsConfig.STATE_POWER, AggregatedPowerStatsConfig.STATE_SCREEN, AggregatedPowerStatsConfig.STATE_PROCESS_STATE) + .setProcessorSupplier(() -> new BasePowerStatsProcessor(batteryCapacitySupplier)); + + config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WAKELOCK) + .trackDeviceStates( + AggregatedPowerStatsConfig.STATE_POWER, + AggregatedPowerStatsConfig.STATE_SCREEN) + .trackUidStates( + AggregatedPowerStatsConfig.STATE_POWER, + AggregatedPowerStatsConfig.STATE_SCREEN, + AggregatedPowerStatsConfig.STATE_PROCESS_STATE) + .setProcessorSupplier( + () -> new WakelockPowerStatsProcessor(powerProfile)); + + config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU, + BatteryConsumer.POWER_COMPONENT_WAKELOCK) .setProcessorSupplier( () -> new CpuPowerStatsProcessor(powerProfile, cpuScalingPolicies)); diff --git a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java index d04c5baf921f..d4f8fd92fc6c 100644 --- a/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java +++ b/services/core/java/com/android/server/power/stats/processor/PowerComponentAggregatedPowerStats.java @@ -125,6 +125,10 @@ class PowerComponentAggregatedPowerStats { mProcessor.noteStateChange(this, item); } + public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) { + mProcessor.noteBatteryLevel(batteryLevel, batteryChargeUah, timestampMs); + } + void setState(@AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) { if (mDeviceStats == null) { @@ -163,6 +167,11 @@ class PowerComponentAggregatedPowerStats { void setUidState(int uid, @AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) { + mProcessor.setUidState(this, uid, stateId, state, timestampMs); + } + + void setProcessedUidState(int uid, @AggregatedPowerStatsConfig.TrackedState int stateId, + int state, long timestampMs) { if (!mUidStateConfig[stateId].isTracked()) { return; } diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java index 32c1056908d5..dcdd3bd8b3fa 100644 --- a/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java +++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsAggregator.java @@ -53,7 +53,11 @@ public class PowerStatsAggregator { return mAggregatedPowerStatsConfig; } - void setPowerComponentEnabled(int powerComponentId, boolean enabled) { + /** + * Marks the power component as enabled for PowerStats aggregation + */ + @VisibleForTesting + public void setPowerComponentEnabled(int powerComponentId, boolean enabled) { synchronized (this) { if (mStats != null) { mStats = null; @@ -81,23 +85,23 @@ public class PowerStatsAggregator { mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig, mEnabledComponents); } - mStats.start(startTimeMs); - - boolean clockUpdateAdded = false; + boolean startedSession = false; long baseTime = startTimeMs > 0 ? startTimeMs : UNINITIALIZED; long lastTime = 0; int lastStates = 0xFFFFFFFF; int lastStates2 = 0xFFFFFFFF; + int lastBatteryLevel = 0; try (BatteryStatsHistoryIterator iterator = history.iterate(startTimeMs, endTimeMs)) { while (iterator.hasNext()) { BatteryStats.HistoryItem item = iterator.next(); - if (!clockUpdateAdded) { + if (!startedSession) { + mStats.start(item.time); mStats.addClockUpdate(item.time, item.currentTime); if (baseTime == UNINITIALIZED) { baseTime = item.time; } - clockUpdateAdded = true; + startedSession = true; } else if (item.cmd == BatteryStats.HistoryItem.CMD_CURRENT_TIME || item.cmd == BatteryStats.HistoryItem.CMD_RESET) { mStats.addClockUpdate(item.time, item.currentTime); @@ -105,6 +109,12 @@ public class PowerStatsAggregator { lastTime = item.time; + if (item.batteryLevel != lastBatteryLevel) { + mStats.noteBatteryLevel(item.batteryLevel, item.batteryChargeUah, + item.time); + lastBatteryLevel = item.batteryLevel; + } + int batteryState = (item.states & BatteryStats.HistoryItem.STATE_BATTERY_PLUGGED_FLAG) != 0 ? AggregatedPowerStatsConfig.POWER_STATE_OTHER diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java index fab87d6684e1..c7ad5641806c 100644 --- a/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java +++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsExporter.java @@ -28,6 +28,7 @@ import com.android.internal.os.BatteryStatsHistory; import com.android.internal.os.PowerStats; import com.android.server.power.stats.PowerStatsSpan; import com.android.server.power.stats.PowerStatsStore; +import com.android.server.power.stats.format.BasePowerStatsLayout; import com.android.server.power.stats.format.PowerStatsLayout; import java.util.ArrayList; @@ -45,6 +46,13 @@ class PowerStatsExporter { private final PowerStatsAggregator mPowerStatsAggregator; private final long mBatterySessionTimeSpanSlackMillis; private static final long BATTERY_SESSION_TIME_SPAN_SLACK_MILLIS = TimeUnit.MINUTES.toMillis(2); + private static final BasePowerStatsLayout sBasePowerStatsLayout = new BasePowerStatsLayout(); + + private static class BatteryLevelInfo { + public double batteryDischargePct; + public double batteryDischargeMah; + public long batteryDischargeDurationMs; + } PowerStatsExporter(PowerStatsStore powerStatsStore, PowerStatsAggregator powerStatsAggregator) { this(powerStatsStore, powerStatsAggregator, BATTERY_SESSION_TIME_SPAN_SLACK_MILLIS); @@ -145,6 +153,8 @@ class PowerStatsExporter { PowerStatsLayout layout = new PowerStatsLayout(descriptor); long[] deviceStats = new long[descriptor.statsArrayLength]; + BatteryLevelInfo batteryLevelInfo = new BatteryLevelInfo(); + for (int screenState = 0; screenState < BatteryConsumer.SCREEN_STATE_COUNT; screenState++) { if (batteryUsageStatsBuilder.isScreenStateDataNeeded()) { if (screenState == BatteryConsumer.SCREEN_STATE_UNSPECIFIED) { @@ -159,12 +169,12 @@ class PowerStatsExporter { if (powerState != BatteryConsumer.POWER_STATE_UNSPECIFIED) { populateAggregatedBatteryConsumer(batteryUsageStatsBuilder, powerComponentStats, - layout, deviceStats, screenState, powerState); + layout, deviceStats, batteryLevelInfo, screenState, powerState); } } else if (powerState == BatteryConsumer.POWER_STATE_BATTERY) { populateAggregatedBatteryConsumer(batteryUsageStatsBuilder, powerComponentStats, - layout, deviceStats, screenState, powerState); + layout, deviceStats, batteryLevelInfo, screenState, powerState); } } } @@ -172,14 +182,20 @@ class PowerStatsExporter { populateBatteryConsumers(batteryUsageStatsBuilder, powerComponentStats, layout); } + + populateBatteryLevelInfo(batteryUsageStatsBuilder, batteryLevelInfo); } private void populateAggregatedBatteryConsumer( BatteryUsageStats.Builder batteryUsageStatsBuilder, PowerComponentAggregatedPowerStats powerComponentStats, PowerStatsLayout layout, - long[] deviceStats, @BatteryConsumer.ScreenState int screenState, + long[] deviceStats, BatteryLevelInfo batteryLevelInfo, + @BatteryConsumer.ScreenState int screenState, @BatteryConsumer.PowerState int powerState) { int powerComponentId = powerComponentStats.powerComponentId; + boolean hasBatteryLevelProperties = powerComponentId == BatteryConsumer.POWER_COMPONENT_BASE + && powerState == BatteryConsumer.POWER_STATE_BATTERY; + double[] totalPower = new double[1]; MultiStateStats.States.forEachTrackedStateCombination( powerComponentStats.getConfig().getDeviceStateConfig(), @@ -193,6 +209,10 @@ class PowerStatsExporter { } totalPower[0] += layout.getDevicePowerEstimate(deviceStats); + + if (hasBatteryLevelProperties) { + gatherBatteryLevelInfo(batteryLevelInfo, deviceStats); + } }); AggregateBatteryConsumer.Builder deviceScope = @@ -208,6 +228,26 @@ class PowerStatsExporter { BatteryConsumer.POWER_MODEL_UNDEFINED); } + private void gatherBatteryLevelInfo(BatteryLevelInfo batteryLevelInfo, long[] deviceStats) { + batteryLevelInfo.batteryDischargePct += + sBasePowerStatsLayout.getBatteryDischargePercent(deviceStats); + batteryLevelInfo.batteryDischargeMah += + sBasePowerStatsLayout.getBatteryDischargeUah(deviceStats) / 1000.0; + batteryLevelInfo.batteryDischargeDurationMs += + sBasePowerStatsLayout.getBatteryDischargeDuration(deviceStats); + } + + private void populateBatteryLevelInfo(BatteryUsageStats.Builder builder, + BatteryLevelInfo batteryLevelInfo) { + builder.setDischargePercentage((int) Math.round(batteryLevelInfo.batteryDischargePct)) + .setDischargedPowerRange(batteryLevelInfo.batteryDischargeMah, + batteryLevelInfo.batteryDischargeMah) + .setDischargeDurationMs(batteryLevelInfo.batteryDischargeDurationMs) + .getAggregateBatteryConsumerBuilder( + BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE) + .setConsumedPower(batteryLevelInfo.batteryDischargeMah); + } + private void populateBatteryConsumers( BatteryUsageStats.Builder batteryUsageStatsBuilder, PowerComponentAggregatedPowerStats powerComponentStats, @@ -216,9 +256,16 @@ class PowerStatsExporter { PowerStats.Descriptor descriptor = powerComponentStats.getPowerStatsDescriptor(); long[] uidStats = new long[descriptor.uidStatsArrayLength]; - boolean breakDownByProcState = batteryUsageStatsBuilder.isProcessStateDataNeeded() - && powerComponent - .getUidStateConfig()[AggregatedPowerStatsConfig.STATE_PROCESS_STATE].isTracked(); + boolean breakDownByProcState; + if (powerComponent.getPowerComponentId() == BatteryConsumer.POWER_COMPONENT_BASE) { + breakDownByProcState = true; + } else if (batteryUsageStatsBuilder.isProcessStateDataNeeded()) { + breakDownByProcState = powerComponent + .getUidStateConfig()[AggregatedPowerStatsConfig.STATE_PROCESS_STATE] + .isTracked(); + } else { + breakDownByProcState = false; + } ArrayList<Integer> uids = new ArrayList<>(); powerComponentStats.collectUids(uids); @@ -263,12 +310,15 @@ class PowerStatsExporter { powerComponentStats.powerComponentId; double[] powerByProcState = new double[breakDownByProcState ? BatteryConsumer.PROCESS_STATE_COUNT : 1]; + long[] durationByProcState = + new long[breakDownByProcState ? BatteryConsumer.PROCESS_STATE_COUNT : 1]; double powerAllApps = 0; for (int uid : uids) { UidBatteryConsumer.Builder builder = batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uid); Arrays.fill(powerByProcState, 0); + Arrays.fill(durationByProcState, 0); MultiStateStats.States.forEachTrackedStateCombination( powerComponent.getUidStateConfig(), @@ -282,6 +332,7 @@ class PowerStatsExporter { } double power = layout.getUidPowerEstimate(uidStats); + long duration = layout.getUidUsageDuration(uidStats); if (breakDownByProcState) { int procState = states[AggregatedPowerStatsConfig.STATE_PROCESS_STATE]; // There is a difference in how PowerComponentAggregatedPowerStats @@ -296,8 +347,10 @@ class PowerStatsExporter { procState = BatteryConsumer.PROCESS_STATE_BACKGROUND; } powerByProcState[procState] += power; + durationByProcState[procState] += duration; } powerByProcState[BatteryConsumer.PROCESS_STATE_UNSPECIFIED] += power; + durationByProcState[BatteryConsumer.PROCESS_STATE_UNSPECIFIED] += duration; }); int resultScreenState = batteryUsageStatsBuilder.isScreenStateDataNeeded() @@ -306,12 +359,16 @@ class PowerStatsExporter { ? powerState : BatteryConsumer.POWER_STATE_UNSPECIFIED; for (int procState = 0; procState < powerByProcState.length; procState++) { double power = powerByProcState[procState]; - if (power == 0) { + long duration = durationByProcState[procState]; + if (power == 0 && duration == 0) { continue; } BatteryConsumer.Key key = builder.getKey(powerComponentId, procState, resultScreenState, resultPowerState); - builder.addConsumedPower(key, power, BatteryConsumer.POWER_MODEL_UNDEFINED); + if (key != null) { + builder.addConsumedPower(key, power, BatteryConsumer.POWER_MODEL_UNDEFINED); + builder.addUsageDurationMillis(key, duration); + } } if (resultScreenState != BatteryConsumer.SCREEN_STATE_UNSPECIFIED diff --git a/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java index 838fc628ce95..c1a5414404bb 100644 --- a/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java +++ b/services/core/java/com/android/server/power/stats/processor/PowerStatsProcessor.java @@ -55,6 +55,14 @@ abstract class PowerStatsProcessor { BatteryStats.HistoryItem item) { } + public void noteBatteryLevel(int batteryLevel, int batteryChargeUah, long timestampMs) { + } + + public void setUidState(PowerComponentAggregatedPowerStats stats, int uid, + @AggregatedPowerStatsConfig.TrackedState int stateId, int state, long timestampMs) { + stats.setProcessedUidState(uid, stateId, state, timestampMs); + } + void addPowerStats(PowerComponentAggregatedPowerStats stats, PowerStats powerStats, long timestampMs) { stats.addProcessedPowerStats(powerStats, timestampMs); diff --git a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java index 67013ea65aa3..0bb028bce5af 100644 --- a/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java +++ b/services/core/java/com/android/server/power/stats/processor/SensorPowerStatsProcessor.java @@ -146,7 +146,10 @@ class SensorPowerStatsProcessor extends PowerStatsProcessor { return; } - if (item.eventTag == null || item.eventTag.string == null + if (((item.eventCode & BatteryStats.HistoryItem.EVENT_TYPE_MASK) + != BatteryStats.HistoryItem.EVENT_STATE_CHANGE) + || item.eventTag == null + || item.eventTag.string == null || !item.eventTag.string.startsWith(SENSOR_EVENT_TAG_PREFIX)) { return; } diff --git a/services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java b/services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java new file mode 100644 index 000000000000..0cb4991c1673 --- /dev/null +++ b/services/core/java/com/android/server/power/stats/processor/WakelockPowerStatsProcessor.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.server.power.stats.processor; + +import com.android.internal.os.PowerProfile; +import com.android.internal.os.PowerStats; +import com.android.server.power.stats.UsageBasedPowerEstimator; +import com.android.server.power.stats.format.WakelockPowerStatsLayout; + +class WakelockPowerStatsProcessor extends PowerStatsProcessor { + private static final WakelockPowerStatsLayout sStatsLayout = new WakelockPowerStatsLayout(); + private final UsageBasedPowerEstimator mPowerEstimator; + + WakelockPowerStatsProcessor(PowerProfile powerProfile) { + mPowerEstimator = new UsageBasedPowerEstimator( + powerProfile.getAveragePower(PowerProfile.POWER_CPU_IDLE)); + } + + @Override + void addPowerStats(PowerComponentAggregatedPowerStats stats, PowerStats powerStats, + long timestampMs) { + long durationMs = sStatsLayout.getUsageDuration(powerStats.stats); + if (durationMs == 0) { + return; + } + + double power = mPowerEstimator.calculatePower(durationMs); + sStatsLayout.setDevicePowerEstimate(powerStats.stats, power); + + long totalDuration = 0; + for (int i = powerStats.uidStats.size() - 1; i >= 0; i--) { + totalDuration += sStatsLayout.getUidUsageDuration(powerStats.uidStats.valueAt(i)); + } + + if (totalDuration != 0) { + for (int i = powerStats.uidStats.size() - 1; i >= 0; i--) { + long[] uidStats = powerStats.uidStats.valueAt(i); + sStatsLayout.setUidPowerEstimate(uidStats, + power * sStatsLayout.getUidUsageDuration(uidStats) / totalDuration); + } + } + + super.addPowerStats(stats, powerStats, timestampMs); + } + + @Override + void finish(PowerComponentAggregatedPowerStats stats, long timestampMs) { + // Nothing to do. Power attribution has already been done in `addPowerStats` + } +} diff --git a/services/core/java/com/android/server/security/AttestationVerificationManagerService.java b/services/core/java/com/android/server/security/AttestationVerificationManagerService.java index 55f85ea27c82..22a359bced86 100644 --- a/services/core/java/com/android/server/security/AttestationVerificationManagerService.java +++ b/services/core/java/com/android/server/security/AttestationVerificationManagerService.java @@ -17,10 +17,10 @@ package com.android.server.security; import static android.Manifest.permission.USE_ATTESTATION_VERIFICATION_SERVICE; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNSUPPORTED_PROFILE; import static android.security.attestationverification.AttestationVerificationManager.PROFILE_PEER_DEVICE; import static android.security.attestationverification.AttestationVerificationManager.PROFILE_SELF_TRUSTED; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_UNKNOWN; import android.annotation.NonNull; import android.annotation.Nullable; @@ -88,8 +88,8 @@ public class AttestationVerificationManagerService extends SystemService { public void verifyToken(VerificationToken token, ParcelDuration parcelDuration, AndroidFuture resultCallback) throws RemoteException { enforceUsePermission(); - // TODO(b/201696614): Implement - resultCallback.complete(RESULT_UNKNOWN); + + throw new UnsupportedOperationException(); } private void enforceUsePermission() { @@ -123,9 +123,9 @@ public class AttestationVerificationManagerService extends SystemService { AttestationProfile profile, int localBindingType, Bundle requirements, byte[] attestation, AndroidFuture<IVerificationResult> resultCallback) { IVerificationResult result = new IVerificationResult(); - // TODO(b/201696614): Implement result.token = null; - switch (profile.getAttestationProfileId()) { + int profileId = profile.getAttestationProfileId(); + switch (profileId) { case PROFILE_SELF_TRUSTED: Slog.d(TAG, "Verifying Self Trusted profile."); try { @@ -133,7 +133,7 @@ public class AttestationVerificationManagerService extends SystemService { AttestationVerificationSelfTrustedVerifierForTesting.getInstance() .verifyAttestation(localBindingType, requirements, attestation); } catch (Throwable t) { - result.resultCode = RESULT_FAILURE; + result.resultCode = FLAG_FAILURE_CERTS; } break; case PROFILE_PEER_DEVICE: @@ -142,8 +142,8 @@ public class AttestationVerificationManagerService extends SystemService { localBindingType, requirements, attestation); break; default: - Slog.d(TAG, "No profile found, defaulting."); - result.resultCode = RESULT_UNKNOWN; + Slog.e(TAG, "Profile [" + profileId + "] is not supported."); + result.resultCode = FLAG_FAILURE_UNSUPPORTED_PROFILE; } resultCallback.complete(result); } diff --git a/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java b/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java index 41e3d00f3924..dc1f93664f79 100644 --- a/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java +++ b/services/core/java/com/android/server/security/AttestationVerificationPeerDeviceVerifier.java @@ -16,11 +16,15 @@ package com.android.server.security; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_BOOT_STATE; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_KEYSTORE_REQUIREMENTS; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_PATCH_LEVEL_DIFF; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNKNOWN; import static android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE; import static android.security.attestationverification.AttestationVerificationManager.PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS; import static android.security.attestationverification.AttestationVerificationManager.PARAM_PUBLIC_KEY; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS; import static android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE; import static android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY; import static android.security.attestationverification.AttestationVerificationManager.localBindingTypeToString; @@ -35,10 +39,8 @@ import android.annotation.SuppressLint; import android.content.Context; import android.os.Build; import android.os.Bundle; -import android.security.attestationverification.AttestationVerificationManager; import android.security.attestationverification.AttestationVerificationManager.LocalBindingType; import android.util.IndentingPrintWriter; -import android.util.Log; import android.util.Slog; import com.android.internal.R; @@ -100,7 +102,6 @@ import java.util.Set; */ class AttestationVerificationPeerDeviceVerifier { private static final String TAG = "AVF"; - private static final boolean DEBUG = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.VERBOSE); private static final int MAX_PATCH_AGE_MONTHS = 12; /** @@ -188,32 +189,24 @@ class AttestationVerificationPeerDeviceVerifier { @NonNull byte[] attestation, @NonNull MyDumpData dumpData) { if (mCertificateFactory == null) { - debugVerboseLog("Unable to access CertificateFactory"); - return RESULT_FAILURE; + Slog.e(TAG, "Unable to access CertificateFactory"); + return FLAG_FAILURE_CERTS; } dumpData.mCertificationFactoryAvailable = true; if (mCertPathValidator == null) { - debugVerboseLog("Unable to access CertPathValidator"); - return RESULT_FAILURE; + Slog.e(TAG, "Unable to access CertPathValidator"); + return FLAG_FAILURE_CERTS; } dumpData.mCertPathValidatorAvailable = true; - - // Check if the provided local binding type is supported and if the provided requirements - // "match" the binding type. - if (!validateAttestationParameters(localBindingType, requirements)) { - return RESULT_FAILURE; - } - dumpData.mAttestationParametersOk = true; - // To provide the most information in the dump logs, we track the failure state but keep // verifying the rest of the attestation. For code safety, there are no transitions past - // here to set failed = false - boolean failed = false; + // here to set result = 0. + int result = 0; try { - // First: parse and validate the certificate chain. + // 1. parse and validate the certificate chain. final List<X509Certificate> certificateChain = getCertificates(attestation); // (returns void, but throws CertificateException and other similar Exceptions) validateCertificateChain(certificateChain); @@ -222,33 +215,38 @@ class AttestationVerificationPeerDeviceVerifier { final var leafCertificate = certificateChain.get(0); final var attestationExtension = fromCertificate(leafCertificate); - // Second: verify if the attestation satisfies the "peer device" profile. - if (!checkAttestationForPeerDeviceProfile(requirements, attestationExtension, - dumpData)) { - failed = true; + // 2. Check if the provided local binding type is supported and if the provided + // requirements "match" the binding type. + if (!validateAttestationParameters(localBindingType, requirements)) { + return FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS; } + dumpData.mAttestationParametersOk = true; - // Third: check if the attestation satisfies local binding requirements. + // 3. check if the attestation satisfies local binding requirements. if (!checkLocalBindingRequirements( leafCertificate, attestationExtension, localBindingType, requirements, dumpData)) { - failed = true; + result |= FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS; } + + // 4. verify if the attestation satisfies the "peer device" profile. + result |= checkAttestationForPeerDeviceProfile(requirements, attestationExtension, + dumpData); } catch (CertificateException | CertPathValidatorException | InvalidAlgorithmParameterException | IOException e) { - // Catch all non-RuntimeExpceptions (all of these are thrown by either getCertificates() + // Catch all non-RuntimeExceptions (all of these are thrown by either getCertificates() // or validateCertificateChain() or // AndroidKeystoreAttestationVerificationAttributes.fromCertificate()) - debugVerboseLog("Unable to parse/validate Android Attestation certificate(s)", e); - failed = true; + Slog.e(TAG, "Unable to parse/validate Android Attestation certificate(s)", e); + result = FLAG_FAILURE_CERTS; } catch (RuntimeException e) { - // Catch everyting else (RuntimeExpcetions), since we don't want to throw any exceptions - // out of this class/method. - debugVerboseLog("Unexpected error", e); - failed = true; + // Catch everything else (RuntimeExceptions), since we don't want to throw any + // exceptions out of this class/method. + Slog.e(TAG, "Unexpected error", e); + result = FLAG_FAILURE_UNKNOWN; } - return failed ? RESULT_FAILURE : RESULT_SUCCESS; + return result; } @NonNull @@ -270,22 +268,22 @@ class AttestationVerificationPeerDeviceVerifier { private boolean validateAttestationParameters( @LocalBindingType int localBindingType, @NonNull Bundle requirements) { if (localBindingType != TYPE_PUBLIC_KEY && localBindingType != TYPE_CHALLENGE) { - debugVerboseLog("Binding type is not supported: " + localBindingType); + Slog.e(TAG, "Binding type is not supported: " + localBindingType); return false; } if (requirements.size() < 1) { - debugVerboseLog("At least 1 requirement is required."); + Slog.e(TAG, "At least 1 requirement is required."); return false; } if (localBindingType == TYPE_PUBLIC_KEY && !requirements.containsKey(PARAM_PUBLIC_KEY)) { - debugVerboseLog("Requirements does not contain key: " + PARAM_PUBLIC_KEY); + Slog.e(TAG, "Requirements does not contain key: " + PARAM_PUBLIC_KEY); return false; } if (localBindingType == TYPE_CHALLENGE && !requirements.containsKey(PARAM_CHALLENGE)) { - debugVerboseLog("Requirements does not contain key: " + PARAM_CHALLENGE); + Slog.e(TAG, "Requirements does not contain key: " + PARAM_CHALLENGE); return false; } @@ -296,7 +294,7 @@ class AttestationVerificationPeerDeviceVerifier { throws CertificateException, CertPathValidatorException, InvalidAlgorithmParameterException { if (certificates.size() < 2) { - debugVerboseLog("Certificate chain less than 2 in size."); + Slog.e(TAG, "Certificate chain less than 2 in size."); throw new CertificateException("Certificate chain less than 2 in size."); } @@ -355,7 +353,7 @@ class AttestationVerificationPeerDeviceVerifier { final boolean publicKeyMatches = checkPublicKey( leafCertificate, requirements.getByteArray(PARAM_PUBLIC_KEY)); if (!publicKeyMatches) { - debugVerboseLog( + Slog.e(TAG, "Provided public key does not match leaf certificate public key."); return false; } @@ -366,7 +364,7 @@ class AttestationVerificationPeerDeviceVerifier { final boolean attestationChallengeMatches = checkAttestationChallenge( attestationAttributes, requirements.getByteArray(PARAM_CHALLENGE)); if (!attestationChallengeMatches) { - debugVerboseLog( + Slog.e(TAG, "Provided challenge does not match leaf certificate challenge."); return false; } @@ -386,7 +384,7 @@ class AttestationVerificationPeerDeviceVerifier { final boolean ownedBySystem = checkOwnedBySystem( leafCertificate, attestationAttributes); if (!ownedBySystem) { - debugVerboseLog("Certificate public key is not owned by the AndroidSystem."); + Slog.e(TAG, "Certificate public key is not owned by the AndroidSystem."); return false; } dumpData.mSystemOwned = true; @@ -401,67 +399,67 @@ class AttestationVerificationPeerDeviceVerifier { return true; } - private boolean checkAttestationForPeerDeviceProfile( + private int checkAttestationForPeerDeviceProfile( @NonNull Bundle requirements, @NonNull AndroidKeystoreAttestationVerificationAttributes attestationAttributes, MyDumpData dumpData) { - boolean result = true; + int result = 0; // Checks for support of Keymaster 4. if (attestationAttributes.getAttestationVersion() < 3) { - debugVerboseLog("Attestation version is not at least 3 (Keymaster 4)."); - result = false; + Slog.e(TAG, "Attestation version is not at least 3 (Keymaster 4)."); + result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS; } else { dumpData.mAttestationVersionAtLeast3 = true; } // Checks for support of Keymaster 4. if (attestationAttributes.getKeymasterVersion() < 4) { - debugVerboseLog("Keymaster version is not at least 4."); - result = false; + Slog.e(TAG, "Keymaster version is not at least 4."); + result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS; } else { dumpData.mKeymasterVersionAtLeast4 = true; } // First two characters are Android OS version. if (attestationAttributes.getKeyOsVersion() < 100000) { - debugVerboseLog("Android OS version is not 10+."); - result = false; + Slog.e(TAG, "Android OS version is not 10+."); + result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS; } else { dumpData.mOsVersionAtLeast10 = true; } if (!attestationAttributes.isAttestationHardwareBacked()) { - debugVerboseLog("Key is not HW backed."); - result = false; + Slog.e(TAG, "Key is not HW backed."); + result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS; } else { dumpData.mKeyHwBacked = true; } if (!attestationAttributes.isKeymasterHardwareBacked()) { - debugVerboseLog("Keymaster is not HW backed."); - result = false; + Slog.e(TAG, "Keymaster is not HW backed."); + result |= FLAG_FAILURE_KEYSTORE_REQUIREMENTS; } else { dumpData.mKeymasterHwBacked = true; } if (attestationAttributes.getVerifiedBootState() != VERIFIED) { - debugVerboseLog("Boot state not Verified."); - result = false; + Slog.e(TAG, "Boot state not Verified."); + result |= FLAG_FAILURE_BOOT_STATE; } else { dumpData.mBootStateIsVerified = true; } try { if (!attestationAttributes.isVerifiedBootLocked()) { - debugVerboseLog("Verified boot state is not locked."); - result = false; + Slog.e(TAG, "Verified boot state is not locked."); + result |= FLAG_FAILURE_BOOT_STATE; } else { dumpData.mVerifiedBootStateLocked = true; } } catch (IllegalStateException e) { - debugVerboseLog("VerifiedBootLocked is not set.", e); - result = false; + Slog.e(TAG, "VerifiedBootLocked is not set.", e); + result = FLAG_FAILURE_BOOT_STATE; } int maxPatchLevelDiffMonths = requirements.getInt(PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS, @@ -470,8 +468,8 @@ class AttestationVerificationPeerDeviceVerifier { // Patch level integer YYYYMM is expected to be within maxPatchLevelDiffMonths of today. if (!isValidPatchLevel(attestationAttributes.getKeyOsPatchLevel(), maxPatchLevelDiffMonths)) { - debugVerboseLog("OS patch level is not within valid range."); - result = false; + Slog.e(TAG, "OS patch level is not within valid range."); + result |= FLAG_FAILURE_PATCH_LEVEL_DIFF; } else { dumpData.mOsPatchLevelInRange = true; } @@ -479,24 +477,24 @@ class AttestationVerificationPeerDeviceVerifier { // Patch level integer YYYYMMDD is expected to be within maxPatchLevelDiffMonths of today. if (!isValidPatchLevel(attestationAttributes.getKeyBootPatchLevel(), maxPatchLevelDiffMonths)) { - debugVerboseLog("Boot patch level is not within valid range."); - result = false; + Slog.e(TAG, "Boot patch level is not within valid range."); + result |= FLAG_FAILURE_PATCH_LEVEL_DIFF; } else { dumpData.mKeyBootPatchLevelInRange = true; } if (!isValidPatchLevel(attestationAttributes.getKeyVendorPatchLevel(), maxPatchLevelDiffMonths)) { - debugVerboseLog("Vendor patch level is not within valid range."); - result = false; + Slog.e(TAG, "Vendor patch level is not within valid range."); + result |= FLAG_FAILURE_PATCH_LEVEL_DIFF; } else { dumpData.mKeyVendorPatchLevelInRange = true; } if (!isValidPatchLevel(attestationAttributes.getKeyBootPatchLevel(), maxPatchLevelDiffMonths)) { - debugVerboseLog("Boot patch level is not within valid range."); - result = false; + Slog.e(TAG, "Boot patch level is not within valid range."); + result |= FLAG_FAILURE_PATCH_LEVEL_DIFF; } else { dumpData.mKeyBootPatchLevelInRange = true; } @@ -522,7 +520,7 @@ class AttestationVerificationPeerDeviceVerifier { final Set<String> ownerPackages = attestationAttributes.getApplicationPackageNameVersion().keySet(); if (!ANDROID_SYSTEM_PACKAGE_NAME_SET.equals(ownerPackages)) { - debugVerboseLog("Owner is not system, packages=" + ownerPackages); + Slog.e(TAG, "Owner is not system, packages=" + ownerPackages); return false; } @@ -548,7 +546,7 @@ class AttestationVerificationPeerDeviceVerifier { localPatchDate = LocalDate.parse(Build.VERSION.SECURITY_PATCH); } } catch (Throwable t) { - debugVerboseLog("Build.VERSION.SECURITY_PATCH: " + Slog.e(TAG, "Build.VERSION.SECURITY_PATCH: " + Build.VERSION.SECURITY_PATCH + " is not in format YYYY-MM-DD"); return false; } @@ -563,7 +561,7 @@ class AttestationVerificationPeerDeviceVerifier { // Convert remote patch dates to LocalDate. String remoteDeviceDateStr = String.valueOf(patchLevel); if (remoteDeviceDateStr.length() != 6 && remoteDeviceDateStr.length() != 8) { - debugVerboseLog("Patch level is not in format YYYYMM or YYYYMMDD"); + Slog.e(TAG, "Patch level is not in format YYYYMM or YYYYMMDD"); return false; } @@ -666,18 +664,6 @@ class AttestationVerificationPeerDeviceVerifier { } } - private static void debugVerboseLog(String str, Throwable t) { - if (DEBUG) { - Slog.v(TAG, str, t); - } - } - - private static void debugVerboseLog(String str) { - if (DEBUG) { - Slog.v(TAG, str); - } - } - /* Mutable data class for tracking dump data from verifications. */ private static class MyDumpData extends AttestationVerificationManagerService.DumpData { @@ -717,9 +703,7 @@ class AttestationVerificationPeerDeviceVerifier { @SuppressLint("WrongConstant") @Override public void dumpTo(IndentingPrintWriter writer) { - writer.println( - "Result: " + AttestationVerificationManager.verificationResultCodeToString( - mResult)); + writer.println("Result: " + mResult); if (!mCertificationFactoryAvailable) { writer.println("Certificate Factory Unavailable"); return; diff --git a/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java b/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java index 58df2bd982dc..5039f6f42ac3 100644 --- a/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java +++ b/services/core/java/com/android/server/security/AttestationVerificationSelfTrustedVerifierForTesting.java @@ -16,17 +16,15 @@ package com.android.server.security; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS; +import static android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS; import static android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE; -import static android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS; import static android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE; import android.annotation.NonNull; -import android.os.Build; import android.os.Bundle; import android.security.keystore.KeyGenParameterSpec; import android.security.keystore.KeyProperties; -import android.util.Log; import android.util.Slog; import com.android.internal.org.bouncycastle.asn1.ASN1InputStream; @@ -64,7 +62,6 @@ import java.util.Set; */ class AttestationVerificationSelfTrustedVerifierForTesting { private static final String TAG = "AVF"; - private static final boolean DEBUG = Build.IS_DEBUGGABLE && Log.isLoggable(TAG, Log.VERBOSE); // The OID for the extension Android Keymint puts into device-generated certificates. private static final String ANDROID_KEYMINT_KEY_DESCRIPTION_EXTENSION_OID = @@ -99,18 +96,6 @@ class AttestationVerificationSelfTrustedVerifierForTesting { return sAttestationVerificationSelfTrustedVerifier; } - private static void debugVerboseLog(String str, Throwable t) { - if (DEBUG) { - Slog.v(TAG, str, t); - } - } - - private static void debugVerboseLog(String str) { - if (DEBUG) { - Slog.v(TAG, str); - } - } - private AttestationVerificationSelfTrustedVerifierForTesting() throws Exception { mCertificateFactory = CertificateFactory.getInstance("X.509"); mCertPathValidator = CertPathValidator.getInstance("PKIX"); @@ -142,23 +127,42 @@ class AttestationVerificationSelfTrustedVerifierForTesting { certificates.add((X509Certificate) mCertificateFactory.generateCertificate(bis)); } } catch (CertificateException e) { - debugVerboseLog("Unable to parse certificates from attestation", e); - return RESULT_FAILURE; + Slog.e("Unable to parse certificates from attestation", e.getLocalizedMessage()); + return FLAG_FAILURE_CERTS; } - if (localBindingType == TYPE_CHALLENGE - && validateRequirements(requirements) - && checkLeafChallenge(requirements, certificates) - && verifyCertificateChain(certificates)) { - return RESULT_SUCCESS; + int result = 0; + + if (localBindingType != TYPE_CHALLENGE + || !validateRequirements(requirements)) { + Slog.e(TAG, "Local binding requirements verification failure." + localBindingType); + return FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS; + } + + // Verify challenge + byte[] challenge; + try { + challenge = getChallengeFromCert(certificates.get(0)); + } catch (Throwable t) { + Slog.e("Unable to parse challenge from certificate.", t.getLocalizedMessage()); + result |= FLAG_FAILURE_CERTS; + return result; + } + if (!Arrays.equals(requirements.getByteArray(PARAM_CHALLENGE), challenge)) { + Slog.e(TAG, "Self-Trusted validation failed; challenge mismatch."); + result |= FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS; } - return RESULT_FAILURE; + if (!verifyCertificateChain(certificates)) { + result |= FLAG_FAILURE_CERTS; + } + + return result; } private boolean verifyCertificateChain(List<X509Certificate> certificates) { if (certificates.size() < 2) { - debugVerboseLog("Certificate chain less than 2 in size."); + Slog.e(TAG, "Certificate chain less than 2 in size."); return false; } @@ -170,7 +174,7 @@ class AttestationVerificationSelfTrustedVerifierForTesting { validationParams.setRevocationEnabled(false); mCertPathValidator.validate(certificatePath, validationParams); } catch (Throwable t) { - debugVerboseLog("Invalid certificate chain", t); + Slog.e(TAG, "Invalid certificate chain", t); return false; } @@ -183,34 +187,16 @@ class AttestationVerificationSelfTrustedVerifierForTesting { private boolean validateRequirements(Bundle requirements) { if (requirements.size() != 1) { - debugVerboseLog("Requirements does not contain exactly 1 key."); + Slog.e(TAG, "Requirements does not contain exactly 1 key."); return false; } if (!requirements.containsKey(PARAM_CHALLENGE)) { - debugVerboseLog("Requirements does not contain key: " + PARAM_CHALLENGE); + Slog.e(TAG, "Requirements does not contain key: " + PARAM_CHALLENGE); return false; } return true; } - private boolean checkLeafChallenge(Bundle requirements, List<X509Certificate> certificates) { - // Verify challenge - byte[] challenge; - try { - challenge = getChallengeFromCert(certificates.get(0)); - } catch (Throwable t) { - debugVerboseLog("Unable to parse challenge from certificate.", t); - return false; - } - - if (Arrays.equals(requirements.getByteArray(PARAM_CHALLENGE), challenge)) { - return true; - } else { - debugVerboseLog("Self-Trusted validation failed; challenge mismatch."); - return false; - } - } - private byte[] getChallengeFromCert(@NonNull X509Certificate x509Certificate) throws CertificateEncodingException, IOException { Certificate certificate = Certificate.getInstance( diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java index c1e859ddcccf..517f631a0c1c 100644 --- a/services/core/java/com/android/server/wm/ActivityClientController.java +++ b/services/core/java/com/android/server/wm/ActivityClientController.java @@ -42,8 +42,8 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IMMERSIVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IMMERSIVE; import static com.android.server.wm.ActivityRecord.State.DESTROYED; import static com.android.server.wm.ActivityRecord.State.DESTROYING; import static com.android.server.wm.ActivityRecord.State.PAUSING; diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index ca93075f2925..5372abe970c7 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -127,19 +127,19 @@ import static android.window.TransitionInfo.FLAGS_IS_OCCLUDED_NO_ANIMATION; import static android.window.TransitionInfo.FLAG_IS_OCCLUDED; import static android.window.TransitionInfo.FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTAINERS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SWITCH; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTAINERS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SWITCH; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN; import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_ASPECT_RATIO; import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_FIXED_ORIENTATION; import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_SIZE_COMPAT_MODE; diff --git a/services/core/java/com/android/server/wm/ActivityRefresher.java b/services/core/java/com/android/server/wm/ActivityRefresher.java index dcc325eae702..5243a1069bed 100644 --- a/services/core/java/com/android/server/wm/ActivityRefresher.java +++ b/services/core/java/com/android/server/wm/ActivityRefresher.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.app.servertransaction.ActivityLifecycleItem.ON_PAUSE; import static android.app.servertransaction.ActivityLifecycleItem.ON_STOP; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; import android.annotation.NonNull; import android.app.servertransaction.RefreshCallbackItem; diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 2ba300a71e38..49380d4b8797 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -60,8 +60,8 @@ import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.window.TaskFragmentOperation.OP_TYPE_START_ACTIVITY_IN_TASK_FRAGMENT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import static com.android.server.pm.PackageArchiver.isArchivingEnabled; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_PERMISSIONS_REVIEW; diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index de95d1bfb5c3..dc960a02e6e5 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -71,12 +71,12 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT; import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DREAM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IMMERSIVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LOCKTASK; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DREAM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IMMERSIVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_LOCKTASK; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import static com.android.sdksandbox.flags.Flags.sandboxActivitySdkBasedContext; import static com.android.server.am.ActivityManagerService.STOCK_PM_FLAGS; import static com.android.server.am.ActivityManagerServiceDumpActivitiesProto.ROOT_WINDOW_CONTAINER; diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index 9a3ad2d85de6..4f71719006f5 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java @@ -52,8 +52,8 @@ import static android.view.Display.INVALID_DISPLAY; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import static com.android.server.wm.ActivityRecord.State.PAUSED; import static com.android.server.wm.ActivityRecord.State.PAUSING; import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS; diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index 90d33fbef748..932f26857105 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -88,9 +88,9 @@ import static com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpe import static com.android.internal.R.styleable.WindowAnimation_wallpaperIntraOpenExitAnimation; import static com.android.internal.R.styleable.WindowAnimation_wallpaperOpenEnterAnimation; import static com.android.internal.R.styleable.WindowAnimation_wallpaperOpenExitAnimation; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM; import static com.android.server.wm.AppTransitionProto.APP_TRANSITION_STATE; import static com.android.server.wm.AppTransitionProto.LAST_USED_APP_TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java index ab02d49e5f96..741eefae4462 100644 --- a/services/core/java/com/android/server/wm/AppTransitionController.java +++ b/services/core/java/com/android/server/wm/AppTransitionController.java @@ -57,8 +57,8 @@ import static android.view.WindowManager.TRANSIT_RELAUNCH; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT; import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_SNAPSHOT; diff --git a/services/core/java/com/android/server/wm/BLASTSyncEngine.java b/services/core/java/com/android/server/wm/BLASTSyncEngine.java index 4554b210e3fd..7deb6a8232be 100644 --- a/services/core/java/com/android/server/wm/BLASTSyncEngine.java +++ b/services/core/java/com/android/server/wm/BLASTSyncEngine.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SYNC_ENGINE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE; import static com.android.server.wm.WindowState.BLAST_TIMEOUT_DURATION; import android.annotation.NonNull; diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java index dd86a149d0a5..94cd2e64b057 100644 --- a/services/core/java/com/android/server/wm/BackNavigationController.java +++ b/services/core/java/com/android/server/wm/BackNavigationController.java @@ -27,7 +27,7 @@ import static android.view.WindowManager.TRANSIT_OLD_NONE; import static android.view.WindowManager.TRANSIT_PREPARE_BACK_NAVIGATION; import static android.view.WindowManager.TRANSIT_TO_BACK; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BACK_PREVIEW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BACK_PREVIEW; import static com.android.server.wm.BackNavigationProto.ANIMATION_IN_PROGRESS; import static com.android.server.wm.BackNavigationProto.ANIMATION_RUNNING; import static com.android.server.wm.BackNavigationProto.LAST_BACK_TYPE; diff --git a/services/core/java/com/android/server/wm/BlackFrame.java b/services/core/java/com/android/server/wm/BlackFrame.java index ba4ab7df8270..7d6cf0024b75 100644 --- a/services/core/java/com/android/server/wm/BlackFrame.java +++ b/services/core/java/com/android/server/wm/BlackFrame.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC; import android.graphics.Rect; import android.view.Surface.OutOfResourcesException; diff --git a/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java b/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java index 290e71d5b37d..4f0cbf9ca6bd 100644 --- a/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java +++ b/services/core/java/com/android/server/wm/CameraCompatFreeformPolicy.java @@ -42,7 +42,7 @@ import android.view.Surface; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.window.flags.Flags; /** @@ -159,7 +159,7 @@ final class CameraCompatFreeformPolicy implements CameraStateMonitor.CameraCompa : null; if (topActivity != null) { if (isActivityForCameraIdRefreshing(topActivity, cameraId)) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_STATES, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_STATES, "Display id=%d is notified that Camera %s is closed but activity is" + " still refreshing. Rescheduling an update.", mDisplayContent.mDisplayId, cameraId); diff --git a/services/core/java/com/android/server/wm/CameraStateMonitor.java b/services/core/java/com/android/server/wm/CameraStateMonitor.java index 8bfef6d5d218..3b6e30ab2a6d 100644 --- a/services/core/java/com/android/server/wm/CameraStateMonitor.java +++ b/services/core/java/com/android/server/wm/CameraStateMonitor.java @@ -15,7 +15,7 @@ */ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; diff --git a/services/core/java/com/android/server/wm/CompatModePackages.java b/services/core/java/com/android/server/wm/CompatModePackages.java index 44202a2ae58e..a63ae2e1b67e 100644 --- a/services/core/java/com/android/server/wm/CompatModePackages.java +++ b/services/core/java/com/android/server/wm/CompatModePackages.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.CompatScaleProvider.COMPAT_SCALE_MODE_SYSTEM_FIRST; diff --git a/services/core/java/com/android/server/wm/ContentRecorder.java b/services/core/java/com/android/server/wm/ContentRecorder.java index 7e7073c4a52c..bc33946ef618 100644 --- a/services/core/java/com/android/server/wm/ContentRecorder.java +++ b/services/core/java/com/android/server/wm/ContentRecorder.java @@ -23,7 +23,7 @@ import static android.view.ContentRecordingSession.RECORD_CONTENT_DISPLAY; import static android.view.ContentRecordingSession.RECORD_CONTENT_TASK; import static android.view.ViewProtoEnums.DISPLAY_STATE_OFF; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTENT_RECORDING; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/ContentRecordingController.java b/services/core/java/com/android/server/wm/ContentRecordingController.java index 283f819fc6ae..dd7675fb6442 100644 --- a/services/core/java/com/android/server/wm/ContentRecordingController.java +++ b/services/core/java/com/android/server/wm/ContentRecordingController.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTENT_RECORDING; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java b/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java index 3a2cffbe1d85..3dc035e62e58 100644 --- a/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java +++ b/services/core/java/com/android/server/wm/DeferredDisplayUpdater.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.view.WindowManager.TRANSIT_CHANGE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS; import static com.android.server.wm.ActivityTaskManagerService.POWER_MODE_REASON_CHANGE_DISPLAY; import static com.android.server.wm.utils.DisplayInfoOverrides.WM_OVERRIDE_FIELDS; import static com.android.server.wm.utils.DisplayInfoOverrides.copyDisplayInfoFields; diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java index c5643ea54623..a74b0063588a 100644 --- a/services/core/java/com/android/server/wm/Dimmer.java +++ b/services/core/java/com/android/server/wm/Dimmer.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DIMMER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; diff --git a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java index bc188959164d..298edaeaa6d2 100644 --- a/services/core/java/com/android/server/wm/DimmerAnimationHelper.java +++ b/services/core/java/com/android/server/wm/DimmerAnimationHelper.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DIMMER; import static com.android.server.wm.AlphaAnimationSpecProto.DURATION_MS; import static com.android.server.wm.AlphaAnimationSpecProto.FROM; import static com.android.server.wm.AlphaAnimationSpecProto.TO; diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java index ca5485e7c570..0416f74aa488 100644 --- a/services/core/java/com/android/server/wm/DisplayArea.java +++ b/services/core/java/com/android/server/wm/DisplayArea.java @@ -24,7 +24,7 @@ import static android.view.WindowManagerPolicyConstants.APPLICATION_LAYER; import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED; import static android.window.DisplayAreaOrganizer.FEATURE_WINDOW_TOKENS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.internal.util.Preconditions.checkState; import static com.android.server.wm.DisplayAreaProto.FEATURE_ID; import static com.android.server.wm.DisplayAreaProto.IS_IGNORING_ORIENTATION_REQUEST; diff --git a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java index 8f471d797904..afeeaf707a18 100644 --- a/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java +++ b/services/core/java/com/android/server/wm/DisplayAreaOrganizerController.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.window.DisplayAreaOrganizer.FEATURE_RUNTIME_TASK_CONTAINER_FIRST; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import static com.android.server.wm.DisplayArea.Type.ANY; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java b/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java index bb596cc829c9..8a2b8b65a935 100644 --- a/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java +++ b/services/core/java/com/android/server/wm/DisplayAreaPolicyBuilder.java @@ -29,7 +29,7 @@ import static android.window.DisplayAreaOrganizer.FEATURE_WINDOWED_MAGNIFICATION import static android.window.DisplayAreaOrganizer.FEATURE_WINDOWING_LAYER; import static android.window.DisplayAreaOrganizer.KEY_ROOT_DISPLAY_AREA_ID; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 21212e573ffa..d6ded51f538b 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -88,17 +88,17 @@ import static android.view.inputmethod.ImeTracker.DEBUG_IME_VISIBILITY; import static android.window.DisplayAreaOrganizer.FEATURE_IME; import static android.window.DisplayAreaOrganizer.FEATURE_ROOT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BOOT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONTENT_RECORDING; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BOOT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONTENT_RECORDING; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREEN_ON; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG; diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 1ac0bb0e41c6..c062f5adf755 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -71,8 +71,8 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_LEFT; import static android.view.WindowManagerPolicyConstants.NAV_BAR_RIGHT; import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON; import static com.android.server.policy.PhoneWindowManager.TOAST_WINDOW_TIMEOUT; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT; @@ -1073,7 +1073,8 @@ public class DisplayPolicy { final String systemUiPermission = mService.isCallerVirtualDeviceOwner(mDisplayContent.getDisplayId(), callingUid) - // Allow virtual device owners to add system windows on their displays. + && mDisplayContent.isTrusted() + // Virtual device owners can add system windows on their trusted displays. ? android.Manifest.permission.CREATE_VIRTUAL_DEVICE : android.Manifest.permission.STATUS_BAR_SERVICE; diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java index 8c06cfecdc40..4cf1fb400fe7 100644 --- a/services/core/java/com/android/server/wm/DisplayRotation.java +++ b/services/core/java/com/android/server/wm/DisplayRotation.java @@ -27,8 +27,8 @@ import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_JUMPCUT import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_ROTATE; import static android.view.WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs.LID_OPEN; import static com.android.server.wm.DisplayRotationProto.FIXED_TO_USER_ROTATION_MODE; import static com.android.server.wm.DisplayRotationProto.FROZEN_TO_USER_ROTATION; diff --git a/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java b/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java index 90f8b4900c3f..0ccc0fe80b52 100644 --- a/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayRotationCompatPolicy.java @@ -29,7 +29,7 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.content.res.Configuration.ORIENTATION_UNDEFINED; import static android.view.Display.TYPE_INTERNAL; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.server.wm.AppCompatConfiguration.MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO; import static com.android.server.wm.DisplayRotationReversionController.REVERSION_TYPE_CAMERA_COMPAT; diff --git a/services/core/java/com/android/server/wm/DisplayRotationReversionController.java b/services/core/java/com/android/server/wm/DisplayRotationReversionController.java index b955738e37b2..930d4b186cc1 100644 --- a/services/core/java/com/android/server/wm/DisplayRotationReversionController.java +++ b/services/core/java/com/android/server/wm/DisplayRotationReversionController.java @@ -19,7 +19,7 @@ package com.android.server.wm; import static android.app.WindowConfiguration.ROTATION_UNDEFINED; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.server.policy.WindowManagerPolicy.USER_ROTATION_LOCKED; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index b09d63fea97f..2a5a3a5638d2 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -24,8 +24,8 @@ import static android.os.InputConstants.DEFAULT_DISPATCHING_TIMEOUT_MILLIS; import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.server.wm.DragDropController.MSG_ANIMATION_END; import static com.android.server.wm.DragDropController.MSG_DRAG_END_TIMEOUT; import static com.android.server.wm.DragDropController.MSG_REMOVE_DRAG_SURFACE_TIMEOUT; diff --git a/services/core/java/com/android/server/wm/EmbeddedWindowController.java b/services/core/java/com/android/server/wm/EmbeddedWindowController.java index e007b1d07b34..5ac4cf8b6483 100644 --- a/services/core/java/com/android/server/wm/EmbeddedWindowController.java +++ b/services/core/java/com/android/server/wm/EmbeddedWindowController.java @@ -17,7 +17,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_EMBEDDED_WINDOWS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_EMBEDDED_WINDOWS; import static com.android.server.wm.IdentifierProto.HASH_CODE; import static com.android.server.wm.IdentifierProto.TITLE; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java index 8cc2fd1bb88d..6a23aaa663ef 100644 --- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java +++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java @@ -19,7 +19,7 @@ package com.android.server.wm; import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.view.InsetsSource.ID_IME; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; import static com.android.server.wm.DisplayContent.IME_TARGET_CONTROL; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.ImeInsetsSourceProviderProto.IME_TARGET_FROM_IME; diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index d7dc4597c508..16e88a3c01ea 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java @@ -41,7 +41,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.LOGTAG_INPUT_FOCUS; diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java index 9e6468020fc0..8f28f59ba5cc 100644 --- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java +++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_INSETS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_INSETS; import static com.android.server.wm.InsetsSourceProviderProto.CAPTURED_LEASH; import static com.android.server.wm.InsetsSourceProviderProto.CLIENT_VISIBLE; import static com.android.server.wm.InsetsSourceProviderProto.CONTROL; diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java index 03fadba30ae4..ede587c9e64b 100644 --- a/services/core/java/com/android/server/wm/InsetsStateController.java +++ b/services/core/java/com/android/server/wm/InsetsStateController.java @@ -24,7 +24,7 @@ import static android.view.WindowInsets.Type.ime; import static android.view.WindowInsets.Type.mandatorySystemGestures; import static android.view.WindowInsets.Type.systemGestures; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; import static com.android.server.wm.DisplayContentProto.IME_INSETS_SOURCE_PROVIDER; import static com.android.server.wm.DisplayContentProto.INSETS_SOURCE_PROVIDERS; diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java index e65396e00b20..06049530da18 100644 --- a/services/core/java/com/android/server/wm/LockTaskController.java +++ b/services/core/java/com/android/server/wm/LockTaskController.java @@ -32,7 +32,7 @@ import static android.os.UserHandle.USER_ALL; import static android.os.UserHandle.USER_CURRENT; import static android.telecom.TelecomManager.EMERGENCY_DIALER_COMPONENT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LOCKTASK; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_LOCKTASK; import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_LOCKTASK; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME; diff --git a/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java b/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java index 403d3bd5c008..91598c5cc27a 100644 --- a/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java +++ b/services/core/java/com/android/server/wm/NonAppWindowAnimationAdapter.java @@ -22,7 +22,7 @@ import static android.view.WindowManager.TRANSIT_OLD_TASK_OPEN; import static android.view.WindowManager.TRANSIT_OLD_TASK_TO_FRONT; import static android.view.WindowManager.TRANSIT_OLD_WALLPAPER_CLOSE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_REMOTE_ANIMATIONS; import static com.android.server.wm.AnimationAdapterProto.REMOTE; import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION; diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java index bf623b2e2105..b6e4c118e51a 100644 --- a/services/core/java/com/android/server/wm/RecentTasks.java +++ b/services/core/java/com/android/server/wm/RecentTasks.java @@ -39,7 +39,7 @@ import static android.view.WindowInsets.Type.mandatorySystemGestures; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.LAST_APPLICATION_WINDOW; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import static com.android.launcher3.Flags.enableRefactorTaskThumbnail; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_RECENTS; diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java index c06efc775403..0b136716160b 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimation.java +++ b/services/core/java/com/android/server/wm/RecentsAnimation.java @@ -23,7 +23,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_RECENTS_ANIMATIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_RECENTS_ANIMATIONS; import static com.android.server.wm.ActivityRecord.State.STOPPED; import static com.android.server.wm.ActivityRecord.State.STOPPING; diff --git a/services/core/java/com/android/server/wm/RemoteAnimationController.java b/services/core/java/com/android/server/wm/RemoteAnimationController.java index 432089ff2fcf..b3b2c57550e4 100644 --- a/services/core/java/com/android/server/wm/RemoteAnimationController.java +++ b/services/core/java/com/android/server/wm/RemoteAnimationController.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.view.WindowManager.TRANSIT_OLD_KEYGUARD_UNOCCLUDE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_REMOTE_ANIMATIONS; import static com.android.server.wm.AnimationAdapterProto.REMOTE; import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; diff --git a/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java b/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java index e4962bffc570..0c1641c8073b 100644 --- a/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java +++ b/services/core/java/com/android/server/wm/RemoteDisplayChangeController.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java b/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java index 243dbc78998d..0b48615146b6 100644 --- a/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java +++ b/services/core/java/com/android/server/wm/ResetTargetTaskHelper.java @@ -16,8 +16,8 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; import android.app.ActivityOptions; import android.content.Intent; diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 84072e26761a..266fdbba0be7 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -38,13 +38,14 @@ import static android.view.WindowManager.TRANSIT_SLEEP; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_WAKE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_KEEP_SCREEN_ON; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SLEEP_TOKEN; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC; import static com.android.server.policy.PhoneWindowManager.SYSTEM_DIALOG_REASON_ASSIST; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; @@ -2867,7 +2868,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> token = new SleepToken(tag, displayId); mSleepTokens.put(tokenKey, token); display.mAllSleepTokens.add(token); - ProtoLog.d(WM_DEBUG_STATES, "Create sleep token: tag=%s, displayId=%d", tag, displayId); + ProtoLog.d(WM_DEBUG_SLEEP_TOKEN, "Create SleepToken: tag=%s, displayId=%d", + tag, displayId); } else { throw new RuntimeException("Create the same sleep token twice: " + token); } @@ -2886,8 +2888,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> return; } - ProtoLog.d(WM_DEBUG_STATES, "Remove sleep token: tag=%s, displayId=%d", token.mTag, - token.mDisplayId); + ProtoLog.d(WM_DEBUG_SLEEP_TOKEN, "Remove SleepToken: tag=%s, displayId=%d", + token.mTag, token.mDisplayId); display.mAllSleepTokens.remove(token); if (display.mAllSleepTokens.isEmpty()) { mService.updateSleepIfNeededLocked(); diff --git a/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java b/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java index ad4faab1e106..38e011509885 100644 --- a/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java +++ b/services/core/java/com/android/server/wm/ScreenRecordingCallbackController.java @@ -18,7 +18,7 @@ package com.android.server.wm; import static android.content.Context.MEDIA_PROJECTION_SERVICE; -import static com.android.internal.protolog.ProtoLogGroup.WM_ERROR; +import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR; import android.media.projection.IMediaProjectionManager; import android.media.projection.IMediaProjectionWatcherCallback; diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java index e4fd523d5ce7..0d3fa1b48b4c 100644 --- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java +++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java @@ -20,8 +20,8 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.util.RotationUtils.deltaRotation; import static android.view.WindowManagerPolicyConstants.SCREEN_FREEZE_LAYER_BASE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC; import static com.android.server.wm.AnimationSpecProto.ROTATE; import static com.android.server.wm.RotationAnimationSpecProto.DURATION_MS; import static com.android.server.wm.RotationAnimationSpecProto.END_LUMA; diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java index d295378a9b65..077127c031e1 100644 --- a/services/core/java/com/android/server/wm/Session.java +++ b/services/core/java/com/android/server/wm/Session.java @@ -37,7 +37,7 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; import static android.view.WindowManager.LayoutParams.isSystemAlertWindowType; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java index 57f9be097ee6..3f6e91590cce 100644 --- a/services/core/java/com/android/server/wm/SurfaceAnimator.java +++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; import static com.android.server.wm.SurfaceAnimatorProto.ANIMATION_ADAPTER; import static com.android.server.wm.SurfaceAnimatorProto.ANIMATION_START_DELAYED; import static com.android.server.wm.SurfaceAnimatorProto.LEASH; diff --git a/services/core/java/com/android/server/wm/SurfaceFreezer.java b/services/core/java/com/android/server/wm/SurfaceFreezer.java index 34abf23daa2a..e126ed65d508 100644 --- a/services/core/java/com/android/server/wm/SurfaceFreezer.java +++ b/services/core/java/com/android/server/wm/SurfaceFreezer.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_SCREEN_ROTATION; import android.annotation.NonNull; diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index edbc32827c1a..98919d9fd617 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -62,11 +62,11 @@ import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_LOCKTASK; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TASKS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_LOCKTASK; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN; import static com.android.server.wm.ActivityRecord.State.PAUSED; import static com.android.server.wm.ActivityRecord.State.PAUSING; import static com.android.server.wm.ActivityRecord.State.RESUMED; @@ -170,6 +170,7 @@ import android.view.DisplayInfo; import android.view.InsetsState; import android.view.RemoteAnimationAdapter; import android.view.SurfaceControl; +import android.view.WindowInsets; import android.view.WindowManager; import android.window.ITaskOrganizer; import android.window.PictureInPictureSurfaceTransaction; @@ -3400,6 +3401,9 @@ class Task extends TaskFragment { info.isTopActivityTransparent = top != null && !top.fillsParent(); info.isTopActivityStyleFloating = top != null && top.isStyleFloating(); info.lastNonFullscreenBounds = topTask.mLastNonFullscreenBounds; + final WindowState windowState = top != null ? top.findMainWindow() : null; + info.requestedVisibleTypes = (windowState != null && Flags.enableFullyImmersiveInDesktop()) + ? windowState.getRequestedVisibleTypes() : WindowInsets.Type.defaultVisible(); AppCompatUtils.fillAppCompatTaskInfo(this, info, top); } diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java index 42ea5a88a09b..5dd3bbce4e96 100644 --- a/services/core/java/com/android/server/wm/TaskDisplayArea.java +++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java @@ -30,7 +30,7 @@ import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; import static android.view.Display.INVALID_DISPLAY; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityTaskManagerService.TAG_ROOT_TASK; import static com.android.server.wm.DisplayContent.alwaysCreateRootTask; diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index f58b322cab36..3ffeacfd5006 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -49,7 +49,7 @@ import static android.view.WindowManager.TRANSIT_FLAG_OPEN_BEHIND; import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_OPEN; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STATES; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES; import static com.android.server.wm.ActivityRecord.State.PAUSED; import static com.android.server.wm.ActivityRecord.State.PAUSING; import static com.android.server.wm.ActivityRecord.State.RESUMED; diff --git a/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java b/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java index 83e714d82dd2..c6a16795dd8c 100644 --- a/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +++ b/services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java @@ -27,7 +27,7 @@ import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_INFO_CHA import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_PARENT_INFO_CHANGED; import static android.window.TaskFragmentTransaction.TYPE_TASK_FRAGMENT_VANISHED; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission; import static com.android.server.wm.TaskFragment.EMBEDDING_ALLOWED; import static com.android.server.wm.WindowOrganizerController.configurationsAreEqualForOrganizer; @@ -61,7 +61,7 @@ import android.window.WindowContainerTransaction; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.window.flags.Flags; import java.lang.annotation.Retention; @@ -482,7 +482,7 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr } final int transitionId = mWindowOrganizerController.getTransitionController() .getCollectingTransitionId(); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Defer transition id=%d for TaskFragmentTransaction=%s", transitionId, transaction.getTransactionToken()); mDeferredTransitions.put(transaction.getTransactionToken(), transitionId); @@ -503,13 +503,13 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr || mWindowOrganizerController.getTransitionController() .getCollectingTransitionId() != transitionId) { // This can happen when the transition is timeout or abort. - ProtoLog.w(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Deferred transition id=%d has been continued before the" + " TaskFragmentTransaction=%s is finished", transitionId, transactionToken); return; } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Continue transition id=%d for TaskFragmentTransaction=%s", transitionId, transactionToken); mWindowOrganizerController.getTransitionController().continueTransitionReady(); diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java index de2e4f5474c4..eefc54457a4d 100644 --- a/services/core/java/com/android/server/wm/TaskOrganizerController.java +++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java @@ -21,7 +21,7 @@ import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NONE; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NORMAL; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_ROTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_STARTING_REVEAL; diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index 2451ca87c3c7..fde502f2306c 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -109,7 +109,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.graphics.ColorUtils; import com.android.internal.policy.TransitionAnimation; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.inputmethod.InputMethodManagerInternal; import com.android.server.statusbar.StatusBarManagerInternal; @@ -385,7 +385,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (b == null || b.isEmpty()) continue; final boolean transientLaunch = b.getBoolean(ActivityOptions.KEY_TRANSIENT_LAUNCH); if (transientLaunch) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Starting a Recents transition which can be parallel."); mParallelCollectType = PARALLEL_TYPE_RECENTS; } @@ -443,7 +443,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { activity.getTask().setCanAffectSystemUiFlags(false); } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Transition %d: Set %s as " + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Transition %d: Set %s as " + "transient-launch", mSyncId, activity); } @@ -556,8 +556,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { snapshotStartState(ar); mChanges.get(ar).mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END; }); - snapshotStartState(wc); - mChanges.get(wc).mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END; } /** Set a transition to be a seamless-rotation. */ @@ -582,7 +580,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (top != null) { mIsSeamlessRotation = true; top.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Override sync-method for %s " + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Override sync-method for %s " + "because seamless rotating", top.getName()); } } @@ -699,7 +697,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { return; } mState = STATE_STARTED; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Starting Transition %d", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Starting Transition %d", mSyncId); applyReady(); @@ -719,7 +717,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // Too late, transition already started playing, so don't collect. return; } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Collecting in transition %d: %s", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Collecting in transition %d: %s", mSyncId, wc); // Snapshot before checking if this is a participant in case it has been re-parented. snapshotStartState(getAnimatableParent(wc)); @@ -758,7 +756,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { mChanges.put(curr, info); if (isReadyGroup(curr)) { mReadyTrackerOld.addGroup(curr); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Creating Ready-group for" + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Creating Ready-group for" + " Transition %d with root=%s", mSyncId, curr); } } @@ -831,8 +829,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // Too late to collect. Don't check too-early here since `collect` will check that. return; } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Existence Changed in transition %d:" - + " %s", mSyncId, wc); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Existence Changed in transition %d: %s", mSyncId, wc); collect(wc); mChanges.get(wc).mExistenceChanged = true; } @@ -997,7 +995,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } else { ready = mReadyTrackerOld.allReady(); } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Set transition ready=%b %d", ready, mSyncId); boolean changed = mSyncEngine.setReady(mSyncId, ready); if (changed && ready) { @@ -1083,7 +1081,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // For config-at-end, the end-transform will be reset after the config is actually // applied in the client (since the transform depends on config). The other properties // remain here because shell might want to persistently override them. - if ((mTargets.get(i).mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) == 0) { + if (target.asActivityRecord() == null + || (mTargets.get(i).mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) == 0) { resetSurfaceTransform(t, target, targetLeash); } } @@ -1312,7 +1311,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // Avoid commit visibility if entering pip or else we will get a sudden // "flash" / surface going invisible for a split second. if (commitVisibility) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Commit activity becoming invisible: %s", ar); final SnapshotController snapController = mController.mSnapshotController; if (mTransientLaunches != null && !task.isVisibleRequested() @@ -1326,7 +1325,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (lastSnapshotTimeNs < startTimeNs) { snapController.mTaskSnapshotController.recordSnapshot(task); } else { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Skipping post-transition snapshot for task %d", task.mTaskId); } @@ -1397,7 +1396,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final boolean isWallpaperVisibleAtEnd = wt.isVisibleRequested() || mVisibleAtTransitionEndTokens.contains(wt); if (isTargetInvisible || !isWallpaperVisibleAtEnd) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Commit wallpaper becoming invisible: %s", wt); wt.commitVisibility(false /* visible */); } @@ -1564,46 +1563,33 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (mConfigAtEndActivities == null || mConfigAtEndActivities.isEmpty()) { return; } - final SurfaceControl.Transaction t = - mController.mAtm.mWindowManager.mTransactionFactory.get(); - for (int i = 0; i < mTargets.size(); ++i) { - final WindowContainer target = mTargets.get(i).mContainer; - if (target.getParent() == null || (mTargets.get(i).mFlags - & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) == 0) { - continue; + // Now resume the configuration dispatch, wait until the now resumed configs have been + // drawn, and then apply everything together. Any activities that are already in an + // active sync will remain on that sync instead of the new one. + int syncId = -1; + for (int i = 0; i < mConfigAtEndActivities.size(); ++i) { + final ActivityRecord target = mConfigAtEndActivities.get(i); + final SurfaceControl targetLeash = target.getSurfaceControl(); + if (target.getSyncGroup() == null || target.getSyncGroup().isIgnoring(target)) { + if (syncId < 0) { + final BLASTSyncEngine.SyncGroup sg = mSyncEngine.prepareSyncSet( + (mSyncId, transaction) -> transaction.apply(), + "ConfigAtTransitEnd"); + syncId = sg.mSyncId; + mSyncEngine.startSyncSet(sg, BLAST_TIMEOUT_DURATION, true /* parallel */); + mSyncEngine.setSyncMethod(syncId, BLASTSyncEngine.METHOD_BLAST); + } + mSyncEngine.addToSyncSet(syncId, target); } - final SurfaceControl targetLeash = getLeashSurface(target, null /* t */); // Reset surface state here (since it was skipped in buildFinishTransaction). Since // we are resuming config to the "current" state, we have to calculate the matching // surface state now (rather than snapshotting it at animation start). - resetSurfaceTransform(t, target, targetLeash); - } - - // Now we resume the configuration dispatch, wait until the now resumed configs have been - // drawn, and then apply everything together. - final BLASTSyncEngine.SyncGroup sg = mSyncEngine.prepareSyncSet( - new BLASTSyncEngine.TransactionReadyListener() { - @Override - public void onTransactionReady(int mSyncId, - SurfaceControl.Transaction transaction) { - t.merge(transaction); - t.apply(); - } - - @Override - public void onTransactionCommitTimeout() { - t.apply(); - } - }, "ConfigAtTransitEnd"); - final int syncId = sg.mSyncId; - mSyncEngine.startSyncSet(sg, BLAST_TIMEOUT_DURATION, true /* parallel */); - mSyncEngine.setSyncMethod(syncId, BLASTSyncEngine.METHOD_BLAST); - for (int i = 0; i < mConfigAtEndActivities.size(); ++i) { - final ActivityRecord ar = mConfigAtEndActivities.get(i); - mSyncEngine.addToSyncSet(syncId, ar); - ar.resumeConfigurationDispatch(); + resetSurfaceTransform(target.getSyncTransaction(), target, targetLeash); + target.resumeConfigurationDispatch(); + } + if (syncId >= 0) { + mSyncEngine.setReady(syncId); } - mSyncEngine.setReady(syncId); } @Nullable @@ -1662,7 +1648,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (mState != STATE_COLLECTING && mState != STATE_STARTED) { throw new IllegalStateException("Too late to abort. state=" + mState); } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Aborting Transition: %d", mSyncId); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Aborting Transition: %d", mSyncId); mState = STATE_ABORT; mLogger.mAbortTimeNs = SystemClock.elapsedRealtimeNanos(); mController.mTransitionTracer.logAbortedTransition(this); @@ -1677,7 +1664,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (!(mState == STATE_COLLECTING || mState == STATE_STARTED)) { return; } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Force Playing Transition: %d", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Force Playing Transition: %d", mSyncId); mForcePlaying = true; // backwards since conditions are removed. @@ -1718,6 +1705,54 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { change.mFlags |= ChangeInfo.FLAG_CHANGE_NO_ANIMATION; } + void prepareConfigAtEnd(SurfaceControl.Transaction transact, ArrayList<ChangeInfo> targets) { + if (mConfigAtEndActivities == null) return; + for (int i = 0; i < mConfigAtEndActivities.size(); ++i) { + final ActivityRecord ar = mConfigAtEndActivities.get(i); + if (!ar.isVisibleRequested()) continue; + final SurfaceControl sc = ar.getSurfaceControl(); + if (sc == null) continue; + final Task task = ar.getTask(); + if (task == null) continue; + // If task isn't animating, then it means shell is animating activity directly (within + // task), so don't do any setup. + if (!containsChangeFor(task, targets)) continue; + final ChangeInfo change = mChanges.get(ar); + final Rect startBounds = change.mAbsoluteBounds; + Rect hintRect = null; + if (ar.getWindowingMode() == WINDOWING_MODE_PINNED && ar.pictureInPictureArgs != null + && ar.pictureInPictureArgs.getSourceRectHint() != null) { + hintRect = ar.pictureInPictureArgs.getSourceRectHint(); + } + if (hintRect == null) { + hintRect = new Rect(startBounds); + hintRect.offsetTo(0, 0); + } + final Rect endBounds = ar.getBounds(); + final Rect taskEndBounds = task.getBounds(); + // FA = final activity bounds (absolute) + // FT = final task bounds (absolute) + // SA = start activity bounds (absolute) + // H = source hint (relative to start activity bounds) + // We want to transform the activity so that when the task is at FT, H overlaps with FA + + // This scales the activity such that the hint rect has the same dimensions + // as the final activity bounds. + float hintToEndScaleX = ((float) endBounds.width()) / ((float) hintRect.width()); + float hintToEndScaleY = ((float) endBounds.height()) / ((float) hintRect.height()); + // top-left needs to be (FA.tl - FT.tl) - H.tl * hintToEnd . H is relative to the + // activity; so, for example, if shrinking H to FA (hintToEnd < 1), then the tl of the + // shrunk SA is closer to H than expected, so we need to reduce how much we offset SA + // to get H.tl to match. + float startActPosInTaskEndX = + (endBounds.left - taskEndBounds.left) - hintRect.left * hintToEndScaleX; + float startActPosInTaskEndY = + (endBounds.top - taskEndBounds.top) - hintRect.top * hintToEndScaleY; + transact.setScale(sc, hintToEndScaleX, hintToEndScaleY); + transact.setPosition(sc, startActPosInTaskEndX, startActPosInTaskEndY); + } + } + @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) static boolean containsChangeFor(WindowContainer wc, ArrayList<ChangeInfo> list) { for (int i = list.size() - 1; i >= 0; --i) { @@ -1735,7 +1770,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (mController.useFullReadyTracking()) { for (int i = 0; i < mReadyTracker.mMet.size(); ++i) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "#%d: Met condition: %s", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "#%d: Met condition: %s", mSyncId, mReadyTracker.mMet.get(i)); } } @@ -1799,6 +1834,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // Resolve the animating targets from the participants. mTargets = calculateTargets(mParticipants, mChanges); + prepareConfigAtEnd(transaction, mTargets); // Check whether the participants were animated from back navigation. mController.mAtm.mBackNavigationController.onTransactionReady(this, mTargets, @@ -1913,7 +1949,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { if (mController.getTransitionPlayer() != null && mIsPlayerEnabled) { mController.dispatchLegacyAppTransitionStarting(info, mStatusBarTransitionDelay); try { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Calling onTransitionReady: %s", info); mLogger.mSendTimeNs = SystemClock.elapsedRealtimeNanos(); mLogger.mInfo = info; @@ -1939,8 +1975,9 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // No player registered or it's not enabled, so just finish/apply immediately if (!mIsPlayerEnabled) { mLogger.mSendTimeNs = SystemClock.uptimeNanos(); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Apply and finish immediately" - + " because player is disabled for transition #%d .", mSyncId); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Apply and finish immediately because player is disabled " + + "for transition #%d .", mSyncId); } postCleanupOnFailure(); } @@ -2151,32 +2188,34 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { for (int i = onTopTasksEnd.size() - 1; i >= 0; --i) { final Task task = onTopTasksEnd.get(i); if (task.getDisplayId() != displayId) continue; - if (!enableDisplayFocusInShellTransitions() - || mOnTopDisplayStart == onTopDisplayEnd - || displayId != onTopDisplayEnd.mDisplayId) { - // If it didn't change since last report, don't report - if (reportedOnTop == null) { - if (mOnTopTasksStart.contains(task)) continue; - } else if (reportedOnTop.contains(task)) { - continue; - } - } - // Need to report it. - mParticipants.add(task); - int changeIdx = mChanges.indexOfKey(task); - if (changeIdx < 0) { - mChanges.put(task, new ChangeInfo(task)); - changeIdx = mChanges.indexOfKey(task); + if (reportedOnTop == null) { + if (mOnTopTasksStart.contains(task)) continue; + } else if (reportedOnTop.contains(task)) { + continue; } - mChanges.valueAt(changeIdx).mFlags |= ChangeInfo.FLAG_CHANGE_MOVED_TO_TOP; + addToTopChange(task); } // Swap in the latest on-top tasks. mController.mLatestOnTopTasksReported.put(displayId, onTopTasksEnd); onTopTasksEnd = reportedOnTop != null ? reportedOnTop : new ArrayList<>(); onTopTasksEnd.clear(); + + if (enableDisplayFocusInShellTransitions() + && mOnTopDisplayStart != onTopDisplayEnd + && displayId == onTopDisplayEnd.mDisplayId) { + addToTopChange(onTopDisplayEnd); + } } } + private void addToTopChange(@NonNull WindowContainer wc) { + mParticipants.add(wc); + if (!mChanges.containsKey(wc)) { + mChanges.put(wc, new ChangeInfo(wc)); + } + mChanges.get(wc).mFlags |= ChangeInfo.FLAG_CHANGE_MOVED_TO_TOP; + } + private void postCleanupOnFailure() { mController.mAtm.mH.post(() -> { synchronized (mController.mAtm.mGlobalLock) { @@ -2547,12 +2586,12 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final ChangeInfo parentChange = changes.get(parent); if (!parent.canCreateRemoteAnimationTarget() || parentChange == null || !parentChange.hasChanged()) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: %s", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: %s", "parent can't be target " + parent); return false; } if (isWallpaper(target)) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: is wallpaper"); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: is wallpaper"); return false; } @@ -2566,27 +2605,27 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { for (int i = parent.getChildCount() - 1; i >= 0; --i) { final WindowContainer<?> sibling = parent.getChildAt(i); if (target == sibling) continue; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " check sibling %s", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " check sibling %s", sibling); final ChangeInfo siblingChange = changes.get(sibling); if (siblingChange == null || !targets.wasParticipated(siblingChange)) { if (sibling.isVisibleRequested()) { // Sibling is visible but not animating, so no promote. - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: sibling is visible but not part of transition"); return false; } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " unrelated invisible sibling %s", sibling); continue; } final int siblingMode = siblingChange.getTransitMode(sibling); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " sibling is a participant with mode %s", TransitionInfo.modeToString(siblingMode)); if (reduceMode(mode) != reduceMode(siblingMode)) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: common mode mismatch. was %s", TransitionInfo.modeToString(mode)); return false; @@ -2616,10 +2655,10 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { for (int i = targets.mArray.size() - 1; i >= 0; --i) { final ChangeInfo targetChange = targets.mArray.valueAt(i); final WindowContainer<?> target = targetChange.mContainer; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " checking %s", target); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " checking %s", target); final WindowContainer<?> parent = target.getParent(); if (parent == lastNonPromotableParent) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " SKIP: its sibling was rejected"); continue; } @@ -2628,16 +2667,16 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { continue; } if (reportIfNotTop(target)) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " keep as target %s", target); } else { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " remove from targets %s", target); targets.remove(i); } final ChangeInfo parentChange = changes.get(parent); if (targets.mArray.indexOfValue(parentChange) < 0) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " CAN PROMOTE: promoting to parent %s", parent); // The parent has lower depth, so it will be checked in the later iteration. i++; @@ -2648,9 +2687,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } else { parentChange.mFlags |= ChangeInfo.FLAG_CHANGE_YES_ANIMATION; } - if ((targetChange.mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) != 0) { - parentChange.mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END; - } } } @@ -2662,7 +2698,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { @NonNull static ArrayList<ChangeInfo> calculateTargets(ArraySet<WindowContainer> participants, ArrayMap<WindowContainer, ChangeInfo> changes) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Start calculating TransitionInfo based on participants: %s", participants); // Add all valid participants to the target container. @@ -2670,7 +2706,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { for (int i = participants.size() - 1; i >= 0; --i) { final WindowContainer<?> wc = participants.valueAt(i); if (!wc.isAttached()) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Rejecting as detached: %s", wc); continue; } @@ -2680,13 +2716,13 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final ChangeInfo changeInfo = changes.get(wc); // Reject no-ops if (!changeInfo.hasChanged()) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Rejecting as no-op: %s vis: %b", wc, wc.isVisibleRequested()); continue; } targets.add(changeInfo); } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Initial targets: %s", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Initial targets: %s", targets.mArray); // Combine the targets from bottom to top if possible. tryPromote(targets, changes); @@ -2694,7 +2730,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { populateParentChanges(targets, changes); final ArrayList<ChangeInfo> targetList = targets.getListSortedByZ(); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Final targets: %s", targetList); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Final targets: %s", targetList); return targetList; } @@ -2742,14 +2778,6 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } else { intermediates.add(parentChange); } - // for config-at-end, we want to promote the flag based on the end-state even - // if the activity was reparented because it operates after the animation. So, - // check that here since the promote code skips reparents. - if ((targetChange.mFlags & ChangeInfo.FLAG_CHANGE_CONFIG_AT_END) != 0 - && targetChange.mContainer.asActivityRecord() != null - && targetChange.mContainer.getParent() == p) { - parentChange.mFlags |= ChangeInfo.FLAG_CHANGE_CONFIG_AT_END; - } foundParentInTargets = true; break; } else if (reportIfNotTop(p) && !skipIntermediateReports) { @@ -3797,7 +3825,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } mConditions.add(condition); condition.mTracker = this; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Add condition %s for #%d", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Add condition %s for #%d", condition, mTransition.mSyncId); condition.startTracking(); } @@ -3819,7 +3847,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } } condition.mMet = true; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Met condition %s for #%d (%d" + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Met condition %s for #%d (%d" + " left)", condition, mTransition.mSyncId, mConditions.size()); mMet.add(condition); mTransition.applyReady(); @@ -3888,8 +3916,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { while (current != null) { if (isReadyGroup(current)) { mReadyGroups.put(current, ready); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Setting Ready-group to" - + " %b. group=%s from %s", ready, current, wc); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + " Setting Ready-group to %b. group=%s from %s", ready, current, wc); break; } current = current.getParent(); @@ -3898,14 +3926,14 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { /** Marks this as ready regardless of individual groups. */ void setAllReady() { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, " Setting allReady override"); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " Setting allReady override"); mUsed = true; mReadyOverride = true; } /** @return true if all tracked subtrees are ready. */ boolean allReady() { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, " allReady query: used=%b " + "override=%b defer=%d states=[%s]", mUsed, mReadyOverride, mDeferReadyDepth, groupsToString()); // If the readiness has never been touched, mUsed will be false. We never want to @@ -4043,7 +4071,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Screenshotting %s [%s]", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Screenshotting %s [%s]", wc.toString(), bounds.toString()); Rect cropBounds = new Rect(bounds); diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java index 1d2a605e8dae..37c3ce80f670 100644 --- a/services/core/java/com/android/server/wm/TransitionController.java +++ b/services/core/java/com/android/server/wm/TransitionController.java @@ -53,7 +53,7 @@ import android.window.WindowContainerTransaction; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.server.FgThread; import com.android.window.flags.Flags; @@ -303,7 +303,8 @@ class TransitionController { + " possible."); } Transition transit = new Transition(type, flags, this, mSyncEngine); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Creating Transition: %s", transit); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Creating Transition: %s", transit); moveToCollecting(transit); return transit; } @@ -324,21 +325,21 @@ class TransitionController { final long timeoutMs = transition.mType == TRANSIT_CHANGE ? CHANGE_TIMEOUT_MS : DEFAULT_TIMEOUT_MS; mCollectingTransition.startCollecting(timeoutMs); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Start collecting in Transition: %s", - mCollectingTransition); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Start collecting in Transition: %s", mCollectingTransition); } void registerTransitionPlayer(@Nullable ITransitionPlayer player, @Nullable WindowProcessController playerProc) { if (!mTransitionPlayers.isEmpty()) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition " + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition " + "player %s over %d other players", player.asBinder(), mTransitionPlayers.size()); // flush currently running transitions so that the new player doesn't get // intermediate state flushRunningTransitions(); } else { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition " + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Registering transition " + "player %s ", player.asBinder()); } mTransitionPlayers.add(new TransitionPlayerRecord(player, playerProc)); @@ -351,18 +352,18 @@ class TransitionController { if (mTransitionPlayers.get(idx).mPlayer.asBinder() == player.asBinder()) break; } if (idx < 0) { - ProtoLog.w(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Attempt to unregister " + ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Attempt to unregister " + "transition player %s but it isn't registered", player.asBinder()); return; } final boolean needsFlush = idx == (mTransitionPlayers.size() - 1); final TransitionPlayerRecord record = mTransitionPlayers.remove(idx); if (needsFlush) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering active " + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering active " + "transition player %s at index=%d leaving %d in stack", player.asBinder(), idx, mTransitionPlayers.size()); } else { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering transition " + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Unregistering transition " + "player %s at index=%d leaving %d in stack", player.asBinder(), idx, mTransitionPlayers.size()); } @@ -741,8 +742,9 @@ class TransitionController { @Nullable RemoteTransition remoteTransition, @Nullable TransitionRequestInfo.DisplayChange displayChange) { if (mIsWaitingForDisplayEnabled) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Disabling player for transition" - + " #%d because display isn't enabled yet", transition.getSyncId()); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Disabling player for transition #%d because display isn't enabled yet", + transition.getSyncId()); transition.mIsPlayerEnabled = false; transition.mLogger.mRequestTimeNs = SystemClock.uptimeNanos(); mAtm.mH.post(() -> mAtm.mWindowOrganizerController.startTransition( @@ -758,7 +760,7 @@ class TransitionController { return transition; } try { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Requesting StartTransition: %s", transition); ActivityManager.RunningTaskInfo startTaskInfo = null; ActivityManager.RunningTaskInfo pipTaskInfo = null; @@ -935,7 +937,7 @@ class TransitionController { Slog.e(TAG, "Trying to finish a non-playing transition " + record); return; } - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Finish Transition: %s", record); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Finish Transition: %s", record); mPlayingTransitions.remove(record); if (!inTransition()) { // reset track-count now since shell-side is idle. @@ -1056,8 +1058,8 @@ class TransitionController { // If it's a legacy sync, then it needs to wait until there is no collecting transition. if (queued.mTransition == null) return; if (!canStartCollectingNow(queued.mTransition)) return; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from collecting" - + " to waiting.", mCollectingTransition.getSyncId()); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, + "Moving #%d from collecting to waiting.", mCollectingTransition.getSyncId()); mWaitingTransitions.add(mCollectingTransition); mCollectingTransition = null; } else if (mSyncEngine.hasActiveSync()) { @@ -1220,8 +1222,8 @@ class TransitionController { // Didn't overlap with anything, so give it its own track track = mTrackCount; if (track > 0) { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Playing #%d in parallel on " - + "track #%d", transition.getSyncId(), track); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Playing #%d in parallel on track #%d", transition.getSyncId(), track); } } transition.mAnimationTrack = track; @@ -1230,8 +1232,8 @@ class TransitionController { if (sync && mTrackCount > 1) { // If there are >1 tracks, mark as sync so that all tracks finish. info.setFlags(info.getFlags() | TransitionInfo.FLAG_SYNC); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Marking #%d animation as SYNC.", - transition.getSyncId()); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Marking #%d animation as SYNC.", transition.getSyncId()); } } @@ -1409,7 +1411,7 @@ class TransitionController { /** Returns {@code true} if it started collecting, {@code false} if it was queued. */ private void queueTransition(Transition transit, OnStartCollect onStartCollect) { mQueuedTransitions.add(new QueuedTransition(transit, onStartCollect)); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Queueing transition: %s", transit); } @@ -1425,7 +1427,7 @@ class TransitionController { // Check if we can run in parallel here. if (canStartCollectingNow(transit)) { // start running in parallel. - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from" + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from" + " collecting to waiting.", mCollectingTransition.getSyncId()); mWaitingTransitions.add(mCollectingTransition); mCollectingTransition = null; @@ -1464,7 +1466,7 @@ class TransitionController { // Check if we can run in parallel here. if (canStartCollectingNow(null /* transit */)) { // create and collect in parallel. - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from" + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Moving #%d from" + " collecting to waiting.", mCollectingTransition.getSyncId()); mWaitingTransitions.add(mCollectingTransition); mCollectingTransition = null; @@ -1488,7 +1490,7 @@ class TransitionController { // Just add to queue since we already have a queue. mQueuedTransitions.add(new QueuedTransition(syncGroup, (deferred) -> applySync.accept(true /* deferred */))); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "Queueing legacy sync-set: %s", syncGroup.mSyncId); return; } @@ -1683,9 +1685,10 @@ class TransitionController { } void logOnSend() { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnSendLog()); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, " startWCT=%s", mStartWCT); - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, " info=%s", + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnSendLog()); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, + " startWCT=%s", mStartWCT); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, " info=%s", mInfo.toString(" " /* prefix */)); } @@ -1708,7 +1711,7 @@ class TransitionController { } void logOnFinish() { - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnFinishLog()); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN, "%s", buildOnFinishLog()); } } diff --git a/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java b/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java index c0dc4247a7c2..8e32813f7ecc 100644 --- a/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java +++ b/services/core/java/com/android/server/wm/TrustedPresentationListenerController.java @@ -21,7 +21,7 @@ import static android.graphics.Matrix.MSCALE_Y; import static android.graphics.Matrix.MSKEW_X; import static android.graphics.Matrix.MSKEW_Y; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_TPL; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TPL; import android.graphics.Matrix; import android.graphics.Rect; diff --git a/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java b/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java index fffe692a39dd..c3e85b1f8662 100644 --- a/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java +++ b/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java @@ -15,7 +15,7 @@ */ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_REMOTE_ANIMATIONS; import static com.android.server.wm.AnimationAdapterProto.REMOTE; import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION; diff --git a/services/core/java/com/android/server/wm/WallpaperController.java b/services/core/java/com/android/server/wm/WallpaperController.java index 06010bb1642e..7565b5d9fd4e 100644 --- a/services/core/java/com/android/server/wm/WallpaperController.java +++ b/services/core/java/com/android/server/wm/WallpaperController.java @@ -23,7 +23,7 @@ import static android.view.Display.DEFAULT_DISPLAY; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; diff --git a/services/core/java/com/android/server/wm/WallpaperWindowToken.java b/services/core/java/com/android/server/wm/WallpaperWindowToken.java index 89ad5640ef83..2c926fcae26a 100644 --- a/services/core/java/com/android/server/wm/WallpaperWindowToken.java +++ b/services/core/java/com/android/server/wm/WallpaperWindowToken.java @@ -19,8 +19,8 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WALLPAPER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WALLPAPER; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java index 2342de3676de..49c8559c02a8 100644 --- a/services/core/java/com/android/server/wm/WindowAnimator.java +++ b/services/core/java/com/android/server/wm/WindowAnimator.java @@ -16,7 +16,7 @@ package com.android.server.wm; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_SCREEN_ROTATION; diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index 1c03ba571923..da64a5f07aeb 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -37,11 +37,11 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static android.window.TaskFragmentAnimationParams.DEFAULT_ANIMATION_BACKGROUND_COLOR; import static android.window.flags.DesktopModeFlags.ENABLE_CAPTION_COMPAT_INSET_FORCE_CONSUMPTION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SYNC_ENGINE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.AppTransition.MAX_APP_TRANSITION_DURATION; import static com.android.server.wm.AppTransition.isActivityTransitOld; diff --git a/services/core/java/com/android/server/wm/WindowContainerThumbnail.java b/services/core/java/com/android/server/wm/WindowContainerThumbnail.java index 80f3c44267d7..ae477e1e22f0 100644 --- a/services/core/java/com/android/server/wm/WindowContainerThumbnail.java +++ b/services/core/java/com/android/server/wm/WindowContainerThumbnail.java @@ -19,7 +19,7 @@ package com.android.server.wm; import static android.view.SurfaceControl.METADATA_OWNER_UID; import static android.view.SurfaceControl.METADATA_WINDOW_TYPE; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION; import static com.android.server.wm.WindowContainerThumbnailProto.HEIGHT; import static com.android.server.wm.WindowContainerThumbnailProto.SURFACE_ANIMATOR; diff --git a/services/core/java/com/android/server/wm/WindowContextListenerController.java b/services/core/java/com/android/server/wm/WindowContextListenerController.java index 87e120c9a15d..809745e48300 100644 --- a/services/core/java/com/android/server/wm/WindowContextListenerController.java +++ b/services/core/java/com/android/server/wm/WindowContextListenerController.java @@ -21,8 +21,8 @@ import static android.view.Display.isSuspendedState; import static android.view.WindowManager.LayoutParams.INVALID_WINDOW_TYPE; import static android.window.WindowProviderService.isWindowProviderService; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_ERROR; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR; import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 942634704ff5..e1e471479393 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -101,18 +101,18 @@ import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ER import static android.view.flags.Flags.sensitiveContentAppProtection; import static android.window.WindowProviderService.isWindowProviderService; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BOOT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_IME; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SCREEN_ON; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_MOVEMENT; -import static com.android.internal.protolog.ProtoLogGroup.WM_ERROR; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BOOT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SCREEN_ON; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_MOVEMENT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_ERROR; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.internal.util.FrameworkStatsLog.SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED; import static com.android.internal.util.LatencyTracker.ACTION_ROTATE_SCREEN; import static com.android.server.LockGuard.INDEX_WINDOW; @@ -335,7 +335,7 @@ import com.android.internal.policy.IShortcutService; import com.android.internal.policy.KeyInterceptionInfo; import com.android.internal.protolog.LegacyProtoLogImpl; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.internal.util.DumpUtils; import com.android.internal.util.FastPrintWriter; import com.android.internal.util.FrameworkStatsLog; @@ -3890,8 +3890,8 @@ public class WindowManagerService extends IWindowManager.Stub synchronized (mGlobalLock) { mAtmService.getTransitionController().mIsWaitingForDisplayEnabled = false; - ProtoLog.v(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, "Notified TransitionController " - + "that the display is ready."); + ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, + "Notified TransitionController that the display is ready."); } } @@ -10172,6 +10172,22 @@ public class WindowManagerService extends IWindowManager.Stub } } + /** + * Returns whether the display with the given ID is trusted. + */ + @Override + public boolean isDisplayTrusted(int displayId) { + final long identity = Binder.clearCallingIdentity(); + try { + synchronized (mGlobalLock) { + DisplayContent dc = mRoot.getDisplayContent(displayId); + return dc != null && dc.isTrusted(); + } + } finally { + Binder.restoreCallingIdentity(identity); + } + } + @RequiresPermission(ACCESS_SURFACE_FLINGER) @Override public boolean replaceContentOnDisplay(int displayId, SurfaceControl sc) { diff --git a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java index 6d7396f1f477..21ed8d793b24 100644 --- a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java +++ b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java @@ -16,6 +16,9 @@ package com.android.server.wm; +import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM; +import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; +import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED; import static android.os.Build.IS_USER; import static android.view.CrossWindowBlurListeners.CROSS_WINDOW_BLUR_SUPPORTED; @@ -30,6 +33,7 @@ import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_VERTICAL_RE import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_CENTER; import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_TOP; +import android.app.WindowConfiguration; import android.content.res.Resources.NotFoundException; import android.graphics.Color; import android.graphics.Point; @@ -157,6 +161,10 @@ public class WindowManagerShellCommand extends ShellCommand { return runReset(pw); case "disable-blur": return runSetBlurDisabled(pw); + case "set-display-windowing-mode": + return runSetDisplayWindowingMode(pw); + case "get-display-windowing-mode": + return runGetDisplayWindowingMode(pw); case "shell": return runWmShellCommand(pw); default: @@ -1434,6 +1442,35 @@ public class WindowManagerShellCommand extends ShellCommand { return 0; } + private int runSetDisplayWindowingMode(PrintWriter pw) throws RemoteException { + int displayId = Display.DEFAULT_DISPLAY; + String arg = getNextArgRequired(); + if ("-d".equals(arg)) { + displayId = Integer.parseInt(getNextArgRequired()); + arg = getNextArgRequired(); + } + + final int windowingMode = Integer.parseInt(arg); + mInterface.setWindowingMode(displayId, windowingMode); + + return 0; + } + + private int runGetDisplayWindowingMode(PrintWriter pw) throws RemoteException { + int displayId = Display.DEFAULT_DISPLAY; + final String arg = getNextArg(); + if ("-d".equals(arg)) { + displayId = Integer.parseInt(getNextArgRequired()); + } + + final int windowingMode = mInterface.getWindowingMode(displayId); + pw.println("display windowing mode=" + + WindowConfiguration.windowingModeToString(windowingMode) + " for displayId=" + + displayId); + + return 0; + } + private int runWmShellCommand(PrintWriter pw) { String arg = getNextArg(); @@ -1512,6 +1549,9 @@ public class WindowManagerShellCommand extends ShellCommand { // set-multi-window-config runResetMultiWindowConfig(); + // set-display-windowing-mode + mInternal.setWindowingMode(displayId, WINDOWING_MODE_UNDEFINED); + pw.println("Reset all settings for displayId=" + displayId); return 0; } @@ -1552,6 +1592,12 @@ public class WindowManagerShellCommand extends ShellCommand { printLetterboxHelp(pw); printMultiWindowConfigHelp(pw); + pw.println(" set-display-windowing-mode [-d DISPLAY_ID] [mode_id]"); + pw.println(" As mode_id, use " + WINDOWING_MODE_UNDEFINED + " for undefined, " + + WINDOWING_MODE_FREEFORM + " for freeform, " + WINDOWING_MODE_FULLSCREEN + " for" + + " fullscreen"); + pw.println(" get-display-windowing-mode [-d DISPLAY_ID]"); + pw.println(" reset [-d DISPLAY_ID]"); pw.println(" Reset all override settings."); if (!IS_USER) { diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index f35f2b30c5d4..09a2bf9647e9 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -73,7 +73,7 @@ import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_SET_REPARENT_LEAF_TASK_IF_RELAUNCH; import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_START_SHORTCUT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_ORGANIZER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import static com.android.server.wm.ActivityRecord.State.PAUSING; import static com.android.server.wm.ActivityRecord.State.RESUMED; import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission; @@ -130,7 +130,7 @@ import android.window.WindowContainerTransaction; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.internal.util.ArrayUtils; import com.android.server.LocalServices; import com.android.server.pm.LauncherAppsService.LauncherAppsServiceInternal; @@ -571,7 +571,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub // {@link #applySyncTransaction} with Shell transition. // We still want to apply and merge the transaction to the active sync // because {@code shouldApplyIndependently} is {@code false}. - ProtoLog.w(ProtoLogGroup.WM_DEBUG_WINDOW_TRANSITIONS, + ProtoLog.w(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "TaskFragmentTransaction changes are not collected in transition" + " because there is an ongoing sync for" + " applySyncTransaction()."); diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index 2d9e8488a3e7..86adc1944371 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -27,7 +27,7 @@ import static android.os.InputConstants.DEFAULT_DISPATCHING_TIMEOUT_MILLIS; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_FLAG_APP_CRASHED; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION; import static com.android.internal.util.Preconditions.checkArgument; import static com.android.server.am.ProcessList.INVALID_ADJ; import static com.android.server.wm.ActivityRecord.State.DESTROYED; diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index ab8384601f8f..08789122c607 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -100,19 +100,19 @@ import static android.view.WindowManagerPolicyConstants.TYPE_LAYER_MULTIPLIER; import static android.view.WindowManagerPolicyConstants.TYPE_LAYER_OFFSET; import static com.android.input.flags.Flags.removeInputChannelFromWindowstate; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_BACK_PREVIEW; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DIMMER; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_RESIZE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_SYNC_ENGINE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_INSETS; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_BACK_PREVIEW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DIMMER; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS_LIGHT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_RESIZE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SYNC_ENGINE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_INSETS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_ENTER; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_EXIT; diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 82fa9d4db534..a934eea690f7 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -27,12 +27,12 @@ import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; import static android.view.WindowManager.TRANSIT_OLD_NONE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ANIM; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_DRAW; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ORIENTATION; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC; -import static com.android.internal.protolog.ProtoLogGroup.WM_SHOW_TRANSACTIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ANIM; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_DRAW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATION; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_SURFACE_ALLOC; +import static com.android.internal.protolog.WmProtoLogGroups.WM_SHOW_TRANSACTIONS; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION; diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java index 67bd5cb833ae..7e7ca12cd44e 100644 --- a/services/core/java/com/android/server/wm/WindowToken.java +++ b/services/core/java/com/android/server/wm/WindowToken.java @@ -18,10 +18,10 @@ package com.android.server.wm; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS; -import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_MOVEMENT; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ADD_REMOVE; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_APP_TRANSITIONS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_FOCUS; +import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_MOVEMENT; import static com.android.server.wm.WindowContainerChildProto.WINDOW_TOKEN; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java index 4beb6a8a3480..a58da81c6396 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java @@ -42,7 +42,6 @@ import android.app.admin.PolicyUpdateReceiver; import android.app.admin.PolicyValue; import android.app.admin.TargetUser; import android.app.admin.UserRestrictionPolicyKey; -import android.app.admin.flags.Flags; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -2100,17 +2099,13 @@ final class DevicePolicyEngine { String tag = parser.getName(); switch (tag) { case TAG_POLICY_KEY_ENTRY: - if (Flags.dontReadPolicyDefinition()) { - policyDefinition = PolicyDefinition.readFromXml(parser); - if (policyDefinition != null) { - policyKey = policyDefinition.getPolicyKey(); - } - } else { - policyKey = PolicyDefinition.readPolicyKeyFromXml(parser); + policyDefinition = PolicyDefinition.readFromXml(parser); + if (policyDefinition != null) { + policyKey = policyDefinition.getPolicyKey(); } break; case TAG_POLICY_STATE_ENTRY: - if (Flags.dontReadPolicyDefinition() && policyDefinition == null) { + if (policyDefinition == null) { Slogf.w(TAG, "Skipping policy state - unknown policy definition"); } else { policyState = PolicyState.readFromXml(policyDefinition, parser); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java index b81348969f7d..a4fa0892da61 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyState.java @@ -225,9 +225,11 @@ final class PolicyState<V> { } void saveToXml(TypedXmlSerializer serializer) throws IOException { - serializer.startTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY); - mPolicyDefinition.saveToXml(serializer); - serializer.endTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY); + if (!Flags.dontWritePolicyDefinition()) { + serializer.startTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY); + mPolicyDefinition.saveToXml(serializer); + serializer.endTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY); + } if (mCurrentResolvedPolicy != null) { serializer.startTag(/* namespace= */ null, TAG_RESOLVED_VALUE_ENTRY); @@ -298,18 +300,6 @@ final class PolicyState<V> { + (value == null ? "null" : value)); } break; - case TAG_POLICY_DEFINITION_ENTRY: - if (Flags.dontReadPolicyDefinition()) { - // Should be passed by the caller. - Objects.requireNonNull(policyDefinition); - } else { - policyDefinition = PolicyDefinition.readFromXml(parser); - if (policyDefinition == null) { - Slogf.wtf(TAG, "Error Parsing TAG_POLICY_DEFINITION_ENTRY, " - + "PolicyDefinition is null"); - } - } - break; case TAG_RESOLVED_VALUE_ENTRY: if (policyDefinition == null) { diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index ce6f1ecc9463..7ea1dcd9392d 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -109,7 +109,7 @@ import com.android.internal.os.RuntimeInit; import com.android.internal.policy.AttributeCache; import com.android.internal.protolog.ProtoLog; import com.android.internal.protolog.ProtoLogConfigurationServiceImpl; -import com.android.internal.protolog.ProtoLogGroup; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.internal.util.ConcurrentUtils; import com.android.internal.util.EmergencyAffordanceManager; import com.android.internal.util.FrameworkStatsLog; @@ -1114,7 +1114,7 @@ public final class SystemServer implements Dumpable { } t.traceBegin("InitializeProtoLog"); - ProtoLog.init(ProtoLogGroup.values()); + ProtoLog.init(WmProtoLogGroups.values()); t.traceEnd(); // Platform compat service is used by ActivityManagerService, PackageManagerService, and diff --git a/services/net/Android.bp b/services/net/Android.bp index 927146db0a24..62748e8641f2 100644 --- a/services/net/Android.bp +++ b/services/net/Android.bp @@ -31,7 +31,6 @@ java_library_static { filegroup { name: "services-tethering-shared-srcs", srcs: [ - ":framework-annotations", "java/android/net/util/NetworkConstants.java", ], visibility: [ diff --git a/services/profcollect/src/com/android/server/profcollect/Utils.java b/services/profcollect/src/com/android/server/profcollect/Utils.java index b4e254442a19..a8016a0b641e 100644 --- a/services/profcollect/src/com/android/server/profcollect/Utils.java +++ b/services/profcollect/src/com/android/server/profcollect/Utils.java @@ -25,10 +25,14 @@ import android.util.Log; import com.android.internal.os.BackgroundThread; +import java.time.Instant; import java.util.concurrent.ThreadLocalRandom; public final class Utils { + private static Instant lastTraceTime = Instant.EPOCH; + private static final int TRACE_COOLDOWN_SECONDS = 30; + public static boolean withFrequency(String configName, int defaultFrequency) { int threshold = DeviceConfig.getInt( DeviceConfig.NAMESPACE_PROFCOLLECT_NATIVE_BOOT, configName, defaultFrequency); @@ -40,6 +44,9 @@ public final class Utils { if (mIProfcollect == null) { return false; } + if (isInCooldownOrReset()) { + return false; + } BackgroundThread.get().getThreadHandler().post(() -> { try { mIProfcollect.trace_system(eventName); @@ -54,6 +61,9 @@ public final class Utils { if (mIProfcollect == null) { return false; } + if (isInCooldownOrReset()) { + return false; + } BackgroundThread.get().getThreadHandler().postDelayed(() -> { try { mIProfcollect.trace_system(eventName); @@ -69,6 +79,9 @@ public final class Utils { if (mIProfcollect == null) { return false; } + if (isInCooldownOrReset()) { + return false; + } BackgroundThread.get().getThreadHandler().post(() -> { try { mIProfcollect.trace_process(eventName, @@ -80,4 +93,16 @@ public final class Utils { }); return true; } + + /** + * Returns true if the last trace is within the cooldown period. If the last trace is outside + * the cooldown period, the last trace time is reset to the current time. + */ + private static boolean isInCooldownOrReset() { + if (!Instant.now().isBefore(lastTraceTime.plusSeconds(TRACE_COOLDOWN_SECONDS))) { + lastTraceTime = Instant.now(); + return false; + } + return true; + } } diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java index 255dcb083518..342c87a6b5f6 100644 --- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java @@ -37,6 +37,7 @@ import static com.android.server.display.config.DisplayDeviceConfigTestUtilsKt.c import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; @@ -1524,6 +1525,47 @@ public class DisplayManagerServiceTest { } @Test + public void testGetDisplayIdsForGroup() throws Exception { + DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector); + displayManager.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + DisplayManagerInternal localService = displayManager.new LocalService(); + LogicalDisplayMapper logicalDisplayMapper = displayManager.getLogicalDisplayMapper(); + // Create display 1 + FakeDisplayDevice displayDevice1 = + createFakeDisplayDevice(displayManager, new float[]{60f}, Display.TYPE_INTERNAL); + LogicalDisplay display1 = logicalDisplayMapper.getDisplayLocked(displayDevice1); + final int groupId1 = display1.getDisplayInfoLocked().displayGroupId; + // Create display 2 + FakeDisplayDevice displayDevice2 = + createFakeDisplayDevice(displayManager, new float[]{60f}, Display.TYPE_INTERNAL); + LogicalDisplay display2 = logicalDisplayMapper.getDisplayLocked(displayDevice2); + final int groupId2 = display2.getDisplayInfoLocked().displayGroupId; + // Both displays should be in the same display group + assertEquals(groupId1, groupId2); + final int[] expectedDisplayIds = new int[]{ + display1.getDisplayIdLocked(), display2.getDisplayIdLocked()}; + + final int[] displayIds = localService.getDisplayIdsForGroup(groupId1); + + assertArrayEquals(expectedDisplayIds, displayIds); + } + + @Test + public void testGetDisplayIdsForUnknownGroup() throws Exception { + final int unknownDisplayGroupId = 999; + DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector); + displayManager.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + DisplayManagerInternal localService = displayManager.new LocalService(); + LogicalDisplayMapper logicalDisplayMapper = displayManager.getLogicalDisplayMapper(); + // Verify that display manager does not have display group + assertNull(logicalDisplayMapper.getDisplayGroupLocked(unknownDisplayGroupId)); + + final int[] displayIds = localService.getDisplayIdsForGroup(unknownDisplayGroupId); + + assertEquals(0, displayIds.length); + } + + @Test public void testCreateVirtualDisplay_isValidProjection_notValid() throws RemoteException { when(mMockAppToken.asBinder()).thenReturn(mMockAppToken); diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt new file mode 100644 index 000000000000..17af6335e25b --- /dev/null +++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyCoordinatorTest.kt @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.display + +import android.util.DisplayMetrics +import android.view.Display +import android.view.DisplayInfo +import org.junit.Before +import org.junit.Test +import org.mockito.ArgumentMatchers.anyDouble +import org.mockito.ArgumentMatchers.anyInt +import org.mockito.kotlin.mock +import org.mockito.kotlin.never +import org.mockito.kotlin.verify +import org.mockito.kotlin.whenever +import java.util.function.BooleanSupplier + +class DisplayTopologyCoordinatorTest { + private lateinit var coordinator: DisplayTopologyCoordinator + private val displayInfo = DisplayInfo() + + private val mockTopology = mock<DisplayTopology>() + private val mockIsExtendedDisplayEnabled = mock<BooleanSupplier>() + + @Before + fun setUp() { + displayInfo.displayId = 2 + displayInfo.logicalWidth = 300 + displayInfo.logicalHeight = 200 + displayInfo.logicalDensityDpi = 100 + + val injector = object : DisplayTopologyCoordinator.Injector() { + override fun getTopology() = mockTopology + } + coordinator = DisplayTopologyCoordinator(injector, mockIsExtendedDisplayEnabled) + } + + @Test + fun addDisplay() { + whenever(mockIsExtendedDisplayEnabled.asBoolean).thenReturn(true) + + coordinator.onDisplayAdded(displayInfo) + + val widthDp = displayInfo.logicalWidth * (DisplayMetrics.DENSITY_DEFAULT.toDouble() + / displayInfo.logicalDensityDpi) + val heightDp = displayInfo.logicalHeight * (DisplayMetrics.DENSITY_DEFAULT.toDouble() + / displayInfo.logicalDensityDpi) + verify(mockTopology).addDisplay(displayInfo.displayId, widthDp, heightDp) + } + + @Test + fun addDisplay_extendedDisplaysDisabled() { + whenever(mockIsExtendedDisplayEnabled.asBoolean).thenReturn(false) + + coordinator.onDisplayAdded(displayInfo) + + verify(mockTopology, never()).addDisplay(anyInt(), anyDouble(), anyDouble()) + } + + @Test + fun addDisplay_notInDefaultDisplayGroup() { + whenever(mockIsExtendedDisplayEnabled.asBoolean).thenReturn(true) + displayInfo.displayGroupId = Display.DEFAULT_DISPLAY_GROUP + 1 + + coordinator.onDisplayAdded(displayInfo) + + verify(mockTopology, never()).addDisplay(anyInt(), anyDouble(), anyDouble()) + } +}
\ No newline at end of file diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt new file mode 100644 index 000000000000..1fad14b0a062 --- /dev/null +++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayTopologyTest.kt @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.display + +import com.google.common.truth.Truth.assertThat +import org.junit.Test + +class DisplayTopologyTest { + private val topology = DisplayTopology() + + @Test + fun oneDisplay() { + val displayId = 1 + val width = 800.0 + val height = 600.0 + + topology.addDisplay(displayId, width, height) + + assertThat(topology.mPrimaryDisplayId).isEqualTo(displayId) + + val display = topology.mRoot!! + assertThat(display.mDisplayId).isEqualTo(displayId) + assertThat(display.mWidth).isEqualTo(width) + assertThat(display.mHeight).isEqualTo(height) + assertThat(display.mChildren).isEmpty() + } + + @Test + fun twoDisplays() { + val displayId1 = 1 + val width1 = 800.0 + val height1 = 600.0 + + val displayId2 = 2 + val width2 = 1000.0 + val height2 = 1500.0 + + topology.addDisplay(displayId1, width1, height1) + topology.addDisplay(displayId2, width2, height2) + + assertThat(topology.mPrimaryDisplayId).isEqualTo(displayId1) + + val display1 = topology.mRoot!! + assertThat(display1.mDisplayId).isEqualTo(displayId1) + assertThat(display1.mWidth).isEqualTo(width1) + assertThat(display1.mHeight).isEqualTo(height1) + assertThat(display1.mChildren).hasSize(1) + + val display2 = display1.mChildren[0] + assertThat(display2.mDisplayId).isEqualTo(displayId2) + assertThat(display2.mWidth).isEqualTo(width2) + assertThat(display2.mHeight).isEqualTo(height2) + assertThat(display2.mChildren).isEmpty() + assertThat(display2.mPosition).isEqualTo( + DisplayTopology.TreeNode.Position.POSITION_TOP) + assertThat(display2.mOffset).isEqualTo(width1 / 2 - width2 / 2) + } + + @Test + fun manyDisplays() { + val displayId1 = 1 + val width1 = 800.0 + val height1 = 600.0 + + val displayId2 = 2 + val width2 = 1000.0 + val height2 = 1500.0 + + topology.addDisplay(displayId1, width1, height1) + topology.addDisplay(displayId2, width2, height2) + + val noOfDisplays = 30 + for (i in 3..noOfDisplays) { + topology.addDisplay(/* displayId= */ i, width1, height1) + } + + assertThat(topology.mPrimaryDisplayId).isEqualTo(displayId1) + + val display1 = topology.mRoot!! + assertThat(display1.mDisplayId).isEqualTo(displayId1) + assertThat(display1.mWidth).isEqualTo(width1) + assertThat(display1.mHeight).isEqualTo(height1) + assertThat(display1.mChildren).hasSize(1) + + val display2 = display1.mChildren[0] + assertThat(display2.mDisplayId).isEqualTo(displayId2) + assertThat(display2.mWidth).isEqualTo(width2) + assertThat(display2.mHeight).isEqualTo(height2) + assertThat(display2.mChildren).hasSize(1) + assertThat(display2.mPosition).isEqualTo( + DisplayTopology.TreeNode.Position.POSITION_TOP) + assertThat(display2.mOffset).isEqualTo(width1 / 2 - width2 / 2) + + var display = display2 + for (i in 3..noOfDisplays) { + display = display.mChildren[0] + assertThat(display.mDisplayId).isEqualTo(i) + assertThat(display.mWidth).isEqualTo(width1) + assertThat(display.mHeight).isEqualTo(height1) + // The last display should have no children + assertThat(display.mChildren).hasSize(if (i < noOfDisplays) 1 else 0) + assertThat(display.mPosition).isEqualTo( + DisplayTopology.TreeNode.Position.POSITION_RIGHT) + assertThat(display.mOffset).isEqualTo(0) + } + } +}
\ No newline at end of file diff --git a/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java b/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java index 07029268661e..a1db18232c09 100644 --- a/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java +++ b/services/tests/powerservicetests/src/com/android/server/power/NotifierTest.java @@ -268,7 +268,7 @@ public class NotifierTest { } @Test - public void testOnGlobalWakefulnessChangeStarted() throws Exception { + public void testOnGlobalWakefulnessChangeStarted() { createNotifier(); // GIVEN system is currently non-interactive when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false); @@ -294,6 +294,96 @@ public class NotifierTest { } @Test + public void testOnGroupWakefulnessChangeStarted_newPowerGroup_perDisplayWakeDisabled() { + createNotifier(); + // GIVEN power group is not yet known to Notifier and per-display wake by touch is disabled + final int groupId = 123; + final int changeReason = PowerManager.WAKE_REASON_TAP; + when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false); + + // WHEN a power group wakefulness change starts + mNotifier.onGroupWakefulnessChangeStarted( + groupId, WAKEFULNESS_AWAKE, changeReason, /* eventTime= */ 999); + mTestLooper.dispatchAll(); + + // THEN window manager policy is informed that device has started waking up + verify(mPolicy).startedWakingUp(groupId, changeReason); + verify(mDisplayManagerInternal, never()).getDisplayIds(); + verify(mInputManagerInternal, never()).setDisplayInteractivities(any()); + } + + @Test + public void testOnGroupWakefulnessChangeStarted_interactivityNoChange_perDisplayWakeDisabled() { + createNotifier(); + // GIVEN power group is not interactive and per-display wake by touch is disabled + final int groupId = 234; + final int changeReason = PowerManager.GO_TO_SLEEP_REASON_TIMEOUT; + when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false); + mNotifier.onGroupWakefulnessChangeStarted( + groupId, WAKEFULNESS_ASLEEP, changeReason, /* eventTime= */ 999); + mTestLooper.dispatchAll(); + verify(mPolicy, times(1)).startedGoingToSleep(groupId, changeReason); + + // WHEN a power wakefulness change to not interactive starts + mNotifier.onGroupWakefulnessChangeStarted( + groupId, WAKEFULNESS_ASLEEP, changeReason, /* eventTime= */ 999); + mTestLooper.dispatchAll(); + + // THEN policy is only informed once of non-interactive wakefulness change + verify(mPolicy, times(1)).startedGoingToSleep(groupId, changeReason); + verify(mDisplayManagerInternal, never()).getDisplayIds(); + verify(mInputManagerInternal, never()).setDisplayInteractivities(any()); + } + + @Test + public void testOnGroupWakefulnessChangeStarted_interactivityChange_perDisplayWakeDisabled() { + createNotifier(); + // GIVEN power group is not interactive and per-display wake by touch is disabled + final int groupId = 345; + final int firstChangeReason = PowerManager.GO_TO_SLEEP_REASON_TIMEOUT; + when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(false); + mNotifier.onGroupWakefulnessChangeStarted( + groupId, WAKEFULNESS_ASLEEP, firstChangeReason, /* eventTime= */ 999); + mTestLooper.dispatchAll(); + + // WHEN a power wakefulness change to interactive starts + final int secondChangeReason = PowerManager.WAKE_REASON_TAP; + mNotifier.onGroupWakefulnessChangeStarted( + groupId, WAKEFULNESS_AWAKE, secondChangeReason, /* eventTime= */ 999); + mTestLooper.dispatchAll(); + + // THEN policy is informed of the change + verify(mPolicy).startedWakingUp(groupId, secondChangeReason); + verify(mDisplayManagerInternal, never()).getDisplayIds(); + verify(mInputManagerInternal, never()).setDisplayInteractivities(any()); + } + + @Test + public void testOnGroupWakefulnessChangeStarted_perDisplayWakeByTouchEnabled() { + createNotifier(); + // GIVEN per-display wake by touch flag is enabled + when(mPowerManagerFlags.isPerDisplayWakeByTouchEnabled()).thenReturn(true); + final int groupId = 456; + final int displayId1 = 1001; + final int displayId2 = 1002; + final int[] displays = new int[]{displayId1, displayId2}; + when(mDisplayManagerInternal.getDisplayIds()).thenReturn(IntArray.wrap(displays)); + when(mDisplayManagerInternal.getDisplayIdsForGroup(groupId)).thenReturn(displays); + final int changeReason = PowerManager.WAKE_REASON_TAP; + + // WHEN power group wakefulness change started + mNotifier.onGroupWakefulnessChangeStarted( + groupId, WAKEFULNESS_AWAKE, changeReason, /* eventTime= */ 999); + mTestLooper.dispatchAll(); + + // THEN native input manager is updated that the displays are interactive + final SparseBooleanArray expectedDisplayInteractivities = new SparseBooleanArray(); + expectedDisplayInteractivities.put(displayId1, true); + expectedDisplayInteractivities.put(displayId2, true); + verify(mInputManagerInternal).setDisplayInteractivities(expectedDisplayInteractivities); + } + + @Test public void testOnWakeLockListener_RemoteException_NoRethrow() throws RemoteException { when(mPowerManagerFlags.improveWakelockLatency()).thenReturn(true); createNotifier(); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java index c5157b373ee6..7d2bc178b993 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsAtomTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockingDetails; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -56,6 +57,7 @@ public class BatteryUsageStatsAtomTest { @Rule public final RavenwoodRule mRavenwood = new RavenwoodRule(); + private static final boolean DEBUG = false; private static final int UID_0 = 1000; private static final int UID_1 = 2000; private static final int UID_2 = 3000; @@ -70,6 +72,10 @@ public class BatteryUsageStatsAtomTest { List<StatsEvent> actual = new ArrayList<>(); new BatteryStatsService.StatsPerUidLogger(statsLogger).logStats(bus, actual); + if (DEBUG) { + System.out.println(mockingDetails(statsLogger).printInvocations()); + } + // Device-wide totals verify(statsLogger).buildStatsEvent( 1000L, @@ -609,7 +615,7 @@ public class BatteryUsageStatsAtomTest { BatteryUsageStats batteryUsageStats = builder.build(); final byte[] bytes = batteryUsageStats.getStatsProto(); - assertThat(bytes.length).isGreaterThan(40000); + assertThat(bytes.length).isGreaterThan(20000); assertThat(bytes.length).isLessThan(50000); BatteryUsageStatsAtomsProto proto; diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java index 0e60156aecd1..b30224b8327b 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsProviderTest.java @@ -47,6 +47,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.os.BatteryStatsHistoryIterator; import com.android.internal.os.PowerProfile; +import com.android.server.power.stats.processor.MultiStatePowerAttributor; import org.junit.Before; import org.junit.Rule; @@ -74,7 +75,8 @@ public class BatteryUsageStatsProviderTest { new BatteryUsageStatsRule(12345) .createTempDirectory() .setAveragePower(PowerProfile.POWER_FLASHLIGHT, 360.0) - .setAveragePower(PowerProfile.POWER_AUDIO, 720.0); + .setAveragePower(PowerProfile.POWER_AUDIO, 720.0) + .setAveragePower(PowerProfile.POWER_BATTERY_CAPACITY, 4000.0); private MockClock mMockClock = mStatsRule.getMockClock(); private Context mContext; @@ -92,14 +94,7 @@ public class BatteryUsageStatsProviderTest { @Test public void test_getBatteryUsageStats() { - BatteryStatsImpl batteryStats = prepareBatteryStats(); - - BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(mContext, - mock(PowerAttributor.class), mStatsRule.getPowerProfile(), - mStatsRule.getCpuScalingPolicies(), mock(PowerStatsStore.class), mMockClock); - - final BatteryUsageStats batteryUsageStats = - provider.getBatteryUsageStats(batteryStats, BatteryUsageStatsQuery.DEFAULT); + final BatteryUsageStats batteryUsageStats = prepareBatteryUsageStats(false); final List<UidBatteryConsumer> uidBatteryConsumers = batteryUsageStats.getUidBatteryConsumers(); @@ -128,8 +123,22 @@ public class BatteryUsageStatsProviderTest { } @Test + public void batteryLevelInfo_charging() { + final BatteryUsageStats batteryUsageStats = prepareBatteryUsageStats(true); + assertThat(batteryUsageStats.getBatteryCapacity()).isEqualTo(4000.0); + assertThat(batteryUsageStats.getChargeTimeRemainingMs()).isEqualTo(1_200_000); + } + + @Test + public void batteryLevelInfo_onBattery() { + final BatteryUsageStats batteryUsageStats = prepareBatteryUsageStats(false); + assertThat(batteryUsageStats.getBatteryCapacity()).isEqualTo(4000.0); + assertThat(batteryUsageStats.getBatteryTimeRemainingMs()).isEqualTo(600_000); + } + + @Test public void test_selectPowerComponents() { - BatteryStatsImpl batteryStats = prepareBatteryStats(); + BatteryStatsImpl batteryStats = prepareBatteryStats(false); BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(mContext, mock(PowerAttributor.class), mStatsRule.getPowerProfile(), @@ -155,8 +164,15 @@ public class BatteryUsageStatsProviderTest { .isEqualTo(0); } - private BatteryStatsImpl prepareBatteryStats() { + private BatteryStatsImpl prepareBatteryStats(boolean plugInAtTheEnd) { BatteryStatsImpl batteryStats = mStatsRule.getBatteryStats(); + batteryStats.onSystemReady(mContext); + + synchronized (batteryStats) { + batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, + 100, /* plugType */ 0, 90, 72, 3700, 3_600_000, 4_000_000, 0, 0, + 0, 0); + } mStatsRule.setTime(10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS); synchronized (batteryStats) { @@ -197,23 +213,64 @@ public class BatteryUsageStatsProviderTest { ActivityManager.PROCESS_STATE_CACHED_EMPTY); } synchronized (batteryStats) { - batteryStats.noteFlashlightOnLocked(APP_UID, 1000, 1000); + batteryStats.noteFlashlightOnLocked(APP_UID, 80 * MINUTE_IN_MS, 80 * MINUTE_IN_MS); } synchronized (batteryStats) { - batteryStats.noteFlashlightOffLocked(APP_UID, 5000, 5000); + batteryStats.noteFlashlightOffLocked(APP_UID, 80 * MINUTE_IN_MS + 4000, + 80 * MINUTE_IN_MS + 4000); } synchronized (batteryStats) { - batteryStats.noteAudioOnLocked(APP_UID, 10000, 10000); + batteryStats.noteAudioOnLocked(APP_UID, 90 * MINUTE_IN_MS, 90 * MINUTE_IN_MS); } synchronized (batteryStats) { - batteryStats.noteAudioOffLocked(APP_UID, 20000, 20000); + batteryStats.noteAudioOffLocked(APP_UID, 90 * MINUTE_IN_MS + 10000, + 90 * MINUTE_IN_MS + 10000); + } + + synchronized (batteryStats) { + batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, + 100, /* plugType */ 0, 60, 72, 3700, 2_600_000, 4_000_000, 0, + 100 * MINUTE_IN_MS, 100 * MINUTE_IN_MS, 21000); + } + + synchronized (batteryStats) { + batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_DISCHARGING, + 100, /* plugType */ 0, 30, 72, 3700, 1_600_000, 4_000_000, 0, + 110 * MINUTE_IN_MS, 110 * MINUTE_IN_MS, 21000); + } + + if (plugInAtTheEnd) { + synchronized (batteryStats) { + batteryStats.setBatteryStateLocked(BatteryManager.BATTERY_STATUS_CHARGING, + 100, /* plugType */ BatteryManager.BATTERY_PLUGGED_USB, 30, 72, 3700, + 1_600_000, 4_000_000, /* chargeTimeToFullSeconds */ 20 * 60, + 120 * MINUTE_IN_MS, 120 * MINUTE_IN_MS, 22000); + } } mStatsRule.setCurrentTime(54321); return batteryStats; } + private BatteryUsageStats prepareBatteryUsageStats(boolean plugInAtTheEnd) { + BatteryStatsImpl batteryStats = prepareBatteryStats(plugInAtTheEnd); + + MultiStatePowerAttributor powerAttributor = new MultiStatePowerAttributor(mContext, + mock(PowerStatsStore.class), mStatsRule.getPowerProfile(), + mStatsRule.getCpuScalingPolicies(), () -> 3500, new PowerStatsUidResolver()); + powerAttributor.setPowerComponentSupported(BatteryConsumer.POWER_COMPONENT_AUDIO, + true); + powerAttributor.setPowerComponentSupported(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT, + true); + + BatteryUsageStatsProvider provider = new BatteryUsageStatsProvider(mContext, + powerAttributor, mStatsRule.getPowerProfile(), + mStatsRule.getCpuScalingPolicies(), mock(PowerStatsStore.class), mMockClock); + + return provider.getBatteryUsageStats(batteryStats, BatteryUsageStatsQuery.DEFAULT); + } + @Test public void testWriteAndReadHistory() { MockBatteryStatsImpl batteryStats = mStatsRule.getBatteryStats(); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java index 624b18948c49..52675f6f6cb7 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsRule.java @@ -376,6 +376,23 @@ public class BatteryUsageStatsRule implements TestRule { return mBatteryStats.getUidStatsLocked(uid); } + /** + * Adds the supplied duration to all three: current time, elapsed time and uptime + */ + public void advanceTime(long millis) { + mMockClock.currentTime += millis; + mMockClock.realtime += millis; + mMockClock.uptime += millis; + } + + /** + * Adds the supplied duration to current time and elapsed time, but not to uptime + */ + public void advanceSuspendedTime(long millis) { + mMockClock.currentTime += millis; + mMockClock.realtime += millis; + } + public void setTime(long realtimeMs, long uptimeMs) { mMockClock.currentTime = realtimeMs; mMockClock.realtime = realtimeMs; diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java index 3ae4c3245941..88624f28a2e5 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/BatteryUsageStatsTest.java @@ -173,7 +173,9 @@ public class BatteryUsageStatsTest { assertThat(dump).containsMatch(quote("(not on battery, screen off/doze)") + "\\s*" + "cpu: 123 apps: 123 duration: 456ms"); assertThat(dump).containsMatch( - "UID 271: 1200 fg: 1777 bg: 2388 fgs: 1999 cached: 123\\s*" + quote("UID 271: 1200 " + + "fg: 1777 (1s 0ms) bg: 2388 (1s 500ms) fgs: 1999 (500ms) cached: 123") + + "\\s*" + quote("screen=300 cpu=400 (600ms) cpu:fg=1777 (7s 771ms) " + "cpu:bg=1888 (8s 881ms) cpu:fgs=1999 (9s 991ms) " + "cpu:cached=123 (456ms) FOO=500 (800ms) FOO:bg=500 (800ms)") + "\\s*" @@ -199,7 +201,9 @@ public class BatteryUsageStatsTest { assertThat(dump).contains("cpu: 20100 apps: 10100 duration: 20s 300ms"); assertThat(dump).contains("FOO: 20200 apps: 10200 duration: 20s 400ms"); assertThat(dump).containsMatch( - "UID 271: 1200 fg: 1777 bg: 2388 fgs: 1999 cached: 123\\s*" + quote("UID 271: 1200 " + + "fg: 1777 (1s 0ms) bg: 2388 (1s 500ms) fgs: 1999 (500ms) cached: 123") + + "\\s*" + quote("screen=300 cpu=400 (600ms) cpu:fg=1777 (7s 771ms) " + "cpu:bg=1888 (8s 881ms) cpu:fgs=1999 (9s 991ms) " + "cpu:cached=123 (456ms) FOO=500 (800ms) FOO:bg=500 (800ms)")); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java new file mode 100644 index 000000000000..dd5df76ef83f --- /dev/null +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/WakelockPowerStatsCollectorTest.java @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.server.power.stats; + +import static android.os.BatteryConsumer.POWER_COMPONENT_WAKELOCK; +import static android.os.BatteryStats.WAKE_TYPE_PARTIAL; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.mock; + +import android.content.Context; +import android.os.Process; +import android.platform.test.ravenwood.RavenwoodConfig; +import android.platform.test.ravenwood.RavenwoodConfig.Config; + +import com.android.internal.os.PowerStats; +import com.android.server.power.stats.format.WakelockPowerStatsLayout; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +public class WakelockPowerStatsCollectorTest { + + @Config + public static final RavenwoodConfig sConfig = new RavenwoodConfig.Builder() + .setProvideMainThread(true) + .build(); + + @Rule + public final BatteryUsageStatsRule mStatsRule = new BatteryUsageStatsRule(); + + private static final int APP_UID1 = Process.FIRST_APPLICATION_UID + 42; + private static final int APP_UID2 = Process.FIRST_APPLICATION_UID + 101; + + private MockBatteryStatsImpl mBatteryStats; + + private final MockClock mClock = mStatsRule.getMockClock(); + private PowerStats mPowerStats; + private WakelockPowerStatsLayout mStatsLayout = new WakelockPowerStatsLayout(); + + @Before + public void setup() { + mBatteryStats = new MockBatteryStatsImpl(mClock); + mBatteryStats.setPowerStatsCollectorEnabled(POWER_COMPONENT_WAKELOCK, true); + mBatteryStats.getPowerStatsCollector(POWER_COMPONENT_WAKELOCK) + .addConsumer(ps -> mPowerStats = ps); + mBatteryStats.onSystemReady(mock(Context.class)); + } + + @Test + public void collectStats() { + PowerStatsCollector powerStatsCollector = mBatteryStats.getPowerStatsCollector( + POWER_COMPONENT_WAKELOCK); + + // Establish a baseline + powerStatsCollector.collectAndDeliverStats(); + + mBatteryStats.forceRecordAllHistory(); + + mStatsRule.advanceSuspendedTime(1000); + + synchronized (mBatteryStats) { + mBatteryStats.setOnBatteryLocked(mClock.realtime, mClock.uptime, true, 0, 90, 1000); + } + + mStatsRule.advanceSuspendedTime(3000); + synchronized (mBatteryStats) { + mBatteryStats.noteStartWakeLocked(APP_UID1, 0, null, "one", null, WAKE_TYPE_PARTIAL, + false); + } + + mStatsRule.advanceTime(1000); + powerStatsCollector.collectAndDeliverStats(); + + assertThat(mStatsLayout.getUsageDuration(mPowerStats.stats)).isEqualTo(1000); + assertThat(mStatsLayout.getUidUsageDuration(mPowerStats.uidStats.get(APP_UID1))) + .isEqualTo(1000); + + mStatsRule.advanceTime(3000); + synchronized (mBatteryStats) { + mBatteryStats.noteStartWakeLocked(APP_UID2, 0, null, "two", null, WAKE_TYPE_PARTIAL, + false); + } + + mStatsRule.advanceTime(2000); + synchronized (mBatteryStats) { + mBatteryStats.noteStopWakeLocked(APP_UID1, 0, null, "one", null, WAKE_TYPE_PARTIAL); + } + + mStatsRule.advanceTime(5000); + synchronized (mBatteryStats) { + mBatteryStats.noteStopWakeLocked(APP_UID2, 0, null, "two", null, WAKE_TYPE_PARTIAL); + } + mStatsRule.advanceSuspendedTime(7000); + + // Plug in + synchronized (mBatteryStats) { + mBatteryStats.setOnBatteryLocked(mClock.realtime, mClock.uptime, false, 0, 90, 1000); + } + + mStatsRule.advanceSuspendedTime(1000); + powerStatsCollector.collectAndDeliverStats(); + + // Based on the uptime, the device was awake for (3000+2000+5000) = 10000 ms + assertThat(mStatsLayout.getUsageDuration(mPowerStats.stats)).isEqualTo(10000); + assertThat(mStatsLayout.getUidUsageDuration(mPowerStats.uidStats.get(APP_UID1))) + .isEqualTo(4000); // 3000 + (2000/2) -- the 2000 ms overlap is split two-way + assertThat(mStatsLayout.getUidUsageDuration(mPowerStats.uidStats.get(APP_UID2))) + .isEqualTo(6000); // (2000/2) + 5000 + } +} diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java new file mode 100644 index 000000000000..f7a16383974d --- /dev/null +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BasePowerStatsProcessorTest.java @@ -0,0 +1,260 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.power.stats.processor; + +import static android.os.BatteryConsumer.POWER_COMPONENT_BASE; +import static android.os.BatteryConsumer.PROCESS_STATE_BACKGROUND; +import static android.os.BatteryConsumer.PROCESS_STATE_CACHED; +import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND; +import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE; +import static android.os.BatteryConsumer.PROCESS_STATE_UNSPECIFIED; + +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.POWER_STATE_BATTERY; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.SCREEN_STATE_ON; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.SCREEN_STATE_OTHER; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_POWER; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_PROCESS_STATE; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_SCREEN; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.mock; + +import android.os.BatteryConsumer; +import android.os.BatteryUsageStats; +import android.os.Process; +import android.os.UidBatteryConsumer; + +import com.android.internal.os.PowerStats; +import com.android.server.power.stats.PowerStatsStore; +import com.android.server.power.stats.format.BasePowerStatsLayout; + +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.List; + +public class BasePowerStatsProcessorTest { + private static final int APP_UID1 = Process.FIRST_APPLICATION_UID + 42; + private static final int APP_UID2 = Process.FIRST_APPLICATION_UID + 101; + + private static AggregatedPowerStatsConfig sAggregatedPowerStatsConfig; + + @BeforeClass + public static void setup() { + sAggregatedPowerStatsConfig = new AggregatedPowerStatsConfig(); + sAggregatedPowerStatsConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_BASE) + .trackDeviceStates( + AggregatedPowerStatsConfig.STATE_POWER, + AggregatedPowerStatsConfig.STATE_SCREEN) + .trackUidStates( + AggregatedPowerStatsConfig.STATE_POWER, + AggregatedPowerStatsConfig.STATE_SCREEN, + AggregatedPowerStatsConfig.STATE_PROCESS_STATE) + .setProcessorSupplier(() -> new BasePowerStatsProcessor(() -> 4000)); + } + + @Test + public void processPowerStats() { + AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true); + + PowerComponentAggregatedPowerStats stats = aggregatedPowerStats.getPowerComponentStats( + BatteryConsumer.POWER_COMPONENT_BASE); + + PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor(); + BasePowerStatsLayout statsLayout = new BasePowerStatsLayout(descriptor); + + long[] deviceStats = new long[descriptor.statsArrayLength]; + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON)); + assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(2500); + + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER)); + assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(8500); + + long[] uidStats = new long[descriptor.uidStatsArrayLength]; + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2500); + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_BACKGROUND)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2500); + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_FOREGROUND_SERVICE)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(5000); + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0); + + stats.getUidStats(uidStats, APP_UID2, + states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_CACHED)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2500); + stats.getUidStats(uidStats, APP_UID2, + states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_CACHED)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(8500); + stats.getUidStats(uidStats, APP_UID2, + states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER, PROCESS_STATE_UNSPECIFIED)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(0); + } + + @Test + public void fuelgaugeAvailable() { + AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true); + + PowerComponentAggregatedPowerStats stats = aggregatedPowerStats.getPowerComponentStats( + BatteryConsumer.POWER_COMPONENT_BASE); + + PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor(); + BasePowerStatsLayout statsLayout = new BasePowerStatsLayout(descriptor); + + long[] deviceStats = new long[descriptor.statsArrayLength]; + double dischargeDuration = 0; + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON)); + dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats); + assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(2.5); + // (2,000,000 uAh - 900,000 uAh) * 2,500 ms / 11,000 ms + assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(250_000); + + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER)); + dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats); + assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(8.5); + // (2,000,000 uAh - 900,000 uAh) * 8,500 ms / 11,000 ms + assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(850_000); + + // Allow for rounding errors + assertThat(dischargeDuration).isWithin(5).of(6000); + } + + @Test + public void fuelgaugeUnavailable() { + AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(false); + + PowerComponentAggregatedPowerStats stats = aggregatedPowerStats.getPowerComponentStats( + BatteryConsumer.POWER_COMPONENT_BASE); + + PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor(); + BasePowerStatsLayout statsLayout = new BasePowerStatsLayout(descriptor); + + long[] deviceStats = new long[descriptor.statsArrayLength]; + double dischargeDuration = 0; + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON)); + dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats); + assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(2.5); + // 11% * 4_000_000 uAh * 2,500 ms / 11,000 ms + assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(100_000); + + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_OTHER)); + dischargeDuration += statsLayout.getBatteryDischargeDuration(deviceStats); + assertThat(statsLayout.getBatteryDischargePercent(deviceStats)).isWithin(0.1).of(8.5); + assertThat(statsLayout.getBatteryDischargeUah(deviceStats)).isEqualTo(340_000); + + // Allow for rounding errors + assertThat(dischargeDuration).isWithin(5).of(6000); + } + + @Test + public void exporter() throws Exception { + AggregatedPowerStats aggregatedPowerStats = prepareAggregatedPowerStats(true); + + PowerStatsStore powerStatsStore = mock(PowerStatsStore.class); + PowerStatsAggregator powerStatsAggregator = new PowerStatsAggregator( + sAggregatedPowerStatsConfig); + PowerStatsExporter exporter = new PowerStatsExporter(powerStatsStore, + powerStatsAggregator, /* batterySessionTimeSpanSlackMillis */ 0); + + BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(new String[0], + /* includePowerModels */ false, + /* includeProcessStateData */ true, + /* includeScreenStateData */ true, + /* includesPowerStateData */ true, + /* minConsumedPowerThreshold */ 0); + exporter.populateBatteryUsageStatsBuilder(builder, aggregatedPowerStats); + BatteryUsageStats batteryUsageStats = builder.build(); + + List<UidBatteryConsumer> uidBatteryConsumers = batteryUsageStats.getUidBatteryConsumers(); + UidBatteryConsumer app1 = uidBatteryConsumers.stream() + .filter(u->u.getUid() == APP_UID1).findAny().get(); + assertThat(app1.getUsageDurationMillis( + new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_FOREGROUND, + BatteryConsumer.SCREEN_STATE_ON, BatteryConsumer.POWER_STATE_BATTERY))) + .isEqualTo(2500); + assertThat(app1.getUsageDurationMillis( + new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_BACKGROUND, + BatteryConsumer.SCREEN_STATE_OTHER, BatteryConsumer.POWER_STATE_BATTERY))) + .isEqualTo(2500); + assertThat(app1.getUsageDurationMillis( + new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, + PROCESS_STATE_FOREGROUND_SERVICE, + BatteryConsumer.SCREEN_STATE_OTHER, BatteryConsumer.POWER_STATE_BATTERY))) + .isEqualTo(5000); + + assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND)).isEqualTo(2500); + assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND)).isEqualTo(2500); + assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE)).isEqualTo(5000); + assertThat(app1.getTimeInProcessStateMs(PROCESS_STATE_UNSPECIFIED)).isEqualTo(0); + + UidBatteryConsumer app2 = uidBatteryConsumers.stream() + .filter(u->u.getUid() == APP_UID2).findAny().get(); + assertThat(app2.getUsageDurationMillis( + new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_CACHED, + BatteryConsumer.SCREEN_STATE_ON, BatteryConsumer.POWER_STATE_BATTERY))) + .isEqualTo(2500); + assertThat(app2.getUsageDurationMillis( + new BatteryConsumer.Dimensions(POWER_COMPONENT_BASE, PROCESS_STATE_CACHED, + BatteryConsumer.SCREEN_STATE_OTHER, BatteryConsumer.POWER_STATE_BATTERY))) + .isEqualTo(8500); + + assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_CACHED)).isEqualTo(11_000); + assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND)).isEqualTo(0); + assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_BACKGROUND)).isEqualTo(0); + assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_FOREGROUND_SERVICE)).isEqualTo(0); + assertThat(app2.getTimeInProcessStateMs(PROCESS_STATE_UNSPECIFIED)).isEqualTo(0); + + batteryUsageStats.close(); + } + + private static AggregatedPowerStats prepareAggregatedPowerStats(boolean fuelgaugeAvailable) { + AggregatedPowerStats stats = new AggregatedPowerStats(sAggregatedPowerStatsConfig); + stats.getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_BASE); + stats.start(0); + + stats.noteBatteryLevel(50, fuelgaugeAvailable ? 2_000_000 : 0, 0); + + stats.setDeviceState(STATE_POWER, POWER_STATE_BATTERY, 0); + stats.setDeviceState(STATE_SCREEN, SCREEN_STATE_ON, 0); + stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0); + stats.setUidState(APP_UID2, STATE_PROCESS_STATE, PROCESS_STATE_CACHED, 0); + + // Turn the screen off after 2.5 seconds + stats.setDeviceState(STATE_SCREEN, SCREEN_STATE_OTHER, 2500); + stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_BACKGROUND, 2500); + stats.noteBatteryLevel(45, fuelgaugeAvailable ? 1_400_000 : 0, 3000); + stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND_SERVICE, 5000); + stats.noteBatteryLevel(39, fuelgaugeAvailable ? 900_000 : 0, 6000); + + // Kill the app at the 10_000 mark + stats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_UNSPECIFIED, 10_000); + + stats.noteBatteryLevel(49, fuelgaugeAvailable ? 1_200_000 : 0, 10_000); + + stats.finish(11_000); + return stats; + } + + private int[] states(int... states) { + return states; + } +} diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java index 6dfc22077357..2c580e5ab0d2 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/BluetoothPowerStatsProcessorTest.java @@ -479,6 +479,7 @@ public class BluetoothPowerStatsProcessorTest { new AggregatedPowerStats(config).getPowerComponentStats( BatteryConsumer.POWER_COMPONENT_BLUETOOTH); + aggregatedStats.start(0); aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0); aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0); aggregatedStats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java index 693861539922..cb9d9b12a2fc 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/CpuPowerStatsProcessorTest.java @@ -43,6 +43,7 @@ import com.android.internal.os.PowerProfile; import com.android.internal.os.PowerStats; import com.android.server.power.stats.BatteryUsageStatsRule; import com.android.server.power.stats.format.CpuPowerStatsLayout; +import com.android.server.power.stats.format.WakelockPowerStatsLayout; import org.junit.Before; import org.junit.Rule; @@ -78,21 +79,37 @@ public class CpuPowerStatsProcessorTest { .setCpuPowerBracket(0, 1, 1) .setCpuPowerBracket(2, 0, 2); - private AggregatedPowerStatsConfig.PowerComponent mConfig; + private AggregatedPowerStatsConfig mConfig; + private AggregatedPowerStatsConfig.PowerComponent mCpuPowerComponentConfig; + private AggregatedPowerStats mAggregatedPowerStats; private MockPowerComponentAggregatedPowerStats mStats; + private WakelockPowerStatsLayout mWakelockStatsLayout; + private PowerStats.Descriptor mWakelockDescriptor; @Before public void setup() { - mConfig = new AggregatedPowerStatsConfig.PowerComponent(BatteryConsumer.POWER_COMPONENT_CPU) + mConfig = new AggregatedPowerStatsConfig(); + mConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WAKELOCK) .trackDeviceStates(STATE_POWER, STATE_SCREEN) - .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE) + .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE); + mCpuPowerComponentConfig = mConfig.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_CPU, + BatteryConsumer.POWER_COMPONENT_WAKELOCK) .setProcessorSupplier(() -> new CpuPowerStatsProcessor(mStatsRule.getPowerProfile(), mStatsRule.getCpuScalingPolicies())); + mAggregatedPowerStats = new AggregatedPowerStats(mConfig); + + mWakelockStatsLayout = new WakelockPowerStatsLayout(); + PersistableBundle extras = new PersistableBundle(); + mWakelockStatsLayout.toExtras(extras); + mWakelockDescriptor = new PowerStats.Descriptor(BatteryConsumer.POWER_COMPONENT_WAKELOCK, + mWakelockStatsLayout.getDeviceStatsArrayLength(), null, 0, + mWakelockStatsLayout.getUidStatsArrayLength(), extras); } @Test public void powerProfileModel() { - mStats = new MockPowerComponentAggregatedPowerStats(mConfig, false); + mStats = new MockPowerComponentAggregatedPowerStats(mAggregatedPowerStats, + mCpuPowerComponentConfig, false); mStats.start(0); mStats.setDeviceStats( @@ -136,7 +153,23 @@ public class CpuPowerStatsProcessorTest { @Test public void energyConsumerModel() { - mStats = new MockPowerComponentAggregatedPowerStats(mConfig, true); + PowerComponentAggregatedPowerStats wakelockStats = + mAggregatedPowerStats.getPowerComponentStats( + BatteryConsumer.POWER_COMPONENT_WAKELOCK); + + wakelockStats.setPowerStatsDescriptor(mWakelockDescriptor); + long[] wakelockDeviceStats = new long[mWakelockDescriptor.statsArrayLength]; + mWakelockStatsLayout.setDevicePowerEstimate(wakelockDeviceStats, 1.000); + wakelockStats.setDeviceStats(states(POWER_STATE_BATTERY, SCREEN_STATE_ON), + wakelockDeviceStats); + long[] wakelockUidStats = new long[mWakelockDescriptor.uidStatsArrayLength]; + mWakelockStatsLayout.setUidPowerEstimate(wakelockUidStats, 0.100); + wakelockStats.setUidStats(42, + states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_BACKGROUND), + wakelockUidStats); + + mStats = new MockPowerComponentAggregatedPowerStats(mAggregatedPowerStats, + mCpuPowerComponentConfig, true); mStats.start(0); mStats.setDeviceStats( @@ -146,7 +179,7 @@ public class CpuPowerStatsProcessorTest { values(2000, 1000), // clusters values(5000), // uptime values(5_000_000L, 6_000_000L)), // energy, uC - 3.055555); + 2.055555); // 3.055555 - 1.000 (wakelock power) mStats.setDeviceStats( states(POWER_STATE_OTHER, SCREEN_STATE_ON), concat( @@ -171,7 +204,8 @@ public class CpuPowerStatsProcessorTest { values(900, 1000, 1500), 1.161902); mStats.setUidStats(42, states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_BACKGROUND), - values(600, 500, 300), 0.355406); + values(600, 500, 300), + 0.255406); // 0.355406 - 0.100 (wakelock power) mStats.setUidStats(42, states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_CACHED), values(1500, 2000, 1000), 0.80773); @@ -209,10 +243,10 @@ public class CpuPowerStatsProcessorTest { private final HashMap<String, Double> mExpectedDevicePower = new HashMap<>(); private final HashMap<String, Double> mExpectedUidPower = new HashMap<>(); - MockPowerComponentAggregatedPowerStats( - AggregatedPowerStatsConfig.PowerComponent config, + MockPowerComponentAggregatedPowerStats(AggregatedPowerStats aggregatedPowerStats, + AggregatedPowerStatsConfig.PowerComponent powerComponent, boolean useEnergyConsumers) { - super(new AggregatedPowerStats(new AggregatedPowerStatsConfig()), config); + super(aggregatedPowerStats, powerComponent); mStatsLayout = new CpuPowerStatsLayout(useEnergyConsumers ? 2 : 0, 2, new int[]{0, 1, 2}); PersistableBundle extras = new PersistableBundle(); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java index 80358c5768f1..4ed44a0563e3 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/MobileRadioPowerStatsProcessorTest.java @@ -182,6 +182,7 @@ public class MobileRadioPowerStatsProcessorTest { PowerComponentAggregatedPowerStats aggregatedStats = new AggregatedPowerStats(config) .getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO); + aggregatedStats.start(0); aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0); aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0); aggregatedStats.setUidState(APP_UID, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0); @@ -419,6 +420,7 @@ public class MobileRadioPowerStatsProcessorTest { PowerComponentAggregatedPowerStats aggregatedStats = new AggregatedPowerStats(config) .getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO); + aggregatedStats.start(0); aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0); aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0); aggregatedStats.setUidState(APP_UID, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0); diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java index 024743d9e098..8475d5696252 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/PowerStatsExporterTest.java @@ -132,7 +132,7 @@ public class PowerStatsExporterTest { null, 0, mCpuStatsArrayLayout.getUidStatsArrayLength(), extras); mPowerAttributor = new MultiStatePowerAttributor(mock(Context.class), mPowerStatsStore, - mock(PowerProfile.class), mock(CpuScalingPolicies.class), + mock(PowerProfile.class), mock(CpuScalingPolicies.class), () -> 3500, mock(PowerStatsUidResolver.class)); } @@ -340,8 +340,7 @@ public class PowerStatsExporterTest { AggregatedPowerStats aps, boolean includeProcessStateData, boolean includeScreenStateData, boolean includesPowerStateData) { - PowerStatsExporter - exporter = new PowerStatsExporter(mPowerStatsStore, + PowerStatsExporter exporter = new PowerStatsExporter(mPowerStatsStore, mPowerStatsAggregator, /* batterySessionTimeSpanSlackMillis */ 0); BatteryUsageStats.Builder builder = new BatteryUsageStats.Builder(new String[0], false, diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java new file mode 100644 index 000000000000..f64dc083ca1a --- /dev/null +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WakelockPowerStatsProcessorTest.java @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.server.power.stats.processor; + +import static android.os.BatteryConsumer.POWER_COMPONENT_WAKELOCK; +import static android.os.BatteryConsumer.PROCESS_STATE_BACKGROUND; +import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND; +import static android.os.BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE; + +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.POWER_STATE_BATTERY; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.POWER_STATE_OTHER; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.SCREEN_STATE_ON; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_POWER; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_PROCESS_STATE; +import static com.android.server.power.stats.processor.AggregatedPowerStatsConfig.STATE_SCREEN; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.mock; + +import android.os.BatteryConsumer; +import android.os.PersistableBundle; +import android.os.Process; +import android.platform.test.ravenwood.RavenwoodConfig; + +import com.android.internal.os.BatteryStatsHistory; +import com.android.internal.os.MonotonicClock; +import com.android.internal.os.PowerProfile; +import com.android.internal.os.PowerStats; +import com.android.server.power.stats.BatteryUsageStatsRule; +import com.android.server.power.stats.format.WakelockPowerStatsLayout; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +public class WakelockPowerStatsProcessorTest { + @RavenwoodConfig.Config + public static final RavenwoodConfig sConfig = new RavenwoodConfig.Builder() + .setProvideMainThread(true) + .build(); + + @Rule + public final BatteryUsageStatsRule mStatsRule = new BatteryUsageStatsRule() + .setAveragePower(PowerProfile.POWER_CPU_IDLE, 720); + + public static final int START_TIME = 12345; + private static final int APP_UID1 = Process.FIRST_APPLICATION_UID + 42; + private static final int APP_UID2 = Process.FIRST_APPLICATION_UID + 101; + private static final double PRECISION = 0.00001; + + private PowerStatsAggregator mPowerStatsAggregator; + + @Before + public void setup() { + AggregatedPowerStatsConfig config = new AggregatedPowerStatsConfig(); + config.trackPowerComponent(BatteryConsumer.POWER_COMPONENT_WAKELOCK) + .trackDeviceStates(STATE_POWER, STATE_SCREEN) + .trackUidStates(STATE_POWER, STATE_SCREEN, STATE_PROCESS_STATE) + .setProcessorSupplier( + () -> new WakelockPowerStatsProcessor(mStatsRule.getPowerProfile())); + mPowerStatsAggregator = new PowerStatsAggregator(config); + } + + @Test + public void wakelockDuration() { + BatteryStatsHistory history = prepareBatteryStatsHistory(); + mPowerStatsAggregator.aggregatePowerStats(history, 0, Long.MAX_VALUE, + this::assertAggregatedPowerStats); + } + + private BatteryStatsHistory prepareBatteryStatsHistory() { + WakelockPowerStatsLayout statsLayout = new WakelockPowerStatsLayout(); + PersistableBundle extras = new PersistableBundle(); + statsLayout.toExtras(extras); + PowerStats.Descriptor descriptor = new PowerStats.Descriptor( + BatteryConsumer.POWER_COMPONENT_WAKELOCK, + statsLayout.getDeviceStatsArrayLength(), null, 0, + statsLayout.getUidStatsArrayLength(), extras); + PowerStats ps = new PowerStats(descriptor); + long[] uidStats = new long[descriptor.uidStatsArrayLength]; + + BatteryStatsHistory history = new BatteryStatsHistory(null, null, 0, 10000, + mock(BatteryStatsHistory.HistoryStepDetailsCalculator.class), + mStatsRule.getMockClock(), + new MonotonicClock(START_TIME, mStatsRule.getMockClock()), null, null); + history.forceRecordAllHistory(); + history.startRecordingHistory(0, 0, false); + history.recordProcessStateChange(0, 0, APP_UID1, PROCESS_STATE_BACKGROUND); + history.recordProcessStateChange(0, 0, APP_UID2, PROCESS_STATE_FOREGROUND); + + // Establish a baseline + history.recordPowerStats(0, 0, ps); + + ps.durationMs = 5000; + statsLayout.setUsageDuration(ps.stats, 2000); + statsLayout.setUidUsageDuration(uidStats, 2000); + ps.uidStats.put(APP_UID1, uidStats.clone()); + + history.recordPowerStats(5000, 2000, ps); + + history.recordProcessStateChange(14000, 11000, APP_UID1, PROCESS_STATE_FOREGROUND_SERVICE); + + history.setPluggedInState(true); + history.writeHistoryItem(18500, 15500); + + ps.durationMs = 18000; + statsLayout.setUsageDuration(ps.stats, 10000); + statsLayout.setUidUsageDuration(uidStats, 2000); + ps.uidStats.put(APP_UID1, uidStats.clone()); + statsLayout.setUidUsageDuration(uidStats, 8000); + ps.uidStats.put(APP_UID2, uidStats.clone()); + + history.recordPowerStats(23000, 20000, ps); + + return history; + } + + private void assertAggregatedPowerStats(AggregatedPowerStats aggregatedPowerStats) { + PowerComponentAggregatedPowerStats stats = + aggregatedPowerStats.getPowerComponentStats(POWER_COMPONENT_WAKELOCK); + PowerStats.Descriptor descriptor = stats.getPowerStatsDescriptor(); + WakelockPowerStatsLayout statsLayout = new WakelockPowerStatsLayout(descriptor); + long[] deviceStats = new long[descriptor.statsArrayLength]; + long[] uidStats = new long[descriptor.uidStatsArrayLength]; + + stats.getDeviceStats(deviceStats, states(POWER_STATE_BATTERY, SCREEN_STATE_ON)); + assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(7500); + assertThat(statsLayout.getDevicePowerEstimate(deviceStats)).isWithin(PRECISION).of(1.50); + + stats.getDeviceStats(deviceStats, states(POWER_STATE_OTHER, SCREEN_STATE_ON)); + assertThat(statsLayout.getUsageDuration(deviceStats)).isEqualTo(2500); + assertThat(statsLayout.getDevicePowerEstimate(deviceStats)).isWithin(PRECISION).of(0.50); + + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_BACKGROUND)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(1000); + assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.20); + + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND_SERVICE)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(500); + assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.10); + + stats.getUidStats(uidStats, APP_UID1, + states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND_SERVICE)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(500); + assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.10); + + stats.getUidStats(uidStats, APP_UID2, + states(POWER_STATE_BATTERY, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(6000); + assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(1.20); + + stats.getUidStats(uidStats, APP_UID2, + states(POWER_STATE_OTHER, SCREEN_STATE_ON, PROCESS_STATE_FOREGROUND)); + assertThat(statsLayout.getUidUsageDuration(uidStats)).isEqualTo(2000); + assertThat(statsLayout.getUidPowerEstimate(uidStats)).isWithin(PRECISION).of(0.40); + } + + private int[] states(int... states) { + return states; + } +} diff --git a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java index baf468e3f7de..1e097692f55e 100644 --- a/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java +++ b/services/tests/powerstatstests/src/com/android/server/power/stats/processor/WifiPowerStatsProcessorTest.java @@ -536,6 +536,7 @@ public class WifiPowerStatsProcessorTest { PowerComponentAggregatedPowerStats aggregatedStats = new AggregatedPowerStats(config) .getPowerComponentStats(BatteryConsumer.POWER_COMPONENT_WIFI); + aggregatedStats.start(0); aggregatedStats.setState(STATE_POWER, POWER_STATE_OTHER, 0); aggregatedStats.setState(STATE_SCREEN, SCREEN_STATE_ON, 0); aggregatedStats.setUidState(APP_UID1, STATE_PROCESS_STATE, PROCESS_STATE_FOREGROUND, 0); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java index 585df84f7f90..22a4f85758eb 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/GroupHelperTest.java @@ -2662,6 +2662,17 @@ public class GroupHelperTest extends UiServiceTestCase { when(n.isColorized()).thenReturn(true); when(n.isStyle(Notification.CallStyle.class)).thenReturn(false); assertThat(GroupHelper.getSection(notification_colorFg)).isNull(); + + NotificationRecord notification_media = spy(getNotificationRecord(mPkg, 0, "", mUser, + "", false, IMPORTANCE_LOW)); + n = mock(Notification.class); + sbn = spy(getSbn("package", 0, "0", UserHandle.SYSTEM)); + when(notification_media.isConversation()).thenReturn(false); + when(notification_media.getNotification()).thenReturn(n); + when(notification_media.getSbn()).thenReturn(sbn); + when(sbn.getNotification()).thenReturn(n); + when(n.isMediaNotification()).thenReturn(true); + assertThat(GroupHelper.getSection(notification_media)).isNull(); } @Test @@ -2756,7 +2767,7 @@ public class GroupHelperTest extends UiServiceTestCase { @Test @EnableFlags({FLAG_NOTIFICATION_FORCE_GROUPING, FLAG_NOTIFICATION_FORCE_GROUP_CONVERSATIONS}) public void testNonGroupableNotifications_forceGroupConversations() { - // Check that there is no valid section for: calls, foreground services + // Check that there is no valid section for: calls, foreground services, media notifications NotificationRecord notification_call = spy(getNotificationRecord(mPkg, 0, "", mUser, "", false, IMPORTANCE_LOW)); Notification n = mock(Notification.class); @@ -2780,6 +2791,17 @@ public class GroupHelperTest extends UiServiceTestCase { when(n.isColorized()).thenReturn(true); when(n.isStyle(Notification.CallStyle.class)).thenReturn(false); assertThat(GroupHelper.getSection(notification_colorFg)).isNull(); + + NotificationRecord notification_media = spy(getNotificationRecord(mPkg, 0, "", mUser, + "", false, IMPORTANCE_LOW)); + n = mock(Notification.class); + sbn = spy(getSbn("package", 0, "0", UserHandle.SYSTEM)); + when(notification_media.isConversation()).thenReturn(false); + when(notification_media.getNotification()).thenReturn(n); + when(notification_media.getSbn()).thenReturn(sbn); + when(sbn.getNotification()).thenReturn(n); + when(n.isMediaNotification()).thenReturn(true); + assertThat(GroupHelper.getSection(notification_media)).isNull(); } @Test diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java index a45b102278ef..797b95b5dbe9 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationAssistantsTest.java @@ -15,12 +15,15 @@ */ package com.android.server.notification; +import static android.os.UserHandle.USER_ALL; + +import static com.google.common.truth.Truth.assertThat; + import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertTrue; -import static junit.framework.Assert.fail; import static org.junit.Assert.assertNull; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.eq; @@ -33,6 +36,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.Manifest; import android.app.ActivityManager; import android.app.INotificationManager; import android.content.ComponentName; @@ -42,24 +46,28 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; -import android.os.UserHandle; import android.os.UserManager; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; +import android.service.notification.Adjustment; import android.testing.TestableContext; import android.util.ArrayMap; import android.util.ArraySet; import android.util.IntArray; import android.util.Xml; -import android.Manifest; + +import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.CollectionUtils; -import com.android.internal.util.function.TriPredicate; import com.android.modules.utils.TypedXmlPullParser; import com.android.modules.utils.TypedXmlSerializer; import com.android.server.UiServiceTestCase; import com.android.server.notification.NotificationManagerService.NotificationAssistants; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -71,8 +79,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +@RunWith(AndroidJUnit4.class) public class NotificationAssistantsTest extends UiServiceTestCase { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + @Mock private PackageManager mPm; @Mock @@ -98,6 +110,35 @@ public class NotificationAssistantsTest extends UiServiceTestCase { ComponentName mCn = new ComponentName("a", "b"); + + // Helper function to hold mApproved lock, avoid GuardedBy lint errors + private boolean isUserSetServicesEmpty(NotificationAssistants assistant, int userId) { + synchronized (assistant.mApproved) { + return assistant.mUserSetServices.get(userId).isEmpty(); + } + } + + private void writeXmlAndReload(int userId) throws Exception { + TypedXmlSerializer serializer = Xml.newFastSerializer(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + serializer.setOutput(new BufferedOutputStream(baos), "utf-8"); + serializer.startDocument(null, true); + mAssistants.writeXml(serializer, false, userId); + serializer.endDocument(); + serializer.flush(); + + //fail(baos.toString("UTF-8")); + + final TypedXmlPullParser parser = Xml.newFastPullParser(); + parser.setInput(new BufferedInputStream( + new ByteArrayInputStream(baos.toByteArray())), null); + + parser.nextTag(); + mAssistants = spy(mNm.new NotificationAssistants(mContext, mLock, mUserProfiles, miPm)); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); + } + + @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -164,25 +205,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase { mAssistants.setPackageOrComponentEnabled(current.flattenToString(), userId, true, false, true); - TypedXmlSerializer serializer = Xml.newFastSerializer(); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - serializer.setOutput(new BufferedOutputStream(baos), "utf-8"); - serializer.startDocument(null, true); - mAssistants.writeXml(serializer, true, userId); - serializer.endDocument(); - serializer.flush(); - - //fail(baos.toString("UTF-8")); - - final TypedXmlPullParser parser = Xml.newFastPullParser(); - parser.setInput(new BufferedInputStream( - new ByteArrayInputStream(baos.toByteArray())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; - - parser.nextTag(); - mAssistants = spy(mNm.new NotificationAssistants(mContext, mLock, mUserProfiles, miPm)); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + writeXmlAndReload(USER_ALL); ArrayMap<Boolean, ArraySet<String>> approved = mAssistants.mApproved.get(0); // approved should not be null @@ -203,11 +226,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); ArrayMap<Boolean, ArraySet<String>> approved = mAssistants.mApproved.get(0); @@ -226,11 +247,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, true, + mAssistants.readXml(parser, mNm::canUseManagedServices, true, ActivityManager.getCurrentUser()); ArrayMap<Boolean, ArraySet<String>> approved = mAssistants.mApproved.get(0); @@ -253,11 +272,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); verify(mAssistants, times(1)).upgradeUserSet(); assertTrue(mAssistants.mIsUserChanged.get(0)); @@ -273,11 +290,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); verify(mAssistants, times(0)).upgradeUserSet(); assertTrue(isUserSetServicesEmpty(mAssistants, 0)); @@ -294,11 +309,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); verify(mAssistants, times(0)).upgradeUserSet(); assertTrue(isUserSetServicesEmpty(mAssistants, 0)); @@ -314,11 +327,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); verify(mAssistants, times(1)).upgradeUserSet(); assertTrue(isUserSetServicesEmpty(mAssistants, 0)); @@ -334,11 +345,9 @@ public class NotificationAssistantsTest extends UiServiceTestCase { final TypedXmlPullParser parser = Xml.newFastPullParser(); parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); - TriPredicate<String, Integer, String> allowedManagedServicePackages = - mNm::canUseManagedServices; parser.nextTag(); - mAssistants.readXml(parser, allowedManagedServicePackages, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, mNm::canUseManagedServices, false, USER_ALL); verify(mAssistants, times(1)).upgradeUserSet(); assertTrue(isUserSetServicesEmpty(mAssistants, 0)); @@ -361,7 +370,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase { new ByteArrayInputStream(xml.toString().getBytes())), null); parser.nextTag(); - mAssistants.readXml(parser, null, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, null, false, USER_ALL); assertEquals(1, mAssistants.getAllowedComponents(0).size()); assertEquals(new ArrayList(Arrays.asList(new ComponentName("a", "a"))), @@ -378,7 +387,7 @@ public class NotificationAssistantsTest extends UiServiceTestCase { parser.setInput(new BufferedInputStream( new ByteArrayInputStream(xml.toString().getBytes())), null); parser.nextTag(); - mAssistants.readXml(parser, null, false, UserHandle.USER_ALL); + mAssistants.readXml(parser, null, false, USER_ALL); verify(mNm, never()).setDefaultAssistantForUser(anyInt()); verify(mAssistants, times(1)).addApprovedList( @@ -529,10 +538,66 @@ public class NotificationAssistantsTest extends UiServiceTestCase { assertEquals(new ArraySet<>(), mAssistants.getDefaultComponents()); } - // Helper function to hold mApproved lock, avoid GuardedBy lint errors - private boolean isUserSetServicesEmpty(NotificationAssistants assistant, int userId) { - synchronized (assistant.mApproved) { - return assistant.mUserSetServices.get(userId).isEmpty(); - } + @Test + @EnableFlags(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public void testSetAdjustmentTypeSupportedState() throws Exception { + int userId = ActivityManager.getCurrentUser(); + + mAssistants.loadDefaultsFromConfig(true); + mAssistants.setPackageOrComponentEnabled(mCn.flattenToString(), userId, true, + true, true); + ComponentName current = CollectionUtils.firstOrNull( + mAssistants.getAllowedComponents(userId)); + assertNotNull(current); + + assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(0); + + ManagedServices.ManagedServiceInfo info = + mAssistants.new ManagedServiceInfo(null, mCn, userId, false, null, 35, 2345256); + mAssistants.setAdjustmentTypeSupportedState(info, Adjustment.KEY_NOT_CONVERSATION, false); + + assertThat(mAssistants.getUnsupportedAdjustments(userId)).contains( + Adjustment.KEY_NOT_CONVERSATION); + assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(1); + } + + @Test + @EnableFlags(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public void testSetAdjustmentTypeSupportedState_readWriteXml_entries() throws Exception { + int userId = ActivityManager.getCurrentUser(); + + mAssistants.loadDefaultsFromConfig(true); + mAssistants.setPackageOrComponentEnabled(mCn.flattenToString(), userId, true, + true, true); + ComponentName current = CollectionUtils.firstOrNull( + mAssistants.getAllowedComponents(userId)); + assertNotNull(current); + + ManagedServices.ManagedServiceInfo info = + mAssistants.new ManagedServiceInfo(null, mCn, userId, false, null, 35, 2345256); + mAssistants.setAdjustmentTypeSupportedState(info, Adjustment.KEY_NOT_CONVERSATION, false); + + writeXmlAndReload(USER_ALL); + + assertThat(mAssistants.getUnsupportedAdjustments(userId)).contains( + Adjustment.KEY_NOT_CONVERSATION); + assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(1); + } + + @Test + @EnableFlags(android.service.notification.Flags.FLAG_NOTIFICATION_CLASSIFICATION) + public void testSetAdjustmentTypeSupportedState_readWriteXml_empty() throws Exception { + int userId = ActivityManager.getCurrentUser(); + + mAssistants.loadDefaultsFromConfig(true); + mAssistants.setPackageOrComponentEnabled(mCn.flattenToString(), userId, true, + true, true); + ComponentName current = CollectionUtils.firstOrNull( + mAssistants.getAllowedComponents(userId)); + assertNotNull(current); + + writeXmlAndReload(USER_ALL); + + assertThat(mAssistants.getUnsupportedAdjustments(userId).size()).isEqualTo(0); } -} +}
\ No newline at end of file diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java index bbf2cbdbc145..3c120e1ada2a 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java @@ -33,6 +33,7 @@ import static android.app.Notification.FLAG_AUTO_CANCEL; import static android.app.Notification.FLAG_BUBBLE; import static android.app.Notification.FLAG_CAN_COLORIZE; import static android.app.Notification.FLAG_FOREGROUND_SERVICE; +import static android.app.Notification.FLAG_GROUP_SUMMARY; import static android.app.Notification.FLAG_LIFETIME_EXTENDED_BY_DIRECT_REPLY; import static android.app.Notification.FLAG_NO_CLEAR; import static android.app.Notification.FLAG_NO_DISMISS; @@ -2872,6 +2873,131 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { } @Test + @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING) + public void testEnqueueNotification_forceGrouped_clearsSummaryFlag() throws Exception { + final String originalGroupName = "originalGroup"; + final String aggregateGroupName = "Aggregate_Test"; + + // Old record was a summary and it was auto-grouped + final NotificationRecord r = + generateNotificationRecord(mTestNotificationChannel, 0, originalGroupName, true); + mService.addNotification(r); + mService.convertSummaryToNotificationLocked(r.getKey()); + mService.addAutogroupKeyLocked(r.getKey(), aggregateGroupName, true); + + assertThat(mService.mNotificationList).hasSize(1); + + // Update record is a summary + final Notification updatedNotification = generateNotificationRecord( + mTestNotificationChannel, 0, originalGroupName, true).getNotification(); + assertThat(updatedNotification.flags & FLAG_GROUP_SUMMARY).isEqualTo(FLAG_GROUP_SUMMARY); + + mBinderService.enqueueNotificationWithTag(mPkg, mPkg, r.getSbn().getTag(), + r.getSbn().getId(), updatedNotification, r.getSbn().getUserId()); + waitForIdle(); + + // Check that FLAG_GROUP_SUMMARY was removed + assertThat(mService.mNotificationList).hasSize(1); + assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(0); + } + + @Test + @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING) + public void testEnqueueNotification_forceGroupedRegular_updatedAsSummary_clearsSummaryFlag() + throws Exception { + final String originalGroupName = "originalGroup"; + final String aggregateGroupName = "Aggregate_Test"; + + // Old record was not summary and it was auto-grouped + final NotificationRecord r = + generateNotificationRecord(mTestNotificationChannel, 0, originalGroupName, false); + mService.addNotification(r); + mService.addAutogroupKeyLocked(r.getKey(), aggregateGroupName, true); + assertThat(mService.mNotificationList).hasSize(1); + + // Update record is a summary + final Notification updatedNotification = generateNotificationRecord( + mTestNotificationChannel, 0, originalGroupName, true).getNotification(); + assertThat(updatedNotification.flags & FLAG_GROUP_SUMMARY).isEqualTo(FLAG_GROUP_SUMMARY); + + mBinderService.enqueueNotificationWithTag(mPkg, mPkg, r.getSbn().getTag(), + r.getSbn().getId(), updatedNotification, r.getSbn().getUserId()); + waitForIdle(); + + // Check that FLAG_GROUP_SUMMARY was removed + assertThat(mService.mNotificationList).hasSize(1); + assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(0); + } + + @Test + @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING) + public void testEnqueueNotification_notForceGrouped_dontClearSummaryFlag() + throws Exception { + final String originalGroupName = "originalGroup"; + + // Old record was a summary and it was not auto-grouped + final NotificationRecord r = + generateNotificationRecord(mTestNotificationChannel, 0, originalGroupName, true); + mService.addNotification(r); + assertThat(mService.mNotificationList).hasSize(1); + + // Update record is a summary + final Notification updatedNotification = generateNotificationRecord( + mTestNotificationChannel, 0, originalGroupName, true).getNotification(); + assertThat(updatedNotification.flags & FLAG_GROUP_SUMMARY).isEqualTo(FLAG_GROUP_SUMMARY); + + mBinderService.enqueueNotificationWithTag(mPkg, mPkg, r.getSbn().getTag(), + r.getSbn().getId(), updatedNotification, r.getSbn().getUserId()); + waitForIdle(); + + // Check that FLAG_GROUP_SUMMARY was not removed + assertThat(mService.mNotificationList).hasSize(1); + assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo( + FLAG_GROUP_SUMMARY); + } + + @Test + @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING) + public void testRemoveFGSFlagFromNotification_enqueued_forceGrouped_clearsSummaryFlag() { + final String originalGroupName = "originalGroup"; + final String aggregateGroupName = "Aggregate_Test"; + + final NotificationRecord r = generateNotificationRecord(mTestNotificationChannel, 0, null, + originalGroupName, true); + r.getSbn().getNotification().flags &= ~FLAG_GROUP_SUMMARY; + r.setOverrideGroupKey(aggregateGroupName); + mService.addEnqueuedNotification(r); + + mInternalService.removeForegroundServiceFlagFromNotification( + mPkg, r.getSbn().getId(), r.getSbn().getUserId()); + waitForIdle(); + + assertThat(mService.mEnqueuedNotifications).hasSize(1); + assertThat(mService.mEnqueuedNotifications.get(0).getFlags() & FLAG_GROUP_SUMMARY) + .isEqualTo(0); + } + + @Test + @EnableFlags(FLAG_NOTIFICATION_FORCE_GROUPING) + public void testRemoveFGSFlagFromNotification_posted_forceGrouped_clearsSummaryFlag() { + final String originalGroupName = "originalGroup"; + final String aggregateGroupName = "Aggregate_Test"; + + final NotificationRecord r = generateNotificationRecord(mTestNotificationChannel, 0, null, + originalGroupName, true); + r.getSbn().getNotification().flags &= ~FLAG_GROUP_SUMMARY; + r.setOverrideGroupKey(aggregateGroupName); + mService.addNotification(r); + + mInternalService.removeForegroundServiceFlagFromNotification( + mPkg, r.getSbn().getId(), r.getSbn().getUserId()); + waitForIdle(); + + assertThat(mService.mNotificationList).hasSize(1); + assertThat(mService.mNotificationList.get(0).getFlags() & FLAG_GROUP_SUMMARY).isEqualTo(0); + } + + @Test public void testCancelAllNotifications_IgnoreForegroundService() throws Exception { when(mAmi.applyForegroundServiceNotification( any(), anyString(), anyInt(), anyString(), anyInt())).thenReturn(SHOW_IMMEDIATELY); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java index 91eb2edeee13..cf58d9b49832 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeDiffTest.java @@ -60,6 +60,7 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; @@ -127,7 +128,7 @@ public class ZenModeDiffTest extends UiServiceTestCase { ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); ArrayMap<String, Object> expectedTo = new ArrayMap<>(); List<Field> fieldsForDiff = getFieldsForDiffCheck( - ZenModeConfig.ZenRule.class, getZenRuleExemptFields()); + ZenModeConfig.ZenRule.class, getZenRuleExemptFields(), false); generateFieldDiffs(r1, r2, fieldsForDiff, expectedFrom, expectedTo); ZenModeDiff.RuleDiff d = new ZenModeDiff.RuleDiff(r1, r2); @@ -145,6 +146,180 @@ public class ZenModeDiffTest extends UiServiceTestCase { } } + @Test + public void testDeviceEffectsDiff_addRemoveSame() { + // Test add, remove, and both sides same + ZenDeviceEffects effects = new ZenDeviceEffects.Builder().build(); + + // Both sides same rule + ZenModeDiff.DeviceEffectsDiff dSame = new ZenModeDiff.DeviceEffectsDiff(effects, effects); + assertFalse(dSame.hasDiff()); + + // from existent rule to null: expect deleted + ZenModeDiff.DeviceEffectsDiff deleted = new ZenModeDiff.DeviceEffectsDiff(effects, null); + assertTrue(deleted.hasDiff()); + assertTrue(deleted.wasRemoved()); + + // from null to new rule: expect added + ZenModeDiff.DeviceEffectsDiff added = new ZenModeDiff.DeviceEffectsDiff(null, effects); + assertTrue(added.hasDiff()); + assertTrue(added.wasAdded()); + } + + @Test + public void testDeviceEffectsDiff_fieldDiffs() throws Exception { + // Start these the same + ZenDeviceEffects effects1 = new ZenDeviceEffects.Builder().build(); + ZenDeviceEffects effects2 = new ZenDeviceEffects.Builder().build(); + + // maps mapping field name -> expected output value as we set diffs + ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); + ArrayMap<String, Object> expectedTo = new ArrayMap<>(); + List<Field> fieldsForDiff = getFieldsForDiffCheck( + ZenDeviceEffects.class, Collections.emptySet() /*no exempt fields*/, true); + generateFieldDiffs(effects1, effects2, fieldsForDiff, expectedFrom, expectedTo); + + ZenModeDiff.DeviceEffectsDiff d = new ZenModeDiff.DeviceEffectsDiff(effects1, effects2); + assertTrue(d.hasDiff()); + + // Now diff them and check that each of the fields has a diff + for (Field f : fieldsForDiff) { + String name = f.getName(); + assertNotNull("diff not found for field: " + name, d.getDiffForField(name)); + assertTrue(d.getDiffForField(name).hasDiff()); + assertTrue("unexpected field: " + name, expectedFrom.containsKey(name)); + assertTrue("unexpected field: " + name, expectedTo.containsKey(name)); + assertEquals(expectedFrom.get(name), d.getDiffForField(name).from()); + assertEquals(expectedTo.get(name), d.getDiffForField(name).to()); + } + } + + @Test + public void testDeviceEffectsDiff_toString() throws Exception { + // Ensure device effects toString is readable. + ZenDeviceEffects effects1 = new ZenDeviceEffects.Builder().build(); + ZenDeviceEffects effects2 = new ZenDeviceEffects.Builder().build(); + + ZenModeDiff.DeviceEffectsDiff d = new ZenModeDiff.DeviceEffectsDiff(effects1, effects2); + assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{no changes}"); + + d = new ZenModeDiff.DeviceEffectsDiff(effects1, null); + assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{removed}"); + + d = new ZenModeDiff.DeviceEffectsDiff(null, effects2); + assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{added}"); + + ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); + ArrayMap<String, Object> expectedTo = new ArrayMap<>(); + List<Field> fieldsForDiff = getFieldsForDiffCheck( + ZenDeviceEffects.class, Collections.emptySet() /*no exempt fields*/, true); + generateFieldDiffs(effects1, effects2, fieldsForDiff, expectedFrom, expectedTo); + + d = new ZenModeDiff.DeviceEffectsDiff(effects1, effects2); + assertThat(d.toString()).isEqualTo("ZenDeviceEffectsDiff{mNightMode:true->false, " + + "mDisableTapToWake:true->false, mDisableAutoBrightness:true->false, " + + "mSuppressAmbientDisplay:true->false, mDisableTiltToWake:true->false, " + + "mGrayscale:true->false, mDisableTouch:true->false, mMaximizeDoze:true->false, " + + "mMinimizeRadioUsage:true->false, mExtraEffects:null->[], " + + "mDimWallpaper:true->false}"); + } + + + @Test + public void testPolicyDiff_addRemoveSame() { + // Test add, remove, and both sides same + ZenPolicy effects = new ZenPolicy.Builder().build(); + + // Both sides same rule + ZenModeDiff.PolicyDiff dSame = new ZenModeDiff.PolicyDiff(effects, effects); + assertFalse(dSame.hasDiff()); + + // from existent rule to null: expect deleted + ZenModeDiff.PolicyDiff deleted = new ZenModeDiff.PolicyDiff(effects, null); + assertTrue(deleted.hasDiff()); + assertTrue(deleted.wasRemoved()); + + // from null to new rule: expect added + ZenModeDiff.PolicyDiff added = new ZenModeDiff.PolicyDiff(null, effects); + assertTrue(added.hasDiff()); + assertTrue(added.wasAdded()); + } + + @Test + public void testPolicyDiff_fieldDiffs() throws Exception { + // Start these the same + ZenPolicy policy1 = new ZenPolicy.Builder().build(); + ZenPolicy policy2 = new ZenPolicy.Builder().build(); + + // maps mapping field name -> expected output value as we set diffs + ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); + ArrayMap<String, Object> expectedTo = new ArrayMap<>(); + + List<Field> fieldsForDiff = getFieldsForDiffCheck(ZenPolicy.class, Collections.emptySet(), + false); + generateFieldDiffsForZenPolicy(policy1, policy2, fieldsForDiff, expectedFrom, expectedTo); + + ZenModeDiff.PolicyDiff d = new ZenModeDiff.PolicyDiff(policy1, policy2); + assertTrue(d.hasDiff()); + + // Now diff them and check that each of the fields has a diff. + // Because ZenPolicy consolidates priority category and visual effect fields in a list, + // we cannot use reflection on ZenPolicy to get the list of fields. + ArrayList<String> diffFields = new ArrayList<>(); + Field[] fields = ZenModeDiff.PolicyDiff.class.getDeclaredFields(); + + for (Field field : fields) { + int m = field.getModifiers(); + if (Modifier.isStatic(m) && Modifier.isFinal(m)) { + diffFields.add((String) field.get(policy1)); + } + } + + for (String name : diffFields) { + assertNotNull("diff not found for field: " + name, d.getDiffForField(name)); + assertTrue(d.getDiffForField(name).hasDiff()); + assertTrue("unexpected field: " + name, expectedFrom.containsKey(name)); + assertTrue("unexpected field: " + name, expectedTo.containsKey(name)); + assertEquals(expectedFrom.get(name), d.getDiffForField(name).from()); + assertEquals(expectedTo.get(name), d.getDiffForField(name).to()); + } + } + + @Test + public void testPolicyDiff_toString() throws Exception { + // Ensure device effects toString is readable. + ZenPolicy policy1 = new ZenPolicy.Builder().build(); + ZenPolicy policy2 = new ZenPolicy.Builder().build(); + + ZenModeDiff.PolicyDiff d = new ZenModeDiff.PolicyDiff(policy1, policy2); + assertThat(d.toString()).isEqualTo("ZenPolicyDiff{no changes}"); + + d = new ZenModeDiff.PolicyDiff(policy1, null); + assertThat(d.toString()).isEqualTo("ZenPolicyDiff{removed}"); + + d = new ZenModeDiff.PolicyDiff(null, policy2); + assertThat(d.toString()).isEqualTo("ZenPolicyDiff{added}"); + + ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); + ArrayMap<String, Object> expectedTo = new ArrayMap<>(); + List<Field> fieldsForDiff = getFieldsForDiffCheck( + ZenPolicy.class, Collections.emptySet() /*no exempt fields*/, false); + generateFieldDiffsForZenPolicy(policy1, policy2, fieldsForDiff, expectedFrom, expectedTo); + + d = new ZenModeDiff.PolicyDiff(policy1, policy2); + assertThat(d.toString()).isEqualTo("ZenPolicyDiff{mPriorityCalls:2->1, " + + "mVisualEffects_StatusBar:1->2, mPriorityCategories_RepeatCallers:1->2, " + + "mPriorityCategories_Calls:1->2, mPriorityCategories_Media:1->2, " + + "mConversationSenders:2->1, mPriorityCategories_Reminders:1->2, " + + "mVisualEffects_Badge:1->2, mPriorityCategories_Messages:1->2, " + + "mAllowChannels:2->1, mPriorityMessages:2->1, " + + "mVisualEffects_NotificationList:1->2, mVisualEffects_FullScreenIntent:1->2, " + + "mPriorityCategories_Alarms:1->2, mVisualEffects_Lights:1->2, " + + "mPriorityCategories_Events:1->2, mVisualEffects_Ambient:1->2, " + + "mPriorityCategories_System:1->2, mPriorityCategories_Conversations:1->2, " + + "mVisualEffects_Peek:1->2}"); + } + private static Set<String> getZenRuleExemptFields() { // "Metadata" fields are never compared. Set<String> exemptFields = new LinkedHashSet<>( @@ -194,7 +369,7 @@ public class ZenModeDiffTest extends UiServiceTestCase { ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); ArrayMap<String, Object> expectedTo = new ArrayMap<>(); List<Field> fieldsForDiff = getFieldsForDiffCheck( - ZenModeConfig.class, getConfigExemptAndFlaggedFields()); + ZenModeConfig.class, getConfigExemptAndFlaggedFields(), false); generateFieldDiffs(c1, c2, fieldsForDiff, expectedFrom, expectedTo); ZenModeDiff.ConfigDiff d = new ZenModeDiff.ConfigDiff(c1, c2); @@ -223,7 +398,7 @@ public class ZenModeDiffTest extends UiServiceTestCase { ArrayMap<String, Object> expectedFrom = new ArrayMap<>(); ArrayMap<String, Object> expectedTo = new ArrayMap<>(); List<Field> fieldsForDiff = getFieldsForDiffCheck( - ZenModeConfig.class, ZEN_MODE_CONFIG_EXEMPT_FIELDS); + ZenModeConfig.class, ZEN_MODE_CONFIG_EXEMPT_FIELDS, false); generateFieldDiffs(c1, c2, fieldsForDiff, expectedFrom, expectedTo); ZenModeDiff.ConfigDiff d = new ZenModeDiff.ConfigDiff(c1, c2); @@ -359,17 +534,23 @@ public class ZenModeDiffTest extends UiServiceTestCase { // Get the fields on which we would want to check a diff. The requirements are: not final or/ // static (as these should/can never change), and not in a specific list that's exempted. - private List<Field> getFieldsForDiffCheck(Class<?> c, Set<String> exemptNames) + private List<Field> getFieldsForDiffCheck(Class<?> c, Set<String> exemptNames, + boolean includeFinal) throws SecurityException { Field[] fields = c.getDeclaredFields(); ArrayList<Field> out = new ArrayList<>(); for (Field field : fields) { // Check for exempt reasons + // Anything in provided exemptNames is skipped. + if (exemptNames.contains(field.getName())) { + continue; + } int m = field.getModifiers(); - if (Modifier.isFinal(m) - || Modifier.isStatic(m) - || exemptNames.contains(field.getName())) { + if (Modifier.isStatic(m)) { + continue; + } + if (!includeFinal && Modifier.isFinal(m)) { continue; } out.add(field); @@ -377,6 +558,106 @@ public class ZenModeDiffTest extends UiServiceTestCase { return out; } + // Generate a set of diffs for two ZenPolicy objects. Store the results in the provided + // expectation maps. + private void generateFieldDiffsForZenPolicy(ZenPolicy a, ZenPolicy b, List<Field> fields, + ArrayMap<String, Object> expectedA, ArrayMap<String, Object> expectedB) + throws Exception { + // Loop through fields for which we want to check diffs, set a diff and keep track of + // what we set. + for (Field f : fields) { + f.setAccessible(true); + // Just double-check also that the fields actually are for the class declared + assertEquals(f.getDeclaringClass(), a.getClass()); + Class<?> t = f.getType(); + + if (int.class.equals(t)) { + // these will not be valid for arbitrary int enums, but should suffice for a diff. + f.setInt(a, 2); + expectedA.put(f.getName(), 2); + f.setInt(b, 1); + expectedB.put(f.getName(), 1); + } else if (List.class.equals(t)) { + // Fieds mPriorityCategories and mVisualEffects store multiple values and + // must be treated separately. + List<Integer> aList = (ArrayList<Integer>) f.get(a); + List<Integer> bList = (ArrayList<Integer>) f.get(b); + if (f.getName().equals("mPriorityCategories")) { + // PRIORITY_CATEGORY_REMINDERS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 0, + "mPriorityCategories_Reminders"); + // PRIORITY_CATEGORY_EVENTS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 1, + "mPriorityCategories_Events"); + // PRIORITY_CATEGORY_MESSAGES + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 2, + "mPriorityCategories_Messages"); + // PRIORITY_CATEGORY_CALLS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 3, + "mPriorityCategories_Calls"); + // PRIORITY_CATEGORY_REPEAT_CALLERS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 4, + "mPriorityCategories_RepeatCallers"); + // PRIORITY_CATEGORY_ALARMS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 5, + "mPriorityCategories_Alarms"); + // PRIORITY_CATEGORY_MEDIA + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 6, + "mPriorityCategories_Media"); + // PRIORITY_CATEGORY_SYSTEM + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 7, + "mPriorityCategories_System"); + // PRIORITY_CATEGORY_CONVERSATIONS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 8, + "mPriorityCategories_Conversations"); + // Assert that we've set every PriorityCategory enum value. + assertThat(Collections.frequency(aList, ZenPolicy.STATE_ALLOW)) + .isEqualTo(ZenPolicy.NUM_PRIORITY_CATEGORIES); + } else if (f.getName().equals("mVisualEffects")) { + // VISUAL_EFFECT_FULL_SCREEN_INTENT + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 0, + "mVisualEffects_FullScreenIntent"); + // VISUAL_EFFECT_LIGHTS + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 1, + "mVisualEffects_Lights"); + // VISUAL_EFFECT_PEEK + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 2, + "mVisualEffects_Peek"); + // VISUAL_EFFECT_STATUS_BAR + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 3, + "mVisualEffects_StatusBar"); + // VISUAL_EFFECT_BADGE + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 4, + "mVisualEffects_Badge"); + // VISUAL_EFFECT_AMBIENT + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 5, + "mVisualEffects_Ambient"); + // VISUAL_EFFECT_NOTIFICATION_LIST + setPolicyListValueDiff(aList, bList, expectedA, expectedB, 6, + "mVisualEffects_NotificationList"); + // Assert that we've set every VisualeEffect enum value. + assertThat(Collections.frequency(aList, ZenPolicy.STATE_ALLOW)) + .isEqualTo(ZenPolicy.NUM_VISUAL_EFFECTS); + } else { + // Any other lists that are added should be added to the diff. + fail("could not generate field diffs for policy list: " + f.getName()); + } + } + } + } + + // Helper function to create a diff in two list values at a given index, and record that + // diff's values in the associated expected maps under the provided field name. + private void setPolicyListValueDiff(List<Integer> aList, List<Integer> bList, + ArrayMap<String, Object> expectedA, + ArrayMap<String, Object> expectedB, + int index, String fieldName) { + aList.set(index, ZenPolicy.STATE_ALLOW); + expectedA.put(fieldName, ZenPolicy.STATE_ALLOW); + bList.set(index, ZenPolicy.STATE_DISALLOW); + expectedB.put(fieldName, ZenPolicy.STATE_DISALLOW); + } + // Generate a set of generic diffs for the specified two objects and the fields to generate // diffs for, and store the results in the provided expectation maps to be able to check the // output later. diff --git a/services/tests/wmtests/Android.bp b/services/tests/wmtests/Android.bp index 4e59fe516608..ab00bfdf41ae 100644 --- a/services/tests/wmtests/Android.bp +++ b/services/tests/wmtests/Android.bp @@ -29,7 +29,7 @@ genrule { tools: ["protologtool"], cmd: "$(location protologtool) transform-protolog-calls " + "--protolog-class com.android.internal.protolog.ProtoLog " + - "--loggroups-class com.android.internal.protolog.ProtoLogGroup " + + "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " + "--loggroups-jar $(location :protolog-groups) " + // Used for the ProtoLogIntegrationTest, where don't test decoding or writing to file // so the parameters below are irrelevant. diff --git a/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java b/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java index 35cff7a7a324..1a4cc55af450 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/ProtoLogIntegrationTest.java @@ -26,8 +26,8 @@ import android.platform.test.annotations.Presubmit; import androidx.test.filters.SmallTest; import com.android.internal.protolog.ProtoLog; -import com.android.internal.protolog.ProtoLogGroup; import com.android.internal.protolog.ProtoLogImpl; +import com.android.internal.protolog.WmProtoLogGroups; import com.android.internal.protolog.common.IProtoLog; import com.android.internal.protolog.common.LogLevel; @@ -51,13 +51,13 @@ public class ProtoLogIntegrationTest { public void testProtoLogToolIntegration() { IProtoLog mockedProtoLog = mock(IProtoLog.class); runWith(mockedProtoLog, this::testProtoLog); - verify(mockedProtoLog).log(eq(LogLevel.ERROR), eq(ProtoLogGroup.TEST_GROUP), + verify(mockedProtoLog).log(eq(LogLevel.ERROR), eq(WmProtoLogGroups.TEST_GROUP), anyInt(), eq(0b0010010111), eq(new Object[]{true, 1L, 2L, 0.3, "ok"})); } private void testProtoLog() { - ProtoLog.e(ProtoLogGroup.TEST_GROUP, + ProtoLog.e(WmProtoLogGroups.TEST_GROUP, "Test completed successfully: %b %d %x %f %% %s", true, 1, 2, 0.3, "ok"); } diff --git a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java index 064b434e1a6b..5b3fd53b197c 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/TransitionTests.java @@ -34,7 +34,6 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; -import static android.window.TransitionInfo.FLAG_CONFIG_AT_END; import static android.window.TransitionInfo.FLAG_CROSS_PROFILE_OWNER_THUMBNAIL; import static android.window.TransitionInfo.FLAG_FILLS_TASK; import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY; @@ -2935,9 +2934,6 @@ public class TransitionTests extends WindowTestsBase { controller.requestStartTransition(transit, task, null, null); player.start(); assertTrue(activity.isConfigurationDispatchPaused()); - // config-at-end flag must propagate up to task if activity was promoted. - assertTrue(player.mLastReady.getChange( - task.mRemoteToken.toWindowContainerToken()).hasFlags(FLAG_CONFIG_AT_END)); player.finish(); assertFalse(activity.isConfigurationDispatchPaused()); } @@ -2966,11 +2962,9 @@ public class TransitionTests extends WindowTestsBase { controller.requestStartTransition(transit, task, null, null); player.start(); - // config-at-end flag must propagate up to task even when reparented (since config-at-end - // only cares about after-end state). - assertTrue(player.mLastReady.getChange( - task.mRemoteToken.toWindowContainerToken()).hasFlags(FLAG_CONFIG_AT_END)); + assertTrue(activity.isConfigurationDispatchPaused()); player.finish(); + assertFalse(activity.isConfigurationDispatchPaused()); } @Test diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java index 2bb86bc305a7..1a42e80265cb 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java @@ -687,6 +687,7 @@ public class SoundTriggerService extends SystemService { @Override public int startRecognitionForService(ParcelUuid soundModelId, Bundle params, ComponentName detectionService, SoundTrigger.RecognitionConfig config) { + final UserHandle userHandle = Binder.getCallingUserHandle(); mEventLogger.enqueue(new SessionEvent(Type.START_RECOGNITION_SERVICE, getUuid(soundModelId))); try (SafeCloseable ignored = ClearCallingIdentityContext.create()) { @@ -699,7 +700,7 @@ public class SoundTriggerService extends SystemService { IRecognitionStatusCallback callback = new RemoteSoundTriggerDetectionService(soundModelId.getUuid(), params, - detectionService, Binder.getCallingUserHandle(), config); + detectionService, userHandle, config); synchronized (mLock) { SoundModel soundModel = mLoadedModels.get(soundModelId.getUuid()); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 92effe05882a..ff302f6b1a65 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -10613,20 +10613,31 @@ public class TelephonyManager { return null; } - /** @hide */ + /** + * Get the names of packages with carrier privileges for the current subscription. + * + * @throws UnsupportedOperationException If the device does not have {@link + * PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION} + * @hide + */ + @FlaggedApi(android.os.Flags.FLAG_MAINLINE_VCN_PLATFORM_API) + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public List<String> getPackagesWithCarrierPrivileges() { + @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION) + @NonNull + public Set<String> getPackagesWithCarrierPrivileges() { + final Set<String> result = new HashSet<>(); try { ITelephony telephony = getITelephony(); if (telephony != null) { - return telephony.getPackagesWithCarrierPrivileges(getPhoneId()); + result.addAll(telephony.getPackagesWithCarrierPrivileges(getPhoneId())); } } catch (RemoteException ex) { Rlog.e(TAG, "getPackagesWithCarrierPrivileges RemoteException", ex); } catch (NullPointerException ex) { Rlog.e(TAG, "getPackagesWithCarrierPrivileges NPE", ex); } - return Collections.EMPTY_LIST; + return result; } /** diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 7f25ef25c9ac..3161d17681ed 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -3433,4 +3433,15 @@ interface ITelephony { * @hide */ ComponentName getTestEuiccUiComponent(); + + /** + * This API can be used only for test purpose to override the carrier romaing Ntn eligibility + * + * @param status to update Ntn Eligibility. + * @param resetRequired to reset the overridden flag in satellite controller. + * @return {@code true} if the shell command is successful, {@code false} otherwise. + * @hide + */ + boolean overrideCarrierRoamingNtnEligibilityChanged( + in boolean status, in boolean resetRequired); } diff --git a/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt b/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt index ad95fbc36867..88ebf3edc7ed 100644 --- a/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt +++ b/tests/AttestationVerificationTest/src/android/security/attestationverification/PeerDeviceSystemAttestationVerificationTest.kt @@ -2,10 +2,11 @@ package android.security.attestationverification import android.app.Activity import android.os.Bundle +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS import android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE import android.security.attestationverification.AttestationVerificationManager.PARAM_PUBLIC_KEY import android.security.attestationverification.AttestationVerificationManager.PROFILE_PEER_DEVICE -import android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE import android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE import android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY import android.security.attestationverification.AttestationVerificationManager.TYPE_UNKNOWN @@ -54,7 +55,7 @@ class PeerDeviceSystemAttestationVerificationTest { future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -66,7 +67,7 @@ class PeerDeviceSystemAttestationVerificationTest { future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -80,7 +81,7 @@ class PeerDeviceSystemAttestationVerificationTest { future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) val future2 = CompletableFuture<Int>() val challengeRequirements = Bundle() @@ -90,7 +91,7 @@ class PeerDeviceSystemAttestationVerificationTest { future2.complete(result) } - assertThat(future2.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future2.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -104,7 +105,7 @@ class PeerDeviceSystemAttestationVerificationTest { future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -118,7 +119,7 @@ class PeerDeviceSystemAttestationVerificationTest { future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_CERTS) } @Test @@ -131,7 +132,7 @@ class PeerDeviceSystemAttestationVerificationTest { invalidAttestationByteArray, activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_CERTS) } private fun <T> CompletableFuture<T>.getSoon(): T { diff --git a/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt b/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt index 8f06b4a2ea0a..e77364de8747 100644 --- a/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt +++ b/tests/AttestationVerificationTest/src/android/security/attestationverification/SystemAttestationVerificationTest.kt @@ -2,6 +2,9 @@ package android.security.attestationverification import android.os.Bundle import android.app.Activity +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_UNSUPPORTED_PROFILE import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest @@ -14,9 +17,6 @@ import com.google.common.truth.Truth.assertThat import android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE import android.security.attestationverification.AttestationVerificationManager.PROFILE_SELF_TRUSTED import android.security.attestationverification.AttestationVerificationManager.PROFILE_UNKNOWN -import android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE -import android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS -import android.security.attestationverification.AttestationVerificationManager.RESULT_UNKNOWN import android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY import android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE import android.security.keystore.KeyGenParameterSpec @@ -58,19 +58,19 @@ class SystemAttestationVerificationTest { future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_UNKNOWN) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_UNSUPPORTED_PROFILE) } @Test fun verifyAttestation_returnsFailureWithEmptyAttestation() { val future = CompletableFuture<Int>() - val profile = AttestationProfile(PROFILE_SELF_TRUSTED) - avm.verifyAttestation(profile, TYPE_CHALLENGE, Bundle(), ByteArray(0), - activity.mainExecutor) { result, _ -> + val selfTrusted = TestSelfTrustedAttestation("test", "challengeStr") + avm.verifyAttestation(selfTrusted.profile, selfTrusted.localBindingType, + selfTrusted.requirements, ByteArray(0), activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_CERTS) } @Test @@ -81,7 +81,7 @@ class SystemAttestationVerificationTest { Bundle(), selfTrusted.attestation, activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -92,7 +92,7 @@ class SystemAttestationVerificationTest { selfTrusted.requirements, selfTrusted.attestation, activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -106,7 +106,7 @@ class SystemAttestationVerificationTest { wrongKeyRequirements, selfTrusted.attestation, activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -119,7 +119,7 @@ class SystemAttestationVerificationTest { wrongChallengeRequirements, selfTrusted.attestation, activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_FAILURE) + assertThat(future.getSoon()).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } // TODO(b/216144791): Add more failure tests for PROFILE_SELF_TRUSTED. @@ -131,20 +131,7 @@ class SystemAttestationVerificationTest { selfTrusted.requirements, selfTrusted.attestation, activity.mainExecutor) { result, _ -> future.complete(result) } - assertThat(future.getSoon()).isEqualTo(RESULT_SUCCESS) - } - - @Test - fun verifyToken_returnsUnknown() { - val future = CompletableFuture<Int>() - val profile = AttestationProfile(PROFILE_SELF_TRUSTED) - avm.verifyAttestation(profile, TYPE_PUBLIC_KEY, Bundle(), ByteArray(0), - activity.mainExecutor) { _, token -> - val result = avm.verifyToken(profile, TYPE_PUBLIC_KEY, Bundle(), token, null) - future.complete(result) - } - - assertThat(future.getSoon()).isEqualTo(RESULT_UNKNOWN) + assertThat(future.getSoon()).isEqualTo(0) } @Test diff --git a/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt b/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt index 4712d6b51bd5..4d1a1a55af74 100644 --- a/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt +++ b/tests/AttestationVerificationTest/src/com/android/server/security/AttestationVerificationPeerDeviceVerifierTest.kt @@ -3,11 +3,12 @@ package com.android.server.security import android.app.Activity import android.content.Context import android.os.Bundle +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_CERTS +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS +import android.security.attestationverification.AttestationVerificationManager.FLAG_FAILURE_PATCH_LEVEL_DIFF import android.security.attestationverification.AttestationVerificationManager.PARAM_CHALLENGE import android.security.attestationverification.AttestationVerificationManager.PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS import android.security.attestationverification.AttestationVerificationManager.PARAM_PUBLIC_KEY -import android.security.attestationverification.AttestationVerificationManager.RESULT_FAILURE -import android.security.attestationverification.AttestationVerificationManager.RESULT_SUCCESS import android.security.attestationverification.AttestationVerificationManager.TYPE_CHALLENGE import android.security.attestationverification.AttestationVerificationManager.TYPE_PUBLIC_KEY import android.util.IndentingPrintWriter @@ -72,7 +73,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_SUCCESS) + assertThat(result).isEqualTo(0) } @Test @@ -88,7 +89,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_SUCCESS) + assertThat(result).isEqualTo(0) } @Test @@ -108,7 +109,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_PUBLIC_KEY, pkRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_SUCCESS) + assertThat(result).isEqualTo(0) } @Test @@ -126,7 +127,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TEST_OWNED_BY_SYSTEM_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_SUCCESS) + assertThat(result).isEqualTo(0) } @Test @@ -143,7 +144,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_FAILURE) + assertThat(result).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } @Test @@ -159,7 +160,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_FAILURE) + assertThat(result).isEqualTo(FLAG_FAILURE_PATCH_LEVEL_DIFF) } @Test @@ -176,7 +177,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_SUCCESS) + assertThat(result).isEqualTo(0) } @Test @@ -191,10 +192,28 @@ class AttestationVerificationPeerDeviceVerifierTest { val result = verifier.verifyAttestation( TYPE_CHALLENGE, challengeRequirements, - // The patch date of this file is early 2022 TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_FAILURE) + assertThat(result).isEqualTo(FLAG_FAILURE_PATCH_LEVEL_DIFF) + } + + @Test + fun verifyAttestation_returnsFailureOwnedBySystemAndPatchDataNotWithinMaxPatchDiff() { + val verifier = AttestationVerificationPeerDeviceVerifier( + context, dumpLogger, trustAnchors, false, LocalDate.of(2024, 10, 1), + LocalDate.of(2024, 9, 1) + ) + val challengeRequirements = Bundle() + challengeRequirements.putByteArray(PARAM_CHALLENGE, "player456".encodeToByteArray()) + challengeRequirements.putBoolean("android.key_owned_by_system", true) + challengeRequirements.putInt(PARAM_MAX_PATCH_LEVEL_DIFF_MONTHS, 24) + + val result = verifier.verifyAttestation( + TYPE_CHALLENGE, challengeRequirements, + TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() + ) + // Both "owned by system" and "patch level diff" checks should fail. + assertThat(result).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS or FLAG_FAILURE_PATCH_LEVEL_DIFF) } @Test @@ -210,7 +229,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_FAILURE) + assertThat(result).isEqualTo(FLAG_FAILURE_CERTS) } @Test @@ -232,7 +251,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_FAILURE) + assertThat(result).isEqualTo(FLAG_FAILURE_CERTS) } fun verifyAttestation_returnsFailureChallenge() { @@ -247,7 +266,7 @@ class AttestationVerificationPeerDeviceVerifierTest { TYPE_CHALLENGE, challengeRequirements, TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME.fromPEMFileToByteArray() ) - assertThat(result).isEqualTo(RESULT_FAILURE) + assertThat(result).isEqualTo(FLAG_FAILURE_LOCAL_BINDING_REQUIREMENTS) } private fun String.fromPEMFileToCerts(): Collection<Certificate> { @@ -281,6 +300,7 @@ class AttestationVerificationPeerDeviceVerifierTest { companion object { private const val TAG = "AVFTest" private const val TEST_ROOT_CERT_FILENAME = "test_root_certs.pem" + // Local patch date is 20220105 private const val TEST_ATTESTATION_WITH_ROOT_CERT_FILENAME = "test_attestation_with_root_certs.pem" private const val TEST_ATTESTATION_CERT_FILENAME = "test_attestation_wrong_root_certs.pem" diff --git a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt index c61a25021949..9f4df90422eb 100644 --- a/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt +++ b/tests/Input/src/com/android/test/input/UinputRecordingIntegrationTests.kt @@ -39,6 +39,7 @@ import com.android.cts.input.inputeventmatchers.withSource import junit.framework.Assert.fail import org.hamcrest.Matchers.allOf import org.junit.Before +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.junit.rules.TestName @@ -107,6 +108,7 @@ class UinputRecordingIntegrationTests { parser = InputJsonParser(instrumentation.context) } + @Ignore("b/366602644") @Test fun testEvemuRecording() { VirtualDisplayActivityScenario.AutoClose<CaptureEventActivity>( diff --git a/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java b/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java index b5cc5536532c..f1f74bca2ef9 100644 --- a/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java +++ b/tests/vcn/java/com/android/server/vcn/TelephonySubscriptionTrackerTest.java @@ -206,7 +206,7 @@ public class TelephonySubscriptionTrackerTest { .getAllSubscriptionInfoList(); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt()); - setPrivilegedPackagesForMock(Collections.singletonList(PACKAGE_NAME)); + setPrivilegedPackagesForMock(Collections.singleton(PACKAGE_NAME)); } private IntentFilter getIntentFilter() { @@ -293,7 +293,7 @@ public class TelephonySubscriptionTrackerTest { Collections.singletonMap(TEST_SUBSCRIPTION_ID_1, TEST_CARRIER_CONFIG_WRAPPER)); } - private void setPrivilegedPackagesForMock(@NonNull List<String> privilegedPackages) { + private void setPrivilegedPackagesForMock(@NonNull Set<String> privilegedPackages) { doReturn(privilegedPackages).when(mTelephonyManager).getPackagesWithCarrierPrivileges(); } @@ -390,7 +390,7 @@ public class TelephonySubscriptionTrackerTest { @Test public void testOnSubscriptionsChangedFired_onActiveSubIdsChanged() throws Exception { setupReadySubIds(); - setPrivilegedPackagesForMock(Collections.emptyList()); + setPrivilegedPackagesForMock(Collections.emptySet()); doReturn(TEST_SUBSCRIPTION_ID_2).when(mDeps).getActiveDataSubscriptionId(); final ActiveDataSubscriptionIdListener listener = getActiveDataSubscriptionIdListener(); @@ -411,7 +411,7 @@ public class TelephonySubscriptionTrackerTest { public void testOnSubscriptionsChangedFired_WithReadySubidsNoPrivilegedPackages() throws Exception { setupReadySubIds(); - setPrivilegedPackagesForMock(Collections.emptyList()); + setPrivilegedPackagesForMock(Collections.emptySet()); final OnSubscriptionsChangedListener listener = getOnSubscriptionsChangedListener(); listener.onSubscriptionsChanged(); @@ -567,7 +567,7 @@ public class TelephonySubscriptionTrackerTest { verify(mCallback).onNewSnapshot(eq(buildExpectedSnapshot(TEST_PRIVILEGED_PACKAGES))); // Simulate a loss of carrier privileges - setPrivilegedPackagesForMock(Collections.emptyList()); + setPrivilegedPackagesForMock(Collections.emptySet()); listener.onSubscriptionsChanged(); mTestLooper.dispatchAll(); diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp index fce6aa7c80d9..fb576df248be 100644 --- a/tools/aapt2/ResourceParser.cpp +++ b/tools/aapt2/ResourceParser.cpp @@ -110,7 +110,7 @@ struct ParsedResource { std::optional<OverlayableItem> overlayable_item; std::optional<StagedId> staged_alias; std::optional<FeatureFlagAttribute> flag; - FlagStatus flag_status; + FlagStatus flag_status = FlagStatus::NoFlag; std::string comment; std::unique_ptr<Value> value; @@ -1529,13 +1529,34 @@ bool ResourceParser::ParseStyleItem(xml::XmlPullParser* parser, Style* style) { ResolvePackage(parser, &maybe_key.value()); maybe_key.value().SetSource(source); + auto flag = ParseFlag(xml::FindAttribute(parser, xml::kSchemaAndroid, "featureFlag")); + std::unique_ptr<Item> value = ParseXml(parser, 0, kAllowRawString); if (!value) { diag_->Error(android::DiagMessage(source) << "could not parse style item"); return false; } - style->entries.push_back(Style::Entry{std::move(maybe_key.value()), std::move(value)}); + if (flag) { + if (options_.flag) { + diag_->Error(android::DiagMessage(source_.WithLine(parser->line_number())) + << "Resource flag are not allowed both in the path and in the file"); + return false; + } + std::string error; + auto flag_status = GetFlagStatus(flag, options_.feature_flag_values, &error); + if (flag_status) { + value->SetFlagStatus(flag_status.value()); + value->SetFlag(std::move(flag)); + } else { + diag_->Error(android::DiagMessage(source_.WithLine(parser->line_number())) << error); + return false; + } + } + + if (value->GetFlagStatus() != FlagStatus::Disabled) { + style->entries.push_back(Style::Entry{std::move(maybe_key.value()), std::move(value)}); + } return true; } diff --git a/tools/aapt2/Resources.proto b/tools/aapt2/Resources.proto index a0f60b62db3a..fe9b4a8843ca 100644 --- a/tools/aapt2/Resources.proto +++ b/tools/aapt2/Resources.proto @@ -302,6 +302,11 @@ message CompoundValue { Plural plural = 5; MacroBody macro = 6; } + + // The status of the flag the value is behind if any + uint32 flag_status = 7; + bool flag_negated = 8; + string flag_name = 9; } // Message holding a boolean, so it can be optionally encoded. diff --git a/tools/aapt2/format/proto/ProtoDeserialize.cpp b/tools/aapt2/format/proto/ProtoDeserialize.cpp index 8583cadff6d2..91ec3485ac3b 100644 --- a/tools/aapt2/format/proto/ProtoDeserialize.cpp +++ b/tools/aapt2/format/proto/ProtoDeserialize.cpp @@ -551,11 +551,10 @@ static bool DeserializePackageFromPb(const pb::Package& pb_package, const ResStr return false; } - FeatureFlagAttribute flag; - flag.name = pb_config_value.value().item().flag_name(); - flag.negated = pb_config_value.value().item().flag_negated(); - ResourceConfigValue* config_value = - entry->FindOrCreateFlagDisabledValue(std::move(flag), config, pb_config.product()); + ResourceConfigValue* config_value = entry->FindOrCreateFlagDisabledValue( + FeatureFlagAttribute{.name = pb_config_value.value().item().flag_name(), + .negated = pb_config_value.value().item().flag_negated()}, + config, pb_config.product()); if (config_value->value != nullptr) { *out_error = "duplicate configuration in resource table"; return false; @@ -563,7 +562,6 @@ static bool DeserializePackageFromPb(const pb::Package& pb_package, const ResStr config_value->value = DeserializeValueFromPb(pb_config_value.value(), src_pool, config, &out_table->string_pool, files, out_error); - if (config_value->value == nullptr) { return false; } @@ -896,6 +894,9 @@ std::unique_ptr<Value> DeserializeValueFromPb(const pb::Value& pb_value, LOG(FATAL) << "unknown compound value: " << (int)pb_compound_value.value_case(); break; } + value->SetFlagStatus((FlagStatus)pb_compound_value.flag_status()); + value->SetFlag(FeatureFlagAttribute{.name = pb_compound_value.flag_name(), + .negated = pb_compound_value.flag_negated()}); } else { LOG(FATAL) << "unknown value: " << (int)pb_value.value_case(); return {}; @@ -1052,10 +1053,8 @@ std::unique_ptr<Item> DeserializeItemFromPb(const pb::Item& pb_item, if (item) { item->SetFlagStatus((FlagStatus)pb_item.flag_status()); if (!pb_item.flag_name().empty()) { - FeatureFlagAttribute flag; - flag.name = pb_item.flag_name(); - flag.negated = pb_item.flag_negated(); - item->SetFlag(std::move(flag)); + item->SetFlag( + FeatureFlagAttribute{.name = pb_item.flag_name(), .negated = pb_item.flag_negated()}); } } return item; diff --git a/tools/aapt2/format/proto/ProtoSerialize.cpp b/tools/aapt2/format/proto/ProtoSerialize.cpp index d83fe916ee95..fcc77d5a9d6d 100644 --- a/tools/aapt2/format/proto/ProtoSerialize.cpp +++ b/tools/aapt2/format/proto/ProtoSerialize.cpp @@ -734,6 +734,13 @@ void SerializeValueToPb(const Value& value, pb::Value* out_value, android::Strin out_value->mutable_item()->set_flag_negated(flag->negated); out_value->mutable_item()->set_flag_name(flag->name); } + } else if (out_value->has_compound_value()) { + out_value->mutable_compound_value()->set_flag_status((uint32_t)value.GetFlagStatus()); + if (value.GetFlag()) { + const auto& flag = value.GetFlag(); + out_value->mutable_compound_value()->set_flag_negated(flag->negated); + out_value->mutable_compound_value()->set_flag_name(flag->name); + } } } diff --git a/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp b/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp index 7160b35033da..1b0f99753ce6 100644 --- a/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp +++ b/tools/aapt2/integration-tests/FlaggedResourcesTest/Android.bp @@ -30,6 +30,7 @@ genrule { "res/values/bools2.xml", "res/values/ints.xml", "res/values/strings.xml", + "res/values/styles.xml", "res/layout/layout1.xml", "res/layout/layout3.xml", "res/flag(test.package.falseFlag)/values/bools.xml", @@ -50,6 +51,7 @@ genrule { "values_bools2.arsc.flat", "values_ints.arsc.flat", "values_strings.arsc.flat", + "values_styles.arsc.flat", "layout_layout1.xml.flat", "layout_layout2.(test.package.falseFlag).xml.flat", "layout_layout3.xml.flat", diff --git a/tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml b/tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml new file mode 100644 index 000000000000..604129c26fef --- /dev/null +++ b/tools/aapt2/integration-tests/FlaggedResourcesTest/res/values/styles.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + <style name="style1"> + <item name="android:windowIsTranslucent">true</item> + </style> + <style name="style1" android:featureFlag="test.package.falseFlag"> + <item name="android:windowIsTranslucent">false</item> + </style> + + <style name="style2"> + <item name="android:windowIsTranslucent">false</item> + </style> + <style name="style2" android:featureFlag="test.package.trueFlag"> + <item name="android:windowIsTranslucent">true</item> + </style> + + <style name="style3"> + <item name="android:windowIsTranslucent" android:featureFlag="!test.package.trueFlag">false</item> + <item name="android:windowIsTranslucent" android:featureFlag="test.package.trueFlag">true</item> + </style> +</resources>
\ No newline at end of file diff --git a/tools/processors/property_cache/OWNERS b/tools/processors/property_cache/OWNERS new file mode 100644 index 000000000000..78650168807e --- /dev/null +++ b/tools/processors/property_cache/OWNERS @@ -0,0 +1,3 @@ +include /ACTIVITY_MANAGER_OWNERS +include /BROADCASTS_OWNERS +include /MULTIUSER_OWNERS
\ No newline at end of file |